diff --git a/ChangeLog b/ChangeLog index 41227f59434c2c7281b30018b1397b105564941d..23bef2daf61be085019cf9f5bb0d705739702e19 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,773 @@ +2010-03-10 Sergey Poznyakoff <gray@gnu.org.ua> + + Version 1.23 + * configure.ac, NEWS: Update version number. + + Doc changes. + * NEWS: Update. + * THANKS: Update. + * doc/snapshot.texi, doc/snapshot.texi, + doc/sparse.texi, doc/tar-snapshot-edit.texi, + doc/tar.texi: Spellchecked and proof-read. Thanks + to Denis Excoffier. + * gnulib.modules: Remove utime. + +2010-03-08 Kamil Dudka <kdudka@redhat.com> + + Fix possible overflow in code_timespec (tiny change) + * src/misc.c (code_timespec): ignore invalid values of ns + +2010-03-08 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fix in the testsuite. + * tests/extrac05.at: Skip test if creating + sparse file fails. + + Fix eventual memory override and fd exhaustion in create.c + Both bugs reported by Kamil Dudka. + + * src/create.c (check_exclusion_tags): Do not keep + pointer to a location within tagname: it may change + after xrealloc. Use byte offset instead. + (dump_file0): Close fd before returning without + dumping the directory. + +2010-03-02 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor change. + * doc/tar.texi: Improve some wording. + +2010-03-02 Antonio Diaz Diaz <ant_diaz@teleline.es> + + Add Lzip support + * configure.ac: Add TAR_COMPR_PROGRAM(lzip) + * doc/tar.texi: Reflect lzip support. + * src/buffer.c (compress_type) <ct_lzip>: New constant. + (magic): Add magic for lzip. + * src/suffix.c (compression_suffixes): Add lz. + * src/tar.c: New option --lzip. + +2010-03-02 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fix. + * tests/exclude05.at: Rewrite awk invocation to avoid + overflowing awk's file table on Solaris. + +2010-03-02 Eric Blake <ebb9@byu.net> + + Fix large file support. + * scripts/xsparse.c (read_map): Use fseeko. + * src/incremen.c (write_directory_file): Likewise. + +2010-03-02 Sergey Poznyakoff <gray@gnu.org.ua> + + Bugfix + * src/buffer.c (seek_archive): Rewrite size computation + to prevent it from reaching negative values. Based on + report by Denis Excoffier <Denis.Excoffier@free.fr>. + +2010-02-25 Sergey Poznyakoff <gray@gnu.org.ua> + + Supply more information to the --to-command script. + * src/system.c (stat_to_env): Pass information about the current + volume in variables TAR_ARCHIVE, TAR_VOLUME, TAR_BLOCKING_FACTOR, + TAR_FORMAT. + * doc/tar.texi: Document new environment variables. + * NEWS: Likewise. + * configure.ac: Version number 1.22.91. + +2010-02-17 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor change. + * src/names.c (regex_usage_warning): Fix warning message. + +2010-02-05 Sergey Poznyakoff <gray@gnu.org.ua> + + Update THANKS + +2010-02-05 Ondřej Vašík <ovasik@redhat.com> + + Bugfix (tiny change) + * src/xheader.c (xheader_read): Remove unnecessary call + to xheader_init. + +2010-01-26 Sergey Poznyakoff <gray@gnu.org.ua> + + Enable silent build mode. + * configure.ac: Require automake 1.11, autoconf 2.63. Enable + silent rules. + * NEWS: Update. + * lib/Makefile.am (rmt-command.h): Silent the rule. + +2010-01-25 Sergey Poznyakoff <gray@gnu.org.ua> + + Read POSIX multivolume archives split at the header boundary. + * src/common.h (read_header_mode): New enum. + (read_header): Change type of the 3rd argument. + * src/list.c (read_header): Change type of the 3rd argument. + All callers updated. + * src/buffer.c (try_new_volume): Allow for volumes split at the + extended/ustar header boundary. This is against POSIX specs, but + we must be able to read such archives anyway. + + * tests/multiv07.at: New test case. + * tests/Makefile.am: Add multiv07.at + * tests/testsuite.at: Likewise. + + * src/compare.c: Update calls to read_header. + * src/delete.c: Likewise. + * src/update.c: Likewise. + +2010-01-24 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor change. + * NEWS: Update. + * doc/tar.texi: Update. + * src/create.c (finish_header): Minor change. + +2010-01-24 Rob Vermaas <rob.vermaas@gmail.com> + + Bugfix (tiny change). + * src/tar.c (format_default_settings)[REMOTE_SHELL]: Fix + misplaced comma. + +2010-01-24 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fix. + * src/incremen.c (read_incr_db_01) + (read_directory_file): Initialize bufsize to 0. + Suggested by noordsij@cs.helsinki.fi. + + Improve handling of --test-label. + * src/list.c (print_volume_label): New function. + (print_header): Call print_volume_label. + (test_archive_label): New function. + * src/buffer.c (VOLUME_LABEL_APPEND): Remove. + (VOLUME_TEXT, VOLUME_TEXT_LEN): New macros + (drop_volume_label_suffix): New function. + (check_label_pattern): Use drop_volume_label_suffix. + * src/common.h (subcommand): New constant TEST_LABEL_SUBCOMMAND. + (test_label_option): Remove. + (drop_volume_label_suffix): New proto. + (test_archive_label): New proto. + * src/names.c (all_names_found): Remove test for + test_label_option. + * src/tar.c (subcommand_string): Handle TEST_LABEL_SUBCOMMAND. + (set_subcommand_option): Improve diagnostics. + (parse_opt): Set subcommand if --test-label is given. + (main): Handle TEST_LABEL_SUBCOMMAND. + + Fix listing of volume labels (in particular in PAX archives). + * src/buffer.c (match_volume_label): Call set_volume_label. + (check_label_pattern): Get label string + as argument. + (match_volume_label): Handle volume labels stored in + global PAX headers. + * src/common.c (print_header,read_header): Change signature. + (read_header_primitive): Remove prototype. + * src/list.c (recent_global_header): New static. + (list_archive): Always print volume labels. + (read_header_primitive): Remove. + (read_header): Change the signature (all callers updated) + Save the recent global header. + (volume_label_printed): New static. + (simple_print_header): New function (ex-print_header). + (print_header): Change the signature (all callers updated). + For POSIX formats, print first volume header (if set). + * src/xheader.c (xheader_write_global): Write the data + accumulated in xhdr->stk even if keyword_global_override_list + is empty. + (xheader_read): On unexpected EOF, report error instead of + coredumping. + (XHDR_PROTECTED, XHDR_GLOBAL): New defines. + (struct xhdr_tab): Remove `protected' with `flags'. All uses + updated. + (decg): If XHDR_GLOBAL bit is set, call the keyword's decode + method instead of adding it to `kwl'. + + * src/compare.c: Update calls to read_header. + * src/create.c: Likewise. + * src/delete.c: Likewise. + * src/update.c: Likewise. + * src/extract.c: Likewise. + (extract_volhdr): Do not print "Reading <label>" statement, + because + it is inconsistent: it is not printed if the volume begins with a + member continued from the previous volume. + + * tests/label01.at: New testcase. + * tests/label02.at: New testcase. + * tests/Makefile.am, tests/testsuite.at: Add new testcases. + +2010-01-22 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix prefix length calculation in ustar mode. + * src/create.c (split_long_name): Fix prefix length + calculation. + (write_ustar_long_name): Improve ustar mode compatibility + with the Sun version. + +2009-10-14 Sergey Poznyakoff <gray@gnu.org.ua> + + Rewrite update algorithm. + * src/common.h (namebuf_t): New typedef. + (namebuf_create, namebuf_free) + (namebuf_name): New prototypes. + (remname): New prototype. + * src/misc.c (struct namebuf): New structure. + (namebuf_create, namebuf_free) + (namebuf_name): New functions. + * src/create.c (dup_dir0): Remove is_avoided_name + checks. This is taken care of in update_archive. + * src/incremen.c (scan_directory): Use namebuf + to produce full file names. + * src/names.c (nametail): Remove extra level of + indirection. All uses updated. + (avoided_name_table, add_avoided_name) + (is_avoided_name): Remove. + * src/update.c (update_archive): Change algorithm. + Instead of adding unmodified files to the avoided_name + table, create namelist so that it contains only + modified files. + + * tests/Makefile.am: Add update01.at, update02.at + * tests/testsuite.at: Likewise. + * tests/update.at (AT_KEYWORDS): Add update00. + + Minor changes. + * src/tar.c (main): Ignore SIGPIPE. + * src/system.c (sys_child_open_for_compress) + (sys_child_open_for_uncompress): Reset SIGPIPE + in child to default. + * tests/remfiles01.at: Avoid race conditions. + * tests/remfiles02.at: Likewise. + + Bugfix. + * src/buffer.c (_open_archive): Call guess_seekable_archive + only if the call to open_compressed_archive succeeded. + +2009-10-10 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve previous changes. + * acinclude.m4: Fix typos. + * gnulib.modules: Add xvasprintf. + * src/common.h: Include xvasprintf.h. + * src/tar.c (options): Remove docstrings for --gzip, --bzip2, + --compress, --lzop, --lzma and --xz. + (tar_help_filter): Generate these using actual values of + *_PROGRAM constants. + (format_default_settings): Use xasprintf. + (parse_opt): Use *_PROGRAM defines instead of hardcoded + program names. + + Allow installers to specify alternative program names for + compression programs. + This adds --with-gzip, --with-bzip2 etc. switches to the + configure, so that + one can do, e.g. ./configure --with-bzip2=lbzip2 and have + lbzip2 executed + whenever user calls `tar --bzip2'. + + * acinclude.m4: New file. + * configure.ac: Add TAR_COMPR_PROGRAM invocations for + the supported compressors. + * src/buffer.c (magic): Use *_COMPRESSOR defines instead + of hardcoded program names. + * src/suffix.c (compression_suffixes): Likewise. + +2009-10-09 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fix. + * src/buffer.c (magic): Fix `xz' entry: add the name of the + program. + * src/suffix.c (compression_suffixes, nsuffixes): Mark as static. + +2009-10-07 Sergey Poznyakoff <gray@gnu.org.ua> + + Provide a way to explicitly set mtime for extended header + ustar blocks. + * src/tar.c (struct textual_date): ts is a copy of the structure, + not a pointer to it. Date is a copy as well, hence the `const' is + taken away. + (get_date_or_file): Return 0/1 depending on success/failure. + Copy timestamp to the `ts' member. Store a copy of the string + in `date'. + (report_textual_dates): Report only if verbose_option is set, + but always free the list. + (expand_pax_option): New function. + (parse_opt): Preprocess the argument to xheader_set_option with + expand_pax_option. + (decode_options): Call report_textual_dates unconditionally. + * src/xheader.c (exthdr_mtime_option, exthdr_mtime) + (globexthdr_mtime_option, globexthdr_mtime): New statics. + (xheader_set_keyword_equal): handle exthdr.mtime and + globexthdr.mtime. + (xheader_write): Override `t' argument if a corresponding + exthdr.mtime or globexthdr.mtime option is set. + * NEWS: Update + * doc/tar.texi: Document the changes. + + Use file's mtime as mtime for its extended header. + This makes two pax archives binary equivalent if they + have the same contents and care is taken to make extended + headers otherwise reproducible, e.g. by using: + + --pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0 + + Proposed by Michael D. Adams <mdmkolbe@gmail.com>. + + * src/common.h (start_private_header): Take time_t as 3rd param. + (xheader_write): Likewise. + * src/create.c (start_private_header): Take time_t as 3rd param. + All callers updated. + (write_extended): Use file's mtime as mtime for its extended + header, + Use current time stamp as mtime for global headers. + (xheader_write): Take time_t as 3rd param. + + Fix bugs in handling the --remove-files option. + Make sure the files are deleted only if they were succesfully + stored + to the archive. + + * src/exit.c: New file. + * src/unlink.c: New file. + * src/Makefile.am (tar_SOURCES): Add exit.c and unlink.c. + * src/common.h: Include progname.h + (program_name): Remove global. + (records_written): New extern. + (queue_deferred_unlink, finish_deferred_unlinks): New prototypes. + (fatal_exit_hook): New extern. + * src/create.c (create_archive): Call finish_deferred_unlinks. + (dump_hard_link, dump_file0): Don't actually unlink the file, + queue it to deferred_unlinks instead. + * src/delete.c (records_written): Remove extern: declared in + common.h. + * src/extract.c (extract_archive): Set fatal_exit_hook. + (fatal_exit, xalloc_die): Move to exit.c + * src/system.c (sys_wait_for_child): Exit immediately + if the child dies or exits with a non-zero status. + (sys_child_open_for_compress) + (sys_child_open_for_uncompress): Use set_program_name, + instead of setting program_name directly. + * src/tar.c (main): Use set_program_name, + instead of setting program_name directly. + + * tests/Makefile.am (TESTSUITE_AT): Add remfiles01.at + and remfiles02.at. + * tests/testsuite.at: Likewise. + * tests/gzip.at: Reflect the above changes. + +2009-10-04 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix bug in OLDGNU format creation. + See tests/append02.at for a detailed description + + * src/common.h (MODE_FROM_HEADER): Take additional argument. + (mode_from_header): Likewise. + * src/create.c (mode_to_chars): Store all mode bits if + using OLDGNU_FORMAT. This reverses f4e4adea80a. + * src/list.c (decode_header): Use header mode field + to discern between GNU and OLDGNU formats. + (mode_from_header): Store unrecognized mode bits (from 10th up) + in the location pointed to by the third parameter. + * tests/append02.at: Update documentation and references. + +2009-09-16 Sergey Poznyakoff <gray@gnu.org.ua> + + Restore extra help output. + * src/tar.c (tar_list_quoting_styles): Change first argument to + struct obstack. + (format_default_settings): New function. + (show_default_settings) + (show_default_settings_fs): Removed. + (tar_help): Removed. + (tar_help_filter): New function. + (argp): Set help_filter. + (parse_opt): Fix error message. + +2009-09-08 Sergey Poznyakoff <gray@gnu.org.ua> + + Improve command line option handling. + * gnulib.modules: Add argp-version-etc and progname, + use getopt-gnu instead of getopt. + * src/tar.c (HANG_OPTION, USAGE_OPTION) + (VERSION_OPTION): Remove. + (options): Remove corresponding options. Let argp + handle them. + (parse_opt): Likewise. + (_argp_hang): Removed. + (tar_authors): New variable. + (decode_options): Call argp_version_setup. + Do not use ARGP_NO_HELP flag in the call to argp_parse. + + Avoid overwriting exit_status with a value indicating less + important condition. + * src/tar.c (set_exit_status): New function. + * src/common.h (set_exit_status): New prototype. + * src/compare.c: Use set_exit_status instead of + exit_status assignments. + * src/create.c: Likewise. + * src/misc.c: Likewise. + + * src/system.c (wait_for_grandchild): Use auto variable + instead of the global exit_status. + * src/incremen.c (scan_directory): Use file_removed_diag + instead of stat_diag. + + Automatic detection of seekable archives. + * src/buffer.c (guess_seekable_archive): New function. + (_open_archive): Call guess_seekable_archive for archives + open for reading. + (new_volume): Likewise. + * src/common.h (seek_option): New global. + * src/tar.c (options): New option --no-seek. + (parse_opt): --seek and --no-seek set seek_option, + not seekable_archive. + (decode_options): Initialize seek_option to -1. + + * NEWS: Update. + * doc/tar.texi: Update. + +2009-08-27 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix testcases. + * tests/extrac08.at: Ensure a predictable umask value. + * tests/xform-h.at (xform): do not depend on file name + ordering. + +2009-08-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix interaction between --listed-incremental and -C + * src/incremen.c (read_directory_file): Execute eventual -C dir + after opening the snapshot file. + (collect_and_sort_names): Remove call to chdir_do + * tests/incr05.at, tests/incr06.at: Use relative file names for + snapshot files. + +2009-08-12 Sergey Poznyakoff <gray@gnu.org.ua> + + Update for new exclude module from gnulib. Add testcases by + Phil Proudman. + * src/names.c (is_pattern): Remove. + (regex_usage_warning): Use fnmatch_pattern_has_wildcards + instead of + is_pattern. + * src/tar.c: New option --exclude-backups. + (vcs_file_table, backup_file_table): New globals. + (add_exclude_array): New function. + * tests/exclude01.at, tests/exclude02.at, + tests/exclude03.at, tests/exclude04.at, + tests/exclude05.at: New testcases. Supplied by Phil Proudman. + * tests/Makefile.am (TESTSUITE_AT): Add new tests. + * tests/testsuite.at: Add new tests. + * THANKS: Update. + +2009-08-10 Sergey Poznyakoff <gray@gnu.org.ua> + + Remove src/version.c (reappeared after migration to Git) + +2009-08-09 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fixes. + * src/misc.c (file_removed_diag): Set exit code to + TAREXIT_DIFFERS. + +2009-08-08 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fixes + + Fix handling of files removed during incremental dumps. + Changes to src/create.c and src/incremen.c are partially + based on patch from Alexander Peslyak <solar at openwall.com>. + + The new testcases require paxutils commit f653a2b or later. + + * src/common.h (struct name): New member `cmdline'. + (dump_file): Change type of the 2nd argument to bool. + (file_removed_diag, dir_removed_diag): New prototypes. + (addname): New argument `cmdline'. + (name_from_list): Change return value. + * src/create.c (dump_dir0, dump_dir): top_level is bool. + (create_archive): Update calls to name_from_list. + Take advantage of the name->cmdline to set top_level argument + during incremental backups. + (dump_file0): top_level is bool. + Do not bail out if a no-top-level file disappears during + incremental + backup, use file_removed_diag instead. + (dump_filed): top_level is bool. + * src/incremen.c (update_parent_directory): Silently ignore + ENOENT. It should have already been reported elsewhere. + (scan_directory): Use dir_removed_diag to report missing + directories. + * src/misc.c (file_removed_diag, dir_removed_diag): New functions. + * src/names.c (name_gather): Set ->cmdname. + (addname): Likewise. All uses updated. + (name_from_list): Return struct name const *. All uses updated. + + * tests/filerem01.at: New testcase. + * tests/filerem02.at: New testcase. + * tests/Makefile.am, tests/testsuite.at: Add filerem01.at, + filerem02.at + * tests/grow.at, test/truncate.at: Use new syntax for genfile + --run. + + * NEWS: Update. + * doc/tar.texi: Minor fix. + + Optimize searches for directory structures by keeping a pointer + to struct directory in struct name. + * src/common.h (struct name): New member `directory' replaces + dir_contents. Rearrange members. + (rebase_directory): Change signature. + (scan_directory): Change signature. + (name_fill_directory) + (directory_contents, safe_directory_contents): New prototypes. + (append_incremental_renames): Change signature. + (replace_prefix): New proto. + * src/compare.c (diff_dumpdir): Use directory_contents + + scan_directory. + * src/create.c + * src/incremen.c (replace_prefix): Move to misc.c + (rebase_directory): Rewrite. + (scan_directory): Return pointer to struct directory. + (directory_contents, safe_directory_contents): New functions. + (get_directory_contents): Remove. + (name_fill_directory): New function. + (append_incremental_renames): Rewrite. This also fixes a memory + leak. + * src/names.c (name_gather, addname): Reflect changes in struct + name. + (add_hierarchy_to_namelist): Rewrite using name_fill_directory and + directory_contents. + (rebase_child_list): Update call to rebase_directory. + (collect_and_sort_names): Optimize + + * src/misc.c (replace_prefix): New function. + * src/names.c (add_hierarchy_to_namelist): Use new + get_directory_contents. + + * tests/incr05.at: New test case. + * tests/incr06.at: New test case. + * tests/Makefile.am, test/testsuite.at: Add incr05.at and + incr06.at. + + * doc/Makefile.am (check-options): Improve rule. + * doc/tar.texi, NEWS: Update. + +2009-08-07 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fixes. + * src/common.h (rebase_directory): New prototype. + * src/incremen.c (rebase_directory): Use replace_prefix. + * src/names.c (collect_and_sort_names): Abort if + hash_insert fails. + + Improve listed incremental dumps. + The modified algorithm tries to avoid dumping the same + directory twice and ensures the order of the directories + in the resulting archive is the same, whatever their order + on the command line. It also fixes the operation of + --listed-incremental -C. + + * gnulib.modules: Add canonicalize + * src/common.h (incremental_level): New global. + (check_exclusion_tags): first argument is const. + (get_directory_contents): Add third argument. + (zap_slashes, normalize_filename): New prototypes. + (chdir_count): New prototype. + (WARN_VERBOSE_WARNINGS): New define. + (WARN_ALL): Exclude WARN_VERBOSE_WARNINGS. + * src/compare.c (diff_dumpdir): Update the call to + get_directory_contents. + * src/create.c (check_exclusion_tags): First argument is const. + Use ISSLASH and DIRECTORY_SEPARATOR instead of referring to '/'. + + * src/incremen.c (struct directory): New member `caname'. + (hash_directory_name): Rename to + hash_directory_canonical_name. Operate + on the canonical name. + (compare_directory_names): Rename to + compare_directory_canonical_names. + Operate on the canonical name. + (make_directory): Take two arguments. + (free_directory): Free caname. + (attach_directory): Create caname. + (find_directory): Use caname for lookups. + (PD_VERBOSE): Remove. + (PD_FORCE_INIT): New define. + (procdir): First argument is const. + Reinitialize directory if PD_FORCE_INIT bit is set. + Do not use PD_VERBOSE or verbose_option for issuing warnings. + Rely on WARNOPT instead. + Always set *entry. + (scan_directory): Take three arguments. The third one is a boolean + which is true if the directory is explicitly mentioned on + the command + line. + (get_directory_contents): Remove. Use scan_directory instead. + All callers updated. + (read_directory_file): Truncate the file if --level=0 is given. + * src/misc.c: Include canonicalize.h + (zap_slashes, normalize_filename): New functions. + (chdir_count): New function. + * src/names.c (add_hierarchy_to_namelist): Take three arguments, + as + get_directory_contents and scan_directory. + (collect_and_sort_names): Allow at most one -C, before file name + arguments. + Read directory file after eventual changing to another directory. + Avoid adding the same directory under different pathnames to + the list. + * src/tar.c: New option --level. + + * tests/incr03.at, tests/incr04.at, tests/listed01.at, + tests/listed02.at, tests/rename01.at, tests/rename02.at, + tests/rename03.at: Update for new tar behavior. + * tests/multiv01.at: Do not use --listed-incremental. + +2009-08-05 Sergey Poznyakoff <gray@gnu.org.ua> + + Forgotten to push src/warning.c + + Implement the --warning option. + * src/warning.c: New file. + * src/Makefile.am: Add warning.c + * src/common.h: Provide definitions for warning classes. + (warning_option): New global. + (WARNOPT): New define. + (set_warning_option): New prototype. + * src/tar.c: New option `--warning'. + * src/compare.c: When applicable WARNOPT instead of WARN. + * src/create.c: Likewise. + * src/extract.c: Likewise. + * src/incremen.c: Likewise. + * src/list.c: Likewise. + + * NEWS, doc/tar.texi: Update. + +2009-08-05 Carl Worth <cworth@cworth.org> + + Fix descriptions of some options (tiny change) + +2009-08-05 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix backup handling and restoring file modes of existing + directories + * NEWS, THANKS: Update + * src/extract.c (extract_dir): reset status to 0 if the + directory already exists. + * src/misc.c (maybe_backup_file): Assign before_backup_name + and clear after_backup_name before checking if we really need + to backup the file. + * tests/backup01.at: New testcase. + * tests/extrac08.at: New testcase. + * tests/Makefile.am, tests/testsuite.at: Add extrac08.at and + backup01.at + +2009-07-30 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix hard links recognition with -c --remove-files + * src/create.c (dump_hard_link): Always look up in the link table + if remove_files_option is set. Patch suggested by Theodore Ts'o + <tytso@mit.edu>. + (check_links): Remove extra newline from the warning message. + * tests/link02.at, tests/link03.at: New testcases. + * tests/Makefile.am (TESTSUITE_AT): Add link02.at and link03.at + * tests/testsuite.at: Include link02.at and link03.at + + Fix handling of hard link targets by -c --transform + * src/create.c (file_count_links): Transform link target + before the look up. + * tests/xform-h.at: New test case. + * tests/Makefile.am (TESTSUITE_AT): Add xform-h.at. + * tests/testsuite.at: Add xform-h.at + +2009-06-23 Sergey Poznyakoff <gray@gnu.org.ua> + + Minor fix. + * src/extract.c (file_newer_p): Do not report error on ENOENT + +2009-06-19 Sergey Poznyakoff <gray@gnu.org.ua> + + Remove rebox.el (reappeared after migration to Git) + +2009-06-18 Sergey Poznyakoff <gray@gnu.org.ua> + + Remove files that were removed in CVS, but reappeared after + migration to Git + +2009-06-18 David Bartley <dtbartle@csclub.uwaterloo.ca> + + Fix Solaris bug where chmod fails if we don't have + PRIV_SYS_LINKDIR + * gnulib.modules: Add priv-set. + * src/extract.c (set_mode, extract_archive): Restore + PRIV_SYS_LINKDIR on chmod failure. + * src/tar.c (main): Drop PRIV_SYS_LINKDIR on startup. + +2009-06-18 Sergey Poznyakoff <gray@gnu.org.ua> + + Ensure default behavior for SIGPIPE + * src/tar.c (main): Install default handler for SIGPIPE. + Proposed by Bastian Blank. + +2009-06-18 Eric Blake <ebb9@byu.net> + + Follow autoconf recommendation for TESTSUITEFLAGS. + * tests/Makefile.am (check-local, installcheck-local): Honor + TESTSUITEFLAGS. + +2009-06-18 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix handling of sub-subprocess returns. + * src/system.c (wait_for_grandchild): New function. + (sys_child_open_for_compress) + (sys_child_open_for_uncompress): Use wait_for_grandchild + to manage grandchild return. + +2009-05-25 Sergey Poznyakoff <gray@gnu.org.ua> + + Report record size only if the archive refers to a device. + * Makefile.am (INCLUDES): Add ../lib, for rmt-command.h + * src/buffer.c (short_read): Report the actual record size + only if the archive descriptor refers to a device. + * tests/pipe.at, tests/shortrec.at, + tests/sparsemvp.at: Reflect the above change. + * NEWS, configure.ac: Version 1.22.90 + +2009-05-14 Sergey Poznyakoff <gray@gnu.org.ua> + + Do not issue errors on existing files when given the -k option + * Makefile.am (dist-hook): Fix rule. + * src/extract.c (maybe_recoverable): Return three-state value. + (extract_dir): Skip extraction if maybe_recoverable indicates so. + (extract_file): Likewise. + +2009-05-12 Eric Blake <ebb9@byu.net> + + Avoid undefined behavior + * src/xheader.c (xheader_set_keyword_equal): Pass correct type to + ctype macros. + * src/transform.c (run_case_conv): Likewise. + +2009-05-12 Sergey Poznyakoff <gray@gnu.org.ua> + + Remove src/Makefile.in + +2009-03-12 Sergey Poznyakoff <gray@gnu.org.ua> + + Bugfixes. + * bootstrap (symlink_to_dir): Fix symlink calculation. + * doc/tar.texi: Minor fixes by Victor Villa and Stepan Kasal. + +2009-03-07 Sergey Poznyakoff <gray@gnu.org.ua> + + Remove Makefile.in + + Migrate to Git + 2009-03-05 Sergey Poznyakoff <gray@gnu.org.ua> * src/incremen.c: --no-recursive works with --incremental. @@ -8830,4 +9600,5 @@ Local Variables: mode: change-log version-control: never +buffer-read-only: t End: diff --git a/INSTALL b/INSTALL index 411f3878045f899b94cde296e442d44160119432..81fd332cef8812df383d283d3f16cad10ff10f42 100644 --- a/INSTALL +++ b/INSTALL @@ -2,10 +2,12 @@ Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008 Free Software Foundation, Inc. +2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. Basic Installation ================== @@ -13,7 +15,11 @@ Basic Installation Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for -instructions specific to this package. +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -42,7 +48,7 @@ may remove or edit it. you want to change it or regenerate `configure' using a newer version of `autoconf'. -The simplest way to compile this package is: + The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. @@ -53,12 +59,22 @@ The simplest way to compile this package is: 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with - the package. + the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is @@ -67,8 +83,15 @@ The simplest way to compile this package is: all sorts of other programs in order to regenerate files that came with the distribution. - 6. Often, you can also type `make uninstall' to remove the installed - files again. + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. Compilers and Options ===================== @@ -93,7 +116,8 @@ same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have @@ -120,7 +144,8 @@ Installation Names By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you @@ -131,15 +156,46 @@ Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. -Optional Features -================= - Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE @@ -152,6 +208,13 @@ find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + Particular systems ================== @@ -199,7 +262,8 @@ type, such as `sun4', or a canonical name which has the form: where SYSTEM can have one of these forms: - OS KERNEL-OS + OS + KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't diff --git a/Make.rules b/Make.rules new file mode 100644 index 0000000000000000000000000000000000000000..a1de301a38f3ae95d3bdaff404b944634220450c --- /dev/null +++ b/Make.rules @@ -0,0 +1,69 @@ +# This file is part of GNU paxutils +# +# Copyright (c) 2009 Free Software Foundation, Inc. +# +# Written by Sergey Poznyakoff +# +# GNU Paxutils 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, or (at your option) any later +# version. +# +# GNU Paxutils 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 GNU Paxutils; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# This file is part of GNU paxutils +# +# Copyright (c) 2009 Free Software Foundation, Inc. +# +# Written by Sergey Poznyakoff +# +# GNU Paxutils 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, or (at your option) any later +# version. +# +# GNU Paxutils 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 GNU Paxutils; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Define the following variables in order to use the ChangeLog rule below: +# prev_change_log [optional] Name of the previous ChangeLog file. +# gen_start_date [optional] Start ChangeLog from this date. +# changelog_dir [mandatory] Directory where to create ChangeLog + +.PHONY: ChangeLog +ChangeLog: + if test -d .git; then \ + cmd=$(top_srcdir)/build-aux/gitlog-to-changelog; \ + if test -n "$(gen_start_date)"; then \ + cmd="$$cmd --since=\"$(gen_start_date)\""; \ + fi; \ + $$cmd | \ + sed '/<unknown>$$/d' | fmt -s > $(changelog_dir)/cl-t; \ + if test -n "$(prev_change_log)" && test -f "$(prev_change_log)"; \ + then \ + echo "" >> $(changelog_dir)/cl-t; \ + cat "$(prev_change_log)" | \ + sed '/^Local Variables:/,/^End:/d' >> $(changelog_dir)/cl-t; \ + fi; \ + echo "Local Variables:" >> $(changelog_dir)/cl-t; \ + echo "mode: change-log" >> $(changelog_dir)/cl-t; \ + echo "version-control: never" >> $(changelog_dir)/cl-t; \ + echo "buffer-read-only: t" >> $(changelog_dir)/cl-t; \ + echo "End:" >> $(changelog_dir)/cl-t; \ + rm -f $(changelog_dir)/ChangeLog; \ + mv $(changelog_dir)/cl-t $(changelog_dir)/ChangeLog; \ + fi + diff --git a/Makefile.am b/Makefile.am index 61528cabf38350502bf5cc07180cdd5eda56bb52..df8ea4c767647feffe922d764108869e19f423f7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # Main Makefile for GNU tar. -# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007 Free -# Software Foundation, Inc. +# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007, +# 2009 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 @@ -19,13 +19,22 @@ ## 02110-1301, USA. ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = ChangeLog.1 PORTS -SUBDIRS = doc lib rmt src scripts po tests +EXTRA_DIST = ChangeLog.1 Make.rules +SUBDIRS = doc gnu lib rmt src scripts po tests dist-hook: + $(MAKE) changelog_dir=$(distdir) ChangeLog -rm -f $(distdir).cpio find $(distdir) | cpio -Hcrc -o | \ GZIP=$(GZIP_ENV) gzip -c > $(distdir).cpio.gz distclean-local: -rm -f $(distdir).cpio.gz + +include Make.rules + +gen_start_date = 2009-03-06 +prev_change_log = ChangeLog.CVS +changelog_dir = . + + diff --git a/Makefile.in b/Makefile.in index 3404b1a96a79f15d282d0c93314f4525bd090357..17bd117846fd2b4050915a3cafab33d8d5d57b09 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,12 +17,58 @@ # Main Makefile for GNU tar. -# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007 Free -# Software Foundation, Inc. +# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2007, +# 2009 Free Software Foundation, Inc. + +# This file is part of GNU paxutils +# +# Copyright (c) 2009 Free Software Foundation, Inc. +# +# Written by Sergey Poznyakoff +# +# GNU Paxutils 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, or (at your option) any later +# version. +# +# GNU Paxutils 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 GNU Paxutils; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# This file is part of GNU paxutils +# +# Copyright (c) 2009 Free Software Foundation, Inc. +# +# Written by Sergey Poznyakoff +# +# GNU Paxutils 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, or (at your option) any later +# version. +# +# GNU Paxutils 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 GNU Paxutils; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Define the following variables in order to use the ChangeLog rule below: +# prev_change_log [optional] Name of the previous ChangeLog file. +# gen_start_date [optional] Start ChangeLog from this date. +# changelog_dir [mandatory] Directory where to create ChangeLog VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -36,77 +83,85 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.hin \ - $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \ - INSTALL NEWS THANKS TODO build-aux/compile \ - build-aux/config.guess build-aux/config.rpath \ - build-aux/config.sub build-aux/depcomp build-aux/install-sh \ - build-aux/mdate-sh build-aux/missing build-aux/mkinstalldirs \ +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Make.rules \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/config.h.in $(top_srcdir)/configure ABOUT-NLS \ + AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO \ + build-aux/compile build-aux/config.guess \ + build-aux/config.rpath build-aux/config.sub build-aux/depcomp \ + build-aux/install-sh build-aux/mdate-sh build-aux/missing \ build-aux/texinfo.tex build-aux/ylwrap +subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/canonicalize-lgpl.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ - $(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \ - $(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \ - $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \ - $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \ - $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ - $(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ - $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ - $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ - $(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \ - $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \ - $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \ - $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \ - $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ @@ -122,24 +177,33 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \ - $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \ - $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ - $(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ - $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -151,6 +215,9 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -158,9 +225,34 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 \ $(distdir).shar.gz GZIP_ENV = --best @@ -170,6 +262,7 @@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -198,7 +291,6 @@ DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRENT_H = @DIRENT_H@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -211,7 +303,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ -FCNTL_H = @FCNTL_H@ FLOAT_H = @FLOAT_H@ FNMATCH_H = @FNMATCH_H@ GETOPT_H = @GETOPT_H@ @@ -223,45 +314,59 @@ GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ @@ -284,15 +389,31 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PUTC = @GNULIB_PUTC@ @@ -302,13 +423,20 @@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ @@ -319,6 +447,7 @@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ @@ -329,8 +458,16 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ @@ -350,8 +487,11 @@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ @@ -376,37 +516,68 @@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ -HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ @@ -420,7 +591,6 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRNDUP = @HAVE_STRNDUP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ @@ -429,6 +599,8 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ @@ -437,11 +609,15 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -459,16 +635,14 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -INTTYPES_H = @INTTYPES_H@ LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTAR_LIBDEPS = @LIBTAR_LIBDEPS@ -LIBTAR_LTLIBDEPS = @LIBTAR_LTLIBDEPS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LIB_CLOSE = @LIB_CLOSE@ LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ @@ -483,12 +657,36 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ @@ -517,25 +715,40 @@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PU_RMT_PROG = @PU_RMT_PROG@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ @@ -545,26 +758,53 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRPTIME = @REPLACE_STRPTIME@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -572,6 +812,7 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ @@ -582,22 +823,20 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYSEXITS_H = @SYSEXITS_H@ -SYS_STAT_H = @SYS_STAT_H@ -SYS_TIME_H = @SYS_TIME_H@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -VOID_UNSETENV = @VOID_UNSETENV@ -WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ -WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -655,30 +894,34 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = ChangeLog.1 PORTS -SUBDIRS = doc lib rmt src scripts po tests +EXTRA_DIST = ChangeLog.1 Make.rules +SUBDIRS = doc gnu lib rmt src scripts po tests +gen_start_date = 2009-03-06 +prev_change_log = ChangeLog.CVS +changelog_dir = . all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Make.rules $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \ - cd $(srcdir) && $(AUTOMAKE) --gnits \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnits'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnits \ && exit 0; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -694,9 +937,10 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) + $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ @@ -704,11 +948,11 @@ config.h: stamp-h1 $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi -stamp-h1: $(srcdir)/config.hin $(top_builddir)/config.status +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.hin: $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ @@ -722,7 +966,7 @@ distclean-hdr: # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -739,7 +983,7 @@ $(RECURSIVE_TARGETS): else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ @@ -747,7 +991,7 @@ $(RECURSIVE_TARGETS): fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -773,16 +1017,16 @@ $(RECURSIVE_CLEAN_TARGETS): else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -790,14 +1034,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \ +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ @@ -809,38 +1053,43 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ - list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(TAGS_FILES)'; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \ +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ - list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(TAGS_FILES)'; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -853,7 +1102,7 @@ distdir: $(DISTFILES) exit 1;; \ esac $(am__remove_distdir) - test -d $(distdir) || mkdir $(distdir) + test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -869,29 +1118,44 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ + am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ @@ -899,11 +1163,13 @@ distdir: $(DISTFILES) $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) + || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) @@ -915,6 +1181,10 @@ dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) @@ -939,15 +1209,17 @@ dist dist-all: distdir distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ - unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac @@ -955,9 +1227,11 @@ distcheck: dist mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ @@ -979,13 +1253,15 @@ distcheck: dist && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @cd $(distuninstallcheck_dir) \ + @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ @@ -1027,6 +1303,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -1047,6 +1324,8 @@ dvi-am: html: html-recursive +html-am: + info: info-recursive info-am: @@ -1055,18 +1334,28 @@ install-data-am: install-dvi: install-dvi-recursive +install-dvi-am: + install-exec-am: install-html: install-html-recursive +install-html-am: + install-info: install-info-recursive +install-info-am: + install-man: install-pdf: install-pdf-recursive +install-pdf-am: + install-ps: install-ps-recursive +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -1089,33 +1378,59 @@ ps-am: uninstall-am: -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ + ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ - dist-hook dist-lzma dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-generic distclean-hdr distclean-local \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am + dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-hdr \ + distclean-local distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am dist-hook: + $(MAKE) changelog_dir=$(distdir) ChangeLog -rm -f $(distdir).cpio find $(distdir) | cpio -Hcrc -o | \ GZIP=$(GZIP_ENV) gzip -c > $(distdir).cpio.gz distclean-local: -rm -f $(distdir).cpio.gz + +.PHONY: ChangeLog +ChangeLog: + if test -d .git; then \ + cmd=$(top_srcdir)/build-aux/gitlog-to-changelog; \ + if test -n "$(gen_start_date)"; then \ + cmd="$$cmd --since=\"$(gen_start_date)\""; \ + fi; \ + $$cmd | \ + sed '/<unknown>$$/d' | fmt -s > $(changelog_dir)/cl-t; \ + if test -n "$(prev_change_log)" && test -f "$(prev_change_log)"; \ + then \ + echo "" >> $(changelog_dir)/cl-t; \ + cat "$(prev_change_log)" | \ + sed '/^Local Variables:/,/^End:/d' >> $(changelog_dir)/cl-t; \ + fi; \ + echo "Local Variables:" >> $(changelog_dir)/cl-t; \ + echo "mode: change-log" >> $(changelog_dir)/cl-t; \ + echo "version-control: never" >> $(changelog_dir)/cl-t; \ + echo "buffer-read-only: t" >> $(changelog_dir)/cl-t; \ + echo "End:" >> $(changelog_dir)/cl-t; \ + rm -f $(changelog_dir)/ChangeLog; \ + mv $(changelog_dir)/cl-t $(changelog_dir)/ChangeLog; \ + fi + # 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. .NOEXPORT: diff --git a/NEWS b/NEWS index 2a6fee24c4fd7142c4c380fd19b9691cf96e2a9d..32542665ad6084012021af7cd198d6a12598dfb4 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,114 @@ -GNU tar NEWS - User visible changes. 2009-03-05 +GNU tar NEWS - User visible changes. 2010-03-10 Please send GNU tar bug reports to <bug-tar@gnu.org> + +version 1.23 - Sergey Poznyakoff, 2010-03-10 + +* Record size autodetection + +When listing or extracting archives, the actual record size is +reported only if the archive is read from a device (as opposed +to regular files and pipes). + +* Seekable archives + +When a read-only operation (e.g. --list or --extract) is requested +on a regular file, tar attemtps to speed up accesses by using lseek. + +* New command line option `--warning' + +The `--warning' command line option allows to suppress or enable +particular warning messages during `tar' run. It takes a single +argument (a `keyword'), identifying the class of warning messages +to affect. If the argument is prefixed with `no-', such warning +messages are suppressed. For example, + + tar --warning=no-alone-zero-block -x -f archive + +suppresses the output of `A lone zero block' diagnostics, which is +normally issued if `archive' ends with a single block of zeros. + +See Tar Manual, section 3.9 "Controlling Warning Messages", for a +detailed discussion. + +* New command line option `--level' + +The `--level=N' option sets the incremental dump level N. It +is valid when used in conjunction with the -c and --listed-incremental +options. So far the only meaningful value for N is 0. The +`--level=0' option forces creating the level 0 dump, by truncating +the snapshot file if it exists. + +* Files removed during incremental dumps + +If a file or directory is removed while incremental dump is +in progress, tar exact actions depend on whether this file +was explicitly listed in the command line, or was found +during file system scan. + +If the file was explicitly listed in the command line, tar +issues error message and exits with the code 2, meaning +fatal error. + +Otherwise, if the file was found during the file system scan, +tar issues a warning, saying "File removed before we read it", +and sets exit code to 1, which means "some files differ". +If the --warning=no-file-removed option is given, no warning +is issued and exit code remains 0. + +* Modification times of PAX extended headers. + +Modification times in ustar header blocks of extended headers +are set to mtimes of the corresponding archive members. This +can be overridden by the + + --pax-opion='exthdr.mtime=STRING' + +command line option. The STRING is either number of seconds since +the Epoch or a `Time reference' (see below). + +Modification times in ustar header blocks of global extended +headers are set to the time when tar was invoked. + +This can be overridden by the + + --pax-opion='globexthdr.mtime=STRING' + +command line option. The STRING is either number of seconds since +the Epoch or a `Time reference' (see below). + +* Time references in --pax-option argument. + +Any value from the --pax-option argument that is enclosed in a pair +of curly braces represents a time reference. The string between the +braces is understood either as a textual time representation, as described in +chapter 7, "Date input formats", of the Tar manual, or as a name of +an existing file, starting with `/' or `.'. In the latter +case, it is replaced with the modification time of that file. + +* Environment of --to-command script. + +The environment passed to the --to-command script is extended with +the following variables: + + TAR_VERSION GNU tar version number + TAR_ARCHIVE The name of the archive + TAR_VOLUME Ordinal number of the volume + TAR_FORMAT Format of the archive + TAR_BLOCKING_FACTOR Current blocking factor + +* Bugfixes +** Fix handling of hard link targets by -c --transform. +** Fix hard links recognition with -c --remove-files. +** Fix restoring files from backup (debian bug #508199). +** Correctly restore modes and permissions on existing directories. +** The --remove-files option removes files only if they were +succesfully stored in the archive. +** Fix storing and listing of the volume labels in POSIX format. +** Improve algorithm for splitting long file names (ustar +format). +** Fix possible memory overflow in the rmt client code (CVE-2010-0624). + version 1.22 - Sergey Poznyakoff, 2009-03-05 @@ -1091,7 +1199,7 @@ Versions 1.07 back to 1.00 by Jay Fenlason. Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, -2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/PORTS b/PORTS deleted file mode 100644 index d3d5ddf9b82f5696550c4dd89b7b8d46c5e87989..0000000000000000000000000000000000000000 --- a/PORTS +++ /dev/null @@ -1,173 +0,0 @@ -Ports of GNU tar and other tars -See the end of file for copying conditions. - -* Introduction - - Most entries in this file are out of date, unfortunately. Such - entries are marked with an `X'. Run grep '^\*\*[^X]' PORTS to - extract valid entries. - - Please write bug-tar@gnu.org if you are aware of various ports of GNU tar - to non-GNU and non-Unix systems not listed here, or for corrections. - Please provide the goal system, a complete and stable URL, the maintainer - name and address, the tar version used as a base, and your comments. - -* GNU/Linux and Unix - -** Star is a tape archiver similar to tar. - <http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/star.html> - -* Amiga - -**X ftp://ftp.wustl.edu/systems/amiga/aminet/util/arc/GNUtar-1.11.8.lha - maintained by Enrico Forestieri <enrico@com.unipr.it> - Based on tar 1.11.8. - -**X ftp://ftp.ninemoons.com/pub/ade/current/amiga-bin/tar-1.11.8-bin.lha - maintained by the ADE group <fnf@fishpond.ninemoons.com> - Based on tar 1.11.8, needs ixemul.library. - -**X ftp://ftp.wustl.edu/systems/amiga/aminet/util/arc/gnutar.lha - maintained by <mscheler@wuarchive.wustl.edu> - -* DEC alpha (NT) - -**X ftp://ftp.cdrom.com/.20/windows/archiver/tar.zip - maintained by Drew Bliss & Geoff Voelker - -* DEC VAX (VMS) - -**X http://www.lp.se/free/vmstar/ - maintained by Richard Levitte <levitte@lp.se> - This is not GNU tar, but a separate implementation. - -** maintained by William Bader <william@nscs.fast.net> - For V4.7. Based on an old PDtar. Requires compatible shared libraries - to run V5 or V6 executables. - -* IBM/PC (DV/X) - -**X ftp://qdeck.com/ (?) - maintained by David Ronis <ronis@gibbs.chem.mcgill.ca> - For Desqview/X. Everything works besides compression. Copy of hacked - sources available, some of DV/X's programmer's library also needed. - -* IBM/PC (MSDOS) - -**X http://www.simtel.net/simtel.net/ - http://www.leo.org/pub/comp/platforms/pc/gnuish (Germany) - ftp://ftp.simtel.net/simtelnet/gnu - ftp://ftp.leo.org/pub/comp/platforms/pc/gnuish - maintained by Darrel Hankerson <hankedr@mail.auburn.edu> - You get many GNU tools, not only `tar'. The GNUish project is described - in `gnuish_t.htm'. - -** The DJGPP development tools also include some `tar' utilities. - -**X ftp://ftp.mcs.com/mcsnet.users/les/dos-gnutar/ - maintained by Leslie Mikesell <les@mcs.net> - Based on tar 1.11.2. Support for SCSI (via ASPI) and network (rsh over - packet driver). No support for win95 long file names. - -**X ftp://ftp.wu-wien.ac.at/pub/src/PCmisc/aspi-tar/* - maintained by Christoph Splittgerber <chris@orion.sdata.de> - Based on tar 1.10. Support for SCSI (via ASPI). - -**X ftp://wuarchive (?) - Several DOS version based on PDtar. John Gilmore <gnu@toad.com> says - he has copies of several vintages saved. - -**X ftp://ftp.cdrom.com/.14/languages/ada/toolkit/msdos/gtar/gtar.exe - ftp://ftp.cdrom.com/.14/languages/ada/toolkit/msdos/gtar/gtar.taz - ftp://ftp.cdrom.com/.14/languages/ada/toolkit/msdos/gtar/gtar.zip - -**X ftp://ftp.cdrom.com/.4/os2/archiver/tar.zip - Based on PDtar. - -**X ftp://ftp.cdrom.com/.20/windows/archiver/tar.zip - maintained by Drew Bliss & Geoff Voelker - GNU tar for NT (intel and Alpha platforms). - -** ftp://garbo.uwasa.fi/pc/unix/untgz095.zip - maintained by Tillmann Steinbrecher <tst@darmstadt.netsurf.de> - The `untgz' program is a fast .tar or .tar.gz (.tgz) extractor. - -**X http://people.darmstadt.netsurf.de/tst/tar.htm - maintained by Tillmann Steinbrecher <tst@darmstadt.netsurf.de> - This is not a `tar' port, but an index of them. - -* IBM/PC (OS/2) - -**X http://www.leo.org/pub/comp/os/os2/leo/gnu/archiver/gtar254.zip - http://www.leo.org/pub/comp/os/os2/leo/gnu/archiver/gtak254.zip - maintained by Andreas Kaiser <Andreas.Kaiser@stuttgart.netsurf.de> - Version 2.54. Based on tar 1.10. The second archive contains SCSI - drivers (DAT streamers notably) and rmt-type programs. - -* IBM/PC (Win32: Windows 95, NT 3.5 or NT 4.0) - -**X ftp://ftp.cygnus.com:~ftp/pub/sac/win32/usersrc/* - maintained by Cygnus - GNU-Win32 B17.1 distribution. Download all files, `cat' them together, - and `untar' the result. You get many GNU tools, not only `tar'. - Based on tar 1.11.2. - -**X ftp://ftp.cdrom.com/.20/windows/archiver/tar.zip - maintained by Drew Bliss & Geoff Voelker - GNU tar for NT (intel and Alpha platforms). - -** ftp://garbo.uwasa.fi/pc/unix/untgz095.zip - maintained by Tillmann Steinbrecher <tst@darmstadt.netsurf.de> - The `untgz' program is a fast .tar or .tar.gz (.tgz) extractor. - -* IBM/PC (Windows 3.1) - -**X ftp://ftp.mcs.com/mcsnet.users/les/win-gnutar/ - maintained by Leslie Mikesell <les@mcs.net> - Support for network (rsh over winsock). No support for win95 long - file names. - -**X ftp://ftp.gamesdomain.ru/.1/os/windows/programr/tar.zip - Based on GNU tar 1.11.2. - -* Macintosh - -** Paulo Abreu (paulotex at yahoo dot com) did a - limited port of GNU tar to Darwin, with support for resource forks - and finder info, but this no longer seems to be available. - -** There is a tar in Stuffit Expander which is available many places and - comes with MacOS. It creates some spurious files but works on average. - -** There is an excellent GNU tar bundled in Tenon MachTen, but it does not - seem to be available separately. - - -* Copyright notice - - Copyright (C) 1999, 2001, 2003, 2004, 2007 Free Software Foundation, Inc. - - This file is part of GNU tar. - - GNU tar 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, or (at your option) - any later version. - - GNU tar 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 GNU tar; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - - -Local Variables: -mode: outline -paragraph-separate: "[ ]*$" -version-control: never -End: - diff --git a/THANKS b/THANKS index dbb64d25f64f9cadcf372bb292915693979c897f..525981ce43f4233e0b8727fbebd91303aea56471 100644 --- a/THANKS +++ b/THANKS @@ -70,6 +70,7 @@ Burkhard Plache plache@krusty.optimax.ns.ca Calvin Cliff cliff@trifid.astro.ucla.edu Cameron Elliott cam@mvbms.mvbms.com Carl Streeter streeter@cae.wisc.edu +Carl Worth cworth@cworth.org Carsten Heyl heyl@nads.de Catrin Urbanneck cur@gppc.de Cesar Romani romani@ifm.uni-hamburg.de @@ -132,6 +133,7 @@ David Steiner dsteiner@ispa.uni-osnabrueck.de David Taylor taylor@think.com Dean Gaudet dgaudet@watdragon.uwaterloo.ca Demizu Noritoshi nori-d@is.aist-nara.ac.jp +Denis Excoffier denis.excoffier@airbus.com Denis Fortin fortin@acm.org Dennis Pixton dennis@math.binghamton.edu Dick Streefland dicks@tasking.nl @@ -367,6 +369,7 @@ Olaf Schlueter olaf@toppoint.de Olaf Wucknitz owucknitz@hs.uni-hamburg.de Oliver Trepte oliver@fysik4.kth.se Olivier Roussel roussel@lifl.fr +Ondřej Vašík ovasik@redhat.com Oswald P. Backus IV backus@lks.csi.com Pascal Meheut pascal@cnam.cnam.fr Patrick Fulconis fulco@sig.uvsq.fr @@ -388,6 +391,7 @@ Peter Fox fox@gec-mi-at.co.uk Peter Kutschera peter@zditr1.arcs.ac.at Peter Seebach seebs@taniemarie.solon.com Phil Hands phil@hands.com +Phil Proudman phil@proudman51.freeserve.co.uk Philippe Defert defert@cern.ch Piercarlo Grandi piercarl@sabi.demon.co.uk Pierce Cantrell cantrell@ee.tamu.edu diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000000000000000000000000000000000000..10a27e5b97071cddbb103384675a74db2f785d25 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,26 @@ +dnl Special Autoconf macros for GNU Tar -*- autoconf -*- +dnl Copyright (C) 2009 Free Software Foundation, Inc. +dnl +dnl GNU tar is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 3, or (at your option) +dnl any later version. +dnl +dnl GNU tar is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License along +dnl with GNU tar. If not, see <http://www.gnu.org/licenses/>. + +AC_DEFUN([TAR_COMPR_PROGRAM],[ + m4_pushdef([tar_compr_define],translit($1,[a-z+-],[A-ZX_])[_PROGRAM]) + m4_pushdef([tar_compr_var],[tar_cv_compressor_]translit($1,[+-],[x_])) + AC_ARG_WITH($1, + AC_HELP_STRING([--with-]$1[=PROG], + [use PROG as ]$1[ compressor program]), + [tar_compr_var=${withval}], + [tar_compr_var=m4_if($2,,$1,$2)]) + AC_DEFINE_UNQUOTED(tar_compr_define, "$tar_compr_var", + [Define to the program name of ]$1[ compressor program])]) diff --git a/aclocal.m4 b/aclocal.m4 index 94ffea23be487fd324d41f3e92f1a533883ae107..27de1723f321ed9f84679a39fac2b6b0deae517a 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,38 +13,13 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(AC_AUTOCONF_VERSION, [2.61],, -[m4_warning([this file was generated for autoconf 2.61. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, +[m4_warning([this file was generated for autoconf 2.63. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# isc-posix.m4 serial 2 (gettext-0.11.2) -dnl Copyright (C) 1995-2002 Free Software 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. - -# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. - -# This test replaces the one in autoconf. -# Currently this macro should have the same name as the autoconf macro -# because gettext's gettext.m4 (distributed in the automake package) -# still uses it. Otherwise, the use in gettext.m4 makes autoheader -# give these diagnostics: -# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX -# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX - -undefine([AC_ISC_POSIX]) - -AC_DEFUN([AC_ISC_POSIX], - [ - dnl This test replaces the obsolescent AC_ISC_POSIX kludge. - AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) - ] -) - -# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -56,10 +31,10 @@ AC_DEFUN([AC_ISC_POSIX], # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.10' +[am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.10.1], [], +m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -73,12 +48,12 @@ m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.10.1])dnl +[AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- @@ -135,14 +110,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 8 +# serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- @@ -155,6 +130,7 @@ AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' @@ -168,14 +144,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 9 +# serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -232,6 +208,16 @@ AC_CACHE_CHECK([dependency style of $depcc], if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and @@ -249,7 +235,17 @@ AC_CACHE_CHECK([dependency style of $depcc], done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested @@ -259,19 +255,23 @@ AC_CACHE_CHECK([dependency style of $depcc], break fi ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; none) break ;; esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message @@ -328,57 +328,68 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 3 +#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done done -done +} ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -398,13 +409,13 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008 Free Software Foundation, Inc. +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 13 +# serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. @@ -421,7 +432,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.60])dnl +[AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -472,8 +483,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. @@ -481,24 +492,37 @@ AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header @@ -521,7 +545,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -532,7 +556,14 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. @@ -558,13 +589,13 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 +# serial 4 # AM_MAKE_INCLUDE() # ----------------- @@ -573,7 +604,7 @@ AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: - @echo done + @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. @@ -583,24 +614,24 @@ am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) @@ -608,14 +639,14 @@ AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) -# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 +# serial 6 # AM_PROG_CC_C_O # -------------- @@ -627,8 +658,9 @@ AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC -ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` -if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then +am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. @@ -644,14 +676,14 @@ m4_define([AC_PROG_CC], # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 +# serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ @@ -668,7 +700,14 @@ AC_SUBST($1)]) AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " @@ -706,13 +745,13 @@ esac # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 +# serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -729,7 +768,7 @@ AC_DEFUN([_AM_SET_OPTION], # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- @@ -756,14 +795,14 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 # AM_SANITY_CHECK # --------------- @@ -772,16 +811,29 @@ AC_DEFUN([AM_SANITY_CHECK], # Just in case sleep 1 echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` + set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ @@ -806,6 +858,33 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# (`yes' being less verbose, `no' or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation @@ -834,18 +913,25 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# serial 2 + # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. @@ -949,7 +1035,7 @@ m4_include([m4/argp.m4]) m4_include([m4/backupfile.m4]) m4_include([m4/bison.m4]) m4_include([m4/btowc.m4]) -m4_include([m4/canonicalize-lgpl.m4]) +m4_include([m4/canonicalize.m4]) m4_include([m4/chdir-long.m4]) m4_include([m4/chown.m4]) m4_include([m4/clock_time.m4]) @@ -958,6 +1044,7 @@ m4_include([m4/close.m4]) m4_include([m4/closeout.m4]) m4_include([m4/codeset.m4]) m4_include([m4/d-ino.m4]) +m4_include([m4/dirent-safer.m4]) m4_include([m4/dirent_h.m4]) m4_include([m4/dirfd.m4]) m4_include([m4/dirname.m4]) @@ -969,12 +1056,13 @@ m4_include([m4/environ.m4]) m4_include([m4/errno_h.m4]) m4_include([m4/error.m4]) m4_include([m4/exclude.m4]) -m4_include([m4/exitfail.m4]) m4_include([m4/extensions.m4]) m4_include([m4/fchdir.m4]) m4_include([m4/fclose.m4]) -m4_include([m4/fcntl-safer.m4]) +m4_include([m4/fcntl-o.m4]) +m4_include([m4/fcntl.m4]) m4_include([m4/fcntl_h.m4]) +m4_include([m4/fdopendir.m4]) m4_include([m4/fileblocks.m4]) m4_include([m4/float_h.m4]) m4_include([m4/fnmatch.m4]) @@ -986,6 +1074,7 @@ m4_include([m4/getcwd-path-max.m4]) m4_include([m4/getcwd.m4]) m4_include([m4/getdate.m4]) m4_include([m4/getdelim.m4]) +m4_include([m4/getdtablesize.m4]) m4_include([m4/getline.m4]) m4_include([m4/getopt.m4]) m4_include([m4/getpagesize.m4]) @@ -1006,6 +1095,7 @@ m4_include([m4/inttostr.m4]) m4_include([m4/inttypes-pri.m4]) m4_include([m4/inttypes.m4]) m4_include([m4/inttypes_h.m4]) +m4_include([m4/langinfo_h.m4]) m4_include([m4/lchown.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) @@ -1022,15 +1112,20 @@ m4_include([m4/malloca.m4]) m4_include([m4/mbchar.m4]) m4_include([m4/mbiter.m4]) m4_include([m4/mbrtowc.m4]) -m4_include([m4/mbscasecmp.m4]) m4_include([m4/mbsinit.m4]) +m4_include([m4/mbsrtowcs.m4]) m4_include([m4/mbstate_t.m4]) +m4_include([m4/memchr.m4]) m4_include([m4/mempcpy.m4]) m4_include([m4/memrchr.m4]) +m4_include([m4/mkdir.m4]) m4_include([m4/mkdtemp.m4]) m4_include([m4/mktime.m4]) +m4_include([m4/mmap-anon.m4]) +m4_include([m4/mode_t.m4]) m4_include([m4/modechange.m4]) m4_include([m4/multiarch.m4]) +m4_include([m4/nl_langinfo.m4]) m4_include([m4/nls.m4]) m4_include([m4/open.m4]) m4_include([m4/openat.m4]) @@ -1038,6 +1133,7 @@ m4_include([m4/pathmax.m4]) m4_include([m4/paxutils.m4]) m4_include([m4/po.m4]) m4_include([m4/printf.m4]) +m4_include([m4/priv-set.m4]) m4_include([m4/progtest.m4]) m4_include([m4/quote.m4]) m4_include([m4/quotearg.m4]) @@ -1045,11 +1141,13 @@ m4_include([m4/rawmemchr.m4]) m4_include([m4/readlink.m4]) m4_include([m4/realloc.m4]) m4_include([m4/regex.m4]) +m4_include([m4/rmdir.m4]) m4_include([m4/rmt.m4]) m4_include([m4/rpmatch.m4]) m4_include([m4/rtapelib.m4]) m4_include([m4/safe-read.m4]) m4_include([m4/safe-write.m4]) +m4_include([m4/same.m4]) m4_include([m4/save-cwd.m4]) m4_include([m4/savedir.m4]) m4_include([m4/setenv.m4]) @@ -1058,8 +1156,10 @@ m4_include([m4/sleep.m4]) m4_include([m4/snprintf.m4]) m4_include([m4/ssize_t.m4]) m4_include([m4/stat-time.m4]) +m4_include([m4/stat.m4]) m4_include([m4/stdarg.m4]) m4_include([m4/stdbool.m4]) +m4_include([m4/stddef_h.m4]) m4_include([m4/stdint.m4]) m4_include([m4/stdint_h.m4]) m4_include([m4/stdio_h.m4]) @@ -1090,19 +1190,21 @@ m4_include([m4/timespec.m4]) m4_include([m4/tm_gmtoff.m4]) m4_include([m4/unistd-safer.m4]) m4_include([m4/unistd_h.m4]) +m4_include([m4/unlink.m4]) m4_include([m4/unlinkdir.m4]) m4_include([m4/unlocked-io.m4]) m4_include([m4/utimbuf.m4]) -m4_include([m4/utime.m4]) m4_include([m4/utimens.m4]) -m4_include([m4/utimes-null.m4]) m4_include([m4/utimes.m4]) m4_include([m4/vasnprintf.m4]) +m4_include([m4/vasprintf.m4]) +m4_include([m4/version-etc.m4]) m4_include([m4/vsnprintf.m4]) -m4_include([m4/wchar.m4]) +m4_include([m4/warn-on-use.m4]) +m4_include([m4/wchar_h.m4]) m4_include([m4/wchar_t.m4]) m4_include([m4/wcrtomb.m4]) -m4_include([m4/wctype.m4]) +m4_include([m4/wctype_h.m4]) m4_include([m4/wcwidth.m4]) m4_include([m4/wint_t.m4]) m4_include([m4/write.m4]) @@ -1111,3 +1213,5 @@ m4_include([m4/xgetcwd.m4]) m4_include([m4/xsize.m4]) m4_include([m4/xstrndup.m4]) m4_include([m4/xstrtol.m4]) +m4_include([m4/xvasprintf.m4]) +m4_include([acinclude.m4]) diff --git a/build-aux/arg-nonnull.h b/build-aux/arg-nonnull.h new file mode 100644 index 0000000000000000000000000000000000000000..ffbb3970c4461727b99877a268ad86d76f59f75c --- /dev/null +++ b/build-aux/arg-nonnull.h @@ -0,0 +1,28 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A C macro for declaring that specific arguments must not be NULL. + Copyright (C) 2009, 2010 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 + Lesser 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/>. */ + +/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools + that the values passed as arguments n, ..., m must be non-NULL pointers. + n = 1 stands for the first argument, n = 2 for the second argument etc. */ +#ifndef _GL_ARG_NONNULL +# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 +# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) +# else +# define _GL_ARG_NONNULL(params) +# endif +#endif diff --git a/build-aux/c++defs.h b/build-aux/c++defs.h new file mode 100644 index 0000000000000000000000000000000000000000..24b8d5db78598dd7b137e993df333acc587b1be3 --- /dev/null +++ b/build-aux/c++defs.h @@ -0,0 +1,211 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* C++ compatible function declaration macros. + Copyright (C) 2010 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 + Lesser 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/>. */ + +#ifndef _GL_CXXDEFS_H +#define _GL_CXXDEFS_H + +/* The three most frequent use cases of these macros are: + + * For providing a substitute for a function that is missing on some + platforms, but is declared and works fine on the platforms on which + it exists: + + #if @GNULIB_FOO@ + # if !@HAVE_FOO@ + _GL_FUNCDECL_SYS (foo, ...); + # endif + _GL_CXXALIAS_SYS (foo, ...); + _GL_CXXALIASWARN (foo); + #elif defined GNULIB_POSIXCHECK + ... + #endif + + * For providing a replacement for a function that exists on all platforms, + but is broken/insufficient and needs to be replaced on some platforms: + + #if @GNULIB_FOO@ + # if @REPLACE_FOO@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef foo + # define foo rpl_foo + # endif + _GL_FUNCDECL_RPL (foo, ...); + _GL_CXXALIAS_RPL (foo, ...); + # else + _GL_CXXALIAS_SYS (foo, ...); + # endif + _GL_CXXALIASWARN (foo); + #elif defined GNULIB_POSIXCHECK + ... + #endif + + * For providing a replacement for a function that exists on some platforms + but is broken/insufficient and needs to be replaced on some of them and + is additionally either missing or undeclared on some other platforms: + + #if @GNULIB_FOO@ + # if @REPLACE_FOO@ + # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + # undef foo + # define foo rpl_foo + # endif + _GL_FUNCDECL_RPL (foo, ...); + _GL_CXXALIAS_RPL (foo, ...); + # else + # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ + _GL_FUNCDECL_SYS (foo, ...); + # endif + _GL_CXXALIAS_SYS (foo, ...); + # endif + _GL_CXXALIASWARN (foo); + #elif defined GNULIB_POSIXCHECK + ... + #endif +*/ + +/* _GL_EXTERN_C declaration; + performs the declaration with C linkage. */ +#if defined __cplusplus +# define _GL_EXTERN_C extern "C" +#else +# define _GL_EXTERN_C extern +#endif + +/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); + declares a replacement function, named rpl_func, with the given prototype, + consisting of return type, parameters, and attributes. + Example: + _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) + _GL_ARG_NONNULL ((1))); + */ +#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ + _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) +#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ + _GL_EXTERN_C rettype rpl_func parameters_and_attributes + +/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); + declares the system function, named func, with the given prototype, + consisting of return type, parameters, and attributes. + Example: + _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) + _GL_ARG_NONNULL ((1))); + */ +#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ + _GL_EXTERN_C rettype func parameters_and_attributes + +/* _GL_CXXALIAS_RPL (func, rettype, parameters); + declares a C++ alias called GNULIB_NAMESPACE::func + that redirects to rpl_func, if GNULIB_NAMESPACE is defined. + Example: + _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); + */ +#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ + _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + rettype (*const func) parameters = ::rpl_func; \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIAS_SYS (func, rettype, parameters); + declares a C++ alias called GNULIB_NAMESPACE::func + that redirects to the system provided function func, if GNULIB_NAMESPACE + is defined. + Example: + _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); + */ +#if defined __cplusplus && defined GNULIB_NAMESPACE + /* If we were to write + rettype (*const func) parameters = ::func; + like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls + better (remove an indirection through a 'static' pointer variable), + but then the _GL_CXXALIASWARN macro below would cause a warning not only + for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */ +# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + static rettype (*func) parameters = ::func; \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); + is like _GL_CXXALIAS_SYS (func, rettype, parameters); + except that the C function func may have a slightly different declaration. + A cast is used to silence the "invalid conversion" error that would + otherwise occur. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ + namespace GNULIB_NAMESPACE \ + { \ + static rettype (*func) parameters = \ + reinterpret_cast<rettype(*)parameters>(::func); \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); + is like _GL_CXXALIAS_SYS (func, rettype, parameters); + except that the C function is picked among a set of overloaded functions, + namely the one with rettype2 and parameters2. Two consecutive casts + are used to silence the "cannot find a match" and "invalid conversion" + errors that would otherwise occur. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ + namespace GNULIB_NAMESPACE \ + { \ + static rettype (*func) parameters = \ + reinterpret_cast<rettype(*)parameters>( \ + reinterpret_cast<rettype2(*)parameters2>(::func)); \ + } \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#else +# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +/* _GL_CXXALIASWARN (func); + causes a warning to be emitted when ::func is used but not when + GNULIB_NAMESPACE::func is used. */ +#if defined __cplusplus && defined GNULIB_NAMESPACE +# define _GL_CXXALIASWARN(func) \ + _GL_CXXALIASWARN1 (func, GNULIB_NAMESPACE) +# define _GL_CXXALIASWARN1(func,namespace) \ + _GL_CXXALIASWARN2 (func, namespace) +# define _GL_CXXALIASWARN2(func,namespace) \ + _GL_WARN_ON_USE (func, \ + "The symbol ::" #func " refers to the system function. " \ + "Use " #namespace "::" #func " instead.") +#else +# define _GL_CXXALIASWARN(func) \ + _GL_EXTERN_C int _gl_cxxalias_dummy +#endif + +#endif /* _GL_CXXDEFS_H */ diff --git a/build-aux/compile b/build-aux/compile index 1b1d232169586b87050f08c303ffcc44676da397..c0096a7b563231c0c7ade728962574ec3b8df270 100755 --- a/build-aux/compile +++ b/build-aux/compile @@ -1,9 +1,10 @@ #! /bin/sh # Wrapper for compilers which do not understand `-c -o'. -scriptversion=2005-05-14.22 +scriptversion=2009-10-06.20; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software +# Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -17,8 +18,7 @@ scriptversion=2005-05-14.22 # 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -103,13 +103,13 @@ if test -z "$ofile" || test -z "$cfile"; then fi # Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name +# Note: use `[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break @@ -124,9 +124,9 @@ trap "rmdir '$lockdir'; exit 1" 1 2 15 ret=$? if test -f "$cofile"; then - mv "$cofile" "$ofile" + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then - mv "${cofile}bj" "$ofile" + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" @@ -138,5 +138,6 @@ exit $ret # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff --git a/build-aux/config.guess b/build-aux/config.guess index e5716eea733e225984bd4634a1d655127dfa470c..c2246a4f7f4c78281ccfc4238a54cf7d83c4f421 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. -timestamp='2009-02-03' +timestamp='2009-12-30' # 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 @@ -27,16 +27,16 @@ timestamp='2009-02-03' # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to <config-patches@gnu.org> and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +56,9 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -170,7 +171,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -324,12 +325,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" @@ -653,7 +660,7 @@ EOF # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + grep -q __LP64__ then HP_ARCH="hppa2.0w" else @@ -804,12 +811,12 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) + *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd | genuineintel) + authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -819,6 +826,9 @@ EOF [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -848,6 +858,20 @@ EOF i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -870,6 +894,17 @@ EOF frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; @@ -879,78 +914,34 @@ EOF m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips64 - #undef mips64el + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -959,8 +950,11 @@ EOF *) echo hppa-unknown-linux-gnu ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux @@ -983,66 +977,6 @@ EOF xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <features.h> - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1071,7 +1005,7 @@ EOF i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1115,8 +1049,11 @@ EOF pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 @@ -1176,7 +1113,7 @@ EOF rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1269,6 +1206,16 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} diff --git a/build-aux/config.rpath b/build-aux/config.rpath index 85c2f209beb72edebf886ca1de25f29f02c09aec..17298f2348bf0c5ce90917bf19abfb75a92ae179 100755 --- a/build-aux/config.rpath +++ b/build-aux/config.rpath @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2008 Free Software Foundation, Inc. +# Copyright 1996-2010 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # diff --git a/build-aux/config.sub b/build-aux/config.sub index d546a94b951e23587658e1c730708d1eae5aaed4..c2d125724c0ed2d2c6da5308c54567649554e5f3 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. -timestamp='2009-02-03' +timestamp='2010-01-22' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -32,13 +32,16 @@ timestamp='2009-02-03' # Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -72,8 +75,9 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free +Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -149,10 +153,13 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -272,6 +279,7 @@ case $basic_machine in | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ | nios | nios2 \ @@ -280,6 +288,7 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ + | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ @@ -287,13 +296,14 @@ case $basic_machine in | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) + m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none @@ -336,7 +346,7 @@ case $basic_machine in | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -364,15 +374,17 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ - | romp-* | rs6000-* \ + | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile-* | tilegx-* \ | tron-* \ + | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ @@ -466,6 +478,10 @@ case $basic_machine in basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; c90) basic_machine=c90-cray os=-unicos @@ -718,6 +734,9 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -1068,6 +1087,11 @@ case $basic_machine in basic_machine=tic6x-unknown os=-coff ;; + # This must be matched before tile*. + tilegx*) + basic_machine=tilegx-unknown + os=-linux-gnu + ;; tile*) basic_machine=tile-unknown os=-linux-gnu @@ -1239,6 +1263,9 @@ case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1259,9 +1286,9 @@ case $os in # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ @@ -1282,7 +1309,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1415,6 +1442,8 @@ case $os in -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1612,7 +1641,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) diff --git a/build-aux/depcomp b/build-aux/depcomp index 0f2bf430321809250c52b17a665e9625f0a0eacc..df8eea7e4ce8862105fcd7929b20bdb45488048b 100755 --- a/build-aux/depcomp +++ b/build-aux/depcomp @@ -1,14 +1,14 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2007-03-29.01 +scriptversion=2009-04-28.21; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software -# Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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, or (at your option) +# the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -85,6 +85,15 @@ if test "$depmode" = dashXmstdout; then depmode=dashmstdout fi +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u="sed s,\\\\\\\\,/,g" + depmode=msvisualcpp +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -190,14 +199,14 @@ sgi) ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' -' ' ' >> $depfile - echo >> $depfile +' ' ' >> "$depfile" + echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile + >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -326,7 +335,12 @@ hp2) if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. - sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -402,7 +416,7 @@ dashmstdout) # Remove the call to Libtool. if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do + while test "X$1" != 'X--mode=compile'; do shift done shift @@ -453,32 +467,39 @@ makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do + while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift - cleared=no - for arg in "$@"; do + cleared=no eat=no + for arg + do case $cleared in no) set ""; shift cleared=yes ;; esac + if test $eat = yes; then + eat=no + continue + fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done - obj_suffix="`echo $object | sed 's/^.*\././'`" + obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" @@ -498,7 +519,7 @@ cpp) # Remove the call to Libtool. if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do + while test "X$1" != 'X--mode=compile'; do shift done shift @@ -536,13 +557,27 @@ cpp) msvisualcpp) # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. + # always write the preprocessed file to stdout. "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + IFS=" " for arg do case "$arg" in + -o) + shift + ;; + $object) + shift + ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift @@ -555,16 +590,23 @@ msvisualcpp) ;; esac done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + none) exec "$@" ;; @@ -583,5 +625,6 @@ exit 0 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog new file mode 100755 index 0000000000000000000000000000000000000000..7660af511c4a2cb493ac8e827375b1c3c4b8a85f --- /dev/null +++ b/build-aux/gitlog-to-changelog @@ -0,0 +1,191 @@ +eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' + & eval 'exec perl -wS "$0" $argv:q' + if 0; +# Convert git log output to ChangeLog format. + +my $VERSION = '2009-10-30 13:46'; # UTC +# The definition above must lie within the first 8 lines in order +# for the Emacs time-stamp write hook (at end) to update it. +# If you change this file with Emacs, please let the write hook +# do its job. Otherwise, update this string manually. + +# Copyright (C) 2008-2010 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 Jim Meyering + +use strict; +use warnings; +use Getopt::Long; +use POSIX qw(strftime); + +(my $ME = $0) =~ s|.*/||; + +# use File::Coda; # http://meyering.net/code/Coda/ +END { + defined fileno STDOUT or return; + close STDOUT and return; + warn "$ME: failed to close standard output: $!\n"; + $? ||= 1; +} + +sub usage ($) +{ + my ($exit_code) = @_; + my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); + if ($exit_code != 0) + { + print $STREAM "Try `$ME --help' for more information.\n"; + } + else + { + print $STREAM <<EOF; +Usage: $ME [OPTIONS] [ARGS] + +Convert git log output to ChangeLog format. If present, any ARGS +are passed to "git log". To avoid ARGS being parsed as options to +$ME, they may be preceded by '--'. + +OPTIONS: + + --since=DATE convert only the logs since DATE; + the default is to convert all log entries. + --format=FMT set format string for commit subject and body; + see 'man git-log' for the list of format metacharacters; + the default is '%s%n%b%n' + + --help display this help and exit + --version output version information and exit + +EXAMPLE: + + $ME --since=2008-01-01 > ChangeLog + $ME -- -n 5 foo > last-5-commits-to-branch-foo + +EOF + } + exit $exit_code; +} + +# If the string $S is a well-behaved file name, simply return it. +# If it contains white space, quotes, etc., quote it, and return the new string. +sub shell_quote($) +{ + my ($s) = @_; + if ($s =~ m![^\w+/.,-]!) + { + # Convert each single quote to '\'' + $s =~ s/\'/\'\\\'\'/g; + # Then single quote the string. + $s = "'$s'"; + } + return $s; +} + +sub quoted_cmd(@) +{ + return join (' ', map {shell_quote $_} @_); +} + +{ + my $since_date = '1970-01-01 UTC'; + my $format_string = '%s%n%b%n'; + GetOptions + ( + help => sub { usage 0 }, + version => sub { print "$ME version $VERSION\n"; exit }, + 'since=s' => \$since_date, + 'format=s' => \$format_string, + ) or usage 1; + + my @cmd = (qw (git log --log-size), "--since=$since_date", + '--pretty=format:%ct %an <%ae>%n%n'.$format_string, @ARGV); + open PIPE, '-|', @cmd + or die ("$ME: failed to run `". quoted_cmd (@cmd) ."': $!\n" + . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); + + my $prev_date_line = ''; + while (1) + { + defined (my $in = <PIPE>) + or last; + $in =~ /^log size (\d+)$/ + or die "$ME:$.: Invalid line (expected log size):\n$in"; + my $log_nbytes = $1; + + my $log; + my $n_read = read PIPE, $log, $log_nbytes; + $n_read == $log_nbytes + or die "$ME:$.: unexpected EOF\n"; + + my @line = split "\n", $log; + my $author_line = shift @line; + defined $author_line + or die "$ME:$.: unexpected EOF\n"; + $author_line =~ /^(\d+) (.*>)$/ + or die "$ME:$.: Invalid line " + . "(expected date/author/email):\n$author_line\n"; + + my $date_line = sprintf "%s $2\n", strftime ("%F", localtime ($1)); + # If this line would be the same as the previous date/name/email + # line, then arrange not to print it. + if ($date_line ne $prev_date_line) + { + $prev_date_line eq '' + or print "\n"; + print $date_line; + } + $prev_date_line = $date_line; + + # Omit "Signed-off-by..." lines. + @line = grep !/^Signed-off-by: .*>$/, @line; + + # If there were any lines + if (@line == 0) + { + warn "$ME: warning: empty commit message:\n $date_line\n"; + } + else + { + # Remove leading and trailing blank lines. + while ($line[0] =~ /^\s*$/) { shift @line; } + while ($line[$#line] =~ /^\s*$/) { pop @line; } + + # Prefix each non-empty line with a TAB. + @line = map { length $_ ? "\t$_" : '' } @line; + + print "\n", join ("\n", @line), "\n"; + } + + defined ($in = <PIPE>) + or last; + $in ne "\n" + and die "$ME:$.: unexpected line:\n$in"; + } + + close PIPE + or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; + # FIXME-someday: include $PROCESS_STATUS in the diagnostic +} + +# Local Variables: +# mode: perl +# indent-tabs-mode: nil +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "my $VERSION = '" +# time-stamp-format: "%:y-%02m-%02d %02H:%02M" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "'; # UTC" +# End: diff --git a/build-aux/install-sh b/build-aux/install-sh index a5897de6ea7f74f83fd793474bb4738d32884719..3f83ce9b555a535ca90c450882953554c7e4ded5 100755 --- a/build-aux/install-sh +++ b/build-aux/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2006-12-25.00 +scriptversion=2010-02-06.18; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -200,7 +200,11 @@ if test $# -eq 0; then fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -515,5 +519,6 @@ done # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff --git a/build-aux/link-warning.h b/build-aux/link-warning.h deleted file mode 100644 index fda01941af51ca3920974ea79dc3b85761aa1440..0000000000000000000000000000000000000000 --- a/build-aux/link-warning.h +++ /dev/null @@ -1,28 +0,0 @@ -/* GL_LINK_WARNING("literal string") arranges to emit the literal string as - a linker warning on most glibc systems. - We use a linker warning rather than a preprocessor warning, because - #warning cannot be used inside macros. */ -#ifndef GL_LINK_WARNING - /* This works on platforms with GNU ld and ELF object format. - Testing __GLIBC__ is sufficient for asserting that GNU ld is in use. - Testing __ELF__ guarantees the ELF object format. - Testing __GNUC__ is necessary for the compound expression syntax. */ -# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__ -# define GL_LINK_WARNING(message) \ - GL_LINK_WARNING1 (__FILE__, __LINE__, message) -# define GL_LINK_WARNING1(file, line, message) \ - GL_LINK_WARNING2 (file, line, message) /* macroexpand file and line */ -# define GL_LINK_WARNING2(file, line, message) \ - GL_LINK_WARNING3 (file ":" #line ": warning: " message) -# define GL_LINK_WARNING3(message) \ - ({ static const char warning[sizeof (message)] \ - __attribute__ ((__unused__, \ - __section__ (".gnu.warning"), \ - __aligned__ (1))) \ - = message "\n"; \ - (void)0; \ - }) -# else -# define GL_LINK_WARNING(message) ((void) 0) -# endif -#endif diff --git a/build-aux/mdate-sh b/build-aux/mdate-sh index 757a5dc1319e40ce55ec28b4024b4b07e0fbe8fc..c477512f877850d5e34fdda2160eb410421c133f 100755 --- a/build-aux/mdate-sh +++ b/build-aux/mdate-sh @@ -1,15 +1,15 @@ #!/bin/sh # Get modification time of a file or directory and pretty-print it. -scriptversion=2007-03-30.02 +scriptversion=2010-02-22.21; # UTC -# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007 Free Software -# Foundation, Inc. +# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009, 2010 +# Free Software Foundation, Inc. # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995 # # 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, or (at your option) +# the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, @@ -38,7 +38,8 @@ case $1 in cat <<\EOF Usage: mdate-sh [--help] [--version] FILE -Pretty-print the modification time of FILE. +Pretty-print the modification day of FILE, in the format: +1 January 1970 Report bugs to <bug-automake@gnu.org>. EOF @@ -200,5 +201,6 @@ echo $day $month $year # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff --git a/build-aux/missing b/build-aux/missing index f359dae7a878d649d09dd7063e3b7220b5cc02d5..28055d2ae6f2a2c584afcd769d7881e11f62ecd9 100755 --- a/build-aux/missing +++ b/build-aux/missing @@ -1,15 +1,15 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2008-12-21.33 +scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008 Free Software Foundation, Inc. +# 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # 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, or (at your option) +# the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, @@ -371,5 +371,6 @@ exit 0 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff --git a/build-aux/mkinstalldirs b/build-aux/mkinstalldirs deleted file mode 100755 index ef7e16fdafe243ab5e368763bd4cda18c5872c1f..0000000000000000000000000000000000000000 --- a/build-aux/mkinstalldirs +++ /dev/null @@ -1,161 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2006-05-11.19 - -# Original author: Noah Friedman <friedman@prep.ai.mit.edu> -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - -nl=' -' -IFS=" "" $nl" -errstatus=0 -dirmode= - -usage="\ -Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... - -Create each directory DIR (with mode MODE, if specified), including all -leading file name components. - -Report bugs to <bug-automake@gnu.org>." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and -# mkdir -p a/c at the same time, both will detect that a is missing, -# one will create a, then the other will try to create a and die with -# a "File exists" error. This is a problem when calling mkinstalldirs -# from a parallel make. We use --version in the probe to restrict -# ourselves to GNU mkdir, which is thread-safe. -case $dirmode in - '') - if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - test -d ./-p && rmdir ./-p - test -d ./--version && rmdir ./--version - fi - ;; - *) - if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && - test ! -d ./--version; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - else - # Clean up after NextStep and OpenStep mkdir. - for d in ./-m ./-p ./--version "./$dirmode"; - do - test -d $d && rmdir $d - done - fi - ;; -esac - -for file -do - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - pathcomp=$pathcomp$d - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr= - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp=$pathcomp/ - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex index 03c29989cc4f5b5ec93331b59b38f3113ef66185..9ef9480f42debcb3a687724d488bb19a8a84fb51 100644 --- a/build-aux/texinfo.tex +++ b/build-aux/texinfo.tex @@ -1,13 +1,13 @@ % texinfo.tex -- TeX macros to handle Texinfo files. -% +% % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2009-01-18.17} +\def\texinfoversion{2010-03-07.08} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009 Free Software Foundation, Inc. +% 2007, 2008, 2009, 2010 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -93,14 +93,13 @@ \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ +\let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t \let\ptextop=\top -{\catcode`\'=\active -\global\let\ptexquoteright'}% Math-mode def from plain.tex. -\let\ptexraggedright=\raggedright +{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. @@ -358,7 +357,7 @@ % We don't want .vr (or whatever) entries like this: % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; - % it needs to be + % it needs to be % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. @@ -709,7 +708,7 @@ \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. -% +% \def\onword{on} \def\offword{off} % @@ -1285,7 +1284,7 @@ where each line of input produces a line of output.} % that's what we do). % double active backslashes. -% +% {\catcode`\@=0 \catcode`\\=\active @gdef@activebackslashdouble{% @catcode`@\=@active @@ -1297,11 +1296,11 @@ where each line of input produces a line of output.} % us) handles it with this amazing macro to replace tokens, with minor % changes for Texinfo. It is included here under the GPL by permission % from the author, Heiko Oberdiek. -% +% % #1 is the tokens to replace. % #2 is the replacement. % #3 is the control sequence with the string. -% +% \def\HyPsdSubst#1#2#3{% \def\HyPsdReplace##1#1##2\END{% ##1% @@ -1332,13 +1331,16 @@ output) for that.)} \ifpdf % - % Color manipulation macros based on pdfcolor.tex. - \def\cmykDarkRed{0.28 1 1 0.35} - \def\cmykBlack{0 0 0 1} + % Color manipulation macros based on pdfcolor.tex, + % except using rgb instead of cmyk; the latter is said to render as a + % very dark gray on-screen and a very dark halftone in print, instead + % of actual black. + \def\rgbDarkRed{0.50 0.09 0.12} + \def\rgbBlack{0 0 0} % % k sets the color for filling (usual text, etc.); % K sets the color for stroking (thin rules, e.g., normal _'s). - \def\pdfsetcolor#1{\pdfliteral{#1 k #1 K}} + \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. @@ -1348,7 +1350,7 @@ output) for that.)} \pdfsetcolor{#1}% } % - \def\maincolor{\cmykBlack} + \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} @@ -1443,8 +1445,8 @@ output) for that.)} % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. - \def\urlcolor{\cmykDarkRed} - \def\linkcolor{\cmykDarkRed} + \def\urlcolor{\rgbDarkRed} + \def\linkcolor{\rgbDarkRed} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines @@ -1573,7 +1575,7 @@ output) for that.)} % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. - % + % \normalturnoffactive \def\@{@}% \let\/=\empty @@ -1981,7 +1983,7 @@ end % Definitions for a main text size of 11pt. This is the default in % Texinfo. -% +% \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} @@ -2112,7 +2114,7 @@ end % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. -% +% \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} @@ -2201,7 +2203,7 @@ end \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} -\font\seci=cmmi12 +\font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} @@ -2245,7 +2247,7 @@ end % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. -% +% \def\xword{10} \def\xiword{11} % @@ -2255,7 +2257,7 @@ end % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. - % + % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi @@ -2472,8 +2474,8 @@ end % from cmtt (char 0x0d). The undirected quote is ugly, so don't make it % the default, but it works for pasting with more pdf viewers (at least % evince), the lilypond developers report. xpdf does work with the -% regular 0x27. -% +% regular 0x27. +% \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax @@ -2485,7 +2487,7 @@ end % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. -% +% \def\codequoteleft{% \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax @@ -2502,27 +2504,40 @@ end % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic +% Font commands. -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else - \ptexslash\fi\fi\fi} -\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} +% #1 is the font command (\sl vs. \it), #2 is the text to slant. +% If we are in a monospaced environment, however, 1) always use \ttsl, +% and 2) do not add an italic correction. +\def\dosmartslant#1#2{% + \ifusingtt + {\ttsl #2\let\next=\relax}% + {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% + \next +} +\def\smartslanted{\dosmartslant\sl} +\def\smartitalic{\dosmartslant\it} -% like \smartslanted except unconditionally uses \ttsl. +% Output an italic correction unless \next (presumed to be the following +% character) is such as not to need one. +\def\smartitaliccorrection{% + \ifx\next,% + \else\ifx\next-% + \else\ifx\next.% + \else\ptexslash + \fi\fi\fi} + +% like \smartslanted except unconditionally uses \ttsl, and no ic. % @var is set to this for defun arguments. -\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} +\def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? -\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} +\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \let\i=\smartitalic \let\slanted=\smartslanted -\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} +\def\var#1{\smartslanted{#1}} \let\dfn=\smartslanted \let\emph=\smartitalic @@ -2669,7 +2684,7 @@ end % each of the four underscores in __typeof__. This is undesirable in % some manuals, especially if they don't have long identifiers in % general. @allowcodebreaks provides a way to control this. -% +% \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} @@ -2794,7 +2809,7 @@ end % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. -% +% \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\selectfonts\lsize #1}% @@ -2806,7 +2821,7 @@ end % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. -% +% \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% @@ -2863,52 +2878,59 @@ end % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. -% +% % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. -% +% % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted -% +% % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. -% +% % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. -% -% +% +% \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. - % + % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. - % + % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. - % + % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % - \ifx\curfontstyle\bfstylename + \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize - \else + \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } -% Hacks for glyphs from the EC fonts similar to \euro. We don't -% use \let for the aliases, because sometimes we redefine the original -% macro, and the alias should reflect the redefinition. +% Glyphs from the EC fonts. We don't use \let for the aliases, because +% sometimes we redefine the original macro, and the alias should reflect +% the redefinition. +% +% Use LaTeX names for the Icelandic letters. +\def\DH{{\ecfont \char"D0}} % Eth +\def\dh{{\ecfont \char"F0}} % eth +\def\TH{{\ecfont \char"DE}} % Thorn +\def\th{{\ecfont \char"FE}} % thorn +% \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} @@ -2922,7 +2944,7 @@ end % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. -% +% % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. @@ -2945,6 +2967,7 @@ end \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % +% Use the ec* fonts (cm-super in outline format) for non-CM glyphs. \def\ecfont{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German @@ -2979,7 +3002,7 @@ end % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. -% +% \ifx\Orb\undefined \def\Orb{\mathhexbox20D} \fi @@ -3325,7 +3348,7 @@ end % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. - % + % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse @@ -4138,7 +4161,7 @@ end % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. - % + % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} @@ -4146,12 +4169,12 @@ end % @end macro % ... % @funindex commtest - % + % % The above is not enough to reproduce the bug, but it gives the flavor. - % + % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} - % + % % So: \let\endinput = \empty % @@ -4203,19 +4226,23 @@ end % Non-English letters. \definedummyword\AA \definedummyword\AE + \definedummyword\DH \definedummyword\L - \definedummyword\OE \definedummyword\O + \definedummyword\OE + \definedummyword\TH \definedummyword\aa \definedummyword\ae + \definedummyword\dh + \definedummyword\exclamdown \definedummyword\l - \definedummyword\oe \definedummyword\o - \definedummyword\ss - \definedummyword\exclamdown - \definedummyword\questiondown + \definedummyword\oe \definedummyword\ordf \definedummyword\ordm + \definedummyword\questiondown + \definedummyword\ss + \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf @@ -4310,6 +4337,7 @@ end \definedummyword\code \definedummyword\command \definedummyword\dfn + \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file @@ -4358,19 +4386,23 @@ end % Non-English letters. \def\AA{AA}% \def\AE{AE}% + \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% + \def\TH{ZZZ}% \def\aa{aa}% \def\ae{ae}% + \def\dh{dzz}% + \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% - \def\o{o}% - \def\ss{ss}% - \def\exclamdown{!}% - \def\questiondown{?}% \def\ordf{a}% \def\ordm{o}% + \def\o{o}% + \def\questiondown{?}% + \def\ss{ss}% + \def\th{zzz}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% @@ -4380,20 +4412,19 @@ end \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% - \def\registeredsymbol{R}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% + \def\expansion{==>}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% - \def\expansion{==>}% \def\minus{-}% - \def\pounds{pounds}% \def\point{.}% + \def\pounds{pounds}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% @@ -4401,19 +4432,20 @@ end \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% + \def\registeredsymbol{R}% \def\result{=>}% - \def\textdegree{degrees}% + \def\textdegree{o}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. - % + % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. - % + % \macrolist } @@ -4541,7 +4573,7 @@ end % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: - % + % % @deffn deffn-whatever % @vindex index-whatever % Description. @@ -5122,7 +5154,9 @@ end \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % - \message{\putwordChapter\space \the\chapno}% + % \putwordChapter can contain complex things in translations. + \toks0=\expandafter{\putwordChapter}% + \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% @@ -5133,15 +5167,17 @@ end \global\let\subsubsection = \numberedsubsubsec } -\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz +\outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz +% \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % - \def\appendixnum{\putwordAppendix\space \appendixletter}% - \message{\appendixnum}% + % \putwordAppendix can contain complex things in translations. + \toks0=\expandafter{\putwordAppendix}% + \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % @@ -5374,7 +5410,10 @@ end \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% - \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum: + % \noexpand\putwordAppendix avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} + \noexpand\thischapternum: \noexpand\thischaptername}% }% \else @@ -5382,7 +5421,10 @@ end \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% - \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum: + % \noexpand\putwordChapter avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thischapter{\noexpand\putwordChapter{} + \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi @@ -5525,7 +5567,10 @@ end \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% - \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + % \noexpand\putwordSection avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thissection{\noexpand\putwordSection{} + \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi @@ -5535,7 +5580,10 @@ end \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% - \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + % \noexpand\putwordSection avoids expanding indigestible + % commands in some of the translations. + \gdef\noexpand\thissection{\noexpand\putwordSection{} + \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi @@ -5611,11 +5659,11 @@ end % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) \vskip-\parskip - % + % % This is purely so the last item on the list is a known \penalty > % 10000. This is so \startdefun can avoid allowing breakpoints after % section headings. Otherwise, it would insert a valid breakpoint between: - % + % % @section sec-whatever % @deffn def-whatever \penalty 10001 @@ -5673,7 +5721,7 @@ end % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. -% +% \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active @@ -5723,7 +5771,7 @@ end % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. -% +% \def\tocreadfilename{\jobname.toc} % Normal (long) toc. @@ -5912,6 +5960,10 @@ end \catcode`\'=\other \escapechar=`\\ % + % ' is active in math mode (mathcode"8000). So reset it, and all our + % other math active characters (just in case), to plain's definitions. + \mathactive + % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc @@ -6815,7 +6867,7 @@ end % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). -% +% \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname @@ -7975,21 +8027,22 @@ end \closein 1 \endgroup % end raw TeX \endgroup} -} % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. -% -\def\documentlanguagetrywithoutunderscore#1_#2\finish{% +% +\gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else + \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } +}% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current @@ -7998,16 +8051,16 @@ directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. -% +% % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. -% +% % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) -% +% \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. @@ -8062,7 +8115,7 @@ directory should work if nowhere else does.} \setnonasciicharscatcode\active \lattwochardefs % - \else \ifx \declaredencoding \latone + \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % @@ -8074,7 +8127,7 @@ directory should work if nowhere else does.} \setnonasciicharscatcode\active \utfeightchardefs % - \else + \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight @@ -8086,7 +8139,7 @@ directory should work if nowhere else does.} % A message to be logged when using a character that isn't available % the default font encoding (OT1). -% +% \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. @@ -8099,21 +8152,21 @@ directory should work if nowhere else does.} % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% - \gdef^^a0{~} + \gdef^^a0{~} \gdef^^a1{\exclamdown} - \gdef^^a2{\missingcharmsg{CENT SIGN}} + \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} - \gdef^^a6{\missingcharmsg{BROKEN BAR}} + \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} - \gdef^^a8{\"{}} - \gdef^^a9{\copyright} + \gdef^^a8{\"{}} + \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} - \gdef^^ad{\-} - \gdef^^ae{\registeredsymbol} + \gdef^^ad{\-} + \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} @@ -8140,7 +8193,7 @@ directory should work if nowhere else does.} \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} - \gdef^^c5{\ringaccent A} + \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} @@ -8152,7 +8205,7 @@ directory should work if nowhere else does.} \gdef^^ce{\^I} \gdef^^cf{\"I} % - \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}} + \gdef^^d0{\DH} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} @@ -8166,7 +8219,7 @@ directory should work if nowhere else does.} \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} - \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}} + \gdef^^de{\TH} \gdef^^df{\ss} % \gdef^^e0{\`a} @@ -8186,7 +8239,7 @@ directory should work if nowhere else does.} \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % - \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}} + \gdef^^f0{\dh} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} @@ -8200,7 +8253,7 @@ directory should work if nowhere else does.} \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} - \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}} + \gdef^^fe{\th} \gdef^^ff{\"y} } @@ -8272,7 +8325,7 @@ directory should work if nowhere else does.} \gdef^^ce{\^I} \gdef^^cf{\v D} % - \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}} + \gdef^^d0{\DH} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} @@ -8281,7 +8334,7 @@ directory should work if nowhere else does.} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} - \gdef^^d9{\ringaccent U} + \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} @@ -8306,7 +8359,7 @@ directory should work if nowhere else does.} \gdef^^ee{\^\i} \gdef^^ef{\v d} % - \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}} + \gdef^^f0{\dh} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} @@ -8325,11 +8378,11 @@ directory should work if nowhere else does.} } % UTF-8 character definitions. -% +% % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. -% +% \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz @@ -8479,6 +8532,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00CE}{\^I} \DeclareUnicodeCharacter{00CF}{\"I} + \DeclareUnicodeCharacter{00D0}{\DH} \DeclareUnicodeCharacter{00D1}{\~N} \DeclareUnicodeCharacter{00D2}{\`O} \DeclareUnicodeCharacter{00D3}{\'O} @@ -8491,6 +8545,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00DB}{\^U} \DeclareUnicodeCharacter{00DC}{\"U} \DeclareUnicodeCharacter{00DD}{\'Y} + \DeclareUnicodeCharacter{00DE}{\TH} \DeclareUnicodeCharacter{00DF}{\ss} \DeclareUnicodeCharacter{00E0}{\`a} @@ -8510,6 +8565,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} + \DeclareUnicodeCharacter{00F0}{\dh} \DeclareUnicodeCharacter{00F1}{\~n} \DeclareUnicodeCharacter{00F2}{\`o} \DeclareUnicodeCharacter{00F3}{\'o} @@ -8522,6 +8578,7 @@ directory should work if nowhere else does.} \DeclareUnicodeCharacter{00FB}{\^u} \DeclareUnicodeCharacter{00FC}{\"u} \DeclareUnicodeCharacter{00FD}{\'y} + \DeclareUnicodeCharacter{00FE}{\th} \DeclareUnicodeCharacter{00FF}{\"y} \DeclareUnicodeCharacter{0100}{\=A} @@ -9178,7 +9235,7 @@ directory should work if nowhere else does.} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. -% +% @def@normalturnoffactive{% @let\=@normalbackslash @let"=@normaldoublequote @@ -9234,7 +9291,7 @@ directory should work if nowhere else does.} @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault - + @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" diff --git a/build-aux/warn-on-use.h b/build-aux/warn-on-use.h new file mode 100644 index 0000000000000000000000000000000000000000..7a3a9f00323352569934ad472a5a4b67032e0a07 --- /dev/null +++ b/build-aux/warn-on-use.h @@ -0,0 +1,77 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A C macro for emitting warnings if a function is used. + Copyright (C) 2010 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 + Lesser 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/>. */ + +/* _GL_WARN_ON_USE(function, "literal string") issues a declaration + for FUNCTION which will then trigger a compiler warning containing + the text of "literal string" anywhere that function is called, if + supported by the compiler. If the compiler does not support this + feature, the macro expands to an unused extern declaration. + + This macro is useful for marking a function as a potential + portability trap, with the intent that "literal string" include + instructions on the replacement function that should be used + instead. However, one of the reasons that a function is a + portability trap is if it has the wrong signature. Declaring + FUNCTION with a different signature in C is a compilation error, so + this macro must use the same type as any existing declaration so + that programs that avoid the problematic FUNCTION do not fail to + compile merely because they included a header that poisoned the + function. But this implies that _GL_WARN_ON_USE is only safe to + use if FUNCTION is known to already have a declaration. Use of + this macro implies that there must not be any other macro hiding + the declaration of FUNCTION; but undefining FUNCTION first is part + of the poisoning process anyway (although for symbols that are + provided only via a macro, the result is a compilation error rather + than a warning containing "literal string"). Also note that in + C++, it is only safe to use if FUNCTION has no overloads. + + For an example, it is possible to poison 'getline' by: + - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]], + [getline]) in configure.ac, which potentially defines + HAVE_RAW_DECL_GETLINE + - adding this code to a header that wraps the system <stdio.h>: + #undef getline + #if HAVE_RAW_DECL_GETLINE + _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" + "not universally present; use the gnulib module getline"); + #endif + + It is not possible to directly poison global variables. But it is + possible to write a wrapper accessor function, and poison that + (less common usage, like &environ, will cause a compilation error + rather than issue the nice warning, but the end result of informing + the developer about their portability problem is still achieved): + #if HAVE_RAW_DECL_ENVIRON + static inline char ***rpl_environ (void) { return &environ; } + _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); + # undef environ + # define environ (*rpl_environ ()) + #endif + */ +#ifndef _GL_WARN_ON_USE + +# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) +/* A compiler attribute is available in gcc versions 4.3.0 and later. */ +# define _GL_WARN_ON_USE(function, message) \ +extern __typeof__ (function) function __attribute__ ((__warning__ (message))) + +# else /* Unsupported. */ +# define _GL_WARN_ON_USE(function, message) \ +extern int _gl_warn_on_use +# endif +#endif diff --git a/build-aux/ylwrap b/build-aux/ylwrap index 7278b6a357313bf7dded6fd121757f976242e825..84d563405e6e29a64a4ffdb07da262e2e5628dba 100755 --- a/build-aux/ylwrap +++ b/build-aux/ylwrap @@ -1,10 +1,10 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -scriptversion=2007-11-22.22 +scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, -# 2007 Free Software Foundation, Inc. +# 2007, 2009 Free Software Foundation, Inc. # # Written by Tom Tromey <tromey@cygnus.com>. # @@ -19,9 +19,7 @@ scriptversion=2007-11-22.22 # 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, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -219,5 +217,6 @@ exit $ret # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" # End: diff --git a/config.hin b/config.h.in similarity index 60% rename from config.hin rename to config.h.in index 6db767a1a60343e575d6812c355f1273733b7bd8..f55a85d723faa8ee75a46745833aa0d335fde3bf 100644 --- a/config.hin +++ b/config.h.in @@ -1,4 +1,4 @@ -/* config.hin. Generated from configure.ac by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if the compiler is building for multiple architectures of Apple platforms at once. */ @@ -19,12 +19,25 @@ /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T +/* Define to the program name of bzip2 compressor program */ +#undef BZIP2_PROGRAM + +/* 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 to the program name of compress compressor program */ +#undef COMPRESS_PROGRAM + /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ @@ -75,8 +88,12 @@ language is requested. */ #undef ENABLE_NLS -/* Define if gnulib's fchdir() replacement is used. */ -#undef FCHDIR_REPLACEMENT +/* Define to 1 if your platform has fchownat, but it cannot perform lchown + tasks. */ +#undef FCHOWNAT_NOFOLLOW_BUG + +/* Define this to 1 if F_DUPFD behavior does not match POSIX */ +#undef FCNTL_DUPFD_BUGGY /* Define on systems for which file names may have a so-called `drive letter' prefix, define this to compute the length of that prefix, including the @@ -91,24 +108,144 @@ followed by a file name component separator. */ #undef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE +/* Define to 1 if mkdir mistakenly creates a directory given with a trailing + dot component. */ +#undef FUNC_MKDIR_DOT_BUG + +/* Define to 1 if realpath() can malloc memory, always gives an absolute path, + and handles trailing slash correctly. */ +#undef FUNC_REALPATH_WORKS + +/* Define to 1 if futimesat mishandles a NULL file name. */ +#undef FUTIMESAT_NULL_BUG + /* Define if gettimeofday clobbers the localtime buffer. */ #undef GETTIMEOFDAY_CLOBBERS_LOCALTIME +/* Define this to 'void' or 'struct timezone' to match the system's + declaration of the second argument to gettimeofday. */ +#undef GETTIMEOFDAY_TIMEZONE + /* Define to make the limit macros in <stdint.h> visible. */ #undef GL_TRIGGER_STDC_LIMIT_MACROS -/* Define to 1 when using the gnulib module canonicalize-lgpl. */ -#undef GNULIB_CANONICALIZE_LGPL +/* Define to 1 when using the gnulib module btowc. */ +#undef GNULIB_BTOWC + +/* Define to 1 when using the gnulib module canonicalize. */ +#undef GNULIB_CANONICALIZE + +/* Define to 1 when using the gnulib module canonicalize_file_name. */ +#undef GNULIB_CANONICALIZE_FILE_NAME + +/* Define to 1 when using the gnulib module chown. */ +#undef GNULIB_CHOWN + +/* Define to 1 when using the gnulib module close. */ +#undef GNULIB_CLOSE /* Define to 1 when using the gnulib module close-stream. */ #undef GNULIB_CLOSE_STREAM -/* Define to 1 when using the gnulib module fcntl-safer. */ -#undef GNULIB_FCNTL_SAFER +/* Define to 1 when using the gnulib module dirent-safer. */ +#undef GNULIB_DIRENT_SAFER + +/* Define to 1 when using the gnulib module dirfd. */ +#undef GNULIB_DIRFD + +/* Define to 1 when using the gnulib module dirname. */ +#undef GNULIB_DIRNAME + +/* Define to 1 when using the gnulib module dup2. */ +#undef GNULIB_DUP2 + +/* Define to 1 when using the gnulib module environ. */ +#undef GNULIB_ENVIRON + +/* Define to 1 when using the gnulib module fchdir. */ +#undef GNULIB_FCHDIR + +/* Define to 1 when using the gnulib module fclose. */ +#undef GNULIB_FCLOSE + +/* Define to 1 when using the gnulib module fcntl. */ +#undef GNULIB_FCNTL + +/* Define to 1 when using the gnulib module fdopendir. */ +#undef GNULIB_FDOPENDIR + +/* Define to 1 when using the gnulib module fseeko. */ +#undef GNULIB_FSEEKO + +/* Define to 1 when using the gnulib module ftruncate. */ +#undef GNULIB_FTRUNCATE + +/* Define to 1 when using the gnulib module getcwd. */ +#undef GNULIB_GETCWD + +/* Define to 1 when using the gnulib module getdelim. */ +#undef GNULIB_GETDELIM + +/* Define to 1 when using the gnulib module getdtablesize. */ +#undef GNULIB_GETDTABLESIZE + +/* Define to 1 when using the gnulib module getline. */ +#undef GNULIB_GETLINE + +/* Define to 1 when using the gnulib module getopt-gnu. */ +#undef GNULIB_GETOPT_GNU + +/* Define to 1 when using the gnulib module getpagesize. */ +#undef GNULIB_GETPAGESIZE + +/* Define to 1 when using the gnulib module gettimeofday. */ +#undef GNULIB_GETTIMEOFDAY + +/* Define to 1 when using the gnulib module lchown. */ +#undef GNULIB_LCHOWN + +/* Define to 1 when using the gnulib module lseek. */ +#undef GNULIB_LSEEK + +/* Define to 1 when using the gnulib module lstat. */ +#undef GNULIB_LSTAT /* Define to indicate the 'malloc' module. */ #undef GNULIB_MALLOC_GNU +/* Define to 1 when using the gnulib module malloc-posix. */ +#undef GNULIB_MALLOC_POSIX + +/* Define to 1 when using the gnulib module mbrtowc. */ +#undef GNULIB_MBRTOWC + +/* Define to 1 when using the gnulib module mbscasecmp. */ +#undef GNULIB_MBSCASECMP + +/* Define to 1 when using the gnulib module mbsinit. */ +#undef GNULIB_MBSINIT + +/* Define to 1 when using the gnulib module mbsrtowcs. */ +#undef GNULIB_MBSRTOWCS + +/* Define to 1 when using the gnulib module memchr. */ +#undef GNULIB_MEMCHR + +/* Define to 1 when using the gnulib module mempcpy. */ +#undef GNULIB_MEMPCPY + +/* Define to 1 when using the gnulib module memrchr. */ +#undef GNULIB_MEMRCHR + +/* Define to 1 when using the gnulib module mkdtemp. */ +#undef GNULIB_MKDTEMP + +/* Define to 1 when using the gnulib module mktime. */ +#undef GNULIB_MKTIME + +/* Define to 1 when using the gnulib module nl_langinfo. */ +#undef GNULIB_NL_LANGINFO + /* Define to 1 when using the gnulib module open. */ #undef GNULIB_OPEN @@ -120,6 +257,81 @@ argp.h */ #undef GNULIB_PROGRAM_INVOCATION_SHORT_NAME +/* Define to 1 when using the gnulib module rawmemchr. */ +#undef GNULIB_RAWMEMCHR + +/* Define to 1 when using the gnulib module readlink. */ +#undef GNULIB_READLINK + +/* Define to 1 when using the gnulib module realloc-posix. */ +#undef GNULIB_REALLOC_POSIX + +/* Define to 1 when using the gnulib module rmdir. */ +#undef GNULIB_RMDIR + +/* Define to 1 when using the gnulib module rpmatch. */ +#undef GNULIB_RPMATCH + +/* Define to 1 when using the gnulib module setenv. */ +#undef GNULIB_SETENV + +/* Define to 1 when using the gnulib module sleep. */ +#undef GNULIB_SLEEP + +/* Define to 1 when using the gnulib module snprintf. */ +#undef GNULIB_SNPRINTF + +/* Define to 1 when using the gnulib module stat. */ +#undef GNULIB_STAT + +/* Define to 1 when using the gnulib module stpcpy. */ +#undef GNULIB_STPCPY + +/* Define to 1 when using the gnulib module strchrnul. */ +#undef GNULIB_STRCHRNUL + +/* Define to 1 when using the gnulib module strdup. */ +#undef GNULIB_STRDUP + +/* Define to 1 when using the gnulib module strerror. */ +#undef GNULIB_STRERROR + +/* Define to 1 when using the gnulib module strndup. */ +#undef GNULIB_STRNDUP + +/* Define to 1 when using the gnulib module strnlen. */ +#undef GNULIB_STRNLEN + +/* Define to 1 when using the gnulib module strtoll. */ +#undef GNULIB_STRTOLL + +/* Define to 1 when using the gnulib module strtoull. */ +#undef GNULIB_STRTOULL + +/* Define to 1 when using the gnulib module unlink. */ +#undef GNULIB_UNLINK + +/* Define to 1 when using the gnulib module unsetenv. */ +#undef GNULIB_UNSETENV + +/* Define to 1 when using the gnulib module vasprintf. */ +#undef GNULIB_VASPRINTF + +/* Define to 1 when using the gnulib module vsnprintf. */ +#undef GNULIB_VSNPRINTF + +/* Define to 1 when using the gnulib module wcrtomb. */ +#undef GNULIB_WCRTOMB + +/* Define to 1 when using the gnulib module wcwidth. */ +#undef GNULIB_WCWIDTH + +/* Define to 1 when using the gnulib module write. */ +#undef GNULIB_WRITE + +/* Define to the program name of gzip compressor program */ +#undef GZIP_PROGRAM + /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM @@ -131,6 +343,9 @@ */ #undef HAVE_ALLOCA_H +/* Define to 1 if you have the <bp-sym.h> header file. */ +#undef HAVE_BP_SYM_H + /* Define to 1 if you have the `btowc' function. */ #undef HAVE_BTOWC @@ -145,7 +360,7 @@ the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE -/* Define to 1 if your system has a working `chown' function. */ +/* Define to 1 if you have the `chown' function. */ #undef HAVE_CHOWN /* Define to 1 if you have the `chsize' function. */ @@ -164,10 +379,6 @@ */ #undef HAVE_DCGETTEXT -/* Define to 1 if you have the declaration of `canonicalize_file_name', and to - 0 if you don't. */ -#undef HAVE_DECL_CANONICALIZE_FILE_NAME - /* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_CLEARERR_UNLOCKED @@ -256,10 +467,16 @@ don't. */ #undef HAVE_DECL_MEMRCHR -/* Define if program_invocation_name is declared */ +/* Define to 1 if you have the declaration of `optreset', and to 0 if you + don't. */ +#undef HAVE_DECL_OPTRESET + +/* Define to 1 if you have the declaration of `program_invocation_name', and + to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_NAME -/* Define if program_invocation_short_name is declared */ +/* Define to 1 if you have the declaration of `program_invocation_short_name', + and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if @@ -363,6 +580,12 @@ /* Define to 1 if you have the `fchmodat' function. */ #undef HAVE_FCHMODAT +/* 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 @@ -381,6 +604,9 @@ /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO +/* Define to 1 if you have the `fstatat' function. */ +#undef HAVE_FSTATAT + /* Define to 1 if you have the `fsync' function. */ #undef HAVE_FSYNC @@ -399,9 +625,6 @@ /* Define to 1 if you have the `futimesat' function. */ #undef HAVE_FUTIMESAT -/* Define to 1 if you have the `getcwd' function. */ -#undef HAVE_GETCWD - /* Define to 1 if you have the `getdelim' function. */ #undef HAVE_GETDELIM @@ -417,6 +640,9 @@ /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE +/* Define to 1 if you have the `getppriv' function. */ +#undef HAVE_GETPPRIV + /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT @@ -459,6 +685,9 @@ /* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET +/* Define to 1 if you have the <langinfo.h> header file. */ +#undef HAVE_LANGINFO_H + /* Define if you have <langinfo.h> and nl_langinfo(YESEXPR). */ #undef HAVE_LANGINFO_YESEXPR @@ -489,6 +718,9 @@ /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT +/* Define to 1 if you have the `lutimes' function. */ +#undef HAVE_LUTIMES + /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC @@ -496,7 +728,11 @@ /* Define if the 'malloc' function is POSIX compliant. */ #undef HAVE_MALLOC_POSIX -/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ +/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including + config.h and <sys/mman.h>. */ +#undef HAVE_MAP_ANONYMOUS + +/* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the `mbsinit' function. */ @@ -508,6 +744,9 @@ /* Define to 1 if <wchar.h> declares mbstate_t. */ #undef HAVE_MBSTATE_T +/* Define to 1 if you have the `memchr' function. */ +#undef HAVE_MEMCHR + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H @@ -526,6 +765,9 @@ /* Define to 1 if you have the `mkfifo' function. */ #undef HAVE_MKFIFO +/* Define to 1 if you have the `mprotect' function. */ +#undef HAVE_MPROTECT + /* Define to 1 if you have the `nanotime' function. */ #undef HAVE_NANOTIME @@ -538,6 +780,9 @@ /* Define to 1 if you have the <net/errno.h> header file. */ #undef HAVE_NET_ERRNO_H +/* Define to 1 if you have the `nl_langinfo' function. */ +#undef HAVE_NL_LANGINFO + /* Define to 1 if libc includes obstacks. */ #undef HAVE_OBSTACK @@ -577,12 +822,379 @@ /* Define to 1 if you have the `rawmemchr' function. */ #undef HAVE_RAWMEMCHR +/* Define to 1 if alphasort is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ALPHASORT + +/* Define to 1 if atoll is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ATOLL + +/* Define to 1 if btowc is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_BTOWC + +/* Define to 1 if canonicalize_file_name is declared even after undefining + macros. */ +#undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME + +/* Define to 1 if chown is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_CHOWN + +/* Define to 1 if dirfd is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DIRFD + +/* Define to 1 if dprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DPRINTF + +/* Define to 1 if dup2 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DUP2 + +/* Define to 1 if dup3 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_DUP3 + +/* Define to 1 if endusershell is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ENDUSERSHELL + +/* Define to 1 if environ is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_ENVIRON + +/* Define to 1 if euidaccess is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_EUIDACCESS + +/* Define to 1 if faccessat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FACCESSAT + +/* Define to 1 if fchdir is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FCHDIR + +/* Define to 1 if fchmodat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FCHMODAT + +/* Define to 1 if fchownat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FCHOWNAT + +/* Define to 1 if fcntl is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FCNTL + +/* Define to 1 if fdopendir is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FDOPENDIR + +/* Define to 1 if fpurge is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FPURGE + +/* Define to 1 if fseeko is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FSEEKO + +/* Define to 1 if fstatat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FSTATAT + +/* Define to 1 if fsync is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FSYNC + +/* Define to 1 if ftello is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FTELLO + +/* Define to 1 if ftruncate is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FTRUNCATE + +/* Define to 1 if futimens is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_FUTIMENS + +/* Define to 1 if getcwd is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETCWD + +/* Define to 1 if getdelim is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETDELIM + +/* Define to 1 if getdomainname is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETDOMAINNAME + +/* Define to 1 if getdtablesize is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETDTABLESIZE + +/* Define to 1 if getgroups is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETGROUPS + +/* Define to 1 if gethostname is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETHOSTNAME + +/* Define to 1 if getline is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLINE + +/* Define to 1 if getloadavg is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLOADAVG + +/* Define to 1 if getlogin is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLOGIN + +/* Define to 1 if getlogin_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETLOGIN_R + +/* Define to 1 if getpagesize is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETPAGESIZE + +/* Define to 1 if getsubopt is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETSUBOPT + +/* Define to 1 if gettimeofday is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETTIMEOFDAY + +/* Define to 1 if getusershell is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_GETUSERSHELL + +/* Define to 1 if imaxabs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_IMAXABS + +/* Define to 1 if imaxdiv is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_IMAXDIV + +/* Define to 1 if initstat_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_INITSTAT_R + +/* Define to 1 if lchmod is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LCHMOD + +/* Define to 1 if lchown is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LCHOWN + +/* Define to 1 if link is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LINK + +/* Define to 1 if linkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LINKAT + +/* Define to 1 if lseek is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LSEEK + +/* Define to 1 if lstat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_LSTAT + +/* Define to 1 if mbrlen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBRLEN + +/* Define to 1 if mbrtowc is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBRTOWC + +/* Define to 1 if mbsinit is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBSINIT + +/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBSNRTOWCS + +/* Define to 1 if mbsrtowcs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MBSRTOWCS + +/* Define to 1 if memmem is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MEMMEM + +/* Define to 1 if mempcpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MEMPCPY + +/* Define to 1 if memrchr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MEMRCHR + +/* Define to 1 if mkdirat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKDIRAT + +/* Define to 1 if mkdtemp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKDTEMP + +/* Define to 1 if mkfifo is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKFIFO + +/* Define to 1 if mkfifoat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKFIFOAT + +/* Define to 1 if mknod is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKNOD + +/* Define to 1 if mknodat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKNODAT + +/* Define to 1 if mkostemp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKOSTEMP + +/* Define to 1 if mkostemps is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKOSTEMPS + +/* Define to 1 if mkstemp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKSTEMP + +/* Define to 1 if mkstemps is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_MKSTEMPS + +/* Define to 1 if nl_langinfo is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_NL_LANGINFO + +/* Define to 1 if openat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_OPENAT + +/* Define to 1 if pipe2 is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PIPE2 + +/* Define to 1 if popen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_POPEN + +/* Define to 1 if pread is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_PREAD + +/* Define to 1 if random_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RANDOM_R + +/* Define to 1 if rawmemchr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RAWMEMCHR + +/* Define to 1 if readlink is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_READLINK + +/* Define to 1 if readlinkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_READLINKAT + +/* Define to 1 if realpath is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_REALPATH + +/* Define to 1 if renameat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RENAMEAT + +/* Define to 1 if rmdir is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RMDIR + +/* Define to 1 if rpmatch is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_RPMATCH + +/* Define to 1 if scandir is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SCANDIR + +/* Define to 1 if setenv is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETENV + +/* Define to 1 if setstate_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETSTATE_R + +/* Define to 1 if setusershell is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SETUSERSHELL + +/* Define to 1 if sleep is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SLEEP + +/* Define to 1 if snprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SNPRINTF + +/* Define to 1 if srandom_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SRANDOM_R + +/* Define to 1 if stat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STAT + +/* Define to 1 if stpcpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STPCPY + +/* Define to 1 if stpncpy is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STPNCPY + +/* Define to 1 if strcasecmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRCASECMP + +/* Define to 1 if strcasestr is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRCASESTR + +/* Define to 1 if strchrnul is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRCHRNUL + +/* Define to 1 if strdup is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRDUP + +/* Define to 1 if strncasecmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRNCASECMP + +/* Define to 1 if strndup is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRNDUP + +/* Define to 1 if strnlen is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRNLEN + +/* Define to 1 if strpbrk is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRPBRK + +/* Define to 1 if strsep is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRSEP + +/* Define to 1 if strsignal is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRSIGNAL + +/* Define to 1 if strtod is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOD + +/* Define to 1 if strtoimax is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOIMAX + +/* Define to 1 if strtok_r is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOK_R + +/* Define to 1 if strtoll is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOLL + +/* Define to 1 if strtoull is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOULL + +/* Define to 1 if strtoumax is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRTOUMAX + +/* Define to 1 if strverscmp is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_STRVERSCMP + +/* Define to 1 if symlink is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SYMLINK + +/* Define to 1 if symlinkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_SYMLINKAT + +/* Define to 1 if unlink is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UNLINK + +/* Define to 1 if unlinkat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UNLINKAT + +/* Define to 1 if unsetenv is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UNSETENV + +/* Define to 1 if usleep is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_USLEEP + +/* Define to 1 if utimensat is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_UTIMENSAT + +/* Define to 1 if vdprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_VDPRINTF + +/* Define to 1 if vsnprintf is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_VSNPRINTF + +/* Define to 1 if wcrtomb is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCRTOMB + +/* Define to 1 if wcsnrtombs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSNRTOMBS + +/* Define to 1 if wcsrtombs is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCSRTOMBS + +/* Define to 1 if wctob is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCTOB + +/* Define to 1 if wcwidth is declared even after undefining macros. */ +#undef HAVE_RAW_DECL_WCWIDTH + /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK /* Define if the 'realloc' function is POSIX compliant. */ #undef HAVE_REALLOC_POSIX +/* Define to 1 if you have the `realpath' function. */ +#undef HAVE_REALPATH + +/* Define to 1 if you have the `rmdir' function. */ +#undef HAVE_RMDIR + /* Define to 1 if you have the `rpmatch' function. */ #undef HAVE_RPMATCH @@ -607,6 +1219,9 @@ /* Define to 1 if 'wint_t' is a signed integer type. */ #undef HAVE_SIGNED_WINT_T +/* Define to 1 if you have the `sleep' function. */ +#undef HAVE_SLEEP + /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF @@ -616,6 +1231,9 @@ /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H +/* Define to 1 if you have the <stddef.h> header file. */ +#undef HAVE_STDDEF_H + /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H @@ -656,9 +1274,12 @@ /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP -/* Define if you have the strndup() function and it works. */ +/* Define to 1 if you have the `strndup' function. */ #undef HAVE_STRNDUP +/* Define to 1 if you have the `strnlen' function. */ +#undef HAVE_STRNLEN + /* Define to 1 if you have the <stropts.h> header file. */ #undef HAVE_STROPTS_H @@ -762,6 +1383,9 @@ /* Define to 1 if you have the <sys/io/trioctl.h> header file. */ #undef HAVE_SYS_IO_TRIOCTL_H +/* Define to 1 if you have the <sys/mman.h> header file. */ +#undef HAVE_SYS_MMAN_H + /* Define to 1 if you have the <sys/mtio.h> header file. */ #undef HAVE_SYS_MTIO_H @@ -816,6 +1440,9 @@ /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the `unlinkat' function. */ +#undef HAVE_UNLINKAT + /* Define to 1 if you have the `unsetenv' function. */ #undef HAVE_UNSETENV @@ -828,18 +1455,15 @@ /* Define to 1 if you have the `utimes' function. */ #undef HAVE_UTIMES -/* Define if utimes accepts a null argument */ -#undef HAVE_UTIMES_NULL - /* Define to 1 if you have the <utime.h> header file. */ #undef HAVE_UTIME_H -/* Define to 1 if `utime(file, NULL)' sets file's timestamp to the present. */ -#undef HAVE_UTIME_NULL - /* Define to 1 if you have the `vasnprintf' function. */ #undef HAVE_VASNPRINTF +/* Define to 1 if you have the `vasprintf' function. */ +#undef HAVE_VASPRINTF + /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF @@ -861,6 +1485,9 @@ /* Define to 1 if you have the `wcslen' function. */ #undef HAVE_WCSLEN +/* Define to 1 if you have the `wcsnlen' function. */ +#undef HAVE_WCSNLEN + /* Define to 1 if you have the <wctype.h> header file. */ #undef HAVE_WCTYPE_H @@ -916,6 +1543,15 @@ slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK +/* Define to the program name of lzip compressor program */ +#undef LZIP_PROGRAM + +/* Define to the program name of lzma compressor program */ +#undef LZMA_PROGRAM + +/* Define to the program name of lzop compressor program */ +#undef LZOP_PROGRAM + /* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>. */ #undef MAJOR_IN_MKDEV @@ -927,6 +1563,9 @@ /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL +/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ +#undef MAP_ANONYMOUS + /* Define if the mbrtowc function has the NULL string argument bug. */ #undef MBRTOWC_NULL_ARG_BUG @@ -954,6 +1593,15 @@ /* Define to the full name of this package. */ #undef PACKAGE_NAME +/* String identifying the packager of this software */ +#undef PACKAGE_PACKAGER + +/* Packager info for bug reports (URL/e-mail/...) */ +#undef PACKAGE_PACKAGER_BUG_REPORTS + +/* Packager-specific version information */ +#undef PACKAGE_PACKAGER_VERSION + /* Define to the full name and version of this package. */ #undef PACKAGE_STRING @@ -969,13 +1617,38 @@ /* Define if <inttypes.h> exists and defines unusable PRI* macros. */ #undef PRI_MACROS_BROKEN +/* Define to the type that is the result of default argument promotions of + type mode_t. */ +#undef PROMOTED_MODE_T + /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX +/* Define to 1 if readlink fails to recognize a trailing slash. */ +#undef READLINK_TRAILING_SLASH_BUG + /* Define to the full path of your rsh, if any. */ #undef REMOTE_SHELL +/* Define to 1 if gnulib's fchdir() replacement is used. */ +#undef REPLACE_FCHDIR + +/* Define to 1 if stat needs help when passed a directory name with a trailing + slash */ +#undef REPLACE_FUNC_STAT_DIR + +/* Define to 1 if stat needs help when passed a file name with a trailing + slash */ +#undef REPLACE_FUNC_STAT_FILE + +/* Define if nl_langinfo exists but is overridden by gnulib. */ +#undef REPLACE_NL_LANGINFO + +/* Define to 1 if open() should work around the inability to open a directory. + */ +#undef REPLACE_OPEN_DIRECTORY + /* Define this to 1 if strerror is broken. */ #undef REPLACE_STRERROR @@ -991,7 +1664,9 @@ /* Define as the maximum value of type 'size_t', if the system doesn't define it. */ -#undef SIZE_MAX +#ifndef SIZE_MAX +# undef SIZE_MAX +#endif /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'size_t'. */ @@ -1014,6 +1689,9 @@ /* Define to 1 if strerror_r returns char *. */ #undef STRERROR_R_CHAR_P +/* Define to 1 if all 'time_t' values fit in a 'long int'. */ +#undef TIME_T_FITS_IN_LONG_INT + /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ #undef TIME_WITH_SYS_TIME @@ -1035,6 +1713,9 @@ /* Version number of package */ #undef VERSION +/* Define to 1 if unsetenv returns void instead of int. */ +#undef VOID_UNSETENV + /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX @@ -1043,14 +1724,12 @@ 'wint_t'. */ #undef WINT_T_SUFFIX +/* Define to the program name of xz compressor program */ +#undef XZ_PROGRAM + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif - /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ #undef _LARGEFILE_SOURCE @@ -1099,9 +1778,6 @@ used. */ #undef __GETOPT_PREFIX -/* Define to rpl_ if the openat replacement function should be used. */ -#undef __OPENAT_PREFIX - /* Ensure that <stdint.h> defines the limit macros, since gnulib's <inttypes.h> relies on them. */ #if defined __cplusplus && !defined __STDC_LIMIT_MACROS && GL_TRIGGER_STDC_LIMIT_MACROS @@ -1112,9 +1788,6 @@ /* Define to `unsigned' if <sys/types.h> does not define. */ #undef dev_t -/* Define to rpl_fchownat if the replacement function should be used. */ -#undef fchownat - /* Define to a replacement function name for fnmatch(). */ #undef fnmatch @@ -1167,9 +1840,6 @@ /* Type of minor device numbers. */ #undef minor_t -/* Define to rpl_mktime if the replacement function should be used. */ -#undef mktime - /* Define to `int' if <sys/types.h> does not define. */ #undef mode_t @@ -1219,9 +1889,6 @@ /* Define to rpl_re_syntax_options if the replacement should be used. */ #undef re_syntax_options -/* Define to a replacement function name for realpath(). */ -#undef realpath - /* Define to rpl_regcomp if the replacement should be used. */ #undef regcomp @@ -1259,18 +1926,18 @@ /* Define to `int' if <sys/types.h> doesn't define. */ #undef uid_t -/* Define as a marker that can be attached to function parameter declarations - for parameters that are not used. This helps to reduce warnings, such as - from GCC -Wunused-parameter. */ +/* Define as a marker that can be attached to declarations that might not + be used. This helps to reduce warnings, such as from + GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) -# define _UNUSED_PARAMETER_ __attribute__ ((__unused__)) +# define _GL_UNUSED __attribute__ ((__unused__)) #else -# define _UNUSED_PARAMETER_ +# define _GL_UNUSED #endif +/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name + is a misnomer outside of parameter lists. */ +#define _UNUSED_PARAMETER_ _GL_UNUSED -/* Define to rpl_utime if the replacement function should be used. */ -#undef utime - /* Define as a macro for copying va_list variables. */ #undef va_copy diff --git a/configure b/configure index 7745cfee36cf279c4796a98cfc17f7938c79da4b..07f25273c5b7d5716cd70bba007a4baa63b17fde 100755 --- a/configure +++ b/configure @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for GNU tar 1.22. +# Generated by GNU Autoconf 2.63 for GNU tar 1.23. # # Report bugs to <bug-tar@gnu.org>. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## @@ -17,7 +17,7 @@ DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -39,17 +39,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi # Support unset when possible. @@ -65,8 +93,6 @@ fi # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -89,7 +115,7 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi @@ -102,17 +128,10 @@ PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && @@ -134,7 +153,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -160,7 +179,7 @@ else as_have_required=no fi - if test $as_have_required = yes && (eval ": + if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } @@ -242,7 +261,7 @@ IFS=$as_save_IFS if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -263,7 +282,7 @@ _ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -343,10 +362,10 @@ fi if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi @@ -415,9 +434,10 @@ fi test \$exitcode = 0") || { echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. } @@ -453,7 +473,7 @@ test \$exitcode = 0") || { s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems @@ -481,7 +501,6 @@ case `echo -n x` in *) ECHO_N='-n';; esac - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -494,19 +513,22 @@ if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -531,10 +553,10 @@ else as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else case $1 in - -*)set "./$1";; + -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi @@ -574,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='GNU tar' PACKAGE_TARNAME='tar' -PACKAGE_VERSION='1.22' -PACKAGE_STRING='GNU tar 1.22' +PACKAGE_VERSION='1.23' +PACKAGE_STRING='GNU tar 1.23' PACKAGE_BUGREPORT='bug-tar@gnu.org' ac_unique_file="src/tar.c" @@ -617,497 +639,675 @@ ac_includes_default="\ ac_header_list= ac_func_list= +gl_fnmatch_required=POSIX +gl_getopt_required=POSIX +gl_getopt_required=POSIX gt_needs= -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -am__isrc -CYGPATH_W -PACKAGE -VERSION -ACLOCAL -AUTOCONF -AUTOMAKE -AUTOHEADER -MAKEINFO -install_sh -STRIP -INSTALL_STRIP_PROGRAM -mkdir_p -AWK -SET_MAKE -am__leading_dot -AMTAR -am__tar -am__untar -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -DEPDIR -am__include -am__quote -AMDEP_TRUE -AMDEP_FALSE -AMDEPBACKSLASH -CCDEPMODE -am__fastdepCC_TRUE -am__fastdepCC_FALSE -RANLIB -YACC -YFLAGS -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -CPP -GREP -EGREP -STDBOOL_H +ac_subst_vars='gltests_LTLIBOBJS +gltests_LIBOBJS +gl_LTLIBOBJS +gl_LIBOBJS +am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +BACKUP_SED_COND +BACKUP_SBIN_SCRIPTS +BACKUP_LIBEXEC_SCRIPTS +AUTOM4TE +POSUB +INTLLIBS +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +LTLIBICONV +LIBICONV +DEFAULT_QUOTING_STYLE +DEFAULT_BLOCKING +DEFAULT_ARCHIVE +DEFAULT_ARCHIVE_FORMAT +LIBOBJS +DEFAULT_RMT_COMMAND +DEFAULT_RMT_DIR +PU_RMT_PROG +LIB_SETSOCKOPT +LIBGNU_LTLIBDEPS +LIBGNU_LIBDEPS +REPLACE_ISWCNTRL +HAVE_WCTYPE_H +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H +NEXT_WCTYPE_H +HAVE_ISWCNTRL +HAVE_WINT_T +HAVE_WCHAR_H +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H +NEXT_WCHAR_H +HAVE_UNISTD_H +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H +NEXT_UNISTD_H +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC +TIME_H_DEFINES_STRUCT_TIMESPEC +NEXT_AS_FIRST_DIRECTIVE_TIME_H +NEXT_TIME_H +SYSEXITS_H +HAVE_SYSEXITS_H +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H +NEXT_SYSEXITS_H +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H +NEXT_SYS_STAT_H +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H +NEXT_STRINGS_H +NEXT_AS_FIRST_DIRECTIVE_STRING_H +NEXT_STRING_H +HAVE_DECL_STRNCASECMP +HAVE_STRCASECMP +HAVE_RANDOM_H +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H +NEXT_STDLIB_H +NEXT_AS_FIRST_DIRECTIVE_STDIO_H +NEXT_STDIO_H +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H +NEXT_STDDEF_H +STDDEF_H +HAVE_WCHAR_T +REPLACE_NULL +NEXT_AS_FIRST_DIRECTIVE_STDARG_H +NEXT_STDARG_H +STDARG_H +REPLACE_TIMEGM +REPLACE_STRPTIME +REPLACE_NANOSLEEP +REPLACE_MKTIME +REPLACE_LOCALTIME_R +GNULIB_TIMEGM +GNULIB_STRPTIME +GNULIB_NANOSLEEP +GNULIB_MKTIME +UNDEFINE_STRTOK_R +REPLACE_STRTOK_R +REPLACE_STRSIGNAL +REPLACE_STRNDUP +REPLACE_STRERROR +REPLACE_STRCASESTR +REPLACE_STRSTR +REPLACE_STRDUP +REPLACE_MEMMEM +REPLACE_MEMCHR +HAVE_STRVERSCMP +HAVE_DECL_STRSIGNAL +HAVE_DECL_STRERROR +HAVE_DECL_STRTOK_R +HAVE_STRCASESTR +HAVE_STRSEP +HAVE_STRPBRK +HAVE_DECL_STRNLEN +HAVE_DECL_STRNDUP +HAVE_DECL_STRDUP +HAVE_STRCHRNUL +HAVE_STPNCPY +HAVE_STPCPY +HAVE_RAWMEMCHR +HAVE_DECL_MEMRCHR +HAVE_MEMPCPY +HAVE_DECL_MEMMEM +HAVE_MBSLEN +GNULIB_STRVERSCMP +GNULIB_STRSIGNAL +GNULIB_STRERROR +GNULIB_MBSTOK_R +GNULIB_MBSSEP +GNULIB_MBSSPN +GNULIB_MBSPBRK +GNULIB_MBSCSPN +GNULIB_MBSCASESTR +GNULIB_MBSPCASECMP +GNULIB_MBSNCASECMP +GNULIB_MBSCASECMP +GNULIB_MBSSTR +GNULIB_MBSRCHR +GNULIB_MBSCHR +GNULIB_MBSNLEN +GNULIB_MBSLEN +GNULIB_STRTOK_R +GNULIB_STRCASESTR +GNULIB_STRSTR +GNULIB_STRSEP +GNULIB_STRPBRK +GNULIB_STRNLEN +GNULIB_STRNDUP +GNULIB_STRDUP +GNULIB_STRCHRNUL +GNULIB_STPNCPY +GNULIB_STPCPY +GNULIB_RAWMEMCHR +GNULIB_MEMRCHR +GNULIB_MEMPCPY +GNULIB_MEMMEM +GNULIB_MEMCHR +LOCALE_FR_UTF8 +LOCALE_ZH_CN +LOCALE_JA +LOCALCHARSET_TESTS_ENVIRONMENT +GLIBC21 +HAVE_LANGINFO_ERA +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_H +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H +NEXT_LANGINFO_H +REPLACE_NL_LANGINFO +HAVE_NL_LANGINFO +GNULIB_NL_LANGINFO +UINT64_MAX_EQ_ULONG_MAX +UINT32_MAX_LT_UINTMAX_MAX +INT64_MAX_EQ_LONG_MAX +INT32_MAX_LT_INTMAX_MAX +PRIPTR_PREFIX +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H +NEXT_INTTYPES_H +HAVE_DECL_STRTOUMAX +HAVE_DECL_STRTOIMAX +HAVE_DECL_IMAXDIV +HAVE_DECL_IMAXABS +GNULIB_STRTOUMAX +GNULIB_STRTOIMAX +GNULIB_IMAXDIV +GNULIB_IMAXABS +PRI_MACROS_BROKEN +STDINT_H +WINT_T_SUFFIX +WCHAR_T_SUFFIX +SIG_ATOMIC_T_SUFFIX +SIZE_T_SUFFIX +PTRDIFF_T_SUFFIX +HAVE_SIGNED_WINT_T +HAVE_SIGNED_WCHAR_T +HAVE_SIGNED_SIG_ATOMIC_T +BITSIZEOF_WINT_T +BITSIZEOF_WCHAR_T +BITSIZEOF_SIG_ATOMIC_T +BITSIZEOF_SIZE_T +BITSIZEOF_PTRDIFF_T +APPLE_UNIVERSAL_BUILD +HAVE_SYS_BITYPES_H +HAVE_SYS_INTTYPES_H +HAVE_STDINT_H +NEXT_AS_FIRST_DIRECTIVE_STDINT_H +NEXT_STDINT_H +HAVE_SYS_TYPES_H +HAVE_INTTYPES_H +HAVE_UNSIGNED_LONG_LONG_INT +HAVE_LONG_LONG_INT +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H +NEXT_SYS_TIME_H +REPLACE_GETTIMEOFDAY +HAVE_SYS_TIME_H +HAVE_STRUCT_TIMEVAL +HAVE_GETTIMEOFDAY +GNULIB_GETTIMEOFDAY +LTLIBINTL +LIBINTL +HAVE_GETOPT_H +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H +NEXT_GETOPT_H HAVE__BOOL -GL_COND_LIBTOOL_TRUE -GL_COND_LIBTOOL_FALSE -ALLOCA -ALLOCA_H -GETOPT_H -GNULIB_BTOWC -GNULIB_WCTOB -GNULIB_MBSINIT -GNULIB_MBRTOWC -GNULIB_MBRLEN -GNULIB_MBSRTOWCS -GNULIB_MBSNRTOWCS -GNULIB_WCRTOMB -GNULIB_WCSRTOMBS -GNULIB_WCSNRTOMBS -GNULIB_WCWIDTH -HAVE_BTOWC -HAVE_MBSINIT -HAVE_MBRTOWC -HAVE_MBRLEN -HAVE_MBSRTOWCS -HAVE_MBSNRTOWCS -HAVE_WCRTOMB -HAVE_WCSRTOMBS -HAVE_WCSNRTOMBS -HAVE_DECL_WCTOB -HAVE_DECL_WCWIDTH -REPLACE_MBSTATE_T -REPLACE_BTOWC -REPLACE_WCTOB -REPLACE_MBSINIT -REPLACE_MBRTOWC -REPLACE_MBRLEN -REPLACE_MBSRTOWCS -REPLACE_MBSNRTOWCS -REPLACE_WCRTOMB -REPLACE_WCSRTOMBS -REPLACE_WCWIDTH -WCHAR_H -LOCALE_FR -GNULIB_CHOWN -GNULIB_CLOSE -GNULIB_DUP2 -GNULIB_ENVIRON -GNULIB_EUIDACCESS -GNULIB_FCHDIR -GNULIB_FSYNC -GNULIB_FTRUNCATE -GNULIB_GETCWD -GNULIB_GETDOMAINNAME -GNULIB_GETDTABLESIZE -GNULIB_GETHOSTNAME -GNULIB_GETLOGIN_R -GNULIB_GETPAGESIZE -GNULIB_GETUSERSHELL -GNULIB_LCHOWN -GNULIB_LINK -GNULIB_LSEEK -GNULIB_READLINK -GNULIB_SLEEP -GNULIB_UNISTD_H_SIGPIPE -GNULIB_WRITE -HAVE_DUP2 -HAVE_EUIDACCESS -HAVE_FSYNC -HAVE_FTRUNCATE -HAVE_GETDOMAINNAME -HAVE_GETDTABLESIZE -HAVE_GETHOSTNAME -HAVE_GETPAGESIZE -HAVE_GETUSERSHELL -HAVE_LINK -HAVE_READLINK -HAVE_SLEEP -HAVE_DECL_ENVIRON -HAVE_DECL_GETLOGIN_R -HAVE_OS_H -HAVE_SYS_PARAM_H -REPLACE_CHOWN -REPLACE_CLOSE -REPLACE_FCHDIR -REPLACE_GETCWD -REPLACE_GETPAGESIZE -REPLACE_LCHOWN -REPLACE_LSEEK -REPLACE_WRITE -UNISTD_H_HAVE_WINSOCK2_H -LIB_CLOCK_GETTIME -GNULIB_DIRFD -GNULIB_SCANDIR -GNULIB_ALPHASORT -HAVE_DECL_DIRFD -HAVE_SCANDIR -HAVE_ALPHASORT -DIRENT_H -INCLUDE_NEXT -INCLUDE_NEXT_AS_FIRST_DIRECTIVE -PRAGMA_SYSTEM_HEADER -NEXT_DIRENT_H -NEXT_ERRNO_H -ERRNO_H -EMULTIHOP_HIDDEN -EMULTIHOP_VALUE -ENOLINK_HIDDEN -ENOLINK_VALUE -EOVERFLOW_HIDDEN -EOVERFLOW_VALUE -GNULIB_OPEN -REPLACE_OPEN -GNULIB_FPRINTF -GNULIB_FPRINTF_POSIX -GNULIB_PRINTF -GNULIB_PRINTF_POSIX -GNULIB_SNPRINTF -GNULIB_SPRINTF_POSIX -GNULIB_VFPRINTF -GNULIB_VFPRINTF_POSIX -GNULIB_VPRINTF -GNULIB_VPRINTF_POSIX -GNULIB_VSNPRINTF -GNULIB_VSPRINTF_POSIX -GNULIB_DPRINTF -GNULIB_VDPRINTF -GNULIB_VASPRINTF -GNULIB_OBSTACK_PRINTF -GNULIB_OBSTACK_PRINTF_POSIX -GNULIB_FOPEN -GNULIB_FREOPEN -GNULIB_FSEEK -GNULIB_FSEEKO -GNULIB_FTELL -GNULIB_FTELLO -GNULIB_FFLUSH -GNULIB_FCLOSE -GNULIB_FPUTC -GNULIB_PUTC -GNULIB_PUTCHAR -GNULIB_FPUTS -GNULIB_PUTS -GNULIB_FWRITE -GNULIB_GETDELIM -GNULIB_GETLINE -GNULIB_PERROR -GNULIB_STDIO_H_SIGPIPE -REPLACE_STDIO_WRITE_FUNCS -REPLACE_FPRINTF -REPLACE_VFPRINTF -REPLACE_PRINTF -REPLACE_VPRINTF -REPLACE_SNPRINTF -HAVE_DECL_SNPRINTF -REPLACE_VSNPRINTF -HAVE_DECL_VSNPRINTF -REPLACE_SPRINTF +STDBOOL_H +FNMATCH_H +FLOAT_H +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H +NEXT_FLOAT_H +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H +NEXT_FCNTL_H REPLACE_VSPRINTF -HAVE_DPRINTF -REPLACE_DPRINTF -HAVE_VDPRINTF +REPLACE_VSNPRINTF +REPLACE_VPRINTF +REPLACE_VFPRINTF REPLACE_VDPRINTF -HAVE_VASPRINTF REPLACE_VASPRINTF -HAVE_DECL_OBSTACK_PRINTF +REPLACE_STDIO_WRITE_FUNCS +REPLACE_SPRINTF +REPLACE_SNPRINTF +REPLACE_RENAMEAT +REPLACE_RENAME +REPLACE_REMOVE +REPLACE_PRINTF +REPLACE_POPEN +REPLACE_PERROR REPLACE_OBSTACK_PRINTF -REPLACE_FOPEN -REPLACE_FREOPEN -HAVE_FSEEKO -REPLACE_FSEEKO -REPLACE_FSEEK -HAVE_FTELLO +REPLACE_GETLINE +REPLACE_GETDELIM REPLACE_FTELLO REPLACE_FTELL +REPLACE_FSEEKO +REPLACE_FSEEK +REPLACE_FREOPEN +REPLACE_FPURGE +REPLACE_FPRINTF +REPLACE_FOPEN REPLACE_FFLUSH REPLACE_FCLOSE -HAVE_DECL_GETDELIM +REPLACE_DPRINTF +HAVE_VDPRINTF +HAVE_VASPRINTF +HAVE_RENAMEAT +HAVE_DPRINTF +HAVE_DECL_VSNPRINTF +HAVE_DECL_SNPRINTF +HAVE_DECL_OBSTACK_PRINTF HAVE_DECL_GETLINE -REPLACE_GETLINE -REPLACE_PERROR -LIB_CLOSE -NEXT_FCNTL_H -FCNTL_H -NEXT_FLOAT_H -FLOAT_H -FNMATCH_H -LIBINTL -LTLIBINTL -NEXT_SYS_TIME_H -HAVE_SYS_TIME_H -HAVE_STRUCT_TIMEVAL -REPLACE_GETTIMEOFDAY -SYS_TIME_H -HAVE_LONG_LONG_INT -HAVE_UNSIGNED_LONG_LONG_INT -HAVE_INTTYPES_H -HAVE_SYS_TYPES_H -NEXT_STDINT_H -HAVE_STDINT_H -HAVE_SYS_INTTYPES_H -HAVE_SYS_BITYPES_H -APPLE_UNIVERSAL_BUILD -BITSIZEOF_PTRDIFF_T -BITSIZEOF_SIZE_T -BITSIZEOF_SIG_ATOMIC_T -BITSIZEOF_WCHAR_T -BITSIZEOF_WINT_T -HAVE_SIGNED_SIG_ATOMIC_T -HAVE_SIGNED_WCHAR_T -HAVE_SIGNED_WINT_T -PTRDIFF_T_SUFFIX -SIZE_T_SUFFIX -SIG_ATOMIC_T_SUFFIX -WCHAR_T_SUFFIX -WINT_T_SUFFIX -STDINT_H -PRI_MACROS_BROKEN -GNULIB_IMAXABS -GNULIB_IMAXDIV -GNULIB_STRTOIMAX -GNULIB_STRTOUMAX -HAVE_DECL_IMAXABS -HAVE_DECL_IMAXDIV -HAVE_DECL_STRTOIMAX -HAVE_DECL_STRTOUMAX -NEXT_INTTYPES_H -PRIPTR_PREFIX -INT32_MAX_LT_INTMAX_MAX -INT64_MAX_EQ_LONG_MAX -UINT32_MAX_LT_UINTMAX_MAX -UINT64_MAX_EQ_ULONG_MAX -INTTYPES_H -GLIBC21 -LOCALCHARSET_TESTS_ENVIRONMENT -GNULIB_LCHMOD -GNULIB_LSTAT -HAVE_LCHMOD -REPLACE_LSTAT +HAVE_DECL_GETDELIM +HAVE_DECL_FPURGE +GNULIB_VSPRINTF_POSIX +GNULIB_VSNPRINTF +GNULIB_VPRINTF_POSIX +GNULIB_VPRINTF +GNULIB_VFPRINTF_POSIX +GNULIB_VFPRINTF +GNULIB_VDPRINTF +GNULIB_VASPRINTF +GNULIB_STDIO_H_SIGPIPE +GNULIB_SPRINTF_POSIX +GNULIB_SNPRINTF +GNULIB_RENAMEAT +GNULIB_RENAME +GNULIB_REMOVE +GNULIB_PUTS +GNULIB_PUTCHAR +GNULIB_PUTC +GNULIB_PRINTF_POSIX +GNULIB_PRINTF +GNULIB_POPEN +GNULIB_PERROR +GNULIB_OBSTACK_PRINTF_POSIX +GNULIB_OBSTACK_PRINTF +GNULIB_GETLINE +GNULIB_GETDELIM +GNULIB_FWRITE +GNULIB_FTELLO +GNULIB_FTELL +GNULIB_FSEEKO +GNULIB_FSEEK +GNULIB_FREOPEN +GNULIB_FPUTS +GNULIB_FPUTC +GNULIB_FPURGE +GNULIB_FPRINTF_POSIX +GNULIB_FPRINTF +GNULIB_FOPEN +GNULIB_FFLUSH +GNULIB_FCLOSE +GNULIB_DPRINTF +REPLACE_OPENAT +REPLACE_OPEN +REPLACE_FCNTL +HAVE_OPENAT +HAVE_FCNTL +GNULIB_OPENAT +GNULIB_OPEN +GNULIB_FCNTL +REPLACE_UTIMENSAT +REPLACE_STAT +REPLACE_MKNOD +REPLACE_MKFIFO REPLACE_MKDIR +REPLACE_LSTAT +REPLACE_FUTIMENS +REPLACE_FSTATAT +REPLACE_FSTAT +HAVE_UTIMENSAT +HAVE_MKNODAT +HAVE_MKNOD +HAVE_MKFIFOAT +HAVE_MKFIFO +HAVE_MKDIRAT +HAVE_LSTAT +HAVE_LCHMOD +HAVE_FUTIMENS +HAVE_FSTATAT +HAVE_FCHMODAT +GNULIB_UTIMENSAT +GNULIB_STAT +GNULIB_MKNODAT +GNULIB_MKNOD +GNULIB_MKFIFOAT +GNULIB_MKFIFO +GNULIB_MKDIRAT +GNULIB_LSTAT +GNULIB_LCHMOD +GNULIB_FUTIMENS +GNULIB_FSTATAT +GNULIB_FCHMODAT +EOVERFLOW_VALUE +EOVERFLOW_HIDDEN +ENOLINK_VALUE +ENOLINK_HIDDEN +EMULTIHOP_VALUE +EMULTIHOP_HIDDEN +ERRNO_H +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H +NEXT_ERRNO_H +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H +NEXT_DIRENT_H +PRAGMA_SYSTEM_HEADER +INCLUDE_NEXT_AS_FIRST_DIRECTIVE +INCLUDE_NEXT +REPLACE_OPENDIR +REPLACE_FDOPENDIR +REPLACE_CLOSEDIR +HAVE_ALPHASORT +HAVE_SCANDIR +HAVE_FDOPENDIR +HAVE_DECL_DIRFD +GNULIB_ALPHASORT +GNULIB_SCANDIR +GNULIB_FDOPENDIR +GNULIB_DIRFD +LIB_CLOCK_GETTIME +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS +UNISTD_H_HAVE_WINSOCK2_H +REPLACE_WRITE +REPLACE_USLEEP +REPLACE_UNLINKAT +REPLACE_UNLINK +REPLACE_SYMLINK +REPLACE_SLEEP +REPLACE_RMDIR +REPLACE_READLINK +REPLACE_PREAD +REPLACE_LSEEK +REPLACE_LINKAT +REPLACE_LINK +REPLACE_LCHOWN +REPLACE_GETPAGESIZE +REPLACE_GETGROUPS +REPLACE_GETCWD +REPLACE_FCHOWNAT +REPLACE_FCHDIR +REPLACE_DUP2 +REPLACE_DUP +REPLACE_CLOSE +REPLACE_CHOWN +HAVE_USLEEP +HAVE_UNLINKAT +HAVE_SYS_PARAM_H +HAVE_OS_H +HAVE_DECL_GETLOGIN_R +HAVE_DECL_ENVIRON +HAVE_SYMLINKAT +HAVE_SYMLINK +HAVE_SLEEP +HAVE_READLINKAT +HAVE_READLINK +HAVE_PREAD +HAVE_PIPE2 +HAVE_LINKAT +HAVE_LINK +HAVE_LCHOWN +HAVE_GETUSERSHELL +HAVE_GETPAGESIZE +HAVE_GETLOGIN +HAVE_GETHOSTNAME +HAVE_GETGROUPS +HAVE_GETDTABLESIZE +HAVE_GETDOMAINNAME +HAVE_FTRUNCATE +HAVE_FSYNC +HAVE_FCHOWNAT +HAVE_FACCESSAT +HAVE_EUIDACCESS +HAVE_DUP3 +HAVE_DUP2 +HAVE_CHOWN +GNULIB_WRITE +GNULIB_USLEEP +GNULIB_UNLINKAT +GNULIB_UNLINK +GNULIB_UNISTD_H_SIGPIPE +GNULIB_UNISTD_H_GETOPT +GNULIB_SYMLINKAT +GNULIB_SYMLINK +GNULIB_SLEEP +GNULIB_RMDIR +GNULIB_READLINKAT +GNULIB_READLINK +GNULIB_PREAD +GNULIB_PIPE2 +GNULIB_LSEEK +GNULIB_LINKAT +GNULIB_LINK +GNULIB_LCHOWN +GNULIB_GETUSERSHELL +GNULIB_GETPAGESIZE +GNULIB_GETLOGIN_R +GNULIB_GETLOGIN +GNULIB_GETHOSTNAME +GNULIB_GETGROUPS +GNULIB_GETDTABLESIZE +GNULIB_GETDOMAINNAME +GNULIB_GETCWD +GNULIB_FTRUNCATE +GNULIB_FSYNC +GNULIB_FCHOWNAT +GNULIB_FCHDIR +GNULIB_FACCESSAT +GNULIB_EUIDACCESS +GNULIB_ENVIRON +GNULIB_DUP3 +GNULIB_DUP2 +GNULIB_CLOSE +GNULIB_CHOWN +REPLACE_UNSETENV +REPLACE_STRTOD +REPLACE_SETENV +REPLACE_REALPATH +REPLACE_PUTENV +REPLACE_MKSTEMP +REPLACE_CANONICALIZE_FILE_NAME +HAVE_UNSETENV +HAVE_SYS_LOADAVG_H +HAVE_STRUCT_RANDOM_DATA +HAVE_STRTOULL +HAVE_STRTOLL +HAVE_STRTOD +HAVE_SETENV +HAVE_RPMATCH +HAVE_REALPATH +HAVE_REALLOC_POSIX +HAVE_RANDOM_R +HAVE_MKSTEMPS +HAVE_MKOSTEMPS +HAVE_MKOSTEMP +HAVE_MKDTEMP HAVE_MALLOC_POSIX -GNULIB_MALLOC_POSIX +HAVE_GETSUBOPT +HAVE_DECL_GETLOADAVG +HAVE_CANONICALIZE_FILE_NAME +HAVE_CALLOC_POSIX +HAVE_ATOLL +GNULIB_UNSETENV +GNULIB_STRTOULL +GNULIB_STRTOLL +GNULIB_STRTOD +GNULIB_SETENV +GNULIB_RPMATCH +GNULIB_REALPATH GNULIB_REALLOC_POSIX +GNULIB_RANDOM_R +GNULIB_PUTENV +GNULIB_MKSTEMPS +GNULIB_MKSTEMP +GNULIB_MKOSTEMPS +GNULIB_MKOSTEMP +GNULIB_MKDTEMP +GNULIB_MALLOC_POSIX +GNULIB_GETSUBOPT +GNULIB_GETLOADAVG +GNULIB_CANONICALIZE_FILE_NAME GNULIB_CALLOC_POSIX GNULIB_ATOLL -GNULIB_GETLOADAVG -GNULIB_GETSUBOPT -GNULIB_MKDTEMP -GNULIB_MKSTEMP -GNULIB_PUTENV -GNULIB_RANDOM_R -GNULIB_RPMATCH -GNULIB_SETENV -GNULIB_STRTOD -GNULIB_STRTOLL -GNULIB_STRTOULL -GNULIB_UNSETENV -HAVE_ATOLL -HAVE_CALLOC_POSIX -HAVE_GETSUBOPT -HAVE_MKDTEMP -HAVE_REALLOC_POSIX -HAVE_RANDOM_R -HAVE_RPMATCH -HAVE_SETENV -HAVE_STRTOD -HAVE_STRTOLL -HAVE_STRTOULL -HAVE_STRUCT_RANDOM_DATA -HAVE_SYS_LOADAVG_H -HAVE_UNSETENV -HAVE_DECL_GETLOADAVG -REPLACE_MKSTEMP -REPLACE_PUTENV -REPLACE_STRTOD -VOID_UNSETENV -LOCALE_JA -LOCALE_FR_UTF8 -LOCALE_ZH_CN -GNULIB_MEMMEM -GNULIB_MEMPCPY -GNULIB_MEMRCHR -GNULIB_RAWMEMCHR -GNULIB_STPCPY -GNULIB_STPNCPY -GNULIB_STRCHRNUL -GNULIB_STRDUP -GNULIB_STRNDUP -GNULIB_STRNLEN -GNULIB_STRPBRK -GNULIB_STRSEP -GNULIB_STRSTR -GNULIB_STRCASESTR -GNULIB_STRTOK_R -GNULIB_MBSLEN -GNULIB_MBSNLEN -GNULIB_MBSCHR -GNULIB_MBSRCHR -GNULIB_MBSSTR -GNULIB_MBSCASECMP -GNULIB_MBSNCASECMP -GNULIB_MBSPCASECMP -GNULIB_MBSCASESTR -GNULIB_MBSCSPN -GNULIB_MBSPBRK -GNULIB_MBSSPN -GNULIB_MBSSEP -GNULIB_MBSTOK_R -GNULIB_STRERROR -GNULIB_STRSIGNAL -GNULIB_STRVERSCMP -HAVE_DECL_MEMMEM -HAVE_MEMPCPY -HAVE_DECL_MEMRCHR -HAVE_RAWMEMCHR -HAVE_STPCPY -HAVE_STPNCPY -HAVE_STRCHRNUL -HAVE_DECL_STRDUP -HAVE_STRNDUP -HAVE_DECL_STRNDUP -HAVE_DECL_STRNLEN -HAVE_STRPBRK -HAVE_STRSEP -HAVE_STRCASESTR -HAVE_DECL_STRTOK_R -HAVE_DECL_STRERROR -HAVE_DECL_STRSIGNAL -HAVE_STRVERSCMP -REPLACE_MEMMEM -REPLACE_STRDUP -REPLACE_STRSTR -REPLACE_STRCASESTR -REPLACE_STRERROR -REPLACE_STRSIGNAL -STDARG_H -NEXT_STDARG_H -NEXT_STDIO_H -NEXT_STDLIB_H -HAVE_RANDOM_H -HAVE_STRCASECMP -HAVE_DECL_STRNCASECMP -NEXT_STRING_H -NEXT_STRINGS_H -HAVE_LSTAT -NEXT_SYS_STAT_H -SYS_STAT_H -NEXT_SYSEXITS_H -HAVE_SYSEXITS_H -SYSEXITS_H -REPLACE_LOCALTIME_R -REPLACE_NANOSLEEP -REPLACE_STRPTIME -REPLACE_TIMEGM -NEXT_TIME_H -TIME_H_DEFINES_STRUCT_TIMESPEC -SYS_TIME_H_DEFINES_STRUCT_TIMESPEC -NEXT_UNISTD_H -HAVE_UNISTD_H -HAVE_WINT_T -HAVE_WCHAR_H -NEXT_WCHAR_H -HAVE_ISWCNTRL -NEXT_WCTYPE_H -HAVE_WCTYPE_H -WCTYPE_H -REPLACE_ISWCNTRL -LIBTAR_LIBDEPS -LIBTAR_LTLIBDEPS -LIB_SETSOCKOPT -PU_RMT_PROG -DEFAULT_RMT_DIR -DEFAULT_RMT_COMMAND -LIBOBJS -DEFAULT_ARCHIVE_FORMAT -DEFAULT_ARCHIVE -DEFAULT_BLOCKING -DEFAULT_QUOTING_STYLE -LIBICONV -LTLIBICONV -USE_NLS -GETTEXT_MACRO_VERSION -MSGFMT -GMSGFMT -MSGFMT_015 -GMSGFMT_015 -XGETTEXT -XGETTEXT_015 -MSGMERGE -XGETTEXT_EXTRA_OPTIONS -INTL_MACOSX_LIBS -INTLLIBS -POSUB -AUTOM4TE -BACKUP_LIBEXEC_SCRIPTS -BACKUP_SBIN_SCRIPTS -BACKUP_SED_COND -LTLIBOBJS -gl_LIBOBJS -gl_LTLIBOBJS -gltests_LIBOBJS -gltests_LTLIBOBJS' +LOCALE_FR +REPLACE_WCWIDTH +REPLACE_WCSNRTOMBS +REPLACE_WCSRTOMBS +REPLACE_WCRTOMB +REPLACE_MBSNRTOWCS +REPLACE_MBSRTOWCS +REPLACE_MBRLEN +REPLACE_MBRTOWC +REPLACE_MBSINIT +REPLACE_WCTOB +REPLACE_BTOWC +REPLACE_MBSTATE_T +HAVE_DECL_WCWIDTH +HAVE_DECL_WCTOB +HAVE_WCSNRTOMBS +HAVE_WCSRTOMBS +HAVE_WCRTOMB +HAVE_MBSNRTOWCS +HAVE_MBSRTOWCS +HAVE_MBRLEN +HAVE_MBRTOWC +HAVE_MBSINIT +HAVE_BTOWC +GNULIB_WCWIDTH +GNULIB_WCSNRTOMBS +GNULIB_WCSRTOMBS +GNULIB_WCRTOMB +GNULIB_MBSNRTOWCS +GNULIB_MBSRTOWCS +GNULIB_MBRLEN +GNULIB_MBRTOWC +GNULIB_MBSINIT +GNULIB_WCTOB +GNULIB_BTOWC +GETOPT_H +ALLOCA_H +ALLOCA +GL_COND_LIBTOOL_FALSE +GL_COND_LIBTOOL_TRUE +EGREP +GREP +CPP +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +YFLAGS +YACC +RANLIB +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_largefile +with_included_regex +with_packager +with_packager_version +with_packager_bug_reports +with_rmt +with_compress +with_gzip +with_bzip2 +with_lzip +with_lzma +with_lzop +with_xz +with_gnu_ld +enable_rpath +with_libiconv_prefix +enable_nls +with_libintl_prefix +enable_backup_scripts +' ac_precious_vars='build_alias host_alias target_alias @@ -1129,6 +1329,8 @@ DEFAULT_QUOTING_STYLE' # Initialize some variables set by options. ac_init_help= ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null @@ -1227,13 +1429,21 @@ do datarootdir=$ac_optarg ;; -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; @@ -1246,13 +1456,21 @@ do dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -1443,22 +1661,38 @@ do ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. @@ -1478,7 +1712,7 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -1487,16 +1721,16 @@ Try \`$0 --help' for more information." >&2 ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; @@ -1505,22 +1739,38 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi -# Be sure to have absolute directory names. +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done @@ -1535,7 +1785,7 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -1551,10 +1801,10 @@ test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 + { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } @@ -1562,12 +1812,12 @@ test "X$ac_ls_di" = "X$ac_pwd_ls_di" || if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1594,12 +1844,12 @@ else fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. @@ -1626,7 +1876,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 GNU tar 1.22 to adapt to many kinds of systems. +\`configure' configures GNU tar 1.23 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1648,9 +1898,9 @@ Configuration: Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -1660,25 +1910,25 @@ for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/tar] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/tar] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1696,13 +1946,16 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU tar 1.22:";; + short | recursive ) echo "Configuration of GNU tar 1.23:";; esac cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-largefile omit support for large files @@ -1714,14 +1967,22 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-included-regex - don't compile regex; this is the default on 32-bit - systems with recent-enough versions of the GNU C - Library (use with caution on other systems). On - systems with 64-bit ptrdiff_t and 32-bit int, - --with-included-regex is the default, in case regex - functions operate on very long strings (>2GB) + don't compile regex; this is the default on systems + with recent-enough versions of the GNU C Library + (use with caution on other systems). + --with-packager String identifying the packager of this software + --with-packager-version Packager-specific version information + --with-packager-bug-reports + Packager info for bug reports (URL/e-mail/...) --with-rmt=FILE Use FILE as the default `rmt' program. Do not build included copy of `rmt'. + --with-compress=PROG use PROG as compress compressor program + --with-gzip=PROG use PROG as gzip compressor program + --with-bzip2=PROG use PROG as bzip2 compressor program + --with-lzip=PROG use PROG as lzip compressor program + --with-lzma=PROG use PROG as lzma compressor program + --with-lzop=PROG use PROG as lzop compressor program + --with-xz=PROG use PROG as xz compressor program --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir @@ -1768,15 +2029,17 @@ fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1812,7 +2075,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1821,11 +2084,11 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU tar configure 1.22 -generated by GNU Autoconf 2.61 +GNU tar configure 1.23 +generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1835,8 +2098,8 @@ 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 GNU tar $as_me 1.22, which was -generated by GNU Autoconf 2.61. Invocation command line was +It was created by GNU tar $as_me 1.23, which was +generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -1872,7 +2135,7 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" + $as_echo "PATH: $as_dir" done IFS=$as_save_IFS @@ -1907,7 +2170,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; @@ -1959,11 +2222,12 @@ _ASBOX case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac @@ -1993,9 +2257,9 @@ _ASBOX do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo @@ -2010,9 +2274,9 @@ _ASBOX do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -2028,8 +2292,8 @@ _ASBOX echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2071,21 +2335,24 @@ _ACEOF # Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" + ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site fi -shift -for ac_site_file +for ac_site_file in "$ac_site_file1" "$ac_site_file2" do + test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi @@ -2095,16 +2362,16 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -2134,12 +2401,15 @@ ac_header_list="$ac_header_list linewrap.h" ac_func_list="$ac_func_list pathconf" ac_func_list="$ac_func_list btowc" ac_func_list="$ac_func_list canonicalize_file_name" -ac_func_list="$ac_func_list getcwd" -ac_func_list="$ac_func_list readlink" +ac_func_list="$ac_func_list realpath" +ac_func_list="$ac_func_list chown" +ac_func_list="$ac_func_list fchown" ac_header_list="$ac_header_list dirent.h" +ac_func_list="$ac_func_list fdopendir" ac_func_list="$ac_func_list dup2" ac_header_list="$ac_header_list errno.h" ac_func_list="$ac_func_list fchdir" +ac_func_list="$ac_func_list fcntl" ac_header_list="$ac_header_list float.h" ac_func_list="$ac_func_list isblank" ac_func_list="$ac_func_list iswctype" @@ -2149,27 +2419,39 @@ ac_func_list="$ac_func_list wmemchr" ac_func_list="$ac_func_list wmemcpy" ac_func_list="$ac_func_list wmempcpy" ac_header_list="$ac_header_list wctype.h" +gl_fnmatch_required=GNU ac_header_list="$ac_header_list stdio_ext.h" ac_func_list="$ac_func_list __fpending" ac_func_list="$ac_func_list ftruncate" +ac_func_list="$ac_func_list getdelim" +ac_func_list="$ac_func_list getdtablesize" +gl_getopt_required=GNU +ac_header_list="$ac_header_list getopt.h" ac_func_list="$ac_func_list gettimeofday" ac_func_list="$ac_func_list nanotime" ac_header_list="$ac_header_list stdint.h" ac_header_list="$ac_header_list wchar.h" ac_header_list="$ac_header_list inttypes.h" +ac_header_list="$ac_header_list langinfo.h" +ac_func_list="$ac_func_list lchmod" ac_func_list="$ac_func_list lstat" ac_func_list="$ac_func_list mbsinit" ac_func_list="$ac_func_list mbrtowc" +ac_header_list="$ac_header_list sys/mman.h" +ac_func_list="$ac_func_list mprotect" ac_func_list="$ac_func_list alarm" -ac_func_list="$ac_func_list lchmod" -ac_func_list="$ac_func_list fdopendir" +ac_func_list="$ac_func_list nl_langinfo" +ac_func_list="$ac_func_list readlink" ac_func_list="$ac_func_list wcscoll" ac_func_list="$ac_func_list setenv" +ac_func_list="$ac_func_list sleep" ac_header_list="$ac_header_list stdarg.h" +ac_header_list="$ac_header_list stddef.h" ac_header_list="$ac_header_list stdio.h" ac_header_list="$ac_header_list stdlib.h" ac_header_list="$ac_header_list sys/socket.h" ac_header_list="$ac_header_list strings.h" +ac_func_list="$ac_func_list strndup" ac_header_list="$ac_header_list sys/stat.h" ac_header_list="$ac_header_list sysexits.h" ac_header_list="$ac_header_list time.h" @@ -2180,6 +2462,7 @@ ac_func_list="$ac_func_list futimes" ac_func_list="$ac_func_list futimesat" ac_func_list="$ac_func_list futimens" ac_func_list="$ac_func_list utimensat" +ac_func_list="$ac_func_list lutimes" ac_func_list="$ac_func_list vasnprintf" ac_func_list="$ac_func_list wcrtomb" ac_func_list="$ac_func_list iswcntrl" @@ -2201,29 +2484,38 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -2233,10 +2525,12 @@ echo "$as_me: current value: $ac_new_val" >&2;} fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi @@ -2289,8 +2583,8 @@ for ac_dir in build-aux "$srcdir"/build-aux; do fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&2;} { (exit 1); exit 1; }; } fi @@ -2303,10 +2597,10 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -ac_config_headers="$ac_config_headers config.h:config.hin" +ac_config_headers="$ac_config_headers config.h" -am__api_version='1.10' +am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2321,11 +2615,12 @@ am__api_version='1.10' # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -2354,17 +2649,29 @@ case $as_dir/ in # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done done ;; esac + done IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then @@ -2377,8 +2684,8 @@ fi INSTALL=$ac_install_sh fi fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2388,21 +2695,38 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 +$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} + { (exit 1); exit 1; }; };; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 +$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} + { (exit 1); exit 1; }; };; +esac + # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` + set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ @@ -2412,9 +2736,9 @@ if ( # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken + { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi @@ -2425,45 +2749,158 @@ then # Ok. : else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! + { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! +$as_echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. +# Double any \ or $. # By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm -f conftest.sed +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac fi -{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin @@ -2498,8 +2935,9 @@ fi MKDIR_P="$ac_install_sh -d" fi fi -{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -echo "${ECHO_T}$MKDIR_P" >&6; } +{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + mkdir_p="$MKDIR_P" case $mkdir_p in @@ -2511,10 +2949,10 @@ for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. @@ -2527,7 +2965,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2538,22 +2976,23 @@ fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6; } + { $as_echo "$as_me:$LINENO: result: $AWK" >&5 +$as_echo "$AWK" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi test -n "$AWK" && break done -{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh @@ -2570,12 +3009,12 @@ esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2588,14 +3027,26 @@ else fi rmdir .tst 2>/dev/null +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=1;; +esac +AM_BACKSLASH='\' + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi @@ -2612,7 +3063,7 @@ fi # Define the identity of the package. PACKAGE='tar' - VERSION='1.22' + VERSION='1.23' cat >>confdefs.h <<_ACEOF @@ -2640,112 +3091,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. @@ -2753,8 +3098,8 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AMTAR=${AMTAR-"${am_missing_run}tar"} -{ echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5 -echo $ECHO_N "checking how to create a ustar tar archive... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar plaintar pax cpio none' _am_tools=${am_cv_prog_tar_ustar-$_am_tools} @@ -2827,17 +3172,31 @@ done rm -rf conftest.dir if test "${am_cv_prog_tar_ustar+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_cv_prog_tar_ustar=$_am_tool fi -{ echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5 -echo "${ECHO_T}$am_cv_prog_tar_ustar" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + +# Enable silent rules by default: +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then + enableval=$enable_silent_rules; +fi +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +AM_BACKSLASH='\' ac_ext=c @@ -2848,10 +3207,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2864,7 +3223,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2875,11 +3234,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2888,10 +3247,10 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2904,7 +3263,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2915,11 +3274,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -2927,12 +3286,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2945,10 +3300,10 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2961,7 +3316,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2972,11 +3327,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2985,10 +3340,10 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -3006,7 +3361,7 @@ do continue fi ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3029,11 +3384,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3044,10 +3399,10 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -3060,7 +3415,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3071,11 +3426,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3088,10 +3443,10 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -3104,7 +3459,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3115,11 +3470,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3131,12 +3486,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3146,44 +3497,50 @@ fi fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF @@ -3202,27 +3559,22 @@ main () } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + ac_rmfiles= for ac_file in $ac_files do case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done @@ -3233,10 +3585,11 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' @@ -3247,7 +3600,7 @@ for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most @@ -3274,25 +3627,27 @@ else ac_file='' fi -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables +$as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } + { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then @@ -3301,49 +3656,53 @@ if test "$cross_compiling" != yes; then *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. +$as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi fi fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will @@ -3352,31 +3711,33 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3399,40 +3760,43 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3458,20 +3822,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no @@ -3481,15 +3846,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes @@ -3516,20 +3885,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" @@ -3554,20 +3924,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag @@ -3593,20 +3964,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -3621,8 +3993,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -3638,10 +4010,10 @@ else CFLAGS= fi fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC @@ -3712,20 +4084,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -3741,15 +4114,15 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac @@ -3766,40 +4139,40 @@ ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: - @echo done + @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac fi -{ echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6; } +{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. @@ -3823,10 +4196,10 @@ fi depcc="$CC" am_compiler_list= -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up @@ -3851,6 +4224,11 @@ else if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and @@ -3868,7 +4246,17 @@ else done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested @@ -3878,19 +4266,23 @@ else break fi ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; none) break ;; esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message @@ -3914,8 +4306,8 @@ else fi fi -{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if @@ -3933,10 +4325,10 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -3949,7 +4341,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3960,11 +4352,11 @@ fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - { echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6; } + { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3973,10 +4365,10 @@ if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. @@ -3989,7 +4381,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4000,11 +4392,11 @@ fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -4012,12 +4404,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -4030,10 +4418,10 @@ for ac_prog in 'bison -y' byacc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_YACC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -4046,7 +4434,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_YACC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4057,11 +4445,11 @@ fi fi YACC=$ac_cv_prog_YACC if test -n "$YACC"; then - { echo "$as_me:$LINENO: result: $YACC" >&5 -echo "${ECHO_T}$YACC" >&6; } + { $as_echo "$as_me:$LINENO: result: $YACC" >&5 +$as_echo "$YACC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4070,16 +4458,16 @@ done test -n "$YACC" || YACC="yacc" if test "x$CC" != xcc; then - { echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 -echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 +$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else - { echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 -echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 +$as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi -set dummy $CC; ac_cc=`echo $2 | +set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4105,19 +4493,21 @@ if { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -f conftest2.$ac_objext && { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes @@ -4128,10 +4518,11 @@ then *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* @@ -4139,19 +4530,21 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -f conftest2.$ac_objext && { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # cc works too. @@ -4169,11 +4562,11 @@ rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } cat >>confdefs.h <<\_ACEOF #define NO_MINUS_C_MINUS_O 1 @@ -4184,8 +4577,9 @@ fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC -ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. @@ -4195,42 +4589,36 @@ if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then fi - -cat >>confdefs.h <<\_ACEOF -#define _GNU_SOURCE 1 -_ACEOF - - # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi -{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -echo "$as_me: error: invalid value of canonical build" >&2;} +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build @@ -4247,27 +4635,27 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -echo "$as_me: error: invalid value of canonical host" >&2;} +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host @@ -4290,15 +4678,15 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" @@ -4330,20 +4718,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. @@ -4367,13 +4756,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err @@ -4381,7 +4771,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. @@ -4406,8 +4796,8 @@ fi else ac_cv_prog_CPP=$CPP fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -4435,20 +4825,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. @@ -4472,13 +4863,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err @@ -4486,7 +4878,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. @@ -4502,11 +4894,13 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi ac_ext=c @@ -4516,42 +4910,37 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else + if test -z "$GREP"; then ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'GREP' >> "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -4566,74 +4955,60 @@ case `"$ac_path_GREP" --version 2>&1` in rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_GREP_found && break 3 + $ac_path_GREP_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_GREP=$GREP fi - fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -echo "${ECHO_T}$ac_cv_path_GREP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$EGREP"; then ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'EGREP' >> "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -4648,40 +5023,31 @@ case `"$ac_path_EGREP" --version 2>&1` in rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_EGREP_found && break 3 + $ac_path_EGREP_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_EGREP=$EGREP fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4708,20 +5074,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no @@ -4813,37 +5180,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @@ -4865,11 +5235,11 @@ fi for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4887,20 +5257,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" @@ -4908,12 +5279,15 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -4925,17 +5299,17 @@ done if test "${ac_cv_header_minix_config_h+set}" = set; then - { echo "$as_me:$LINENO: checking for minix/config.h" >&5 -echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 +$as_echo_n "checking for minix/config.h... " >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +$as_echo "$ac_cv_header_minix_config_h" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking minix/config.h usability" >&5 -echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5 +$as_echo_n "checking minix/config.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4951,32 +5325,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking minix/config.h presence" >&5 -echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5 +$as_echo_n "checking minix/config.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4990,51 +5365,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -5043,18 +5419,18 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for minix/config.h" >&5 -echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 +$as_echo_n "checking for minix/config.h... " >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_minix_config_h=$ac_header_preproc fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +$as_echo "$ac_cv_header_minix_config_h" >&6; } fi -if test $ac_cv_header_minix_config_h = yes; then +if test "x$ac_cv_header_minix_config_h" = x""yes; then MINIX=yes else MINIX= @@ -5091,10 +5467,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 -echo $ECHO_N "checking whether it is safe to define __EXTENSIONS__... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if test "${ac_cv_safe_to_define___extensions__+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -5103,8 +5479,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -# define __EXTENSIONS__ 1 - $ac_includes_default +# define __EXTENSIONS__ 1 + $ac_includes_default int main () { @@ -5119,20 +5495,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_safe_to_define___extensions__=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_safe_to_define___extensions__=no @@ -5140,8 +5517,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 -echo "${ECHO_T}$ac_cv_safe_to_define___extensions__" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && cat >>confdefs.h <<\_ACEOF #define __EXTENSIONS__ 1 @@ -5171,10 +5548,10 @@ _ACEOF -{ echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5 +$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if test "${ac_cv_sys_largefile_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF @@ -5183,11 +5560,13 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <stdio.h> +#include <sys/types.h> /* for off_t */ + #include <stdio.h> int main () { -return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0); +int (*fp) (FILE *, off_t, int) = fseeko; + return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } @@ -5198,26 +5577,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_sys_largefile_source=no; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF @@ -5227,11 +5610,13 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 -#include <stdio.h> +#include <sys/types.h> /* for off_t */ + #include <stdio.h> int main () { -return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0); +int (*fp) (FILE *, off_t, int) = fseeko; + return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } @@ -5242,34 +5627,38 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_sys_largefile_source=1; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5 +$as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) @@ -5278,7 +5667,7 @@ cat >>confdefs.h <<_ACEOF _ACEOF ;; esac -rm -f conftest* +rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. @@ -5293,10 +5682,10 @@ fi case $ac_cv_prog_cc_stdc in no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; - *) { echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C99... $ECHO_C" >&6; } + *) { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if test "${ac_cv_prog_cc_c99+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC @@ -5443,7 +5832,7 @@ main () return 0; } _ACEOF -for ac_arg in '' -std=gnu99 -c99 -qlanglvl=extc99 +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext @@ -5452,20 +5841,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c99=$ac_arg else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5481,23 +5871,23 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c99" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else - { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC @@ -5568,20 +5958,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5597,15 +5988,15 @@ fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 @@ -5618,19 +6009,19 @@ fi ;; esac - { echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 -echo $ECHO_N "checking for $CC option to accept ISO Standard C... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 +$as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi case $ac_cv_prog_cc_stdc in - no) { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; - '') { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; - *) { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6; } ;; + no) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + '') { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + *) { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac @@ -5649,10 +6040,10 @@ fi if test "$enable_largefile" != no; then - { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 -echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } if test "${ac_cv_sys_largefile_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then @@ -5689,20 +6080,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5716,20 +6108,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_largefile_CC=' -n32'; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5742,16 +6135,16 @@ rm -f core conftest.err conftest.$ac_objext rm -f conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi - { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if test "${ac_cv_sys_file_offset_bits+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF @@ -5783,20 +6176,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_file_offset_bits=no; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5833,20 +6227,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_file_offset_bits=64; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5857,8 +6252,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext break done fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 -echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) @@ -5867,12 +6262,12 @@ cat >>confdefs.h <<_ACEOF _ACEOF ;; esac -rm -f conftest* +rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then - { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 -echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if test "${ac_cv_sys_large_files+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else while :; do cat >conftest.$ac_ext <<_ACEOF @@ -5904,20 +6299,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_large_files=no; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5954,20 +6350,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_sys_large_files=1; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -5978,8 +6375,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext break done fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 -echo "${ECHO_T}$ac_cv_sys_large_files" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) @@ -5988,18 +6385,16 @@ cat >>confdefs.h <<_ACEOF _ACEOF ;; esac -rm -f conftest* +rm -rf conftest* fi fi - - { echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 -echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6; } -if test "${ac_cv_lib_cposix_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if test "${ac_cv_search_strerror+set}" = set; then + $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" + ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -6022,48 +6417,69 @@ return strerror (); return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +for ac_lib in '' cposix; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_cposix_strerror=yes + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_search_strerror=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_cposix_strerror=no + fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + conftest$ac_exeext + if test "${ac_cv_search_strerror+set}" = set; then + break fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 -echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6; } -if test $ac_cv_lib_cposix_strerror = yes; then - LIBS="$LIBS -lcposix" +done +if test "${ac_cv_search_strerror+set}" = set; then + : +else + ac_cv_search_strerror=no fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 +$as_echo "$ac_cv_search_strerror" >&6; } +ac_res=$ac_cv_search_strerror +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +fi - -{ echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do @@ -6086,20 +6502,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_inline=$ac_kw else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -6110,8 +6527,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in @@ -6136,20 +6553,21 @@ esac for ac_header in $ac_header_list do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -6165,32 +6583,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -6204,51 +6623,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -6257,21 +6677,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -6362,11 +6785,11 @@ done for ac_header in sys/buf.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6386,20 +6809,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" @@ -6407,12 +6831,15 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -6420,10 +6847,10 @@ fi done -{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 -echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 +$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } if test "${ac_cv_header_sys_wait_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6456,20 +6883,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_sys_wait_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_wait_h=no @@ -6477,8 +6905,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 +$as_echo "$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then cat >>confdefs.h <<\_ACEOF @@ -6487,210 +6915,6 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 -echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6; } -if test "${ac_cv_header_stdbool_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include <stdbool.h> - #ifndef bool - "error: bool is not defined" - #endif - #ifndef false - "error: false is not defined" - #endif - #if false - "error: false is not 0" - #endif - #ifndef true - "error: true is not defined" - #endif - #if true != 1 - "error: true is not 1" - #endif - #ifndef __bool_true_false_are_defined - "error: __bool_true_false_are_defined is not defined" - #endif - - struct s { _Bool s: 1; _Bool t; } s; - - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) 0.5 == true ? 1 : -1]; - bool e = &s; - char f[(_Bool) 0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; - enum { j = false, k = true, l = false * true, m = true * 256 }; - _Bool n[m]; - char o[sizeof n == m * sizeof n[0] ? 1 : -1]; - char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; - #if defined __xlc__ || defined __GNUC__ - /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 - reported by James Lemley on 2005-10-05; see - http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html - This test is not quite right, since xlc is allowed to - reject this program, as the initializer for xlcbug is - not one of the forms that C requires support for. - However, doing the test right would require a run-time - test, and that would make cross-compilation harder. - Let us hope that IBM fixes the xlc bug, and also adds - support for this kind of constant expression. In the - meantime, this test will reject xlc, which is OK, since - our stdbool.h substitute should suffice. We also test - this with GCC, where it should work, to detect more - quickly whether someone messes up the test in the - future. */ - char digs[] = "0123456789"; - int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); - #endif - /* Catch a bug in an HP-UX C compiler. See - http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html - */ - _Bool q = true; - _Bool *pq = &q; - -int -main () -{ - - *pq |= q; - *pq |= ! q; - /* Refer to every declared value, to avoid compiler optimizations. */ - return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l - + !m + !n + !o + !p + !q + !pq); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdbool_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdbool_h=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 -echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6; } - { echo "$as_me:$LINENO: checking for _Bool" >&5 -echo $ECHO_N "checking for _Bool... $ECHO_C" >&6; } -if test "${ac_cv_type__Bool+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -typedef _Bool ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type__Bool=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type__Bool=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 -echo "${ECHO_T}$ac_cv_type__Bool" >&6; } -if test $ac_cv_type__Bool = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE__BOOL 1 -_ACEOF - - -fi - - if test $ac_cv_header_stdbool_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_STDBOOL_H 1 -_ACEOF - - fi - - - - # Define two additional variables used in the Makefile substitution. - - if test "$ac_cv_header_stdbool_h" = yes; then - STDBOOL_H='' - else - STDBOOL_H='stdbool.h' - fi - - - if test "$ac_cv_type__Bool" = yes; then - HAVE__BOOL=1 - else - HAVE__BOOL=0 - fi - - @@ -6699,11 +6923,11 @@ _ACEOF ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 -echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6729,20 +6953,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" @@ -6750,12 +6975,15 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break @@ -6764,10 +6992,10 @@ fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then - { echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF @@ -6805,26 +7033,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_search_opendir=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then @@ -6839,8 +7071,8 @@ fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -6848,10 +7080,10 @@ if test "$ac_res" != no; then fi else - { echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF @@ -6889,26 +7121,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_search_opendir=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then @@ -6923,8 +7159,8 @@ fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -6933,10 +7169,10 @@ fi fi -{ echo "$as_me:$LINENO: checking whether sys/types.h defines makedev" >&5 -echo $ECHO_N "checking whether sys/types.h defines makedev... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether sys/types.h defines makedev" >&5 +$as_echo_n "checking whether sys/types.h defines makedev... " >&6; } if test "${ac_cv_header_sys_types_h_makedev+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6959,46 +7195,50 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_header_sys_types_h_makedev=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_types_h_makedev=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h_makedev" >&5 -echo "${ECHO_T}$ac_cv_header_sys_types_h_makedev" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h_makedev" >&5 +$as_echo "$ac_cv_header_sys_types_h_makedev" >&6; } if test $ac_cv_header_sys_types_h_makedev = no; then if test "${ac_cv_header_sys_mkdev_h+set}" = set; then - { echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 -echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 +$as_echo_n "checking for sys/mkdev.h... " >&6; } if test "${ac_cv_header_sys_mkdev_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 +$as_echo "$ac_cv_header_sys_mkdev_h" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking sys/mkdev.h usability" >&5 -echo $ECHO_N "checking sys/mkdev.h usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking sys/mkdev.h usability" >&5 +$as_echo_n "checking sys/mkdev.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -7014,32 +7254,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking sys/mkdev.h presence" >&5 -echo $ECHO_N "checking sys/mkdev.h presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking sys/mkdev.h presence" >&5 +$as_echo_n "checking sys/mkdev.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -7053,51 +7294,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: sys/mkdev.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: sys/mkdev.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -7106,18 +7348,18 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 -echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5 +$as_echo_n "checking for sys/mkdev.h... " >&6; } if test "${ac_cv_header_sys_mkdev_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_sys_mkdev_h=$ac_header_preproc fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5 +$as_echo "$ac_cv_header_sys_mkdev_h" >&6; } fi -if test $ac_cv_header_sys_mkdev_h = yes; then +if test "x$ac_cv_header_sys_mkdev_h" = x""yes; then cat >>confdefs.h <<\_ACEOF #define MAJOR_IN_MKDEV 1 @@ -7129,17 +7371,17 @@ fi if test $ac_cv_header_sys_mkdev_h = no; then if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then - { echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 -echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 +$as_echo_n "checking for sys/sysmacros.h... " >&6; } if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 +$as_echo "$ac_cv_header_sys_sysmacros_h" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking sys/sysmacros.h usability" >&5 -echo $ECHO_N "checking sys/sysmacros.h usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking sys/sysmacros.h usability" >&5 +$as_echo_n "checking sys/sysmacros.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -7155,32 +7397,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking sys/sysmacros.h presence" >&5 -echo $ECHO_N "checking sys/sysmacros.h presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking sys/sysmacros.h presence" >&5 +$as_echo_n "checking sys/sysmacros.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -7194,51 +7437,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -7247,18 +7491,18 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 -echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5 +$as_echo_n "checking for sys/sysmacros.h... " >&6; } if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_sys_sysmacros_h=$ac_header_preproc fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5 +$as_echo "$ac_cv_header_sys_sysmacros_h" >&6; } fi -if test $ac_cv_header_sys_sysmacros_h = yes; then +if test "x$ac_cv_header_sys_sysmacros_h" = x""yes; then cat >>confdefs.h <<\_ACEOF #define MAJOR_IN_SYSMACROS 1 @@ -7270,10 +7514,10 @@ fi fi fi -{ echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 -echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 +$as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if test "${ac_cv_header_stat_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7307,20 +7551,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stat_broken=no else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stat_broken=yes @@ -7328,8 +7573,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 -echo "${ECHO_T}$ac_cv_header_stat_broken" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 +$as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then cat >>confdefs.h <<\_ACEOF @@ -7338,10 +7583,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7368,20 +7613,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no @@ -7473,37 +7719,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @@ -7513,10 +7762,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for st_fstype string in struct stat" >&5 -echo $ECHO_N "checking for st_fstype string in struct stat... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for st_fstype string in struct stat" >&5 +$as_echo_n "checking for st_fstype string in struct stat... " >&6; } if test "${diff_cv_st_fstype_string+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7540,20 +7789,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then diff_cv_st_fstype_string=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 diff_cv_st_fstype_string=no @@ -7562,8 +7812,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $diff_cv_st_fstype_string" >&5 -echo "${ECHO_T}$diff_cv_st_fstype_string" >&6; } +{ $as_echo "$as_me:$LINENO: result: $diff_cv_st_fstype_string" >&5 +$as_echo "$diff_cv_st_fstype_string" >&6; } if test $diff_cv_st_fstype_string = yes; then cat >>confdefs.h <<\_ACEOF @@ -7572,10 +7822,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7600,20 +7850,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_signal=int else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_signal=void @@ -7621,34 +7872,66 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF -{ echo "$as_me:$LINENO: checking for mode_t" >&5 -echo $ECHO_N "checking for mode_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5 +$as_echo_n "checking for mode_t... " >&6; } if test "${ac_cv_type_mode_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_mode_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef mode_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (mode_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((mode_t))) + return 0; ; return 0; } @@ -7659,30 +7942,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_mode_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_mode_t=no + ac_cv_type_mode_t=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 -echo "${ECHO_T}$ac_cv_type_mode_t" >&6; } -if test $ac_cv_type_mode_t = yes; then + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 +$as_echo "$ac_cv_type_mode_t" >&6; } +if test "x$ac_cv_type_mode_t" = x""yes; then : else @@ -7692,26 +7984,58 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for pid_t" >&5 -echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for pid_t" >&5 +$as_echo_n "checking for pid_t... " >&6; } if test "${ac_cv_type_pid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_pid_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef pid_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (pid_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((pid_t))) + return 0; ; return 0; } @@ -7722,30 +8046,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_pid_t=yes + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_pid_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_pid_t=no + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 -echo "${ECHO_T}$ac_cv_type_pid_t" >&6; } -if test $ac_cv_type_pid_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +$as_echo "$ac_cv_type_pid_t" >&6; } +if test "x$ac_cv_type_pid_t" = x""yes; then : else @@ -7755,26 +8088,58 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for off_t" >&5 +$as_echo_n "checking for off_t... " >&6; } if test "${ac_cv_type_off_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_off_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef off_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (off_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((off_t))) + return 0; ; return 0; } @@ -7785,30 +8150,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_off_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_off_t=no + ac_cv_type_off_t=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6; } -if test $ac_cv_type_off_t = yes; then + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +$as_echo "$ac_cv_type_off_t" >&6; } +if test "x$ac_cv_type_off_t" = x""yes; then : else @@ -7818,26 +8192,58 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for size_t" >&5 +$as_echo_n "checking for size_t... " >&6; } if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_size_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef size_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (size_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((size_t))) + return 0; ; return 0; } @@ -7848,30 +8254,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_size_t=yes + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_size_t=no + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6; } -if test $ac_cv_type_size_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +$as_echo "$ac_cv_type_size_t" >&6; } +if test "x$ac_cv_type_size_t" = x""yes; then : else @@ -7881,10 +8296,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } if test "${ac_cv_type_uid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7904,8 +8319,8 @@ fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6; } +{ $as_echo "$as_me:$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 cat >>confdefs.h <<\_ACEOF @@ -7919,26 +8334,58 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for major_t" >&5 -echo $ECHO_N "checking for major_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for major_t" >&5 +$as_echo_n "checking for major_t... " >&6; } if test "${ac_cv_type_major_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_major_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef major_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (major_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((major_t))) + return 0; ; return 0; } @@ -7949,30 +8396,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_major_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_major_t=no + ac_cv_type_major_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_major_t" >&5 -echo "${ECHO_T}$ac_cv_type_major_t" >&6; } -if test $ac_cv_type_major_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_major_t" >&5 +$as_echo "$ac_cv_type_major_t" >&6; } +if test "x$ac_cv_type_major_t" = x""yes; then : else @@ -7982,26 +8438,58 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for minor_t" >&5 -echo $ECHO_N "checking for minor_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for minor_t" >&5 +$as_echo_n "checking for minor_t... " >&6; } if test "${ac_cv_type_minor_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_minor_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef minor_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (minor_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((minor_t))) + return 0; ; return 0; } @@ -8012,30 +8500,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_minor_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_minor_t=no + ac_cv_type_minor_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_minor_t" >&5 -echo "${ECHO_T}$ac_cv_type_minor_t" >&6; } -if test $ac_cv_type_minor_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_minor_t" >&5 +$as_echo "$ac_cv_type_minor_t" >&6; } +if test "x$ac_cv_type_minor_t" = x""yes; then : else @@ -8045,26 +8542,58 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for dev_t" >&5 -echo $ECHO_N "checking for dev_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for dev_t" >&5 +$as_echo_n "checking for dev_t... " >&6; } if test "${ac_cv_type_dev_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_dev_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef dev_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (dev_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((dev_t))) + return 0; ; return 0; } @@ -8075,30 +8604,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_dev_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_dev_t=no + ac_cv_type_dev_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_dev_t" >&5 -echo "${ECHO_T}$ac_cv_type_dev_t" >&6; } -if test $ac_cv_type_dev_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_dev_t" >&5 +$as_echo "$ac_cv_type_dev_t" >&6; } +if test "x$ac_cv_type_dev_t" = x""yes; then : else @@ -8108,26 +8646,58 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for ino_t" >&5 -echo $ECHO_N "checking for ino_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for ino_t" >&5 +$as_echo_n "checking for ino_t... " >&6; } if test "${ac_cv_type_ino_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_ino_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef ino_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (ino_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((ino_t))) + return 0; ; return 0; } @@ -8138,30 +8708,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_ino_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_ino_t=no + ac_cv_type_ino_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5 -echo "${ECHO_T}$ac_cv_type_ino_t" >&6; } -if test $ac_cv_type_ino_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5 +$as_echo "$ac_cv_type_ino_t" >&6; } +if test "x$ac_cv_type_ino_t" = x""yes; then : else @@ -8173,10 +8752,10 @@ fi - { echo "$as_me:$LINENO: checking for ssize_t" >&5 -echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for ssize_t" >&5 +$as_echo_n "checking for ssize_t... " >&6; } if test "${gt_cv_ssize_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8200,20 +8779,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gt_cv_ssize_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_ssize_t=no @@ -8221,8 +8801,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5 -echo "${ECHO_T}$gt_cv_ssize_t" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5 +$as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then cat >>confdefs.h <<\_ACEOF @@ -8242,10 +8822,10 @@ _ACEOF # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! -{ echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5 +$as_echo_n "checking for working alloca.h... " >&6; } if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8269,31 +8849,35 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_working_alloca_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_working_alloca_h=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +$as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then cat >>confdefs.h <<\_ACEOF @@ -8302,10 +8886,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for alloca" >&5 +$as_echo_n "checking for alloca... " >&6; } if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8349,31 +8933,35 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_alloca_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_alloca_works=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +$as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then @@ -8398,10 +8986,10 @@ cat >>confdefs.h <<\_ACEOF _ACEOF -{ echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8425,15 +9013,15 @@ fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +$as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8486,33 +9074,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func @@ -8524,10 +9119,10 @@ fi done fi -{ echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +$as_echo_n "checking stack direction for C alloca... " >&6; } if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_c_stack_direction=0 @@ -8565,36 +9160,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_stack_direction=1 else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_stack_direction=-1 fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +$as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction @@ -8603,10 +9201,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5 -echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5 +$as_echo_n "checking for C/C++ restrict keyword... " >&6; } if test "${ac_cv_c_restrict+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. @@ -8618,16 +9216,16 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; + int foo (int_ptr $ac_kw ip) { + return ip[0]; } int main () { int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t) + int * $ac_kw t = s; + t[0] = 0; + return foo(t) ; return 0; } @@ -8638,20 +9236,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_restrict=$ac_kw else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -8662,14 +9261,14 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5 -echo "${ECHO_T}$ac_cv_c_restrict" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5 +$as_echo "$ac_cv_c_restrict" >&6; } case $ac_cv_c_restrict in restrict) ;; no) cat >>confdefs.h <<\_ACEOF -#define restrict +#define restrict /**/ _ACEOF ;; *) cat >>confdefs.h <<_ACEOF @@ -8678,10 +9277,10 @@ _ACEOF ;; esac -{ echo "$as_me:$LINENO: checking whether getenv is declared" >&5 -echo $ECHO_N "checking whether getenv is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether getenv is declared" >&5 +$as_echo_n "checking whether getenv is declared... " >&6; } if test "${ac_cv_have_decl_getenv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8707,20 +9306,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getenv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getenv=no @@ -8728,9 +9328,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6; } -if test $ac_cv_have_decl_getenv = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5 +$as_echo "$ac_cv_have_decl_getenv" >&6; } +if test "x$ac_cv_have_decl_getenv" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETENV 1 @@ -8746,10 +9346,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether clearerr_unlocked is declared" >&5 -echo $ECHO_N "checking whether clearerr_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether clearerr_unlocked is declared" >&5 +$as_echo_n "checking whether clearerr_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_clearerr_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8775,20 +9375,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_clearerr_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_clearerr_unlocked=no @@ -8796,9 +9397,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_clearerr_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_clearerr_unlocked" >&6; } -if test $ac_cv_have_decl_clearerr_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_clearerr_unlocked" >&5 +$as_echo "$ac_cv_have_decl_clearerr_unlocked" >&6; } +if test "x$ac_cv_have_decl_clearerr_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_CLEARERR_UNLOCKED 1 @@ -8814,10 +9415,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether feof_unlocked is declared" >&5 -echo $ECHO_N "checking whether feof_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether feof_unlocked is declared" >&5 +$as_echo_n "checking whether feof_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8843,20 +9444,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_feof_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_feof_unlocked=no @@ -8864,9 +9466,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_feof_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_feof_unlocked" >&6; } -if test $ac_cv_have_decl_feof_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_feof_unlocked" >&5 +$as_echo "$ac_cv_have_decl_feof_unlocked" >&6; } +if test "x$ac_cv_have_decl_feof_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FEOF_UNLOCKED 1 @@ -8882,10 +9484,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether ferror_unlocked is declared" >&5 -echo $ECHO_N "checking whether ferror_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether ferror_unlocked is declared" >&5 +$as_echo_n "checking whether ferror_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_ferror_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8911,20 +9513,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_ferror_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_ferror_unlocked=no @@ -8932,9 +9535,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_ferror_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_ferror_unlocked" >&6; } -if test $ac_cv_have_decl_ferror_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_ferror_unlocked" >&5 +$as_echo "$ac_cv_have_decl_ferror_unlocked" >&6; } +if test "x$ac_cv_have_decl_ferror_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FERROR_UNLOCKED 1 @@ -8950,10 +9553,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether fflush_unlocked is declared" >&5 -echo $ECHO_N "checking whether fflush_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether fflush_unlocked is declared" >&5 +$as_echo_n "checking whether fflush_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_fflush_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8979,20 +9582,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_fflush_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_fflush_unlocked=no @@ -9000,9 +9604,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_fflush_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fflush_unlocked" >&6; } -if test $ac_cv_have_decl_fflush_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fflush_unlocked" >&5 +$as_echo "$ac_cv_have_decl_fflush_unlocked" >&6; } +if test "x$ac_cv_have_decl_fflush_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FFLUSH_UNLOCKED 1 @@ -9018,10 +9622,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether fgets_unlocked is declared" >&5 -echo $ECHO_N "checking whether fgets_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether fgets_unlocked is declared" >&5 +$as_echo_n "checking whether fgets_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9047,20 +9651,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_fgets_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_fgets_unlocked=no @@ -9068,9 +9673,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_fgets_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fgets_unlocked" >&6; } -if test $ac_cv_have_decl_fgets_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fgets_unlocked" >&5 +$as_echo "$ac_cv_have_decl_fgets_unlocked" >&6; } +if test "x$ac_cv_have_decl_fgets_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FGETS_UNLOCKED 1 @@ -9086,10 +9691,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether fputc_unlocked is declared" >&5 -echo $ECHO_N "checking whether fputc_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether fputc_unlocked is declared" >&5 +$as_echo_n "checking whether fputc_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_fputc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9115,20 +9720,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_fputc_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_fputc_unlocked=no @@ -9136,9 +9742,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fputc_unlocked" >&6; } -if test $ac_cv_have_decl_fputc_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputc_unlocked" >&5 +$as_echo "$ac_cv_have_decl_fputc_unlocked" >&6; } +if test "x$ac_cv_have_decl_fputc_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPUTC_UNLOCKED 1 @@ -9154,10 +9760,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether fputs_unlocked is declared" >&5 -echo $ECHO_N "checking whether fputs_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether fputs_unlocked is declared" >&5 +$as_echo_n "checking whether fputs_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_fputs_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9183,20 +9789,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_fputs_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_fputs_unlocked=no @@ -9204,9 +9811,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputs_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fputs_unlocked" >&6; } -if test $ac_cv_have_decl_fputs_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputs_unlocked" >&5 +$as_echo "$ac_cv_have_decl_fputs_unlocked" >&6; } +if test "x$ac_cv_have_decl_fputs_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPUTS_UNLOCKED 1 @@ -9222,10 +9829,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether fread_unlocked is declared" >&5 -echo $ECHO_N "checking whether fread_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether fread_unlocked is declared" >&5 +$as_echo_n "checking whether fread_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_fread_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9251,20 +9858,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_fread_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_fread_unlocked=no @@ -9272,9 +9880,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_fread_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fread_unlocked" >&6; } -if test $ac_cv_have_decl_fread_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fread_unlocked" >&5 +$as_echo "$ac_cv_have_decl_fread_unlocked" >&6; } +if test "x$ac_cv_have_decl_fread_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FREAD_UNLOCKED 1 @@ -9290,10 +9898,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether fwrite_unlocked is declared" >&5 -echo $ECHO_N "checking whether fwrite_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether fwrite_unlocked is declared" >&5 +$as_echo_n "checking whether fwrite_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_fwrite_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9319,20 +9927,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_fwrite_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_fwrite_unlocked=no @@ -9340,9 +9949,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_fwrite_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fwrite_unlocked" >&6; } -if test $ac_cv_have_decl_fwrite_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fwrite_unlocked" >&5 +$as_echo "$ac_cv_have_decl_fwrite_unlocked" >&6; } +if test "x$ac_cv_have_decl_fwrite_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FWRITE_UNLOCKED 1 @@ -9358,10 +9967,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 -echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 +$as_echo_n "checking whether getc_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9387,20 +9996,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getc_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getc_unlocked=no @@ -9408,9 +10018,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6; } -if test $ac_cv_have_decl_getc_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 +$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; } +if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED 1 @@ -9426,10 +10036,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether getchar_unlocked is declared" >&5 -echo $ECHO_N "checking whether getchar_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether getchar_unlocked is declared" >&5 +$as_echo_n "checking whether getchar_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_getchar_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9455,20 +10065,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getchar_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getchar_unlocked=no @@ -9476,9 +10087,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getchar_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getchar_unlocked" >&6; } -if test $ac_cv_have_decl_getchar_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getchar_unlocked" >&5 +$as_echo "$ac_cv_have_decl_getchar_unlocked" >&6; } +if test "x$ac_cv_have_decl_getchar_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETCHAR_UNLOCKED 1 @@ -9494,10 +10105,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether putc_unlocked is declared" >&5 -echo $ECHO_N "checking whether putc_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether putc_unlocked is declared" >&5 +$as_echo_n "checking whether putc_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_putc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9523,20 +10134,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_putc_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_putc_unlocked=no @@ -9544,9 +10156,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_putc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_putc_unlocked" >&6; } -if test $ac_cv_have_decl_putc_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_putc_unlocked" >&5 +$as_echo "$ac_cv_have_decl_putc_unlocked" >&6; } +if test "x$ac_cv_have_decl_putc_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PUTC_UNLOCKED 1 @@ -9562,10 +10174,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether putchar_unlocked is declared" >&5 -echo $ECHO_N "checking whether putchar_unlocked is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether putchar_unlocked is declared" >&5 +$as_echo_n "checking whether putchar_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_putchar_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9591,20 +10203,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_putchar_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_putchar_unlocked=no @@ -9612,9 +10225,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_putchar_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_putchar_unlocked" >&6; } -if test $ac_cv_have_decl_putchar_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_putchar_unlocked" >&5 +$as_echo "$ac_cv_have_decl_putchar_unlocked" >&6; } +if test "x$ac_cv_have_decl_putchar_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PUTCHAR_UNLOCKED 1 @@ -9636,11 +10249,11 @@ fi for ac_func in $ac_func_list do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9693,35 +10306,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -9738,10 +10358,10 @@ done XGETTEXT_EXTRA_OPTIONS= -{ echo "$as_me:$LINENO: checking for d_ino member in directory struct" >&5 -echo $ECHO_N "checking for d_ino member in directory struct... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for d_ino member in directory struct" >&5 +$as_echo_n "checking for d_ino member in directory struct... " >&6; } if test "${gl_cv_struct_dirent_d_ino+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then gl_cv_struct_dirent_d_ino=no @@ -9753,21 +10373,21 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> - #include <dirent.h> + #include <sys/stat.h> + #include <dirent.h> int main () { DIR *dp = opendir ("."); - struct dirent *e; - struct stat st; - if (! dp) - return 1; - e = readdir (dp); - return ! (e - && stat (e->d_name, &st) == 0 - && e->d_ino == st.st_ino); + struct dirent *e; + struct stat st; + if (! dp) + return 1; + e = readdir (dp); + return ! (e + && stat (e->d_name, &st) == 0 + && e->d_ino == st.st_ino); ; return 0; } @@ -9778,36 +10398,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_struct_dirent_d_ino=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_struct_dirent_d_ino=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_struct_dirent_d_ino" >&5 -echo "${ECHO_T}$gl_cv_struct_dirent_d_ino" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_struct_dirent_d_ino" >&5 +$as_echo "$gl_cv_struct_dirent_d_ino" >&6; } if test $gl_cv_struct_dirent_d_ino = yes; then cat >>confdefs.h <<\_ACEOF @@ -9818,13 +10441,13 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether system is Windows or MSDOS" >&5 -echo $ECHO_N "checking whether system is Windows or MSDOS... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether system is Windows or MSDOS" >&5 +$as_echo_n "checking whether system is Windows or MSDOS... " >&6; } if test "${ac_cv_win_or_dos+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9834,6 +10457,7 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { + #if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__ neither MSDOS nor Windows #endif @@ -9847,20 +10471,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_win_or_dos=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_win_or_dos=no @@ -9869,19 +10494,19 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_win_or_dos" >&5 -echo "${ECHO_T}$ac_cv_win_or_dos" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_win_or_dos" >&5 +$as_echo "$ac_cv_win_or_dos" >&6; } if test x"$ac_cv_win_or_dos" = xyes; then ac_fs_accepts_drive_letter_prefix=1 ac_fs_backslash_is_file_name_separator=1 - { echo "$as_me:$LINENO: checking whether drive letter can start relative path" >&5 -echo $ECHO_N "checking whether drive letter can start relative path... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether drive letter can start relative path" >&5 +$as_echo_n "checking whether drive letter can start relative path... " >&6; } if test "${ac_cv_drive_letter_can_be_relative+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -9891,6 +10516,7 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { + #if defined __CYGWIN__ drive letters are always absolute #endif @@ -9904,20 +10530,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_drive_letter_can_be_relative=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_drive_letter_can_be_relative=no @@ -9926,12 +10553,12 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_drive_letter_can_be_relative" >&5 -echo "${ECHO_T}$ac_cv_drive_letter_can_be_relative" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_drive_letter_can_be_relative" >&5 +$as_echo "$ac_cv_drive_letter_can_be_relative" >&6; } if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then - ac_fs_drive_letter_can_be_relative=1 + ac_fs_drive_letter_can_be_relative=1 else - ac_fs_drive_letter_can_be_relative=0 + ac_fs_drive_letter_can_be_relative=0 fi else ac_fs_accepts_drive_letter_prefix=0 @@ -9960,10 +10587,10 @@ cat >>confdefs.h <<_ACEOF _ACEOF -{ echo "$as_me:$LINENO: checking for long file names" >&5 -echo $ECHO_N "checking for long file names... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for long file names" >&5 +$as_echo_n "checking for long file names... " >&6; } if test "${ac_cv_sys_long_file_names+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_sys_long_file_names=yes # Test for long file names in all the places we know might matter: @@ -9992,8 +10619,8 @@ for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib test $ac_cv_sys_long_file_names = no && break done fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_long_file_names" >&5 -echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_long_file_names" >&5 +$as_echo "$ac_cv_sys_long_file_names" >&6; } if test $ac_cv_sys_long_file_names = yes; then cat >>confdefs.h <<\_ACEOF @@ -10037,16 +10664,94 @@ fi REPLACE_MBSNRTOWCS=0; REPLACE_WCRTOMB=0; REPLACE_WCSRTOMBS=0; + REPLACE_WCSNRTOMBS=0; REPLACE_WCWIDTH=0; - WCHAR_H=''; + + + { $as_echo "$as_me:$LINENO: checking whether <wchar.h> uses 'inline' correctly" >&5 +$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; } +if test "${gl_cv_header_wchar_h_correct_inline+set}" = set; then + $as_echo_n "(cached) " >&6 +else + gl_cv_header_wchar_h_correct_inline=yes + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define wcstod renamed_wcstod +#include <wchar.h> +extern int zero (void); +int main () { return zero(); } + +_ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + mv conftest.$ac_objext conftest1.$ac_objext + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define wcstod renamed_wcstod +#include <wchar.h> +int zero (void) { return 0; } + +_ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + mv conftest.$ac_objext conftest2.$ac_objext + if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then + : + else + gl_cv_header_wchar_h_correct_inline=no + fi + fi + fi + rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_wchar_h_correct_inline" >&5 +$as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; } + if test $gl_cv_header_wchar_h_correct_inline = no; then + { { $as_echo "$as_me:$LINENO: error: <wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). +This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in +C99 mode. You have four options: + - Add the flag -fgnu89-inline to CC and reconfigure, or + - Fix your include files, using parts of + <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or + - Use a gcc version older than 4.3, or + - Don't use the flags -std=c99 or -std=gnu99. +Configuration aborted." >&5 +$as_echo "$as_me: error: <wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). +This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in +C99 mode. You have four options: + - Add the flag -fgnu89-inline to CC and reconfigure, or + - Fix your include files, using parts of + <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or + - Use a gcc version older than 4.3, or + - Don't use the flags -std=c99 or -std=gnu99. +Configuration aborted." >&2;} + { (exit 1); exit 1; }; } + fi - { echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 +$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if test "${am_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10069,32 +10774,36 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_langinfo_codeset=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_langinfo_codeset=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$am_cv_langinfo_codeset" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 +$as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then cat >>confdefs.h <<\_ACEOF @@ -10106,10 +10815,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking for a traditional french locale" >&5 -echo $ECHO_N "checking for a traditional french locale... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for a traditional french locale" >&5 +$as_echo_n "checking for a traditional french locale... " >&6; } if test "${gt_cv_locale_fr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -10166,7 +10875,7 @@ _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest$ac_exeext; then # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the @@ -10203,151 +10912,310 @@ _ACEOF rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $gt_cv_locale_fr" >&5 -echo "${ECHO_T}$gt_cv_locale_fr" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_fr" >&5 +$as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr -{ echo "$as_me:$LINENO: checking whether canonicalize_file_name is declared" >&5 -echo $ECHO_N "checking whether canonicalize_file_name is declared... $ECHO_C" >&6; } -if test "${ac_cv_have_decl_canonicalize_file_name+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + { $as_echo "$as_me:$LINENO: checking whether // is distinct from /" >&5 +$as_echo_n "checking whether // is distinct from /... " >&6; } +if test "${gl_cv_double_slash_root+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test x"$cross_compiling" = xyes ; then + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # <bug-gnulib@gnu.org>. + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac + else + set x `ls -di / // 2>/dev/null` + if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi + fi +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5 +$as_echo "$gl_cv_double_slash_root" >&6; } + if test "$gl_cv_double_slash_root" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1 +_ACEOF + + fi + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking whether realpath works" >&5 +$as_echo_n "checking whether realpath works... " >&6; } +if test "${gl_cv_func_realpath_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + touch conftest.a + if test "$cross_compiling" = yes; then + gl_cv_func_realpath_works="guessing no" else cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ + + /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default + + #include <stdlib.h> + int main () { -#ifndef canonicalize_file_name - (void) canonicalize_file_name; -#endif + + char *name1 = realpath ("conftest.a", NULL); + char *name2 = realpath ("conftest.b/../conftest.a", NULL); + char *name3 = realpath ("conftest.a/", NULL); + return !(name1 && *name1 == '/' && !name2 && !name3); ; return 0; } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl_canonicalize_file_name=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_realpath_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_have_decl_canonicalize_file_name=no +( exit $ac_status ) +gl_cv_func_realpath_works=no fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_canonicalize_file_name" >&5 -echo "${ECHO_T}$ac_cv_have_decl_canonicalize_file_name" >&6; } -if test $ac_cv_have_decl_canonicalize_file_name = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CANONICALIZE_FILE_NAME 1 -_ACEOF -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CANONICALIZE_FILE_NAME 0 -_ACEOF - fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_realpath_works" >&5 +$as_echo "$gl_cv_func_realpath_works" >&6; } + if test "$gl_cv_func_realpath_works" = yes; then +cat >>confdefs.h <<\_ACEOF +#define FUNC_REALPATH_WORKS 1 +_ACEOF + fi - - - + GNULIB_ATOLL=0; + GNULIB_CALLOC_POSIX=0; + GNULIB_CANONICALIZE_FILE_NAME=0; + GNULIB_GETLOADAVG=0; + GNULIB_GETSUBOPT=0; + GNULIB_MALLOC_POSIX=0; + GNULIB_MKDTEMP=0; + GNULIB_MKOSTEMP=0; + GNULIB_MKOSTEMPS=0; + GNULIB_MKSTEMP=0; + GNULIB_MKSTEMPS=0; + GNULIB_PUTENV=0; + GNULIB_RANDOM_R=0; + GNULIB_REALLOC_POSIX=0; + GNULIB_REALPATH=0; + GNULIB_RPMATCH=0; + GNULIB_SETENV=0; + GNULIB_STRTOD=0; + GNULIB_STRTOLL=0; + GNULIB_STRTOULL=0; + GNULIB_UNSETENV=0; + HAVE_ATOLL=1; + HAVE_CALLOC_POSIX=1; + HAVE_CANONICALIZE_FILE_NAME=1; + HAVE_DECL_GETLOADAVG=1; + HAVE_GETSUBOPT=1; + HAVE_MALLOC_POSIX=1; + HAVE_MKDTEMP=1; + HAVE_MKOSTEMP=1; + HAVE_MKOSTEMPS=1; + HAVE_MKSTEMPS=1; + HAVE_RANDOM_R=1; + HAVE_REALLOC_POSIX=1; + HAVE_REALPATH=1; + HAVE_RPMATCH=1; + HAVE_SETENV=1; + HAVE_STRTOD=1; + HAVE_STRTOLL=1; + HAVE_STRTOULL=1; + HAVE_STRUCT_RANDOM_DATA=1; + HAVE_SYS_LOADAVG_H=0; + HAVE_UNSETENV=1; + REPLACE_CANONICALIZE_FILE_NAME=0; + REPLACE_MKSTEMP=0; + REPLACE_PUTENV=0; + REPLACE_REALPATH=0; + REPLACE_SETENV=0; + REPLACE_STRTOD=0; + REPLACE_UNSETENV=0; GNULIB_CHOWN=0; GNULIB_CLOSE=0; GNULIB_DUP2=0; + GNULIB_DUP3=0; GNULIB_ENVIRON=0; GNULIB_EUIDACCESS=0; + GNULIB_FACCESSAT=0; GNULIB_FCHDIR=0; + GNULIB_FCHOWNAT=0; GNULIB_FSYNC=0; GNULIB_FTRUNCATE=0; GNULIB_GETCWD=0; GNULIB_GETDOMAINNAME=0; GNULIB_GETDTABLESIZE=0; + GNULIB_GETGROUPS=0; GNULIB_GETHOSTNAME=0; + GNULIB_GETLOGIN=0; GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; GNULIB_GETUSERSHELL=0; GNULIB_LCHOWN=0; GNULIB_LINK=0; + GNULIB_LINKAT=0; GNULIB_LSEEK=0; + GNULIB_PIPE2=0; + GNULIB_PREAD=0; GNULIB_READLINK=0; + GNULIB_READLINKAT=0; + GNULIB_RMDIR=0; GNULIB_SLEEP=0; + GNULIB_SYMLINK=0; + GNULIB_SYMLINKAT=0; + GNULIB_UNISTD_H_GETOPT=0; GNULIB_UNISTD_H_SIGPIPE=0; + GNULIB_UNLINK=0; + GNULIB_UNLINKAT=0; + GNULIB_USLEEP=0; GNULIB_WRITE=0; - HAVE_DUP2=1; + HAVE_CHOWN=1; + HAVE_DUP2=1; + HAVE_DUP3=1; HAVE_EUIDACCESS=1; + HAVE_FACCESSAT=1; + HAVE_FCHOWNAT=1; HAVE_FSYNC=1; HAVE_FTRUNCATE=1; HAVE_GETDOMAINNAME=1; HAVE_GETDTABLESIZE=1; + HAVE_GETGROUPS=1; HAVE_GETHOSTNAME=1; + HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; HAVE_GETUSERSHELL=1; + HAVE_LCHOWN=1; HAVE_LINK=1; + HAVE_LINKAT=1; + HAVE_PIPE2=1; + HAVE_PREAD=1; HAVE_READLINK=1; + HAVE_READLINKAT=1; HAVE_SLEEP=1; + HAVE_SYMLINK=1; + HAVE_SYMLINKAT=1; HAVE_DECL_ENVIRON=1; HAVE_DECL_GETLOGIN_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; + HAVE_UNLINKAT=1; + HAVE_USLEEP=1; REPLACE_CHOWN=0; REPLACE_CLOSE=0; + REPLACE_DUP=0; + REPLACE_DUP2=0; REPLACE_FCHDIR=0; + REPLACE_FCHOWNAT=0; REPLACE_GETCWD=0; + REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; REPLACE_LCHOWN=0; + REPLACE_LINK=0; + REPLACE_LINKAT=0; REPLACE_LSEEK=0; + REPLACE_PREAD=0; + REPLACE_READLINK=0; + REPLACE_RMDIR=0; + REPLACE_SLEEP=0; + REPLACE_SYMLINK=0; + REPLACE_UNLINK=0; + REPLACE_UNLINKAT=0; + REPLACE_USLEEP=0; REPLACE_WRITE=0; UNISTD_H_HAVE_WINSOCK2_H=0; + UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + for ac_header in unistd.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10363,32 +11231,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10402,51 +11271,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -10455,31 +11325,34 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -{ echo "$as_me:$LINENO: checking for working chown" >&5 -echo $ECHO_N "checking for working chown... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for working chown" >&5 +$as_echo_n "checking for working chown... " >&6; } if test "${ac_cv_func_chown_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_chown_works=no @@ -10519,29 +11392,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_chown_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_chown_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -10549,8 +11425,8 @@ fi rm -f conftest.chown fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_chown_works" >&5 -echo "${ECHO_T}$ac_cv_func_chown_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_chown_works" >&5 +$as_echo "$ac_cv_func_chown_works" >&6; } if test $ac_cv_func_chown_works = yes; then cat >>confdefs.h <<\_ACEOF @@ -10560,10 +11436,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking whether chown(2) dereferences symlinks" >&5 -echo $ECHO_N "checking whether chown(2) dereferences symlinks... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether chown dereferences symlinks" >&5 +$as_echo_n "checking whether chown dereferences symlinks... " >&6; } if test "${gl_cv_func_chown_follows_symlink+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then @@ -10581,20 +11457,20 @@ cat >>conftest.$ac_ext <<_ACEOF #include <stdlib.h> #include <errno.h> - int - main () - { - char const *dangling_symlink = "conftest.dangle"; + int + main () + { + char const *dangling_symlink = "conftest.dangle"; - unlink (dangling_symlink); - if (symlink ("conftest.no-such", dangling_symlink)) - abort (); + 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. */ - exit ( ! (chown (dangling_symlink, getuid (), getgid ()) != 0 - && errno == ENOENT)); - } + /* Exit successfully on a conforming system, + i.e., where chown must fail with ENOENT. */ + exit ( ! (chown (dangling_symlink, getuid (), getgid ()) != 0 + && errno == ENOENT)); + } _ACEOF rm -f conftest$ac_exeext @@ -10603,29 +11479,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_chown_follows_symlink=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_chown_follows_symlink=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -10633,8 +11512,8 @@ fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_chown_follows_symlink" >&5 -echo "${ECHO_T}$gl_cv_func_chown_follows_symlink" >&6; } +{ $as_echo "$as_me:$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 @@ -10645,24 +11524,291 @@ _ACEOF fi + + + + + + + + + + + + + + + + + + + if test $ac_cv_func_chown = no; then + HAVE_CHOWN=0 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext" + + else + if test $gl_cv_func_chown_follows_symlink = no; then + REPLACE_CHOWN=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext" + + fi + + if test $ac_cv_func_chown_works = no; then + +cat >>confdefs.h <<\_ACEOF +#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1 +_ACEOF + + REPLACE_CHOWN=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext" + + fi + + { $as_echo "$as_me:$LINENO: checking whether chown honors trailing slash" >&5 +$as_echo_n "checking whether chown honors trailing slash... " >&6; } +if test "${gl_cv_func_chown_slash_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + touch conftest.file && rm -f conftest.link + if test "$cross_compiling" = yes; then + gl_cv_func_chown_slash_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_chown_slash_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_chown_slash_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -f conftest.link conftest.file +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_chown_slash_works" >&5 +$as_echo "$gl_cv_func_chown_slash_works" >&6; } + if test "$gl_cv_func_chown_slash_works" != yes; then + +cat >>confdefs.h <<\_ACEOF +#define CHOWN_TRAILING_SLASH_BUG 1 +_ACEOF + + REPLACE_CHOWN=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext" + + fi + + { $as_echo "$as_me:$LINENO: checking whether chown always updates ctime" >&5 +$as_echo_n "checking whether chown always updates ctime... " >&6; } +if test "${gl_cv_func_chown_ctime_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + gl_cv_func_chown_ctime_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_chown_ctime_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_chown_ctime_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -f conftest.file +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_chown_ctime_works" >&5 +$as_echo "$gl_cv_func_chown_ctime_works" >&6; } + if test "$gl_cv_func_chown_ctime_works" != yes; then + +cat >>confdefs.h <<\_ACEOF +#define CHOWN_CHANGE_TIME_BUG 1 +_ACEOF + + REPLACE_CHOWN=1 + + + + + + + + + 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 + fi + + GNULIB_DIRFD=0; + GNULIB_FDOPENDIR=0; GNULIB_SCANDIR=0; GNULIB_ALPHASORT=0; HAVE_DECL_DIRFD=1; + HAVE_FDOPENDIR=1; HAVE_SCANDIR=1; HAVE_ALPHASORT=1; - DIRENT_H=''; + REPLACE_CLOSEDIR=0; + REPLACE_FDOPENDIR=0; + REPLACE_OPENDIR=0; - { echo "$as_me:$LINENO: checking whether the preprocessor supports include_next" >&5 -echo $ECHO_N "checking whether the preprocessor supports include_next... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether the preprocessor supports include_next" >&5 +$as_echo_n "checking whether the preprocessor supports include_next... " >&6; } if test "${gl_cv_have_include_next+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 - cat <<EOF > conftestd1a/conftest.h + cat <<EOF > conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next <conftest.h> #ifdef DEFINED_IN_CONFTESTD2 @@ -10698,20 +11844,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_have_include_next=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" @@ -10724,20 +11871,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_have_include_next=buggy else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_have_include_next=no @@ -10752,8 +11900,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -rf conftestd1a conftestd1b conftestd2 fi -{ echo "$as_me:$LINENO: result: $gl_cv_have_include_next" >&5 -echo "${ECHO_T}$gl_cv_have_include_next" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_have_include_next" >&5 +$as_echo "$gl_cv_have_include_next" >&6; } PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next @@ -10778,55 +11926,123 @@ echo "${ECHO_T}$gl_cv_have_include_next" >&6; } - { echo "$as_me:$LINENO: checking whether // is distinct from /" >&5 -echo $ECHO_N "checking whether // is distinct from /... $ECHO_C" >&6; } -if test "${gl_cv_double_slash_root+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS basename-lgpl.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dirname-lgpl.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext" + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking if environ is properly declared" >&5 +$as_echo_n "checking if environ is properly declared... " >&6; } + if test "${gt_cv_var_environ_declaration+set}" = set; then + $as_echo_n "(cached) " >&6 else - if test x"$cross_compiling" = xyes ; then - # When cross-compiling, there is no way to tell whether // is special - # short of a list of hosts. However, the only known hosts to date - # that have a distinct // are Apollo DomainOS (too old to port to), - # Cygwin, and z/OS. If anyone knows of another system for which // has - # special semantics and is distinct from /, please report it to - # <bug-gnulib@gnu.org>. - case $host in - *-cygwin | i370-ibm-openedition) - gl_cv_double_slash_root=yes ;; - *) - # Be optimistic and assume that / and // are the same when we - # don't know. - gl_cv_double_slash_root='unknown, assuming no' ;; - esac - else - set x `ls -di / // 2>/dev/null` - if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then - gl_cv_double_slash_root=no - else - gl_cv_double_slash_root=yes - fi - fi + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <unistd.h> + extern struct { int foo; } environ; +int +main () +{ +environ.foo = 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gt_cv_var_environ_declaration=no +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_var_environ_declaration=yes fi -{ echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5 -echo "${ECHO_T}$gl_cv_double_slash_root" >&6; } - if test "$gl_cv_double_slash_root" = yes; then + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + { $as_echo "$as_me:$LINENO: result: $gt_cv_var_environ_declaration" >&5 +$as_echo "$gt_cv_var_environ_declaration" >&6; } + if test $gt_cv_var_environ_declaration = yes; then cat >>confdefs.h <<\_ACEOF -#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1 +#define HAVE_ENVIRON_DECL 1 _ACEOF fi + if test $gt_cv_var_environ_declaration != yes; then + HAVE_DECL_ENVIRON=0 + fi - { echo "$as_me:$LINENO: checking for complete errno.h" >&5 -echo $ECHO_N "checking for complete errno.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for complete errno.h" >&5 +$as_echo_n "checking for complete errno.h... " >&6; } if test "${gl_cv_header_errno_h_complete+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -10861,6 +12077,9 @@ booboo #if !defined ENOTSUP booboo #endif +#if !defined ESTALE +booboo +#endif #if !defined ECANCELED booboo #endif @@ -10876,8 +12095,8 @@ rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_complete" >&5 -echo "${ECHO_T}$gl_cv_header_errno_h_complete" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_complete" >&5 +$as_echo "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else @@ -10895,14 +12114,14 @@ echo "${ECHO_T}$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_have_include_next = yes; then gl_cv_next_errno_h='<'errno.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <errno.h>" >&5 -echo $ECHO_N "checking absolute name of <errno.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <errno.h>" >&5 +$as_echo_n "checking absolute name of <errno.h>... " >&6; } if test "${gl_cv_next_errno_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_errno_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_errno_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -10911,27 +12130,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <errno.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/errno.h#{ - s#.*"\(.*/errno.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_errno_h='<'errno.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/errno.h#{ + s#.*"\(.*/errno.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_errno_h='<'errno.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_errno_h" >&5 -echo "${ECHO_T}$gl_cv_next_errno_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_errno_h" >&5 +$as_echo "$gl_cv_next_errno_h" >&6; } fi NEXT_ERRNO_H=$gl_cv_next_errno_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'errno.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_errno_h + fi + NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive + ERRNO_H='errno.h' @@ -10939,10 +12167,10 @@ echo "${ECHO_T}$gl_cv_next_errno_h" >&6; } if test -n "$ERRNO_H"; then - { echo "$as_me:$LINENO: checking for EMULTIHOP value" >&5 -echo $ECHO_N "checking for EMULTIHOP value... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for EMULTIHOP value" >&5 +$as_echo_n "checking for EMULTIHOP value... " >&6; } if test "${gl_cv_header_errno_h_EMULTIHOP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -11019,13 +12247,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -11061,20 +12290,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -11088,7 +12318,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -11120,13 +12350,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -11162,20 +12393,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -11189,7 +12421,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -11231,20 +12463,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -11286,15 +12519,17 @@ main () long int i = longval (); if (i != (EMULTIHOP)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (EMULTIHOP)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -11307,27 +12542,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_header_errno_h_EMULTIHOP=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val @@ -11335,8 +12573,8 @@ rm -f conftest.val fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 -echo "${ECHO_T}$gl_cv_header_errno_h_EMULTIHOP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 +$as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } case $gl_cv_header_errno_h_EMULTIHOP in yes | no) EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= @@ -11351,10 +12589,10 @@ echo "${ECHO_T}$gl_cv_header_errno_h_EMULTIHOP" >&6; } if test -n "$ERRNO_H"; then - { echo "$as_me:$LINENO: checking for ENOLINK value" >&5 -echo $ECHO_N "checking for ENOLINK value... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for ENOLINK value" >&5 +$as_echo_n "checking for ENOLINK value... " >&6; } if test "${gl_cv_header_errno_h_ENOLINK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -11431,13 +12669,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -11473,20 +12712,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -11500,7 +12740,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -11532,13 +12772,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -11574,20 +12815,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -11601,7 +12843,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -11643,20 +12885,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -11698,15 +12941,17 @@ main () long int i = longval (); if (i != (ENOLINK)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (ENOLINK)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -11719,27 +12964,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_header_errno_h_ENOLINK=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val @@ -11747,8 +12995,8 @@ rm -f conftest.val fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_ENOLINK" >&5 -echo "${ECHO_T}$gl_cv_header_errno_h_ENOLINK" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_ENOLINK" >&5 +$as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } case $gl_cv_header_errno_h_ENOLINK in yes | no) ENOLINK_HIDDEN=0; ENOLINK_VALUE= @@ -11763,10 +13011,10 @@ echo "${ECHO_T}$gl_cv_header_errno_h_ENOLINK" >&6; } if test -n "$ERRNO_H"; then - { echo "$as_me:$LINENO: checking for EOVERFLOW value" >&5 -echo $ECHO_N "checking for EOVERFLOW value... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for EOVERFLOW value" >&5 +$as_echo_n "checking for EOVERFLOW value... " >&6; } if test "${gl_cv_header_errno_h_EOVERFLOW+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -11843,13 +13091,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -11885,20 +13134,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -11912,7 +13162,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -11944,13 +13194,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -11986,20 +13237,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -12013,7 +13265,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -12055,20 +13307,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -12110,15 +13363,17 @@ main () long int i = longval (); if (i != (EOVERFLOW)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (EOVERFLOW)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -12131,27 +13386,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_header_errno_h_EOVERFLOW=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val @@ -12159,8 +13417,8 @@ rm -f conftest.val fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 -echo "${ECHO_T}$gl_cv_header_errno_h_EOVERFLOW" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 +$as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } case $gl_cv_header_errno_h_EOVERFLOW in yes | no) EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= @@ -12174,11 +13432,10 @@ echo "${ECHO_T}$gl_cv_header_errno_h_EOVERFLOW" >&6; } fi - -{ echo "$as_me:$LINENO: checking whether strerror_r is declared" >&5 -echo $ECHO_N "checking whether strerror_r is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether strerror_r is declared" >&5 +$as_echo_n "checking whether strerror_r is declared... " >&6; } if test "${ac_cv_have_decl_strerror_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12204,20 +13461,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strerror_r=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strerror_r=no @@ -12225,9 +13483,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strerror_r" >&6; } -if test $ac_cv_have_decl_strerror_r = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5 +$as_echo "$ac_cv_have_decl_strerror_r" >&6; } +if test "x$ac_cv_have_decl_strerror_r" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R 1 @@ -12246,11 +13504,11 @@ fi for ac_func in strerror_r do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12303,44 +13561,51 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -{ echo "$as_me:$LINENO: checking whether strerror_r returns char *" >&5 -echo $ECHO_N "checking whether strerror_r returns char *... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether strerror_r returns char *" >&5 +$as_echo_n "checking whether strerror_r returns char *... " >&6; } if test "${ac_cv_func_strerror_r_char_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no @@ -12371,20 +13636,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_func_strerror_r_char_p=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -12425,27 +13691,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strerror_r_char_p=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -12453,8 +13722,8 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_strerror_r_char_p" >&5 -echo "${ECHO_T}$ac_cv_func_strerror_r_char_p" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strerror_r_char_p" >&5 +$as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then cat >>confdefs.h <<\_ACEOF @@ -12464,89 +13733,330 @@ _ACEOF fi + GNULIB_FCHMODAT=0; + GNULIB_FSTATAT=0; + GNULIB_FUTIMENS=0; + GNULIB_LCHMOD=0; + GNULIB_LSTAT=0; + GNULIB_MKDIRAT=0; + GNULIB_MKFIFO=0; + GNULIB_MKFIFOAT=0; + GNULIB_MKNOD=0; + GNULIB_MKNODAT=0; + GNULIB_STAT=0; + GNULIB_UTIMENSAT=0; + HAVE_FCHMODAT=1; + HAVE_FSTATAT=1; + HAVE_FUTIMENS=1; + HAVE_LCHMOD=1; + HAVE_LSTAT=1; + HAVE_MKDIRAT=1; + HAVE_MKFIFO=1; + HAVE_MKFIFOAT=1; + HAVE_MKNOD=1; + HAVE_MKNODAT=1; + HAVE_UTIMENSAT=1; + REPLACE_FSTAT=0; + REPLACE_FSTATAT=0; + REPLACE_FUTIMENS=0; + REPLACE_LSTAT=0; + REPLACE_MKDIR=0; + REPLACE_MKFIFO=0; + REPLACE_MKNOD=0; + REPLACE_STAT=0; + REPLACE_UTIMENSAT=0; + + + GNULIB_FCNTL=0; GNULIB_OPEN=0; - REPLACE_OPEN=0; + GNULIB_OPENAT=0; + HAVE_FCNTL=1; + HAVE_OPENAT=1; + REPLACE_FCNTL=0; + REPLACE_OPEN=0; + REPLACE_OPENAT=0; + + + + { $as_echo "$as_me:$LINENO: checking for promoted mode_t type" >&5 +$as_echo_n "checking for promoted mode_t type... " >&6; } +if test "${gl_cv_promoted_mode_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/types.h> +int +main () +{ +typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_promoted_mode_t='int' +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_promoted_mode_t='mode_t' +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_promoted_mode_t" >&5 +$as_echo "$gl_cv_promoted_mode_t" >&6; } + +cat >>confdefs.h <<_ACEOF +#define PROMOTED_MODE_T $gl_cv_promoted_mode_t +_ACEOF + - GNULIB_FPRINTF=0; - GNULIB_FPRINTF_POSIX=0; - GNULIB_PRINTF=0; - GNULIB_PRINTF_POSIX=0; - GNULIB_SNPRINTF=0; - GNULIB_SPRINTF_POSIX=0; - GNULIB_VFPRINTF=0; - GNULIB_VFPRINTF_POSIX=0; - GNULIB_VPRINTF=0; - GNULIB_VPRINTF_POSIX=0; - GNULIB_VSNPRINTF=0; - GNULIB_VSPRINTF_POSIX=0; GNULIB_DPRINTF=0; - GNULIB_VDPRINTF=0; - GNULIB_VASPRINTF=0; - GNULIB_OBSTACK_PRINTF=0; - GNULIB_OBSTACK_PRINTF_POSIX=0; + GNULIB_FCLOSE=0; + GNULIB_FFLUSH=0; GNULIB_FOPEN=0; + GNULIB_FPRINTF=0; + GNULIB_FPRINTF_POSIX=0; + GNULIB_FPURGE=0; + GNULIB_FPUTC=0; + GNULIB_FPUTS=0; GNULIB_FREOPEN=0; GNULIB_FSEEK=0; GNULIB_FSEEKO=0; GNULIB_FTELL=0; GNULIB_FTELLO=0; - GNULIB_FFLUSH=0; - GNULIB_FCLOSE=0; - GNULIB_FPUTC=0; - GNULIB_PUTC=0; - GNULIB_PUTCHAR=0; - GNULIB_FPUTS=0; - GNULIB_PUTS=0; GNULIB_FWRITE=0; GNULIB_GETDELIM=0; GNULIB_GETLINE=0; + GNULIB_OBSTACK_PRINTF=0; + GNULIB_OBSTACK_PRINTF_POSIX=0; GNULIB_PERROR=0; + GNULIB_POPEN=0; + GNULIB_PRINTF=0; + GNULIB_PRINTF_POSIX=0; + GNULIB_PUTC=0; + GNULIB_PUTCHAR=0; + GNULIB_PUTS=0; + GNULIB_REMOVE=0; + GNULIB_RENAME=0; + GNULIB_RENAMEAT=0; + GNULIB_SNPRINTF=0; + GNULIB_SPRINTF_POSIX=0; GNULIB_STDIO_H_SIGPIPE=0; - REPLACE_STDIO_WRITE_FUNCS=0; - REPLACE_FPRINTF=0; - REPLACE_VFPRINTF=0; - REPLACE_PRINTF=0; - REPLACE_VPRINTF=0; - REPLACE_SNPRINTF=0; + GNULIB_VASPRINTF=0; + GNULIB_VDPRINTF=0; + GNULIB_VFPRINTF=0; + GNULIB_VFPRINTF_POSIX=0; + GNULIB_VPRINTF=0; + GNULIB_VPRINTF_POSIX=0; + GNULIB_VSNPRINTF=0; + GNULIB_VSPRINTF_POSIX=0; + HAVE_DECL_FPURGE=1; + HAVE_DECL_GETDELIM=1; + HAVE_DECL_GETLINE=1; + HAVE_DECL_OBSTACK_PRINTF=1; HAVE_DECL_SNPRINTF=1; - REPLACE_VSNPRINTF=0; HAVE_DECL_VSNPRINTF=1; - REPLACE_SPRINTF=0; - REPLACE_VSPRINTF=0; HAVE_DPRINTF=1; - REPLACE_DPRINTF=0; - HAVE_VDPRINTF=1; - REPLACE_VDPRINTF=0; + HAVE_RENAMEAT=1; HAVE_VASPRINTF=1; - REPLACE_VASPRINTF=0; - HAVE_DECL_OBSTACK_PRINTF=1; - REPLACE_OBSTACK_PRINTF=0; + HAVE_VDPRINTF=1; + REPLACE_DPRINTF=0; + REPLACE_FCLOSE=0; + REPLACE_FFLUSH=0; REPLACE_FOPEN=0; + REPLACE_FPRINTF=0; + REPLACE_FPURGE=0; REPLACE_FREOPEN=0; - HAVE_FSEEKO=1; - REPLACE_FSEEKO=0; REPLACE_FSEEK=0; - HAVE_FTELLO=1; - REPLACE_FTELLO=0; + REPLACE_FSEEKO=0; REPLACE_FTELL=0; - REPLACE_FFLUSH=0; - REPLACE_FCLOSE=0; - HAVE_DECL_GETDELIM=1; - HAVE_DECL_GETLINE=1; + REPLACE_FTELLO=0; + REPLACE_GETDELIM=0; REPLACE_GETLINE=0; + REPLACE_OBSTACK_PRINTF=0; REPLACE_PERROR=0; + REPLACE_POPEN=0; + REPLACE_PRINTF=0; + REPLACE_REMOVE=0; + REPLACE_RENAME=0; + REPLACE_RENAMEAT=0; + REPLACE_SNPRINTF=0; + REPLACE_SPRINTF=0; + REPLACE_STDIO_WRITE_FUNCS=0; + REPLACE_VASPRINTF=0; + REPLACE_VDPRINTF=0; + REPLACE_VFPRINTF=0; + REPLACE_VPRINTF=0; + REPLACE_VSNPRINTF=0; + REPLACE_VSPRINTF=0; + + + + + + { $as_echo "$as_me:$LINENO: checking for working fcntl.h" >&5 +$as_echo_n "checking for working fcntl.h... " >&6; } +if test "${gl_cv_header_working_fcntl_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + gl_cv_header_working_fcntl_h=cross-compiling +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/stat.h> + #include <unistd.h> + #include <fcntl.h> + #ifndef O_NOATIME + #define O_NOATIME 0 + #endif + #ifndef O_NOFOLLOW + #define O_NOFOLLOW 0 + #endif + static int const constants[] = + { + O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, + O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY + }; + +int +main () +{ + + int status = !constants; + { + static char const sym[] = "conftest.sym"; + if (symlink (".", sym) != 0 + || close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0) + status |= 32; + unlink (sym); + } + { + static char const file[] = "confdefs.h"; + int fd = open (file, O_RDONLY | O_NOATIME); + char c; + struct stat st0, st1; + if (fd < 0 + || fstat (fd, &st0) != 0 + || sleep (1) != 0 + || read (fd, &c, 1) != 1 + || close (fd) != 0 + || stat (file, &st1) != 0 + || st0.st_atime != st1.st_atime) + status |= 64; + } + return status; + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_header_working_fcntl_h=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +case $? in #( + 32) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( + 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( + 96) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( + *) gl_cv_header_working_fcntl_h='no';; + esac +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_fcntl_h" >&5 +$as_echo "$gl_cv_header_working_fcntl_h" >&6; } + + case $gl_cv_header_working_fcntl_h in #( + *O_NOATIME* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +cat >>confdefs.h <<_ACEOF +#define HAVE_WORKING_O_NOATIME $ac_val +_ACEOF + + + case $gl_cv_header_working_fcntl_h in #( + *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + +cat >>confdefs.h <<_ACEOF +#define HAVE_WORKING_O_NOFOLLOW $ac_val +_ACEOF - { echo "$as_me:$LINENO: checking for mbstate_t" >&5 -echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; } + + { $as_echo "$as_me:$LINENO: checking for mbstate_t" >&5 +$as_echo_n "checking for mbstate_t... " >&6; } if test "${ac_cv_type_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12555,7 +14065,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -# include <wchar.h> +# include <wchar.h> int main () { @@ -12570,20 +14080,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_mbstate_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_mbstate_t=no @@ -12591,8 +14102,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 -echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 +$as_echo "$ac_cv_type_mbstate_t" >&6; } if test $ac_cv_type_mbstate_t = yes; then cat >>confdefs.h <<\_ACEOF @@ -12628,10 +14139,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether stdin defaults to large file offsets" >&5 -echo $ECHO_N "checking whether stdin defaults to large file offsets... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether stdin defaults to large file offsets" >&5 +$as_echo_n "checking whether stdin defaults to large file offsets... " >&6; } if test "${gl_cv_var_stdin_large_offset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12662,42 +14173,57 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gl_cv_var_stdin_large_offset=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_var_stdin_large_offset=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_var_stdin_large_offset" >&5 -echo "${ECHO_T}$gl_cv_var_stdin_large_offset" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_var_stdin_large_offset" >&5 +$as_echo "$gl_cv_var_stdin_large_offset" >&6; } - { echo "$as_me:$LINENO: checking whether getcwd (NULL, 0) allocates memory for result" >&5 -echo $ECHO_N "checking whether getcwd (NULL, 0) allocates memory for result... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether getcwd (NULL, 0) allocates memory for result" >&5 +$as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } if test "${gl_cv_func_getcwd_null+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - gl_cv_func_getcwd_null=no + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on Cygwin. + cygwin*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on mingw. + mingw*) gl_cv_func_getcwd_null="guessing yes";; + # If we don't know, assume the worst. + *) gl_cv_func_getcwd_null="guessing no";; + esac + else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12706,22 +14232,30 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -# include <stdlib.h> -# include <unistd.h> -# ifndef getcwd - char *getcwd (); -# endif - int - main () - { - if (chdir ("/") != 0) - exit (1); - else - { - char *f = getcwd (NULL, 0); - exit (! (f && f[0] == '/' && !f[1])); - } - } +# include <unistd.h> +# ifndef getcwd + char *getcwd (); +# endif + +int +main () +{ + +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +/* mingw cwd does not start with '/', but getcwd does allocate. */ +#else + if (chdir ("/") != 0) + return 1; + else + { + char *f = getcwd (NULL, 0); + return ! (f && f[0] == '/' && !f[1]); + } +#endif + + ; + return 0; +} _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" @@ -12729,41 +14263,44 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_getcwd_null=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_getcwd_null=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_null" >&5 -echo "${ECHO_T}$gl_cv_func_getcwd_null" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_null" >&5 +$as_echo "$gl_cv_func_getcwd_null" >&6; } -{ echo "$as_me:$LINENO: checking whether getcwd is declared" >&5 -echo $ECHO_N "checking whether getcwd is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether getcwd is declared" >&5 +$as_echo_n "checking whether getcwd is declared... " >&6; } if test "${ac_cv_have_decl_getcwd+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12789,20 +14326,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getcwd=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getcwd=no @@ -12810,9 +14348,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getcwd" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getcwd" >&6; } -if test $ac_cv_have_decl_getcwd = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getcwd" >&5 +$as_echo "$ac_cv_have_decl_getcwd" >&6; } +if test "x$ac_cv_have_decl_getcwd" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETCWD 1 @@ -12828,6 +14366,252 @@ _ACEOF fi +{ $as_echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 +$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } +if test "${ac_cv_header_stdbool_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include <stdbool.h> + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + bool e = &s; + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + #if defined __xlc__ || defined __GNUC__ + /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 + reported by James Lemley on 2005-10-05; see + http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html + This test is not quite right, since xlc is allowed to + reject this program, as the initializer for xlcbug is + not one of the forms that C requires support for. + However, doing the test right would require a run-time + test, and that would make cross-compilation harder. + Let us hope that IBM fixes the xlc bug, and also adds + support for this kind of constant expression. In the + meantime, this test will reject xlc, which is OK, since + our stdbool.h substitute should suffice. We also test + this with GCC, where it should work, to detect more + quickly whether someone messes up the test in the + future. */ + char digs[] = "0123456789"; + int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); + #endif + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; + +int +main () +{ + + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdbool_h=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdbool_h=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 +$as_echo "$ac_cv_header_stdbool_h" >&6; } + { $as_echo "$as_me:$LINENO: checking for _Bool" >&5 +$as_echo_n "checking for _Bool... " >&6; } +if test "${ac_cv_type__Bool+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type__Bool=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (_Bool)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((_Bool))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type__Bool=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 +$as_echo "$ac_cv_type__Bool" >&6; } +if test "x$ac_cv_type__Bool" = x""yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE__BOOL 1 +_ACEOF + + +fi + + if test $ac_cv_header_stdbool_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STDBOOL_H 1 +_ACEOF + + fi + + + + # Define two additional variables used in the Makefile substitution. + + if test "$ac_cv_header_stdbool_h" = yes; then + STDBOOL_H='' + else + STDBOOL_H='stdbool.h' + fi + + + if test "$ac_cv_type__Bool" = yes; then + HAVE__BOOL=1 + else + HAVE__BOOL=0 + fi + + @@ -12836,10 +14620,10 @@ fi : ${YACC='bison -y'} - { echo "$as_me:$LINENO: checking for compound literals" >&5 -echo $ECHO_N "checking for compound literals... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for compound literals" >&5 +$as_echo_n "checking for compound literals... " >&6; } if test "${gl_cv_compound_literals+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12852,7 +14636,7 @@ int main () { struct s t = (struct s) { 3, 4 }; - if (t.i != 0) return 0; + if (t.i != 0) return 0; ; return 0; } @@ -12863,20 +14647,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_compound_literals=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_compound_literals=no @@ -12884,8 +14669,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_compound_literals" >&5 -echo "${ECHO_T}$gl_cv_compound_literals" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_compound_literals" >&5 +$as_echo "$gl_cv_compound_literals" >&6; } if test $gl_cv_compound_literals = yes; then cat >>confdefs.h <<\_ACEOF @@ -12894,10 +14679,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 -echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test "${ac_cv_struct_tm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12913,7 +14698,7 @@ main () { struct tm tm; int *p = &tm.tm_sec; - return !p; + return !p; ; return 0; } @@ -12924,20 +14709,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_struct_tm=time.h else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_struct_tm=sys/time.h @@ -12945,8 +14731,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 -echo "${ECHO_T}$ac_cv_struct_tm" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +$as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then cat >>confdefs.h <<\_ACEOF @@ -12956,10 +14742,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for struct tm.tm_gmtoff" >&5 -echo $ECHO_N "checking for struct tm.tm_gmtoff... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct tm.tm_gmtoff" >&5 +$as_echo_n "checking for struct tm.tm_gmtoff... " >&6; } if test "${ac_cv_member_struct_tm_tm_gmtoff+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12985,20 +14771,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_gmtoff=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -13025,20 +14812,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_gmtoff=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_tm_tm_gmtoff=no @@ -13049,9 +14837,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_gmtoff" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_gmtoff" >&6; } -if test $ac_cv_member_struct_tm_tm_gmtoff = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_gmtoff" >&5 +$as_echo "$ac_cv_member_struct_tm_tm_gmtoff" >&6; } +if test "x$ac_cv_member_struct_tm_tm_gmtoff" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_TM_GMTOFF 1 @@ -13060,10 +14848,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether getdelim is declared" >&5 -echo $ECHO_N "checking whether getdelim is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether getdelim is declared" >&5 +$as_echo_n "checking whether getdelim is declared... " >&6; } if test "${ac_cv_have_decl_getdelim+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13089,20 +14877,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getdelim=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getdelim=no @@ -13110,9 +14899,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getdelim" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getdelim" >&6; } -if test $ac_cv_have_decl_getdelim = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getdelim" >&5 +$as_echo "$ac_cv_have_decl_getdelim" >&6; } +if test "x$ac_cv_have_decl_getdelim" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETDELIM 1 @@ -13128,10 +14917,14 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether getline is declared" >&5 -echo $ECHO_N "checking whether getline is declared... $ECHO_C" >&6; } + + + + +{ $as_echo "$as_me:$LINENO: checking whether getline is declared" >&5 +$as_echo_n "checking whether getline is declared... " >&6; } if test "${ac_cv_have_decl_getline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13157,20 +14950,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getline=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getline=no @@ -13178,9 +14972,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getline" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getline" >&6; } -if test $ac_cv_have_decl_getline = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getline" >&5 +$as_echo "$ac_cv_have_decl_getline" >&6; } +if test "x$ac_cv_have_decl_getline" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETLINE 1 @@ -13197,24 +14991,107 @@ fi - if test -z "$GETOPT_H"; then + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_getopt_h='<'getopt.h'>' + else + { $as_echo "$as_me:$LINENO: checking absolute name of <getopt.h>" >&5 +$as_echo_n "checking absolute name of <getopt.h>... " >&6; } +if test "${gl_cv_next_getopt_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_getopt_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <getopt.h> + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/getopt.h#{ + s#.*"\(.*/getopt.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_getopt_h='<'getopt.h'>' + fi + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_getopt_h" >&5 +$as_echo "$gl_cv_next_getopt_h" >&6; } + fi + NEXT_GETOPT_H=$gl_cv_next_getopt_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'getopt.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_getopt_h + fi + NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive + + + + + + + + + + if test $ac_cv_header_getopt_h = yes; then + HAVE_GETOPT_H=1 + else + HAVE_GETOPT_H=0 + fi + + + gl_replace_getopt= + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_header in getopt.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -13230,32 +15107,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -13269,51 +15147,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -13322,40 +15201,43 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else - GETOPT_H=getopt.h + gl_replace_getopt=yes fi done fi - if test -z "$GETOPT_H"; then + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_func in getopt_long_only do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13408,49 +15290,56 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else - GETOPT_H=getopt.h + gl_replace_getopt=yes fi done fi - if test -z "$GETOPT_H"; then - { echo "$as_me:$LINENO: checking whether optreset is declared" >&5 -echo $ECHO_N "checking whether optreset is declared... $ECHO_C" >&6; } + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + { $as_echo "$as_me:$LINENO: checking whether optreset is declared" >&5 +$as_echo_n "checking whether optreset is declared... " >&6; } if test "${ac_cv_have_decl_optreset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13477,20 +15366,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_optreset=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_optreset=no @@ -13498,25 +15388,39 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5 -echo "${ECHO_T}$ac_cv_have_decl_optreset" >&6; } -if test $ac_cv_have_decl_optreset = yes; then - GETOPT_H=getopt.h +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5 +$as_echo "$ac_cv_have_decl_optreset" >&6; } +if test "x$ac_cv_have_decl_optreset" = x""yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTRESET 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTRESET 0 +_ACEOF + + fi + fi - if test -z "$GETOPT_H"; then - { echo "$as_me:$LINENO: checking for working GNU getopt function" >&5 -echo $ECHO_N "checking for working GNU getopt function... $ECHO_C" >&6; } -if test "${gl_cv_func_gnu_getopt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + if test -z "$gl_replace_getopt"; then + { $as_echo "$as_me:$LINENO: checking whether getopt is POSIX compatible" >&5 +$as_echo_n "checking whether getopt is POSIX compatible... " >&6; } +if test "${gl_cv_func_getopt_posix+set}" = set; then + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: checking whether getopt_clip is declared" >&5 -echo $ECHO_N "checking whether getopt_clip is declared... $ECHO_C" >&6; } -if test "${ac_cv_have_decl_getopt_clip+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + if test "$cross_compiling" = yes; then + case "$host_os" in + mingw*) gl_cv_func_getopt_posix="guessing no";; + *) gl_cv_func_getopt_posix="guessing yes";; + esac + else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13524,53 +15428,148 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <getopt.h> + +#include <unistd.h> +#include <stdlib.h> +#include <string.h> + +#if !HAVE_DECL_OPTRESET +# define OPTIND_MIN 0 +#else +# define OPTIND_MIN 1 +#endif int main () { -#ifndef getopt_clip - (void) getopt_clip; -#endif + { + int argc = 0; + char *argv[10]; + int c; + + argv[argc++] = "program"; + argv[argc++] = "-a"; + argv[argc++] = "foo"; + argv[argc++] = "bar"; + argv[argc] = NULL; + optind = OPTIND_MIN; + opterr = 0; + + c = getopt (argc, argv, "ab"); + if (!(c == 'a')) + return 1; + c = getopt (argc, argv, "ab"); + if (!(c == -1)) + return 2; + if (!(optind == 2)) + return 3; + } + /* Some internal state exists at this point. */ + { + int argc = 0; + char *argv[10]; + int c; + + argv[argc++] = "program"; + argv[argc++] = "donald"; + argv[argc++] = "-p"; + argv[argc++] = "billy"; + argv[argc++] = "duck"; + argv[argc++] = "-a"; + argv[argc++] = "bar"; + argv[argc] = NULL; + optind = OPTIND_MIN; + opterr = 0; + + c = getopt (argc, argv, "+abp:q:"); + if (!(c == -1)) + return 4; + if (!(strcmp (argv[0], "program") == 0)) + return 5; + if (!(strcmp (argv[1], "donald") == 0)) + return 6; + if (!(strcmp (argv[2], "-p") == 0)) + return 7; + if (!(strcmp (argv[3], "billy") == 0)) + return 8; + if (!(strcmp (argv[4], "duck") == 0)) + return 9; + if (!(strcmp (argv[5], "-a") == 0)) + return 10; + if (!(strcmp (argv[6], "bar") == 0)) + return 11; + if (!(optind == 1)) + return 12; + } - ; return 0; } + _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl_getopt_clip=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_getopt_posix=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_have_decl_getopt_clip=no +( exit $ac_status ) +gl_cv_func_getopt_posix=no fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getopt_clip" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getopt_clip" >&6; } -if test $ac_cv_have_decl_getopt_clip = yes; then - gl_cv_func_gnu_getopt=no -else - gl_cv_func_gnu_getopt=yes + + + fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getopt_posix" >&5 +$as_echo "$gl_cv_func_getopt_posix" >&6; } + case "$gl_cv_func_getopt_posix" in + *no) gl_replace_getopt=yes ;; + esac + fi + + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + { $as_echo "$as_me:$LINENO: checking for working GNU getopt function" >&5 +$as_echo_n "checking for working GNU getopt function... " >&6; } +if test "${gl_cv_func_getopt_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the + # optstring is necessary for programs like m4 that have POSIX-mandated + # semantics for supporting options interspersed with files. + # Also, since getopt_long is a GNU extension, we require optind=0. + gl_had_POSIXLY_CORRECT=${POSIXLY_CORRECT:+yes} + POSIXLY_CORRECT=1 + export POSIXLY_CORRECT + if test "$cross_compiling" = yes; then + case $host_os:$ac_cv_have_decl_optreset in + *-gnu*:* | mingw*:*) gl_cv_func_getopt_gnu=no;; + *:yes) gl_cv_func_getopt_gnu=no;; + *) gl_cv_func_getopt_gnu=yes;; + esac else cat >conftest.$ac_ext <<_ACEOF @@ -13580,15 +15579,51 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <getopt.h> -int -main () -{ - - char *myargv[3]; - myargv[0] = "conftest"; - myargv[1] = "-+"; - myargv[2] = 0; - return getopt (2, myargv, "+a") != '?'; + #include <stddef.h> + #include <string.h> + +int +main () +{ + + /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, + and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, + OSF/1 5.1, Solaris 10. */ + { + char *myargv[3]; + myargv[0] = "conftest"; + myargv[1] = "-+"; + myargv[2] = 0; + opterr = 0; + if (getopt (2, myargv, "+a") != '?') + return 1; + } + /* This code succeeds on glibc 2.8, mingw, + and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, + IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ + { + char *argv[] = { "program", "-p", "foo", "bar", NULL }; + + optind = 1; + if (getopt (4, argv, "p::") != 'p') + return 2; + if (optarg != NULL) + return 3; + if (getopt (4, argv, "p::") != -1) + return 4; + if (optind != 2) + return 5; + } + /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ + { + char *argv[] = { "program", "foo", "-p", NULL }; + optind = 0; + if (getopt (3, argv, "-p") != 1) + return 6; + if (getopt (3, argv, "-p") != 'p') + return 7; + } + return 0; ; return 0; @@ -13600,38 +15635,45 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - gl_cv_func_gnu_getopt=yes + gl_cv_func_getopt_gnu=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -gl_cv_func_gnu_getopt=no +gl_cv_func_getopt_gnu=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + if test "$gl_had_POSIXLY_CORRECT" != yes; then + $as_unset POSIXLY_CORRECT || test "${POSIXLY_CORRECT+set}" != set || { POSIXLY_CORRECT=; export POSIXLY_CORRECT; } + fi + fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_gnu_getopt" >&5 -echo "${ECHO_T}$gl_cv_func_gnu_getopt" >&6; } - if test "$gl_cv_func_gnu_getopt" = "no"; then - GETOPT_H=getopt.h +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getopt_gnu" >&5 +$as_echo "$gl_cv_func_getopt_gnu" >&6; } + if test "$gl_cv_func_getopt_gnu" = "no"; then + gl_replace_getopt=yes fi fi @@ -13640,6 +15682,70 @@ echo "${ECHO_T}$gl_cv_func_gnu_getopt" >&6; } + if test -n "$gl_replace_getopt"; then + + + + GETOPT_H=getopt.h + +cat >>confdefs.h <<\_ACEOF +#define __GETOPT_PREFIX rpl_ +_ACEOF + + + + GNULIB_UNISTD_H_GETOPT=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" + + + + + + + + + +fi + + + + + + + + + GNULIB_GETTIMEOFDAY=0; + HAVE_GETTIMEOFDAY=1; + HAVE_STRUCT_TIMEVAL=1; + HAVE_SYS_TIME_H=1; + REPLACE_GETTIMEOFDAY=0; + + + + + + + + + @@ -13655,14 +15761,14 @@ echo "${ECHO_T}$gl_cv_func_gnu_getopt" >&6; } if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_time_h='<'sys/time.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <sys/time.h>" >&5 -echo $ECHO_N "checking absolute name of <sys/time.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <sys/time.h>" >&5 +$as_echo_n "checking absolute name of <sys/time.h>... " >&6; } if test "${gl_cv_next_sys_time_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_sys_time_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_sys_time_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -13671,41 +15777,47 @@ cat >>conftest.$ac_ext <<_ACEOF #include <sys/time.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/sys/time.h#{ - s#.*"\(.*/sys/time.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_sys_time_h='<'sys/time.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/sys/time.h#{ + s#.*"\(.*/sys/time.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_sys_time_h='<'sys/time.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_sys_time_h" >&5 -echo "${ECHO_T}$gl_cv_next_sys_time_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_sys_time_h" >&5 +$as_echo "$gl_cv_next_sys_time_h" >&6; } fi NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/time.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_time_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive - if test $ac_cv_header_sys_time_h = yes; then - HAVE_SYS_TIME_H=1 - else + + if test $ac_cv_header_sys_time_h != yes; then HAVE_SYS_TIME_H=0 fi - - { echo "$as_me:$LINENO: checking for struct timeval" >&5 -echo $ECHO_N "checking for struct timeval... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct timeval" >&5 +$as_echo_n "checking for struct timeval... " >&6; } if test "${gl_cv_sys_struct_timeval+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13714,9 +15826,9 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if HAVE_SYS_TIME_H - #include <sys/time.h> - #endif - #include <time.h> + #include <sys/time.h> + #endif + #include <time.h> int main () @@ -13732,20 +15844,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_sys_struct_timeval=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_sys_struct_timeval=no @@ -13753,32 +15866,95 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timeval" >&5 -echo "${ECHO_T}$gl_cv_sys_struct_timeval" >&6; } - if test $gl_cv_sys_struct_timeval = yes; then - HAVE_STRUCT_TIMEVAL=1 - else +{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timeval" >&5 +$as_echo "$gl_cv_sys_struct_timeval" >&6; } + if test $gl_cv_sys_struct_timeval != yes; then HAVE_STRUCT_TIMEVAL=0 fi - REPLACE_GETTIMEOFDAY=0 - if test $HAVE_SYS_TIME_H = 0 || test $HAVE_STRUCT_TIMEVAL = 0; then - SYS_TIME_H=sys/time.h - else - SYS_TIME_H= - fi + for gl_func in gettimeofday; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#if HAVE_SYS_TIME_H +# include <sys/time.h> +#endif +#include <time.h> + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + + done - { echo "$as_me:$LINENO: checking for long long int" >&5 -echo $ECHO_N "checking for long long int... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for long long int" >&5 +$as_echo_n "checking for long long int... " >&6; } if test "${ac_cv_type_long_long_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -13788,18 +15964,18 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many - implementations with broken preprocessors. Perhaps this can - be revisited in 2012. In the meantime, code should not expect - #if to work with literals wider than 32 bits. */ + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; + ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; + ? 1 : -1)]; int i = 63; int main () @@ -13808,9 +15984,9 @@ main () long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull)); + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull)); ; return 0; } @@ -13822,19 +15998,22 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - if test "$cross_compiling" = yes; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + if test "$cross_compiling" = yes; then ac_cv_type_long_long_int=yes else cat >conftest.$ac_ext <<_ACEOF @@ -13844,25 +16023,25 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <limits.h> - #ifndef LLONG_MAX - # define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - # define LLONG_MAX (HALF - 1 + HALF) - #endif + #ifndef LLONG_MAX + # define HALF \ + (1LL << (sizeof (long long int) * CHAR_BIT - 2)) + # define LLONG_MAX (HALF - 1 + HALF) + #endif int main () { long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0; + int i; + for (i = 0; ; i++) + { + long long int m = n << i; + if (m >> i != n) + return 1; + if (LLONG_MAX / 2 < m) + break; + } + return 0; ; return 0; } @@ -13873,45 +16052,49 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_long_long_int=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_type_long_long_int=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_long_int=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5 -echo "${ECHO_T}$ac_cv_type_long_long_int" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5 +$as_echo "$ac_cv_type_long_long_int" >&6; } if test $ac_cv_type_long_long_int = yes; then cat >>confdefs.h <<\_ACEOF @@ -13921,10 +16104,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for unsigned long long int" >&5 -echo $ECHO_N "checking for unsigned long long int... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for unsigned long long int" >&5 +$as_echo_n "checking for unsigned long long int... " >&6; } if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -13934,18 +16117,18 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many - implementations with broken preprocessors. Perhaps this can - be revisited in 2012. In the meantime, code should not expect - #if to work with literals wider than 32 bits. */ + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; + ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; + ? 1 : -1)]; int i = 63; int main () @@ -13954,9 +16137,9 @@ main () long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull)); + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull)); ; return 0; } @@ -13968,31 +16151,35 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_type_unsigned_long_long_int=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_unsigned_long_long_int=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long_int" >&5 -echo "${ECHO_T}$ac_cv_type_unsigned_long_long_int" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long_int" >&5 +$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } if test $ac_cv_type_unsigned_long_long_int = yes; then cat >>confdefs.h <<\_ACEOF @@ -14025,13 +16212,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -14059,7 +16247,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -14124,14 +16312,14 @@ _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5 -echo $ECHO_N "checking absolute name of <stdint.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5 +$as_echo_n "checking absolute name of <stdint.h>... " >&6; } if test "${gl_cv_next_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_stdint_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_stdint_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -14140,27 +16328,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <stdint.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/stdint.h#{ - s#.*"\(.*/stdint.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_stdint_h='<'stdint.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdint.h#{ + s#.*"\(.*/stdint.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdint_h='<'stdint.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5 -echo "${ECHO_T}$gl_cv_next_stdint_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5 +$as_echo "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdint.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdint_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive + if test $ac_cv_header_stdint_h = yes; then @@ -14171,10 +16368,10 @@ echo "${ECHO_T}$gl_cv_next_stdint_h" >&6; } if test $ac_cv_header_stdint_h = yes; then - { echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5 -echo $ECHO_N "checking whether stdint.h conforms to C99... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5 +$as_echo_n "checking whether stdint.h conforms to C99... " >&6; } if test "${gl_cv_header_working_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gl_cv_header_working_stdint_h=no cat >conftest.$ac_ext <<_ACEOF @@ -14350,29 +16547,150 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then + if test "$cross_compiling" = yes; then + gl_cv_header_working_stdint_h=yes + +else + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ +#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include <stdint.h> + + + /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be + included before <wchar.h>. */ + #include <stddef.h> + #include <signal.h> + #if HAVE_WCHAR_H + # include <stdio.h> + # include <time.h> + # include <wchar.h> + #endif + + +#include <stdio.h> +#include <string.h> +#define MVAL(macro) MVAL1(macro) +#define MVAL1(expression) #expression +static const char *macro_values[] = + { +#ifdef INT8_MAX + MVAL (INT8_MAX), +#endif +#ifdef INT16_MAX + MVAL (INT16_MAX), +#endif +#ifdef INT32_MAX + MVAL (INT32_MAX), +#endif +#ifdef INT64_MAX + MVAL (INT64_MAX), +#endif +#ifdef UINT8_MAX + MVAL (UINT8_MAX), +#endif +#ifdef UINT16_MAX + MVAL (UINT16_MAX), +#endif +#ifdef UINT32_MAX + MVAL (UINT32_MAX), +#endif +#ifdef UINT64_MAX + MVAL (UINT64_MAX), +#endif + NULL + }; + +int +main () +{ + + const char **mv; + for (mv = macro_values; *mv != NULL; mv++) + { + const char *value = *mv; + /* Test whether it looks like a cast expression. */ + if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 + || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 + || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 + || strncmp (value, "((int)"/*)*/, 6) == 0 + || strncmp (value, "((signed short)"/*)*/, 15) == 0 + || strncmp (value, "((signed char)"/*)*/, 14) == 0) + return 1; + } + return 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then gl_cv_header_working_stdint_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5 -echo "${ECHO_T}$gl_cv_header_working_stdint_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5 +$as_echo "$gl_cv_header_working_stdint_h" >&6; } fi if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= @@ -14381,20 +16699,21 @@ echo "${ECHO_T}$gl_cv_header_working_stdint_h" >&6; } for ac_header in sys/inttypes.h sys/bitypes.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14410,32 +16729,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14449,51 +16769,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -14502,21 +16823,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -14551,10 +16875,10 @@ done for gltype in ptrdiff_t size_t ; do - { echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 -echo $ECHO_N "checking for bit size of $gltype... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 +$as_echo_n "checking for bit size of $gltype... " >&6; } if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. @@ -14592,13 +16916,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -14639,20 +16964,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -14666,7 +16992,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -14703,13 +17029,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -14750,20 +17077,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -14777,7 +17105,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -14824,20 +17152,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -14884,15 +17213,17 @@ main () long int i = longval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -14905,38 +17236,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then result=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) result=unknown fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val eval gl_cv_bitsizeof_${gltype}=\$result fi -ac_res=`eval echo '${'gl_cv_bitsizeof_${gltype}'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 @@ -14957,10 +17292,10 @@ _ACEOF for gltype in sig_atomic_t wchar_t wint_t ; do - { echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 -echo $ECHO_N "checking for bit size of $gltype... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 +$as_echo_n "checking for bit size of $gltype... " >&6; } if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. @@ -14998,13 +17333,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -15045,20 +17381,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -15072,7 +17409,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -15109,13 +17446,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -15156,20 +17494,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -15183,7 +17522,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -15230,20 +17569,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -15290,15 +17630,17 @@ main () long int i = longval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -15311,38 +17653,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then result=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) result=unknown fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val eval gl_cv_bitsizeof_${gltype}=\$result fi -ac_res=`eval echo '${'gl_cv_bitsizeof_${gltype}'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 @@ -15362,10 +17708,10 @@ _ACEOF for gltype in sig_atomic_t wchar_t wint_t ; do - { echo "$as_me:$LINENO: checking whether $gltype is signed" >&5 -echo $ECHO_N "checking whether $gltype is signed... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether $gltype is signed" >&5 +$as_echo_n "checking whether $gltype is signed... " >&6; } if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -15399,20 +17745,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then result=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 result=no @@ -15422,9 +17769,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi -ac_res=`eval echo '${'gl_cv_type_${gltype}_signed'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_signed'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then @@ -15447,10 +17795,10 @@ _ACEOF for gltype in ptrdiff_t size_t ; do - { echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 -echo $ECHO_N "checking for $gltype integer literal suffix... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 +$as_echo_n "checking for $gltype integer literal suffix... " >&6; } if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed @@ -15462,12 +17810,12 @@ else for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - i64) gltype1='__int64';; - u) gltype1='unsigned int';; - ul) gltype1='unsigned long int';; - ull) gltype1='unsigned long long int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat >conftest.$ac_ext <<_ACEOF @@ -15503,20 +17851,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval gl_cv_type_${gltype}_suffix=\$glsuf else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -15527,9 +17876,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$result" != no && break done fi -ac_res=`eval echo '${'gl_cv_type_${gltype}_suffix'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= @@ -15548,10 +17898,10 @@ _ACEOF for gltype in sig_atomic_t wchar_t wint_t ; do - { echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 -echo $ECHO_N "checking for $gltype integer literal suffix... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 +$as_echo_n "checking for $gltype integer literal suffix... " >&6; } if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed @@ -15563,12 +17913,12 @@ else for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - i64) gltype1='__int64';; - u) gltype1='unsigned int';; - ul) gltype1='unsigned long int';; - ull) gltype1='unsigned long long int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat >conftest.$ac_ext <<_ACEOF @@ -15604,20 +17954,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval gl_cv_type_${gltype}_suffix=\$glsuf else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -15628,9 +17979,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$result" != no && break done fi -ac_res=`eval echo '${'gl_cv_type_${gltype}_suffix'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= @@ -15651,20 +18003,21 @@ _ACEOF for ac_header in inttypes.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15680,32 +18033,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15719,51 +18073,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -15772,21 +18127,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -15794,10 +18152,10 @@ fi done if test $ac_cv_header_inttypes_h = yes; then - { echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5 -echo $ECHO_N "checking whether the inttypes.h PRIxNN macros are broken... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5 +$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } if test "${gt_cv_inttypes_pri_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -15825,20 +18183,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gt_cv_inttypes_pri_broken=no else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_inttypes_pri_broken=yes @@ -15847,8 +18206,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5 -echo "${ECHO_T}$gt_cv_inttypes_pri_broken" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5 +$as_echo "$gt_cv_inttypes_pri_broken" >&6; } fi if test "$gt_cv_inttypes_pri_broken" = yes; then @@ -15862,10 +18221,12 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether imaxabs is declared" >&5 -echo $ECHO_N "checking whether imaxabs is declared... $ECHO_C" >&6; } + + +{ $as_echo "$as_me:$LINENO: checking whether imaxabs is declared" >&5 +$as_echo_n "checking whether imaxabs is declared... " >&6; } if test "${ac_cv_have_decl_imaxabs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -15891,20 +18252,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_imaxabs=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_imaxabs=no @@ -15912,9 +18274,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxabs" >&5 -echo "${ECHO_T}$ac_cv_have_decl_imaxabs" >&6; } -if test $ac_cv_have_decl_imaxabs = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxabs" >&5 +$as_echo "$ac_cv_have_decl_imaxabs" >&6; } +if test "x$ac_cv_have_decl_imaxabs" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_IMAXABS 1 @@ -15930,10 +18292,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether imaxdiv is declared" >&5 -echo $ECHO_N "checking whether imaxdiv is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether imaxdiv is declared" >&5 +$as_echo_n "checking whether imaxdiv is declared... " >&6; } if test "${ac_cv_have_decl_imaxdiv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -15959,20 +18321,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_imaxdiv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_imaxdiv=no @@ -15980,9 +18343,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxdiv" >&5 -echo "${ECHO_T}$ac_cv_have_decl_imaxdiv" >&6; } -if test $ac_cv_have_decl_imaxdiv = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_imaxdiv" >&5 +$as_echo "$ac_cv_have_decl_imaxdiv" >&6; } +if test "x$ac_cv_have_decl_imaxdiv" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_IMAXDIV 1 @@ -15998,10 +18361,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether strtoimax is declared" >&5 -echo $ECHO_N "checking whether strtoimax is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether strtoimax is declared" >&5 +$as_echo_n "checking whether strtoimax is declared... " >&6; } if test "${ac_cv_have_decl_strtoimax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16027,20 +18390,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strtoimax=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strtoimax=no @@ -16048,9 +18412,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoimax" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoimax" >&6; } -if test $ac_cv_have_decl_strtoimax = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoimax" >&5 +$as_echo "$ac_cv_have_decl_strtoimax" >&6; } +if test "x$ac_cv_have_decl_strtoimax" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRTOIMAX 1 @@ -16066,10 +18430,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether strtoumax is declared" >&5 -echo $ECHO_N "checking whether strtoumax is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether strtoumax is declared" >&5 +$as_echo_n "checking whether strtoumax is declared... " >&6; } if test "${ac_cv_have_decl_strtoumax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16095,20 +18459,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strtoumax=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strtoumax=no @@ -16116,9 +18481,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoumax" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoumax" >&6; } -if test $ac_cv_have_decl_strtoumax = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoumax" >&5 +$as_echo "$ac_cv_have_decl_strtoumax" >&6; } +if test "x$ac_cv_have_decl_strtoumax" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRTOUMAX 1 @@ -16145,12 +18510,19 @@ fi HAVE_DECL_STRTOUMAX=1; + GNULIB_NL_LANGINFO=0; + HAVE_NL_LANGINFO=1; + REPLACE_NL_LANGINFO=0; + + + + - { echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5 -echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5 +$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } if test "${ac_cv_gnu_library_2_1+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16178,26 +18550,116 @@ rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5 -echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5 +$as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" - GNULIB_LCHMOD=0; - GNULIB_LSTAT=0; - HAVE_LCHMOD=1; - REPLACE_LSTAT=0; - REPLACE_MKDIR=0; +{ $as_echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 +$as_echo_n "checking whether lstat dereferences a symlink specified with a trailing slash... " >&6; } +if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then + $as_echo_n "(cached) " >&6 +else + rm -f conftest.sym conftest.file +echo >conftest.file +if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then + if test "$cross_compiling" = yes; then + ac_cv_func_lstat_dereferences_slashed_symlink=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + /* Linux will dereference the symlink and fail. + That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_lstat_dereferences_slashed_symlink=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +else + # If the `ln -s' command failed, then we probably don't even + # have an lstat function. + ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f conftest.sym conftest.file - { echo "$as_me:$LINENO: checking whether malloc, realloc, calloc are POSIX compliant" >&5 -echo $ECHO_N "checking whether malloc, realloc, calloc are POSIX compliant... $ECHO_C" >&6; } +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 +$as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } + +test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && + +cat >>confdefs.h <<_ACEOF +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +_ACEOF + + +if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext" + +fi + + + { $as_echo "$as_me:$LINENO: checking whether malloc, realloc, calloc are POSIX compliant" >&5 +$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } if test "${gl_cv_func_malloc_posix+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -16224,20 +18686,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_func_malloc_posix=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func_malloc_posix=no @@ -16246,65 +18709,28 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_malloc_posix" >&5 -echo "${ECHO_T}$gl_cv_func_malloc_posix" >&6; } - - - GNULIB_MALLOC_POSIX=0; - GNULIB_REALLOC_POSIX=0; - GNULIB_CALLOC_POSIX=0; - GNULIB_ATOLL=0; - GNULIB_GETLOADAVG=0; - GNULIB_GETSUBOPT=0; - GNULIB_MKDTEMP=0; - GNULIB_MKSTEMP=0; - GNULIB_PUTENV=0; - GNULIB_RANDOM_R=0; - GNULIB_RPMATCH=0; - GNULIB_SETENV=0; - GNULIB_STRTOD=0; - GNULIB_STRTOLL=0; - GNULIB_STRTOULL=0; - GNULIB_UNSETENV=0; - HAVE_ATOLL=1; - HAVE_CALLOC_POSIX=1; - HAVE_GETSUBOPT=1; - HAVE_MALLOC_POSIX=1; - HAVE_MKDTEMP=1; - HAVE_REALLOC_POSIX=1; - HAVE_RANDOM_R=1; - HAVE_RPMATCH=1; - HAVE_SETENV=1; - HAVE_STRTOD=1; - HAVE_STRTOLL=1; - HAVE_STRTOULL=1; - HAVE_STRUCT_RANDOM_DATA=1; - HAVE_SYS_LOADAVG_H=0; - HAVE_UNSETENV=1; - HAVE_DECL_GETLOADAVG=1; - REPLACE_MKSTEMP=0; - REPLACE_PUTENV=0; - REPLACE_STRTOD=0; - VOID_UNSETENV=0; +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_malloc_posix" >&5 +$as_echo "$gl_cv_func_malloc_posix" >&6; } for ac_header in stdlib.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -16320,32 +18746,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -16359,51 +18786,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -16412,31 +18840,34 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 -echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 +$as_echo_n "checking for GNU libc compatible malloc... " >&6; } if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_malloc_0_nonnull=no @@ -16467,36 +18898,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_malloc_0_nonnull=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_malloc_0_nonnull=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 +$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then gl_cv_func_malloc_0_nonnull=1 else @@ -16517,10 +18951,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking for a traditional japanese locale" >&5 -echo $ECHO_N "checking for a traditional japanese locale... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for a traditional japanese locale" >&5 +$as_echo_n "checking for a traditional japanese locale... " >&6; } if test "${gt_cv_locale_ja+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -16581,7 +19015,7 @@ _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest$ac_exeext; then # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the @@ -16623,17 +19057,116 @@ _ACEOF rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $gt_cv_locale_ja" >&5 -echo "${ECHO_T}$gt_cv_locale_ja" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_ja" >&5 +$as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja - { echo "$as_me:$LINENO: checking for a french Unicode locale" >&5 -echo $ECHO_N "checking for a french Unicode locale... $ECHO_C" >&6; } + + { $as_echo "$as_me:$LINENO: checking for a transitional chinese locale" >&5 +$as_echo_n "checking for a transitional chinese locale... " >&6; } +if test "${gt_cv_locale_zh_CN+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <locale.h> +#include <stdlib.h> +#include <time.h> +#if HAVE_LANGINFO_CODESET +# include <langinfo.h> +#endif +#include <stdlib.h> +#include <string.h> +struct tm t; +char buf[16]; +int main () +{ + const char *p; + /* Check whether the given locale name is recognized by the system. */ + if (setlocale (LC_ALL, "") == NULL) return 1; + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. */ +#if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) + return 1; + } +#endif +#ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +#endif + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + /* Check whether a typical GB18030 multibyte sequence is recognized as a + single wide character. This excludes the GB2312 and GBK encodings. */ + if (mblen ("\203\062\332\066", 5) != 4) + return 1; + return 0; +} + +_ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest$ac_exeext; then + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the locale name without encoding suffix. + if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN.GB18030 + else + # None found. + gt_cv_locale_zh_CN=none + fi + fi + else + # If there was a link error, due to mblen(), the system is so old that + # it certainly doesn't have a chinese locale. + gt_cv_locale_zh_CN=none + fi + rm -fr conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_zh_CN" >&5 +$as_echo "$gt_cv_locale_zh_CN" >&6; } + LOCALE_ZH_CN=$gt_cv_locale_zh_CN + + + + + { $as_echo "$as_me:$LINENO: checking for a french Unicode locale" >&5 +$as_echo_n "checking for a french Unicode locale... " >&6; } if test "${gt_cv_locale_fr_utf8+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -16697,7 +19230,7 @@ _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest$ac_exeext; then # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the @@ -16724,115 +19257,972 @@ _ACEOF rm -fr conftest* fi -{ echo "$as_me:$LINENO: result: $gt_cv_locale_fr_utf8" >&5 -echo "${ECHO_T}$gt_cv_locale_fr_utf8" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_locale_fr_utf8" >&5 +$as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 + GNULIB_MEMCHR=0; + GNULIB_MEMMEM=0; + GNULIB_MEMPCPY=0; + GNULIB_MEMRCHR=0; + GNULIB_RAWMEMCHR=0; + GNULIB_STPCPY=0; + GNULIB_STPNCPY=0; + GNULIB_STRCHRNUL=0; + GNULIB_STRDUP=0; + GNULIB_STRNDUP=0; + GNULIB_STRNLEN=0; + GNULIB_STRPBRK=0; + GNULIB_STRSEP=0; + GNULIB_STRSTR=0; + GNULIB_STRCASESTR=0; + GNULIB_STRTOK_R=0; + GNULIB_MBSLEN=0; + GNULIB_MBSNLEN=0; + GNULIB_MBSCHR=0; + GNULIB_MBSRCHR=0; + GNULIB_MBSSTR=0; + GNULIB_MBSCASECMP=0; + GNULIB_MBSNCASECMP=0; + GNULIB_MBSPCASECMP=0; + GNULIB_MBSCASESTR=0; + GNULIB_MBSCSPN=0; + GNULIB_MBSPBRK=0; + GNULIB_MBSSPN=0; + GNULIB_MBSSEP=0; + GNULIB_MBSTOK_R=0; + GNULIB_STRERROR=0; + GNULIB_STRSIGNAL=0; + GNULIB_STRVERSCMP=0; + HAVE_MBSLEN=0; + HAVE_DECL_MEMMEM=1; + HAVE_MEMPCPY=1; + HAVE_DECL_MEMRCHR=1; + HAVE_RAWMEMCHR=1; + HAVE_STPCPY=1; + HAVE_STPNCPY=1; + HAVE_STRCHRNUL=1; + HAVE_DECL_STRDUP=1; + HAVE_DECL_STRNDUP=1; + HAVE_DECL_STRNLEN=1; + HAVE_STRPBRK=1; + HAVE_STRSEP=1; + HAVE_STRCASESTR=1; + HAVE_DECL_STRTOK_R=1; + HAVE_DECL_STRERROR=1; + HAVE_DECL_STRSIGNAL=1; + HAVE_STRVERSCMP=1; + REPLACE_MEMCHR=0; + REPLACE_MEMMEM=0; + REPLACE_STRDUP=0; + REPLACE_STRSTR=0; + REPLACE_STRCASESTR=0; + REPLACE_STRERROR=0; + REPLACE_STRNDUP=0; + REPLACE_STRSIGNAL=0; + REPLACE_STRTOK_R=0; + UNDEFINE_STRTOK_R=0; + + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 +$as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; } +if test "${ac_cv_func_mbrtowc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <wchar.h> +int +main () +{ +wchar_t wc; + char const s[] = ""; + size_t n = 1; + mbstate_t state; + return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_mbrtowc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_mbrtowc=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 +$as_echo "$ac_cv_func_mbrtowc" >&6; } + if test $ac_cv_func_mbrtowc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MBRTOWC 1 +_ACEOF + + fi + + + + + + + + + + + + + # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it + # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is + # irrelevant for anonymous mappings. + { $as_echo "$as_me:$LINENO: checking for mmap" >&5 +$as_echo_n "checking for mmap... " >&6; } +if test "${ac_cv_func_mmap+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define mmap to an innocuous variant, in case <limits.h> declares mmap. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define mmap innocuous_mmap + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char mmap (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef mmap + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mmap (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_mmap || defined __stub___mmap +choke me +#endif + +int +main () +{ +return mmap (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_mmap=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_mmap=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap" >&5 +$as_echo "$ac_cv_func_mmap" >&6; } +if test "x$ac_cv_func_mmap" = x""yes; then + gl_have_mmap=yes +else + gl_have_mmap=no +fi + + + # Try to allow MAP_ANONYMOUS. + gl_have_mmap_anonymous=no + if test $gl_have_mmap = yes; then + { $as_echo "$as_me:$LINENO: checking for MAP_ANONYMOUS" >&5 +$as_echo_n "checking for MAP_ANONYMOUS... " >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <sys/mman.h> +#ifdef MAP_ANONYMOUS + I cant identify this map. +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cant identify this map." >/dev/null 2>&1; then + gl_have_mmap_anonymous=yes +fi +rm -f conftest* + + if test $gl_have_mmap_anonymous != yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <sys/mman.h> +#ifdef MAP_ANON + I cant identify this map. +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "I cant identify this map." >/dev/null 2>&1; then + +cat >>confdefs.h <<\_ACEOF +#define MAP_ANONYMOUS MAP_ANON +_ACEOF + + gl_have_mmap_anonymous=yes +fi +rm -f conftest* + + fi + { $as_echo "$as_me:$LINENO: result: $gl_have_mmap_anonymous" >&5 +$as_echo "$gl_have_mmap_anonymous" >&6; } + if test $gl_have_mmap_anonymous = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MAP_ANONYMOUS 1 +_ACEOF + + fi + fi + + + + + + + + + + + + + + + + + + + + + + + + +for ac_func in memchr +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + +fi +done + + + if test $ac_cv_func_memchr = no; then + + +for ac_header in bp-sym.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------ ## +## Report this to bug-tar@gnu.org ## +## ------------------------------ ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + REPLACE_MEMCHR=1 + fi + + if test $ac_cv_func_memchr = yes; then + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # http://bugzilla.redhat.com/499689 + # memchr should not dereference overestimated length after a match + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # Assume that memchr works on platforms that lack mprotect. + { $as_echo "$as_me:$LINENO: checking whether memchr works" >&5 +$as_echo_n "checking whether memchr works... " >&6; } +if test "${gl_cv_func_memchr_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + gl_cv_func_memchr_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <string.h> +#if HAVE_SYS_MMAN_H +# include <fcntl.h> +# include <unistd.h> +# include <sys/types.h> +# include <sys/mman.h> +# ifndef MAP_FILE +# define MAP_FILE 0 +# endif +#endif + +int +main () +{ + + char *fence = NULL; +#if HAVE_SYS_MMAN_H && HAVE_MPROTECT +# if HAVE_MAP_ANONYMOUS + const int flags = MAP_ANONYMOUS | MAP_PRIVATE; + const int fd = -1; +# else /* !HAVE_MAP_ANONYMOUS */ + const int flags = MAP_FILE | MAP_PRIVATE; + int fd = open ("/dev/zero", O_RDONLY, 0666); + if (fd >= 0) +# endif + { + int pagesize = getpagesize (); + char *two_pages = + (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, + flags, fd, 0); + if (two_pages != (char *)(-1) + && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) + fence = two_pages + pagesize; + } +#endif + if (fence) + { + if (memchr (fence, 0, 0)) + return 1; + strcpy (fence - 9, "12345678"); + if (memchr (fence - 9, 0, 79) != fence - 1) + return 2; + } + return 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_memchr_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_memchr_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_memchr_works" >&5 +$as_echo "$gl_cv_func_memchr_works" >&6; } + if test "$gl_cv_func_memchr_works" != yes; then + + +for ac_header in bp-sym.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------ ## +## Report this to bug-tar@gnu.org ## +## ------------------------------ ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + REPLACE_MEMCHR=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext" + + fi + fi - { echo "$as_me:$LINENO: checking for a transitional chinese locale" >&5 -echo $ECHO_N "checking for a transitional chinese locale... $ECHO_C" >&6; } -if test "${gt_cv_locale_zh_CN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether memrchr is declared" >&5 +$as_echo_n "checking whether memrchr is declared... " >&6; } +if test "${ac_cv_have_decl_memrchr+set}" = set; then + $as_echo_n "(cached) " >&6 else - - cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - -#include <locale.h> -#include <stdlib.h> -#include <time.h> -#if HAVE_LANGINFO_CODESET -# include <langinfo.h> -#endif -#include <stdlib.h> -#include <string.h> -struct tm t; -char buf[16]; -int main () +$ac_includes_default +int +main () { - const char *p; - /* Check whether the given locale name is recognized by the system. */ - if (setlocale (LC_ALL, "") == NULL) return 1; - /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". - On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) - is empty, and the behaviour of Tcl 8.4 in this locale is not useful. - On OpenBSD 4.0, when an unsupported locale is specified, setlocale() - succeeds but then nl_langinfo(CODESET) is "646". In this situation, - some unit tests fail. */ -#if HAVE_LANGINFO_CODESET - { - const char *cs = nl_langinfo (CODESET); - if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) - return 1; - } -#endif -#ifdef __CYGWIN__ - /* On Cygwin, avoid locale names without encoding suffix, because the - locale_charset() function relies on the encoding suffix. Note that - LC_ALL is set on the command line. */ - if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +#ifndef memrchr + (void) memrchr; #endif - /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. - This excludes the UTF-8 encoding. */ - t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; - if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; - for (p = buf; *p != '\0'; p++) - if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) - return 1; - /* Check whether a typical GB18030 multibyte sequence is recognized as a - single wide character. This excludes the GB2312 and GBK encodings. */ - if (mblen ("\203\062\332\066", 5) != 4) - return 1; + + ; return 0; } - _ACEOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest$ac_exeext; then - # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because - # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the - # configure script would override the LC_ALL setting. Likewise for - # LC_CTYPE, which is also set at the beginning of the configure script. - # Test for the locale name without encoding suffix. - if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_zh_CN=zh_CN - else - # Test for the locale name with explicit encoding suffix. - if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then - gt_cv_locale_zh_CN=zh_CN.GB18030 - else - # None found. - gt_cv_locale_zh_CN=none - fi - fi - else - # If there was a link error, due to mblen(), the system is so old that - # it certainly doesn't have a chinese locale. - gt_cv_locale_zh_CN=none - fi - rm -fr conftest* + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_memrchr=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_memrchr=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_locale_zh_CN" >&5 -echo "${ECHO_T}$gt_cv_locale_zh_CN" >&6; } - LOCALE_ZH_CN=$gt_cv_locale_zh_CN +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_memrchr" >&5 +$as_echo "$ac_cv_have_decl_memrchr" >&6; } +if test "x$ac_cv_have_decl_memrchr" = x""yes; then +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MEMRCHR 1 +_ACEOF - { echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 -echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6; } -if test "${ac_cv_func_mbrtowc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MEMRCHR 0 +_ACEOF + + +fi + + + + GNULIB_MKTIME=0; + GNULIB_NANOSLEEP=0; + GNULIB_STRPTIME=0; + GNULIB_TIMEGM=0; + REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; + REPLACE_MKTIME=GNULIB_PORTCHECK; + REPLACE_NANOSLEEP=GNULIB_PORTCHECK; + REPLACE_STRPTIME=GNULIB_PORTCHECK; + REPLACE_TIMEGM=GNULIB_PORTCHECK; + + + + + + + + + { $as_echo "$as_me:$LINENO: checking whether unlink honors trailing slashes" >&5 +$as_echo_n "checking whether unlink honors trailing slashes... " >&6; } +if test "${gl_cv_func_unlink_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + touch conftest.file + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.file conftest.lnk + fi + if test "$cross_compiling" = yes; then + gl_cv_func_unlink_works="guessing no" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16840,120 +20230,99 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <wchar.h> +#include <unistd.h> + #include <errno.h> + int main () { -wchar_t wc; - char const s[] = ""; - size_t n = 1; - mbstate_t state; - return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); +if (!unlink ("conftest.file/") || errno != ENOTDIR) return 1; +#if HAVE_LSTAT + if (!unlink ("conftest.lnk/") || errno != ENOTDIR) return 2; +#endif + ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_mbrtowc=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_unlink_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_mbrtowc=no +( exit $ac_status ) +gl_cv_func_unlink_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext + + rm -f conftest.file conftest.lnk fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 -echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6; } - if test $ac_cv_func_mbrtowc = yes; then +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unlink_works" >&5 +$as_echo "$gl_cv_func_unlink_works" >&6; } + if test x"$gl_cv_func_unlink_works" != xyes; then + REPLACE_UNLINK=1 + + + -cat >>confdefs.h <<\_ACEOF -#define HAVE_MBRTOWC 1 -_ACEOF + + + + + gl_LIBOBJS="$gl_LIBOBJS unlink.$ac_objext" fi - GNULIB_MEMMEM=0; - GNULIB_MEMPCPY=0; - GNULIB_MEMRCHR=0; - GNULIB_RAWMEMCHR=0; - GNULIB_STPCPY=0; - GNULIB_STPNCPY=0; - GNULIB_STRCHRNUL=0; - GNULIB_STRDUP=0; - GNULIB_STRNDUP=0; - GNULIB_STRNLEN=0; - GNULIB_STRPBRK=0; - GNULIB_STRSEP=0; - GNULIB_STRSTR=0; - GNULIB_STRCASESTR=0; - GNULIB_STRTOK_R=0; - GNULIB_MBSLEN=0; - GNULIB_MBSNLEN=0; - GNULIB_MBSCHR=0; - GNULIB_MBSRCHR=0; - GNULIB_MBSSTR=0; - GNULIB_MBSCASECMP=0; - GNULIB_MBSNCASECMP=0; - GNULIB_MBSPCASECMP=0; - GNULIB_MBSCASESTR=0; - GNULIB_MBSCSPN=0; - GNULIB_MBSPBRK=0; - GNULIB_MBSSPN=0; - GNULIB_MBSSEP=0; - GNULIB_MBSTOK_R=0; - GNULIB_STRERROR=0; - GNULIB_STRSIGNAL=0; - GNULIB_STRVERSCMP=0; - HAVE_DECL_MEMMEM=1; - HAVE_MEMPCPY=1; - HAVE_DECL_MEMRCHR=1; - HAVE_RAWMEMCHR=1; - HAVE_STPCPY=1; - HAVE_STPNCPY=1; - HAVE_STRCHRNUL=1; - HAVE_DECL_STRDUP=1; - HAVE_STRNDUP=1; - HAVE_DECL_STRNDUP=1; - HAVE_DECL_STRNLEN=1; - HAVE_STRPBRK=1; - HAVE_STRSEP=1; - HAVE_STRCASESTR=1; - HAVE_DECL_STRTOK_R=1; - HAVE_DECL_STRERROR=1; - HAVE_DECL_STRSIGNAL=1; - HAVE_STRVERSCMP=1; - REPLACE_MEMMEM=0; - REPLACE_STRDUP=0; - REPLACE_STRSTR=0; - REPLACE_STRCASESTR=0; - REPLACE_STRERROR=0; - REPLACE_STRSIGNAL=0; -{ echo "$as_me:$LINENO: checking whether memrchr is declared" >&5 -echo $ECHO_N "checking whether memrchr is declared... $ECHO_C" >&6; } -if test "${ac_cv_have_decl_memrchr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + + + + + + + + + if test $ac_cv_func_setenv = no; then + HAVE_SETENV=0 + else + { $as_echo "$as_me:$LINENO: checking whether setenv validates arguments" >&5 +$as_echo_n "checking whether setenv validates arguments... " >&6; } +if test "${gl_cv_func_setenv_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + gl_cv_func_setenv_works="guessing no" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16961,77 +20330,345 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default + + #include <stdlib.h> + #include <errno.h> + int main () { -#ifndef memrchr - (void) memrchr; -#endif + + if (setenv ("", "", 0) != -1) return 1; + if (errno != EINVAL) return 2; + if (setenv ("a", "=", 1) != 0) return 3; + if (strcmp (getenv ("a"), "=") != 0) return 4; ; return 0; } _ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_setenv_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_setenv_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_setenv_works" >&5 +$as_echo "$gl_cv_func_setenv_works" >&6; } + if test "$gl_cv_func_setenv_works" != yes; then + REPLACE_SETENV=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext" + + fi + fi + + + + + + + + + + +for ac_header in search.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_have_decl_memrchr=yes + ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_have_decl_memrchr=no + ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_memrchr" >&5 -echo "${ECHO_T}$ac_cv_have_decl_memrchr" >&6; } -if test $ac_cv_have_decl_memrchr = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_MEMRCHR 1 +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> _ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------ ## +## Report this to bug-tar@gnu.org ## +## ------------------------------ ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_MEMRCHR 0 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF - fi +done + + +for ac_func in tsearch +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif +#undef $ac_func +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + eval "$as_ac_var=no" +fi +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +fi +done -{ echo "$as_me:$LINENO: checking whether snprintf is declared" >&5 -echo $ECHO_N "checking whether snprintf is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether snprintf is declared" >&5 +$as_echo_n "checking whether snprintf is declared... " >&6; } if test "${ac_cv_have_decl_snprintf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17057,20 +20694,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_snprintf=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_snprintf=no @@ -17078,9 +20716,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_snprintf" >&5 -echo "${ECHO_T}$ac_cv_have_decl_snprintf" >&6; } -if test $ac_cv_have_decl_snprintf = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_snprintf" >&5 +$as_echo "$ac_cv_have_decl_snprintf" >&6; } +if test "x$ac_cv_have_decl_snprintf" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SNPRINTF 1 @@ -17099,6 +20737,73 @@ fi + REPLACE_NULL=0; + HAVE_WCHAR_T=1; + STDDEF_H=''; + + + { $as_echo "$as_me:$LINENO: checking for wchar_t" >&5 +$as_echo_n "checking for wchar_t... " >&6; } +if test "${gt_cv_c_wchar_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stddef.h> + wchar_t foo = (wchar_t)'\0'; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gt_cv_c_wchar_t=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_c_wchar_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_wchar_t" >&5 +$as_echo "$gt_cv_c_wchar_t" >&6; } + if test $gt_cv_c_wchar_t = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WCHAR_T 1 +_ACEOF + + fi + + + + @@ -17106,10 +20811,10 @@ fi HAVE_STRCASECMP=1; HAVE_DECL_STRNCASECMP=1; -{ echo "$as_me:$LINENO: checking whether strdup is declared" >&5 -echo $ECHO_N "checking whether strdup is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether strdup is declared" >&5 +$as_echo_n "checking whether strdup is declared... " >&6; } if test "${ac_cv_have_decl_strdup+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17135,20 +20840,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strdup=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strdup=no @@ -17156,9 +20862,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strdup" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strdup" >&6; } -if test $ac_cv_have_decl_strdup = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strdup" >&5 +$as_echo "$ac_cv_have_decl_strdup" >&6; } +if test "x$ac_cv_have_decl_strdup" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRDUP 1 @@ -17180,10 +20886,10 @@ fi if test -z "$ERRNO_H"; then - { echo "$as_me:$LINENO: checking for working strerror function" >&5 -echo $ECHO_N "checking for working strerror function... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for working strerror function" >&5 +$as_echo_n "checking for working strerror function... " >&6; } if test "${gl_cv_func_working_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then cat >conftest.$ac_ext <<_ACEOF @@ -17208,20 +20914,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_func_working_strerror=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func_working_strerror=no @@ -17252,37 +20959,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_working_strerror=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_working_strerror=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_working_strerror" >&5 -echo "${ECHO_T}$gl_cv_func_working_strerror" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_strerror" >&5 +$as_echo "$gl_cv_func_working_strerror" >&6; } if test $gl_cv_func_working_strerror = no; then REPLACE_STRERROR=1 fi @@ -17291,10 +21001,10 @@ echo "${ECHO_T}$gl_cv_func_working_strerror" >&6; } fi if test $REPLACE_STRERROR = 1; then - { echo "$as_me:$LINENO: checking whether strerror is declared" >&5 -echo $ECHO_N "checking whether strerror is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether strerror is declared" >&5 +$as_echo_n "checking whether strerror is declared... " >&6; } if test "${ac_cv_have_decl_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17320,20 +21030,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strerror=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strerror=no @@ -17341,9 +21052,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strerror" >&6; } -if test $ac_cv_have_decl_strerror = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5 +$as_echo "$ac_cv_have_decl_strerror" >&6; } +if test "x$ac_cv_have_decl_strerror" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR 1 @@ -17369,20 +21080,21 @@ fi for ac_header in winsock2.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -17398,32 +21110,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -17437,51 +21150,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -17490,21 +21204,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -17532,14 +21249,14 @@ done if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <string.h>" >&5 -echo $ECHO_N "checking absolute name of <string.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <string.h>" >&5 +$as_echo_n "checking absolute name of <string.h>... " >&6; } if test "${gl_cv_next_string_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_string_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_string_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17548,27 +21265,37 @@ cat >>conftest.$ac_ext <<_ACEOF #include <string.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/string.h#{ - s#.*"\(.*/string.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_string_h='<'string.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/string.h#{ + s#.*"\(.*/string.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_string_h='<'string.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_string_h" >&5 -echo "${ECHO_T}$gl_cv_next_string_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_string_h" >&5 +$as_echo "$gl_cv_next_string_h" >&6; } fi NEXT_STRING_H=$gl_cv_next_string_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'string.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_string_h + fi + NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive + + @@ -17587,17 +21314,102 @@ echo "${ECHO_T}$gl_cv_next_string_h" >&6; } + + for gl_func in memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strndup strnlen strpbrk strsep strcasestr strtok_r strsignal strverscmp; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <string.h> + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + + done + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then gl_cv_next_strings_h='<'strings.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <strings.h>" >&5 -echo $ECHO_N "checking absolute name of <strings.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <strings.h>" >&5 +$as_echo_n "checking absolute name of <strings.h>... " >&6; } if test "${gl_cv_next_strings_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_strings_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_strings_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17606,34 +21418,115 @@ cat >>conftest.$ac_ext <<_ACEOF #include <strings.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/strings.h#{ - s#.*"\(.*/strings.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_strings_h='<'strings.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/strings.h#{ + s#.*"\(.*/strings.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_strings_h='<'strings.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_strings_h" >&5 -echo "${ECHO_T}$gl_cv_next_strings_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_strings_h" >&5 +$as_echo "$gl_cv_next_strings_h" >&6; } fi NEXT_STRINGS_H=$gl_cv_next_strings_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'strings.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_strings_h + fi + NEXT_AS_FIRST_DIRECTIVE_STRINGS_H=$gl_next_as_first_directive + + + + + + + + for gl_func in strcasecmp strncasecmp; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <strings.h> + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done -{ echo "$as_me:$LINENO: checking whether strndup is declared" >&5 -echo $ECHO_N "checking whether strndup is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether strndup is declared" >&5 +$as_echo_n "checking whether strndup is declared... " >&6; } if test "${ac_cv_have_decl_strndup+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17659,20 +21552,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strndup=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strndup=no @@ -17680,9 +21574,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strndup" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strndup" >&6; } -if test $ac_cv_have_decl_strndup = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strndup" >&5 +$as_echo "$ac_cv_have_decl_strndup" >&6; } +if test "x$ac_cv_have_decl_strndup" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRNDUP 1 @@ -17698,10 +21592,12 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether strnlen is declared" >&5 -echo $ECHO_N "checking whether strnlen is declared... $ECHO_C" >&6; } + + +{ $as_echo "$as_me:$LINENO: checking whether strnlen is declared" >&5 +$as_echo_n "checking whether strnlen is declared... " >&6; } if test "${ac_cv_have_decl_strnlen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17727,20 +21623,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strnlen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strnlen=no @@ -17748,9 +21645,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strnlen" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strnlen" >&6; } -if test $ac_cv_have_decl_strnlen = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strnlen" >&5 +$as_echo "$ac_cv_have_decl_strnlen" >&6; } +if test "x$ac_cv_have_decl_strnlen" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRNLEN 1 @@ -17771,12 +21668,6 @@ fi - REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; - REPLACE_NANOSLEEP=GNULIB_PORTCHECK; - REPLACE_STRPTIME=GNULIB_PORTCHECK; - REPLACE_TIMEGM=GNULIB_PORTCHECK; - - @@ -17785,10 +21676,10 @@ fi - { echo "$as_me:$LINENO: checking for struct timespec in <time.h>" >&5 -echo $ECHO_N "checking for struct timespec in <time.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct timespec in <time.h>" >&5 +$as_echo_n "checking for struct timespec in <time.h>... " >&6; } if test "${gl_cv_sys_struct_timespec_in_time_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17812,20 +21703,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_sys_struct_timespec_in_time_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_sys_struct_timespec_in_time_h=no @@ -17833,18 +21725,18 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 -echo "${ECHO_T}$gl_cv_sys_struct_timespec_in_time_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 +$as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else - { echo "$as_me:$LINENO: checking for struct timespec in <sys/time.h>" >&5 -echo $ECHO_N "checking for struct timespec in <sys/time.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct timespec in <sys/time.h>" >&5 +$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; } if test "${gl_cv_sys_struct_timespec_in_sys_time_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17868,20 +21760,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_sys_struct_timespec_in_sys_time_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_sys_struct_timespec_in_sys_time_h=no @@ -17889,8 +21782,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 -echo "${ECHO_T}$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 +$as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 fi @@ -17915,14 +21808,14 @@ echo "${ECHO_T}$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <time.h>" >&5 -echo $ECHO_N "checking absolute name of <time.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <time.h>" >&5 +$as_echo_n "checking absolute name of <time.h>... " >&6; } if test "${gl_cv_next_time_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_time_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_time_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17931,27 +21824,35 @@ cat >>conftest.$ac_ext <<_ACEOF #include <time.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/time.h#{ - s#.*"\(.*/time.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_time_h='<'time.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/time.h#{ + s#.*"\(.*/time.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_time_h='<'time.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_time_h" >&5 -echo "${ECHO_T}$gl_cv_next_time_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_time_h" >&5 +$as_echo "$gl_cv_next_time_h" >&6; } fi NEXT_TIME_H=$gl_cv_next_time_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'time.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_time_h + fi + NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive @@ -17962,169 +21863,10 @@ echo "${ECHO_T}$gl_cv_next_time_h" >&6; } - - - - - - -{ echo "$as_me:$LINENO: checking whether utime accepts a null argument" >&5 -echo $ECHO_N "checking whether utime accepts a null argument... $ECHO_C" >&6; } -if test "${ac_cv_func_utime_null+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - rm -f conftest.data; >conftest.data -# Sequent interprets utime(file, 0) to mean use start of epoch. Wrong. -if test "$cross_compiling" = yes; then - ac_cv_func_utime_null=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - #ifdef HAVE_UTIME_H - # include <utime.h> - #endif -int -main () -{ -struct stat s, t; - return ! (stat ("conftest.data", &s) == 0 - && utime ("conftest.data", 0) == 0 - && stat ("conftest.data", &t) == 0 - && t.st_mtime >= s.st_mtime - && t.st_mtime - s.st_mtime < 120); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_utime_null=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_utime_null=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_utime_null" >&5 -echo "${ECHO_T}$ac_cv_func_utime_null" >&6; } -if test $ac_cv_func_utime_null = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_UTIME_NULL 1 -_ACEOF - -fi -rm -f conftest.data - - - - - - - - - - - { echo "$as_me:$LINENO: checking for struct utimbuf" >&5 -echo $ECHO_N "checking for struct utimbuf... $ECHO_C" >&6; } -if test "${gl_cv_sys_struct_utimbuf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#if HAVE_SYS_TIME_H - #include <sys/time.h> - #endif - #include <time.h> - #ifdef HAVE_UTIME_H - #include <utime.h> - #endif - -int -main () -{ -static struct utimbuf x; x.actime = x.modtime; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - gl_cv_sys_struct_utimbuf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gl_cv_sys_struct_utimbuf=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $gl_cv_sys_struct_utimbuf" >&5 -echo "${ECHO_T}$gl_cv_sys_struct_utimbuf" >&6; } - - if test $gl_cv_sys_struct_utimbuf = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRUCT_UTIMBUF 1 -_ACEOF - - fi - - - { echo "$as_me:$LINENO: checking determine whether the utimes function works" >&5 -echo $ECHO_N "checking determine whether the utimes function works... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether the utimes function works" >&5 +$as_echo_n "checking whether the utimes function works... " >&6; } if test "${gl_cv_func_working_utimes+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then @@ -18158,11 +21900,11 @@ main () int fd; int ok = ((f = fopen (file, "w")) - && fclose (f) == 0 - && utimes (file, timeval) == 0 - && lstat (file, &sbuf) == 0 - && sbuf.st_atime == timeval[0].tv_sec - && sbuf.st_mtime == timeval[1].tv_sec); + && fclose (f) == 0 + && utimes (file, timeval) == 0 + && lstat (file, &sbuf) == 0 + && sbuf.st_atime == timeval[0].tv_sec + && sbuf.st_mtime == timeval[1].tv_sec); unlink (file); if (!ok) exit (1); @@ -18180,8 +21922,8 @@ main () exit (1); ok = (0 <= (fd = open (file, O_WRONLY|O_CREAT, 0444)) - && close (fd) == 0 - && utimes (file, NULL) == 0); + && close (fd) == 0 + && utimes (file, NULL) == 0); unlink (file); exit (!ok); @@ -18194,36 +21936,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_working_utimes=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_working_utimes=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_working_utimes" >&5 -echo "${ECHO_T}$gl_cv_func_working_utimes" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_utimes" >&5 +$as_echo "$gl_cv_func_working_utimes" >&6; } if test $gl_cv_func_working_utimes = yes; then @@ -18244,10 +21989,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking for wchar_t" >&5 -echo $ECHO_N "checking for wchar_t... $ECHO_C" >&6; } -if test "${gt_cv_c_wchar_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for struct utimbuf" >&5 +$as_echo_n "checking for struct utimbuf... " >&6; } +if test "${gl_cv_sys_struct_utimbuf+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18255,12 +22000,18 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <stddef.h> - wchar_t foo = (wchar_t)'\0'; +#if HAVE_SYS_TIME_H + #include <sys/time.h> + #endif + #include <time.h> + #ifdef HAVE_UTIME_H + #include <utime.h> + #endif + int main () { - +static struct utimbuf x; x.actime = x.modtime; ; return 0; } @@ -18271,42 +22022,56 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - gt_cv_c_wchar_t=yes + gl_cv_sys_struct_utimbuf=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gt_cv_c_wchar_t=no + gl_cv_sys_struct_utimbuf=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_c_wchar_t" >&5 -echo "${ECHO_T}$gt_cv_c_wchar_t" >&6; } - if test $gt_cv_c_wchar_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_utimbuf" >&5 +$as_echo "$gl_cv_sys_struct_utimbuf" >&6; } + + if test $gl_cv_sys_struct_utimbuf = yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_WCHAR_T 1 +#define HAVE_STRUCT_UTIMBUF 1 _ACEOF fi - { echo "$as_me:$LINENO: checking for wint_t" >&5 -echo $ECHO_N "checking for wint_t... $ECHO_C" >&6; } + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking for wint_t" >&5 +$as_echo_n "checking for wint_t... " >&6; } if test "${gt_cv_c_wint_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18338,20 +22103,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gt_cv_c_wint_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_c_wint_t=no @@ -18359,8 +22125,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_c_wint_t" >&5 -echo "${ECHO_T}$gt_cv_c_wint_t" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_wint_t" >&5 +$as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then cat >>confdefs.h <<\_ACEOF @@ -18370,10 +22136,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for inttypes.h" >&5 -echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5 +$as_echo_n "checking for inttypes.h... " >&6; } if test "${gl_cv_header_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18397,20 +22163,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_header_inttypes_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_header_inttypes_h=no @@ -18418,8 +22185,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_inttypes_h" >&5 -echo "${ECHO_T}$gl_cv_header_inttypes_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_inttypes_h" >&5 +$as_echo "$gl_cv_header_inttypes_h" >&6; } if test $gl_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF @@ -18429,10 +22196,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for stdint.h" >&5 -echo $ECHO_N "checking for stdint.h... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for stdint.h" >&5 +$as_echo_n "checking for stdint.h... " >&6; } if test "${gl_cv_header_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18456,20 +22223,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_header_stdint_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_header_stdint_h=no @@ -18477,8 +22245,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_stdint_h" >&5 -echo "${ECHO_T}$gl_cv_header_stdint_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_stdint_h" >&5 +$as_echo "$gl_cv_header_stdint_h" >&6; } if test $gl_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF @@ -18490,10 +22258,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking for intmax_t" >&5 -echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for intmax_t" >&5 +$as_echo_n "checking for intmax_t... " >&6; } if test "${gt_cv_c_intmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18525,20 +22293,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gt_cv_c_intmax_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_c_intmax_t=no @@ -18546,8 +22315,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_c_intmax_t" >&5 -echo "${ECHO_T}$gt_cv_c_intmax_t" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_intmax_t" >&5 +$as_echo "$gt_cv_c_intmax_t" >&6; } if test $gt_cv_c_intmax_t = yes; then cat >>confdefs.h <<\_ACEOF @@ -18566,10 +22335,192 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether vsnprintf is declared" >&5 -echo $ECHO_N "checking whether vsnprintf is declared... $ECHO_C" >&6; } + + + + + + + + + + + +for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + { $as_echo "$as_me:$LINENO: checking whether _snprintf is declared" >&5 +$as_echo_n "checking whether _snprintf is declared... " >&6; } +if test "${ac_cv_have_decl__snprintf+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdio.h> + +int +main () +{ +#ifndef _snprintf + (void) _snprintf; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl__snprintf=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl__snprintf=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__snprintf" >&5 +$as_echo "$ac_cv_have_decl__snprintf" >&6; } +if test "x$ac_cv_have_decl__snprintf" = x""yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SNPRINTF 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__SNPRINTF 0 +_ACEOF + + +fi + + + +{ $as_echo "$as_me:$LINENO: checking whether vsnprintf is declared" >&5 +$as_echo_n "checking whether vsnprintf is declared... " >&6; } if test "${ac_cv_have_decl_vsnprintf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18595,20 +22546,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_vsnprintf=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_vsnprintf=no @@ -18616,9 +22568,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_vsnprintf" >&5 -echo "${ECHO_T}$ac_cv_have_decl_vsnprintf" >&6; } -if test $ac_cv_have_decl_vsnprintf = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_vsnprintf" >&5 +$as_echo "$ac_cv_have_decl_vsnprintf" >&6; } +if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_VSNPRINTF 1 @@ -18661,7 +22613,7 @@ fi - gl_source_base='.#bootmp/lib' + gl_source_base='gnu' @@ -18673,10 +22625,10 @@ fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then - { echo "$as_me:$LINENO: checking for alloca as a compiler built-in" >&5 -echo $ECHO_N "checking for alloca as a compiler built-in... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for alloca as a compiler built-in" >&5 +$as_echo_n "checking for alloca as a compiler built-in... " >&6; } if test "${gl_cv_rpl_alloca+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -18701,8 +22653,8 @@ rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $gl_cv_rpl_alloca" >&5 -echo "${ECHO_T}$gl_cv_rpl_alloca" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_rpl_alloca" >&5 +$as_echo "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then cat >>confdefs.h <<\_ACEOF @@ -18736,33 +22688,34 @@ _ACEOF + GETOPT_H=getopt.h +cat >>confdefs.h <<\_ACEOF +#define __GETOPT_PREFIX rpl_ +_ACEOF + GNULIB_UNISTD_H_GETOPT=1 - gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" + gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" - gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" - GETOPT_H=getopt.h -cat >>confdefs.h <<\_ACEOF -#define __GETOPT_PREFIX rpl_ -_ACEOF + gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" @@ -18772,10 +22725,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether program_invocation_name is declared" >&5 -echo $ECHO_N "checking whether program_invocation_name is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether program_invocation_name is declared" >&5 +$as_echo_n "checking whether program_invocation_name is declared... " >&6; } if test "${ac_cv_have_decl_program_invocation_name+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18802,20 +22755,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_program_invocation_name=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_program_invocation_name=no @@ -18823,9 +22777,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_name" >&5 -echo "${ECHO_T}$ac_cv_have_decl_program_invocation_name" >&6; } -if test $ac_cv_have_decl_program_invocation_name = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_name" >&5 +$as_echo "$ac_cv_have_decl_program_invocation_name" >&6; } +if test "x$ac_cv_have_decl_program_invocation_name" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_NAME 1 @@ -18839,10 +22793,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking whether program_invocation_short_name is declared" >&5 -echo $ECHO_N "checking whether program_invocation_short_name is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether program_invocation_short_name is declared" >&5 +$as_echo_n "checking whether program_invocation_short_name is declared... " >&6; } if test "${ac_cv_have_decl_program_invocation_short_name+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18869,20 +22823,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_program_invocation_short_name=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_program_invocation_short_name=no @@ -18890,9 +22845,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_short_name" >&5 -echo "${ECHO_T}$ac_cv_have_decl_program_invocation_short_name" >&6; } -if test $ac_cv_have_decl_program_invocation_short_name = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_short_name" >&5 +$as_echo "$ac_cv_have_decl_program_invocation_short_name" >&6; } +if test "x$ac_cv_have_decl_program_invocation_short_name" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1 @@ -18911,8 +22866,8 @@ fi # are defined elsewhere. It is improbable that only one of them will # be defined and other not, I prefer to stay on the safe side and to # test each one separately. - { echo "$as_me:$LINENO: checking whether program_invocation_name is defined" >&5 -echo $ECHO_N "checking whether program_invocation_name is defined... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether program_invocation_name is defined" >&5 +$as_echo_n "checking whether program_invocation_name is defined... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -18934,38 +22889,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then cat >>confdefs.h <<\_ACEOF #define HAVE_PROGRAM_INVOCATION_NAME 1 _ACEOF - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext - { echo "$as_me:$LINENO: checking whether program_invocation_short_name is defined" >&5 -echo $ECHO_N "checking whether program_invocation_short_name is defined... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether program_invocation_short_name is defined" >&5 +$as_echo_n "checking whether program_invocation_short_name is defined... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -18987,33 +22946,37 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then cat >>confdefs.h <<\_ACEOF #define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1 _ACEOF - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext @@ -19121,6 +23084,9 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + + + @@ -19131,10 +23097,10 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - { echo "$as_me:$LINENO: checking whether btowc(EOF) is correct" >&5 -echo $ECHO_N "checking whether btowc(EOF) is correct... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether btowc(EOF) is correct" >&5 +$as_echo_n "checking whether btowc(EOF) is correct... " >&6; } if test "${gl_cv_func_btowc_eof+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$host_os" in @@ -19145,11 +23111,7 @@ else esac if test $LOCALE_FR != none; then if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19178,29 +23140,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_btowc_eof=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_btowc_eof=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -19208,8 +23173,8 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_btowc_eof" >&5 -echo "${ECHO_T}$gl_cv_func_btowc_eof" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_btowc_eof" >&5 +$as_echo "$gl_cv_func_btowc_eof" >&6; } case "$gl_cv_func_btowc_eof" in *yes) ;; *) REPLACE_BTOWC=1 ;; @@ -19217,8 +23182,7 @@ echo "${ECHO_T}$gl_cv_func_btowc_eof" >&6; } fi if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then - - WCHAR_H=wchar.h + : @@ -19240,30 +23204,8 @@ echo "${ECHO_T}$gl_cv_func_btowc_eof" >&6; } GNULIB_BTOWC=1 - - - - - - - - - - - if test $ac_cv_func_canonicalize_file_name = no; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext" - - cat >>confdefs.h <<\_ACEOF -#define realpath rpl_realpath +#define GNULIB_BTOWC 1 _ACEOF @@ -19277,6 +23219,7 @@ _ACEOF + gl_LIBOBJS="$gl_LIBOBJS canonicalize.$ac_objext" @@ -19284,95 +23227,39 @@ _ACEOF - fi - - - -cat >>confdefs.h <<\_ACEOF -#define GNULIB_CANONICALIZE_LGPL 1 -_ACEOF - - - - { echo "$as_me:$LINENO: checking whether this system has an arbitrary file name length limit" >&5 -echo $ECHO_N "checking whether this system has an arbitrary file name length limit... $ECHO_C" >&6; } -if test "${gl_cv_have_arbitrary_file_name_length_limit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <unistd.h> -#include <limits.h> -#if defined PATH_MAX || defined MAXPATHLEN -have_arbitrary_file_name_length_limit -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1; then - gl_cv_have_arbitrary_file_name_length_limit=yes -else - gl_cv_have_arbitrary_file_name_length_limit=no -fi -rm -f conftest* - -fi -{ echo "$as_me:$LINENO: result: $gl_cv_have_arbitrary_file_name_length_limit" >&5 -echo "${ECHO_T}$gl_cv_have_arbitrary_file_name_length_limit" >&6; } - - if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then - - - - - - gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext" - - - : + if test $ac_cv_func_canonicalize_file_name = no; then + HAVE_CANONICALIZE_FILE_NAME=0 + elif test "$gl_cv_func_realpath_works" != yes; then + REPLACE_CANONICALIZE_FILE_NAME=1 fi - - - - - if test $ac_cv_func_chown_works = no; then - cat >>confdefs.h <<\_ACEOF -#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1 +#define GNULIB_CANONICALIZE 1 _ACEOF - fi - - # If chown has either of the above problems, then we need the wrapper. - if test $ac_cv_func_chown_works$gl_cv_func_chown_follows_symlink = yesyes; then - : # no wrapper needed - else - REPLACE_CHOWN=1 - + GNULIB_CANONICALIZE_FILE_NAME=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_CANONICALIZE_FILE_NAME 1 +_ACEOF - gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext" - { echo "$as_me:$LINENO: checking for fchown" >&5 -echo $ECHO_N "checking for fchown... $ECHO_C" >&6; } -if test "${ac_cv_func_fchown+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether this system has an arbitrary file name length limit" >&5 +$as_echo_n "checking whether this system has an arbitrary file name length limit... " >&6; } +if test "${gl_cv_have_arbitrary_file_name_length_limit+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19380,79 +23267,25 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define fchown to an innocuous variant, in case <limits.h> declares fchown. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define fchown innocuous_fchown - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char fchown (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef fchown - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char fchown (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_fchown || defined __stub___fchown -choke me +#include <unistd.h> +#include <limits.h> +#if defined PATH_MAX || defined MAXPATHLEN +have_arbitrary_file_name_length_limit #endif - -int -main () -{ -return fchown (); - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_fchown=yes +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1; then + gl_cv_have_arbitrary_file_name_length_limit=yes else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_fchown=no + gl_cv_have_arbitrary_file_name_length_limit=no fi +rm -f conftest* -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_fchown" >&5 -echo "${ECHO_T}$ac_cv_func_fchown" >&6; } -if test $ac_cv_func_fchown = yes; then - : -else +{ $as_echo "$as_me:$LINENO: result: $gl_cv_have_arbitrary_file_name_length_limit" >&5 +$as_echo "$gl_cv_have_arbitrary_file_name_length_limit" >&6; } + + if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then @@ -19461,18 +23294,27 @@ else - gl_LIBOBJS="$gl_LIBOBJS fchown-stub.$ac_objext" + gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext" -fi + : + fi + GNULIB_CHOWN=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_CHOWN 1 +_ACEOF + + + + # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function. @@ -19481,11 +23323,13 @@ fi # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all* # programs in the package would end up linked with that potentially-shared # library, inducing unnecessary run-time overhead. + LIB_CLOCK_GETTIME= + gl_saved_libs=$LIBS - { echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5 -echo $ECHO_N "checking for library containing clock_gettime... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5 +$as_echo_n "checking for library containing clock_gettime... " >&6; } if test "${ac_cv_search_clock_gettime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF @@ -19523,26 +23367,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_search_clock_gettime=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_clock_gettime+set}" = set; then @@ -19557,8 +23405,8 @@ fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5 -echo "${ECHO_T}$ac_cv_search_clock_gettime" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5 +$as_echo "$ac_cv_search_clock_gettime" >&6; } ac_res=$ac_cv_search_clock_gettime if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -19568,14 +23416,13 @@ fi - for ac_func in clock_gettime clock_settime do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19628,35 +23475,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -19672,6 +23526,13 @@ done GNULIB_CLOSE=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_CLOSE 1 +_ACEOF + + + + @@ -19706,10 +23567,10 @@ _ACEOF : - { echo "$as_me:$LINENO: checking for d_ino member in directory struct" >&5 -echo $ECHO_N "checking for d_ino member in directory struct... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for d_ino member in directory struct" >&5 +$as_echo_n "checking for d_ino member in directory struct... " >&6; } if test "${gl_cv_struct_dirent_d_ino+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then gl_cv_struct_dirent_d_ino=no @@ -19721,21 +23582,21 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> - #include <dirent.h> + #include <sys/stat.h> + #include <dirent.h> int main () { DIR *dp = opendir ("."); - struct dirent *e; - struct stat st; - if (! dp) - return 1; - e = readdir (dp); - return ! (e - && stat (e->d_name, &st) == 0 - && e->d_ino == st.st_ino); + struct dirent *e; + struct stat st; + if (! dp) + return 1; + e = readdir (dp); + return ! (e + && stat (e->d_name, &st) == 0 + && e->d_ino == st.st_ino); ; return 0; } @@ -19746,36 +23607,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_struct_dirent_d_ino=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_struct_dirent_d_ino=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_struct_dirent_d_ino" >&5 -echo "${ECHO_T}$gl_cv_struct_dirent_d_ino" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_struct_dirent_d_ino" >&5 +$as_echo "$gl_cv_struct_dirent_d_ino" >&6; } if test $gl_cv_struct_dirent_d_ino = yes; then cat >>confdefs.h <<\_ACEOF @@ -19802,14 +23666,14 @@ _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_dirent_h='<'dirent.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <dirent.h>" >&5 -echo $ECHO_N "checking absolute name of <dirent.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <dirent.h>" >&5 +$as_echo_n "checking absolute name of <dirent.h>... " >&6; } if test "${gl_cv_next_dirent_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_dirent_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_dirent_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -19818,27 +23682,119 @@ cat >>conftest.$ac_ext <<_ACEOF #include <dirent.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/dirent.h#{ - s#.*"\(.*/dirent.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_dirent_h='<'dirent.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/dirent.h#{ + s#.*"\(.*/dirent.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_dirent_h='<'dirent.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_dirent_h" >&5 -echo "${ECHO_T}$gl_cv_next_dirent_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_dirent_h" >&5 +$as_echo "$gl_cv_next_dirent_h" >&6; } fi NEXT_DIRENT_H=$gl_cv_next_dirent_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'dirent.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_dirent_h + fi + NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive + + + + + + + + + + for gl_func in alphasort dirfd fdopendir scandir; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <dirent.h> + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + + done + + + + + + + + @@ -19846,7 +23802,22 @@ echo "${ECHO_T}$gl_cv_next_dirent_h" >&6; } - DIRENT_H='dirent.h' + + + gl_LIBOBJS="$gl_LIBOBJS opendir-safer.$ac_objext" + + + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_DIRENT_SAFER 1 +_ACEOF + + + + + + : @@ -19857,11 +23828,11 @@ echo "${ECHO_T}$gl_cv_next_dirent_h" >&6; } for ac_func in dirfd do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19914,44 +23885,51 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done - { echo "$as_me:$LINENO: checking whether dirfd is declared" >&5 -echo $ECHO_N "checking whether dirfd is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether dirfd is declared" >&5 +$as_echo_n "checking whether dirfd is declared... " >&6; } if test "${ac_cv_have_decl_dirfd+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19979,20 +23957,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_dirfd=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_dirfd=no @@ -20000,9 +23979,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_dirfd" >&5 -echo "${ECHO_T}$ac_cv_have_decl_dirfd" >&6; } -if test $ac_cv_have_decl_dirfd = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_dirfd" >&5 +$as_echo "$ac_cv_have_decl_dirfd" >&6; } +if test "x$ac_cv_have_decl_dirfd" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_DIRFD 1 @@ -20022,10 +24001,10 @@ fi HAVE_DECL_DIRFD=0 fi - { echo "$as_me:$LINENO: checking whether dirfd is a macro" >&5 -echo $ECHO_N "checking whether dirfd is a macro... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether dirfd is a macro" >&5 +$as_echo_n "checking whether dirfd is a macro... " >&6; } if test "${gl_cv_func_dirfd_macro+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20049,8 +24028,8 @@ fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_dirfd_macro" >&5 -echo "${ECHO_T}$gl_cv_func_dirfd_macro" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_dirfd_macro" >&5 +$as_echo "$gl_cv_func_dirfd_macro" >&6; } # Use the replacement only if we have no function, macro, # or declaration with that name. @@ -20067,11 +24046,11 @@ echo "${ECHO_T}$gl_cv_func_dirfd_macro" >&6; } for ac_func in dirfd do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20124,199 +24103,588 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + +fi +done + + + { $as_echo "$as_me:$LINENO: checking how to get the file descriptor associated with an open DIR*" >&5 +$as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; } +if test "${gl_cv_sys_dir_fd_member_name+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + dirfd_save_CFLAGS=$CFLAGS + for ac_expr in d_fd dd_fd; do + + CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include <sys/types.h> + #include <dirent.h> +int +main () +{ +DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + dir_fd_found=yes + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$dirfd_save_CFLAGS + test "$dir_fd_found" = yes && break + done + test "$dir_fd_found" = yes || ac_expr=no_such_member + + gl_cv_sys_dir_fd_member_name=$ac_expr + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_sys_dir_fd_member_name" >&5 +$as_echo "$gl_cv_sys_dir_fd_member_name" >&6; } + if test $gl_cv_sys_dir_fd_member_name != no_such_member; then + +cat >>confdefs.h <<_ACEOF +#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name +_ACEOF + + fi + + + fi + + + + GNULIB_DIRFD=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_DIRFD 1 +_ACEOF + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS basename.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dirname.$ac_objext" + + + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_DIRNAME 1 +_ACEOF + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS basename-lgpl.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dirname-lgpl.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext" + + + + + + + + + { $as_echo "$as_me:$LINENO: checking whether // is distinct from /" >&5 +$as_echo_n "checking whether // is distinct from /... " >&6; } +if test "${gl_cv_double_slash_root+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test x"$cross_compiling" = xyes ; then + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # <bug-gnulib@gnu.org>. + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac + else + set x `ls -di / // 2>/dev/null` + if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi + fi +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5 +$as_echo "$gl_cv_double_slash_root" >&6; } + if test "$gl_cv_double_slash_root" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1 +_ACEOF + + fi + + + + + + + + + + + if test $ac_cv_func_dup2 = no; then + HAVE_DUP2=0 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" + + else + { $as_echo "$as_me:$LINENO: checking whether dup2 works" >&5 +$as_echo_n "checking whether dup2 works... " >&6; } +if test "${gl_cv_func_dup2_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + case "$host_os" in + mingw*) # on this platform, dup2 always returns 0 for success + gl_cv_func_dup2_works=no;; + cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 + gl_cv_func_dup2_works=no;; + linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a + # closed fd may yield -EBADF instead of -1 / errno=EBADF. + gl_cv_func_dup2_works=no;; + freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF. + gl_cv_func_dup2_works=no;; + *) gl_cv_func_dup2_works=yes;; + esac +else + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <unistd.h> +#include <errno.h> +int +main () +{ +if (dup2 (1, 1) == 0) + return 1; + close (0); + if (dup2 (0, 0) != -1) + return 2; + /* Many gnulib modules require POSIX conformance of EBADF. */ + if (dup2 (1, 1000000) == -1 && errno != EBADF) + return 3; + return 0; + + ; + return 0; +} + +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_dup2_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_dup2_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_dup2_works" >&5 +$as_echo "$gl_cv_func_dup2_works" >&6; } + if test "$gl_cv_func_dup2_works" = no; then + + + if test $ac_cv_func_dup2 = yes; then + REPLACE_DUP2=1 + fi + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" + + + fi + fi + + + + GNULIB_DUP2=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_DUP2 1 +_ACEOF + + + + + + + GNULIB_ENVIRON=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_ENVIRON 1 _ACEOF + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for error_at_line" >&5 +$as_echo_n "checking for error_at_line... " >&6; } +if test "${ac_cv_lib_error_at_line+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <error.h> +int +main () +{ +error_at_line (0, 0, "", 0, "an error occurred"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_error_at_line=yes else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_error_at_line=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 +$as_echo "$ac_cv_lib_error_at_line" >&6; } +if test $ac_cv_lib_error_at_line = no; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" + +fi + + + + + : + + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS exclude.$ac_objext" + + + + + + + + - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" -fi -done - { echo "$as_me:$LINENO: checking how to get the file descriptor associated with an open DIR*" >&5 -echo $ECHO_N "checking how to get the file descriptor associated with an open DIR*... $ECHO_C" >&6; } -if test "${gl_cv_sys_dir_fd_member_name+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test $ac_cv_func_fchdir = no; then + REPLACE_FCHDIR=1 - dirfd_save_CFLAGS=$CFLAGS - for ac_expr in d_fd dd_fd; do - CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <sys/types.h> - #include <dirent.h> -int -main () -{ -DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - dir_fd_found=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS=$dirfd_save_CFLAGS - test "$dir_fd_found" = yes && break - done - test "$dir_fd_found" = yes || ac_expr=no_such_member - gl_cv_sys_dir_fd_member_name=$ac_expr + gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext" -fi -{ echo "$as_me:$LINENO: result: $gl_cv_sys_dir_fd_member_name" >&5 -echo "${ECHO_T}$gl_cv_sys_dir_fd_member_name" >&6; } - if test $gl_cv_sys_dir_fd_member_name != no_such_member; then + : -cat >>confdefs.h <<_ACEOF -#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name +cat >>confdefs.h <<\_ACEOF +#define REPLACE_FCHDIR 1 _ACEOF - fi - + REPLACE_OPENDIR=1 + REPLACE_CLOSEDIR=1 + REPLACE_DUP=1 - fi + REPLACE_OPEN=1 - GNULIB_DIRFD=1 + gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext" - gl_LIBOBJS="$gl_LIBOBJS basename.$ac_objext" + : + REPLACE_CLOSE=1 - gl_LIBOBJS="$gl_LIBOBJS dirname.$ac_objext" + gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext" + REPLACE_FCLOSE=1 - gl_LIBOBJS="$gl_LIBOBJS stripslash.$ac_objext" + gl_LIBOBJS="$gl_LIBOBJS fclose.$ac_objext" - { echo "$as_me:$LINENO: checking whether // is distinct from /" >&5 -echo $ECHO_N "checking whether // is distinct from /... $ECHO_C" >&6; } -if test "${gl_cv_double_slash_root+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test x"$cross_compiling" = xyes ; then - # When cross-compiling, there is no way to tell whether // is special - # short of a list of hosts. However, the only known hosts to date - # that have a distinct // are Apollo DomainOS (too old to port to), - # Cygwin, and z/OS. If anyone knows of another system for which // has - # special semantics and is distinct from /, please report it to - # <bug-gnulib@gnu.org>. - case $host in - *-cygwin | i370-ibm-openedition) - gl_cv_double_slash_root=yes ;; - *) - # Be optimistic and assume that / and // are the same when we - # don't know. - gl_cv_double_slash_root='unknown, assuming no' ;; - esac - else - set x `ls -di / // 2>/dev/null` - if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then - gl_cv_double_slash_root=no - else - gl_cv_double_slash_root=yes - fi - fi -fi -{ echo "$as_me:$LINENO: result: $gl_cv_double_slash_root" >&5 -echo "${ECHO_T}$gl_cv_double_slash_root" >&6; } - if test "$gl_cv_double_slash_root" = yes; then -cat >>confdefs.h <<\_ACEOF -#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1 -_ACEOF + if test $ac_cv_func_dup2 = yes; then + REPLACE_DUP2=1 fi @@ -20326,9 +24694,8 @@ _ACEOF + gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" - if test $ac_cv_func_dup2 = no; then - HAVE_DUP2=0 @@ -20337,87 +24704,107 @@ _ACEOF - gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext" + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 fi - GNULIB_DUP2=1 + gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" - { echo "$as_me:$LINENO: checking if environ is properly declared" >&5 -echo $ECHO_N "checking if environ is properly declared... $ECHO_C" >&6; } - if test "${gt_cv_var_environ_declaration+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF + + : + + { $as_echo "$as_me:$LINENO: checking whether open can visit directories" >&5 +$as_echo_n "checking whether open can visit directories... " >&6; } +if test "${gl_cv_func_open_directory_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + gl_cv_func_open_directory_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <unistd.h> - extern struct { int foo; } environ; +#include <fcntl.h> + int main () { -environ.foo = 1; +return open(".", O_RDONLY) < 0; ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - gt_cv_var_environ_declaration=no + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_open_directory_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gt_cv_var_environ_declaration=yes +( exit $ac_status ) +gl_cv_func_open_directory_works=no fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - { echo "$as_me:$LINENO: result: $gt_cv_var_environ_declaration" >&5 -echo "${ECHO_T}$gt_cv_var_environ_declaration" >&6; } - if test $gt_cv_var_environ_declaration = yes; then + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_open_directory_works" >&5 +$as_echo "$gl_cv_func_open_directory_works" >&6; } + if test "$gl_cv_func_open_directory_works" != yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_ENVIRON_DECL 1 +#define REPLACE_OPEN_DIRECTORY 1 _ACEOF + REPLACE_FSTAT=1 + fi fi - if test $gt_cv_var_environ_declaration != yes; then - HAVE_DECL_ENVIRON=0 - fi + GNULIB_FCHDIR=1 - GNULIB_ENVIRON=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_FCHDIR 1 +_ACEOF @@ -20425,18 +24812,62 @@ _ACEOF + GNULIB_FCLOSE=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_FCLOSE 1 +_ACEOF -{ echo "$as_me:$LINENO: checking for error_at_line" >&5 -echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; } -if test "${ac_cv_lib_error_at_line+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + + + + if test $ac_cv_func_fcntl = no; then + + + + + + + + + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" + + + else + { $as_echo "$as_me:$LINENO: checking whether fcntl handles F_DUPFD correctly" >&5 +$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; } +if test "${gl_cv_func_fcntl_f_dupfd_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + # Guess that it works on glibc systems + case $host_os in #(( + *-gnu*) gl_cv_func_fcntl_f_dupfd_works="guessing yes";; + *) gl_cv_func_fcntl_f_dupfd_works="guessing no";; + esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20444,84 +24875,193 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <error.h> + +#include <fcntl.h> + int main () { -error_at_line (0, 0, "", 0, "an error occurred"); +return fcntl (0, F_DUPFD, -1) != -1; + ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_error_at_line=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_fcntl_f_dupfd_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_lib_error_at_line=no +( exit $ac_status ) +gl_cv_func_fcntl_f_dupfd_works=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 -echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; } -if test $ac_cv_lib_error_at_line = no; then +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fcntl_f_dupfd_works" >&5 +$as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; } + case $gl_cv_func_fcntl_f_dupfd_works in + *yes) ;; + *) - gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" -fi + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi - : - XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" + gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" - XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" +cat >>confdefs.h <<\_ACEOF +#define FCNTL_DUPFD_BUGGY 1 +_ACEOF + ;; + esac + { $as_echo "$as_me:$LINENO: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5 +$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; } +if test "${gl_cv_func_fcntl_f_dupfd_cloexec+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <fcntl.h> +#ifndef F_DUPFD_CLOEXEC +choke me +#endif +int +main () +{ + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __linux__ +/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace + it to support the semantics on older kernels that failed with EINVAL. */ +choke me +#endif +int +main () +{ + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_func_fcntl_f_dupfd_cloexec=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check" +fi - gl_LIBOBJS="$gl_LIBOBJS exclude.$ac_objext" +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + gl_cv_func_fcntl_f_dupfd_cloexec=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5 +$as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; } + if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then @@ -20530,118 +25070,215 @@ fi + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi - gl_LIBOBJS="$gl_LIBOBJS exitfail.$ac_objext" - : + gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext" + fi + fi - if test $ac_cv_func_fchdir = no; then - REPLACE_FCHDIR=1 + GNULIB_FCNTL=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_FCNTL 1 +_ACEOF - gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext" - : -cat >>confdefs.h <<\_ACEOF -#define FCHDIR_REPLACEMENT 1 -_ACEOF - if test $REPLACE_OPEN != 1; then + if test $gl_cv_have_include_next = yes; then + gl_cv_next_fcntl_h='<'fcntl.h'>' + else + { $as_echo "$as_me:$LINENO: checking absolute name of <fcntl.h>" >&5 +$as_echo_n "checking absolute name of <fcntl.h>... " >&6; } +if test "${gl_cv_next_fcntl_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test $ac_cv_header_fcntl_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <fcntl.h> - gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext" +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/fcntl.h#{ + s#.*"\(.*/fcntl.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_fcntl_h='<'fcntl.h'>' + fi +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_fcntl_h" >&5 +$as_echo "$gl_cv_next_fcntl_h" >&6; } + fi + NEXT_FCNTL_H=$gl_cv_next_fcntl_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'fcntl.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_fcntl_h + fi + NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive - : - fi - REPLACE_OPEN=1 - if test $REPLACE_CLOSE != 1; then + for gl_func in fcntl openat; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <fcntl.h> +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + eval "$as_gl_Symbol=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + eval ac_cv_have_decl_$gl_func=yes +fi + done - gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext" - fi - REPLACE_CLOSE=1 - if test $REPLACE_FCLOSE != 1; then + if test $ac_cv_func_fdopendir = no; then - gl_LIBOBJS="$gl_LIBOBJS fclose.$ac_objext" - fi - REPLACE_FCLOSE=1 - LIB_CLOSE="-lws2_32" - DIRENT_H='dirent.h' + gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext" - fi - GNULIB_FCHDIR=1 - GNULIB_FCLOSE=1 + gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext" + : - { echo "$as_me:$LINENO: checking for working fcntl.h" >&5 -echo $ECHO_N "checking for working fcntl.h... $ECHO_C" >&6; } -if test "${gl_cv_header_working_fcntl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + HAVE_FDOPENDIR=0 + else + { $as_echo "$as_me:$LINENO: checking whether fdopendir works" >&5 +$as_echo_n "checking whether fdopendir works... " >&6; } +if test "${gl_cv_func_fdopendir_works+set}" = set; then + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - gl_cv_header_working_fcntl_h=cross-compiling + gl_cv_func_fdopendir_works="guessing no" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20649,48 +25286,16 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <sys/types.h> - #include <sys/stat.h> - #include <unistd.h> - #include <fcntl.h> - #ifndef O_NOATIME - #define O_NOATIME 0 - #endif - #ifndef O_NOFOLLOW - #define O_NOFOLLOW 0 - #endif - static int const constants[] = - { - O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, - O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY - }; - -int -main () -{ - - int status = !constants; - { - static char const sym[] = "conftest.sym"; - if (symlink (".", sym) != 0 - || close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0) - status |= 32; - } - { - static char const file[] = "confdefs.h"; - int fd = open (file, O_RDONLY | O_NOATIME); - char c; - struct stat st0, st1; - if (fd < 0 - || fstat (fd, &st0) != 0 - || sleep (1) != 0 - || read (fd, &c, 1) != 1 - || close (fd) != 0 - || stat (file, &st1) != 0 - || st0.st_atime != st1.st_atime) - status |= 64; - } - return status; + +#include <dirent.h> +#include <fcntl.h> + +int +main () +{ +int fd = open ("conftest.c", O_RDONLY); + if (fd < 0) return 2; + return !!fdopendir (fd); ; return 0; } @@ -20701,128 +25306,45 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - gl_cv_header_working_fcntl_h=yes + gl_cv_func_fdopendir_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -case $? in #( - 32) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( - 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( - 96) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( - *) gl_cv_header_working_fcntl_h='no';; - esac +gl_cv_func_fdopendir_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_working_fcntl_h" >&5 -echo "${ECHO_T}$gl_cv_header_working_fcntl_h" >&6; } - - case $gl_cv_header_working_fcntl_h in #( - *O_NOATIME* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - -cat >>confdefs.h <<_ACEOF -#define HAVE_WORKING_O_NOATIME $ac_val -_ACEOF - - - case $gl_cv_header_working_fcntl_h in #( - *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - -cat >>confdefs.h <<_ACEOF -#define HAVE_WORKING_O_NOFOLLOW $ac_val -_ACEOF - - - - - - - - - - - - - - if test $gl_cv_have_include_next = yes; then - gl_cv_next_fcntl_h='<'fcntl.h'>' - else - { echo "$as_me:$LINENO: checking absolute name of <fcntl.h>" >&5 -echo $ECHO_N "checking absolute name of <fcntl.h>... $ECHO_C" >&6; } -if test "${gl_cv_next_fcntl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - if test $ac_cv_header_fcntl_h = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <fcntl.h> - -_ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/fcntl.h#{ - s#.*"\(.*/fcntl.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_fcntl_h='<'fcntl.h'>' - fi - -fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_fcntl_h" >&5 -echo "${ECHO_T}$gl_cv_next_fcntl_h" >&6; } - fi - NEXT_FCNTL_H=$gl_cv_next_fcntl_h - - - - FCNTL_H='fcntl.h' - - - - - - - - +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fdopendir_works" >&5 +$as_echo "$gl_cv_func_fdopendir_works" >&6; } + if test "$gl_cv_func_fdopendir_works" != yes; then + REPLACE_FDOPENDIR=1 + : - gl_LIBOBJS="$gl_LIBOBJS open-safer.$ac_objext" @@ -20830,23 +25352,27 @@ echo "${ECHO_T}$gl_cv_next_fcntl_h" >&6; } + gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext" + fi + fi - gl_LIBOBJS="$gl_LIBOBJS creat-safer.$ac_objext" + GNULIB_FDOPENDIR=1 cat >>confdefs.h <<\_ACEOF -#define GNULIB_FCNTL_SAFER 1 +#define GNULIB_FDOPENDIR 1 _ACEOF - { echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 -echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6; } + + { $as_echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 +$as_echo_n "checking for struct stat.st_blocks... " >&6; } if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20871,20 +25397,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blocks=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -20910,20 +25437,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blocks=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_blocks=no @@ -20934,9 +25462,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6; } -if test $ac_cv_member_struct_stat_st_blocks = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 +$as_echo "$ac_cv_member_struct_stat_st_blocks" >&6; } +if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLOCKS 1 @@ -20994,14 +25522,14 @@ fi if test $gl_cv_have_include_next = yes; then gl_cv_next_float_h='<'float.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <float.h>" >&5 -echo $ECHO_N "checking absolute name of <float.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <float.h>" >&5 +$as_echo_n "checking absolute name of <float.h>... " >&6; } if test "${gl_cv_next_float_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_float_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_float_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21010,45 +25538,64 @@ cat >>conftest.$ac_ext <<_ACEOF #include <float.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/float.h#{ - s#.*"\(.*/float.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_float_h='<'float.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/float.h#{ + s#.*"\(.*/float.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_float_h='<'float.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_float_h" >&5 -echo "${ECHO_T}$gl_cv_next_float_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_float_h" >&5 +$as_echo "$gl_cv_next_float_h" >&6; } fi NEXT_FLOAT_H=$gl_cv_next_float_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'float.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_float_h + fi + NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive + ;; esac - # No macro. You should also use one of fnmatch-posix or fnmatch-gnu. + + FNMATCH_H= - { echo "$as_me:$LINENO: checking for working GNU fnmatch" >&5 -echo $ECHO_N "checking for working GNU fnmatch... $ECHO_C" >&6; } -if test "${ac_cv_func_fnmatch_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_fnmatch_gnu=cross + gl_fnmatch_required_lowercase=`echo $gl_fnmatch_required | tr 'A-Z' 'a-z'` + gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}" + { $as_echo "$as_me:$LINENO: checking for working $gl_fnmatch_required fnmatch" >&5 +$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; } +if { as_var=$gl_fnmatch_cache_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + if test $gl_fnmatch_required = GNU; then + gl_fnmatch_gnu_start= + gl_fnmatch_gnu_end= + else + gl_fnmatch_gnu_start='#if 0' + gl_fnmatch_gnu_end='#endif' + fi + if test "$cross_compiling" = yes; then + eval "$gl_fnmatch_cache_var=\"guessing no\"" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21057,52 +25604,56 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <fnmatch.h> - static int - y (char const *pattern, char const *string, int flags) - { - return fnmatch (pattern, string, flags) == 0; - } - static int - n (char const *pattern, char const *string, int flags) - { - return fnmatch (pattern, string, flags) == FNM_NOMATCH; - } + static int + y (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == 0; + } + static int + n (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == FNM_NOMATCH; + } int main () { char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]"; - char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]"; - static char const A_1[] = { 'A' - 1, 0 }; - static char const A01[] = { 'A' + 1, 0 }; - static char const a_1[] = { 'a' - 1, 0 }; - static char const a01[] = { 'a' + 1, 0 }; - static char const bs_1[] = { '\\\\' - 1, 0 }; - static char const bs01[] = { '\\\\' + 1, 0 }; - return - !(n ("a*", "", 0) - && y ("a*", "abc", 0) - && n ("d*/*1", "d/s/1", FNM_PATHNAME) - && y ("a\\\\bc", "abc", 0) - && n ("a\\\\bc", "abc", FNM_NOESCAPE) - && y ("*x", ".x", 0) - && n ("*x", ".x", FNM_PERIOD) - && y (Apat, "\\\\", 0) && y (Apat, "A", 0) - && y (apat, "\\\\", 0) && y (apat, "a", 0) - && n (Apat, A_1, 0) == ('A' < '\\\\') - && n (apat, a_1, 0) == ('a' < '\\\\') - && y (Apat, A01, 0) == ('A' < '\\\\') - && y (apat, a01, 0) == ('a' < '\\\\') - && y (Apat, bs_1, 0) == ('A' < '\\\\') - && y (apat, bs_1, 0) == ('a' < '\\\\') - && n (Apat, bs01, 0) == ('A' < '\\\\') - && n (apat, bs01, 0) == ('a' < '\\\\') - && y ("xxXX", "xXxX", FNM_CASEFOLD) - && y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH) - && n ("d*/*1", "d/s/1", FNM_FILE_NAME) - && y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) - && y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) - && y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR)); + char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]"; + static char const A_1[] = { 'A' - 1, 0 }; + static char const A01[] = { 'A' + 1, 0 }; + static char const a_1[] = { 'a' - 1, 0 }; + static char const a01[] = { 'a' + 1, 0 }; + static char const bs_1[] = { '\\\\' - 1, 0 }; + static char const bs01[] = { '\\\\' + 1, 0 }; + return + !(n ("a*", "", 0) + && y ("a*", "abc", 0) + && n ("d*/*1", "d/s/1", FNM_PATHNAME) + && y ("a\\\\bc", "abc", 0) + && n ("a\\\\bc", "abc", FNM_NOESCAPE) + && y ("*x", ".x", 0) + && n ("*x", ".x", FNM_PERIOD) + && y (Apat, "\\\\", 0) && y (Apat, "A", 0) + && y (apat, "\\\\", 0) && y (apat, "a", 0) + && n (Apat, A_1, 0) == ('A' < '\\\\') + && n (apat, a_1, 0) == ('a' < '\\\\') + && y (Apat, A01, 0) == ('A' < '\\\\') + && y (apat, a01, 0) == ('a' < '\\\\') + && y (Apat, bs_1, 0) == ('A' < '\\\\') + && y (apat, bs_1, 0) == ('a' < '\\\\') + && n (Apat, bs01, 0) == ('A' < '\\\\') + && n (apat, bs01, 0) == ('a' < '\\\\') + $gl_fnmatch_gnu_start + && y ("xxXX", "xXxX", FNM_CASEFOLD) + && y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH) + && n ("d*/*1", "d/s/1", FNM_FILE_NAME) + && y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) + && y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) + && y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR) + $gl_fnmatch_gnu_end + ); + ; return 0; } @@ -21113,43 +25664,67 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_fnmatch_gnu=yes + eval "$gl_fnmatch_cache_var=yes" else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -ac_cv_func_fnmatch_gnu=no +eval "$gl_fnmatch_cache_var=no" fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_fnmatch_gnu" >&5 -echo "${ECHO_T}$ac_cv_func_fnmatch_gnu" >&6; } -if test $ac_cv_func_fnmatch_gnu = yes; then - rm -f lib/fnmatch.h -else - { echo "$as_me:$LINENO: checking whether isblank is declared" >&5 -echo $ECHO_N "checking whether isblank is declared... $ECHO_C" >&6; } +ac_res=`eval 'as_val=${'$gl_fnmatch_cache_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\"" + if test "$gl_fnmatch_result" = yes; then + rm -f "$gl_source_base/fnmatch.h" + else + FNMATCH_H=fnmatch.h + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" + + +cat >>confdefs.h <<_ACEOF +#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch +_ACEOF + + + { $as_echo "$as_me:$LINENO: checking whether isblank is declared" >&5 +$as_echo_n "checking whether isblank is declared... " >&6; } if test "${ac_cv_have_decl_isblank+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21176,20 +25751,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_isblank=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_isblank=no @@ -21197,9 +25773,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_isblank" >&5 -echo "${ECHO_T}$ac_cv_have_decl_isblank" >&6; } -if test $ac_cv_have_decl_isblank = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_isblank" >&5 +$as_echo "$ac_cv_have_decl_isblank" >&6; } +if test "x$ac_cv_have_decl_isblank" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ISBLANK 1 @@ -21241,28 +25817,12 @@ fi + fi - - - - gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" - -FNMATCH_H=fnmatch.h - -fi - - - if test $ac_cv_func_fnmatch_gnu != yes; then - -cat >>confdefs.h <<\_ACEOF -#define fnmatch gnu_fnmatch -_ACEOF - - fi @@ -21284,10 +25844,10 @@ _ACEOF # include <stdio_ext.h> # endif ' - { echo "$as_me:$LINENO: checking whether __fpending is declared" >&5 -echo $ECHO_N "checking whether __fpending is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether __fpending is declared" >&5 +$as_echo_n "checking whether __fpending is declared... " >&6; } if test "${ac_cv_have_decl___fpending+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21314,20 +25874,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl___fpending=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl___fpending=no @@ -21335,9 +25896,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl___fpending" >&5 -echo "${ECHO_T}$ac_cv_have_decl___fpending" >&6; } -if test $ac_cv_have_decl___fpending = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___fpending" >&5 +$as_echo "$ac_cv_have_decl___fpending" >&6; } +if test "x$ac_cv_have_decl___fpending" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL___FPENDING 1 @@ -21354,56 +25915,55 @@ fi if test $ac_cv_func___fpending = no; then - { echo "$as_me:$LINENO: checking how to determine the number of pending output bytes on a stream" >&5 -echo $ECHO_N "checking how to determine the number of pending output bytes on a stream... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking how to determine the number of pending output bytes on a stream" >&5 +$as_echo_n "checking how to determine the number of pending output bytes on a stream... " >&6; } if test "${ac_cv_sys_pending_output_n_bytes+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - for ac_expr in \ - \ - '# glibc2' \ - 'fp->_IO_write_ptr - fp->_IO_write_base' \ - \ - '# traditional Unix' \ - 'fp->_ptr - fp->_base' \ - \ - '# BSD' \ - 'fp->_p - fp->_bf._base' \ - \ - '# SCO, Unixware' \ - '(fp->__ptr ? fp->__ptr - fp->__base : 0)' \ - \ - '# QNX' \ - '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \ - \ - '# old glibc?' \ - 'fp->__bufp - fp->__buffer' \ - \ - '# old glibc iostream?' \ - 'fp->_pptr - fp->_pbase' \ - \ - '# emx+gcc' \ - 'fp->_ptr - fp->_buffer' \ - \ - '# VMS' \ - '(*fp)->_ptr - (*fp)->_base' \ - \ - '# e.g., DGUX R4.11; the info is not available' \ - 1 \ - ; do - - # Skip each embedded comment. - case "$ac_expr" in '#'*) continue;; esac - - cat >conftest.$ac_ext <<_ACEOF + $as_echo_n "(cached) " >&6 +else + + for ac_expr in \ + \ + '# glibc2' \ + 'fp->_IO_write_ptr - fp->_IO_write_base' \ + \ + '# traditional Unix' \ + 'fp->_ptr - fp->_base' \ + \ + '# BSD' \ + 'fp->_p - fp->_bf._base' \ + \ + '# SCO, Unixware' \ + '(fp->__ptr ? fp->__ptr - fp->__base : 0)' \ + \ + '# QNX' \ + '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \ + \ + '# old glibc?' \ + 'fp->__bufp - fp->__buffer' \ + \ + '# old glibc iostream?' \ + 'fp->_pptr - fp->_pbase' \ + \ + '# emx+gcc' \ + 'fp->_ptr - fp->_buffer' \ + \ + '# VMS' \ + '(*fp)->_ptr - (*fp)->_base' \ + \ + '# e.g., DGUX R4.11; the info is not available' \ + 1 \ + ; do + + # Skip each embedded comment. + case "$ac_expr" in '#'*) continue;; esac + + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdio.h> - int main () { @@ -21418,13 +25978,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -21432,22 +25993,22 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 fp_done=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test "$fp_done" = yes && break - done + test "$fp_done" = yes && break + done - ac_cv_sys_pending_output_n_bytes=$ac_expr + ac_cv_sys_pending_output_n_bytes=$ac_expr fi -{ echo "$as_me:$LINENO: result: $ac_cv_sys_pending_output_n_bytes" >&5 -echo "${ECHO_T}$ac_cv_sys_pending_output_n_bytes" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_pending_output_n_bytes" >&5 +$as_echo "$ac_cv_sys_pending_output_n_bytes" >&6; } cat >>confdefs.h <<_ACEOF #define PENDING_OUTPUT_N_BYTES $ac_cv_sys_pending_output_n_bytes @@ -21472,10 +26033,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking for fseeko" >&5 -echo $ECHO_N "checking for fseeko... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for fseeko" >&5 +$as_echo_n "checking for fseeko... " >&6; } if test "${gl_cv_func_fseeko+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -21485,6 +26046,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdio.h> + int main () { @@ -21499,34 +26061,38 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gl_cv_func_fseeko=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func_fseeko=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_fseeko" >&5 -echo "${ECHO_T}$gl_cv_func_fseeko" >&6; } - if test $gl_cv_func_fseeko = no; then - HAVE_FSEEKO=0 +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fseeko" >&5 +$as_echo "$gl_cv_func_fseeko" >&6; } + if test $gl_cv_func_fseeko = no \ + || test $gl_cv_var_stdin_large_offset = no; then @@ -21541,26 +26107,19 @@ echo "${ECHO_T}$gl_cv_func_fseeko" >&6; } REPLACE_FSEEKO=1 - elif test $gl_cv_var_stdin_large_offset = no; then - - - - - - - + fi - gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext" - REPLACE_FSEEKO=1 + GNULIB_FSEEKO=1 - fi +cat >>confdefs.h <<\_ACEOF +#define GNULIB_FSEEKO 1 +_ACEOF - GNULIB_FSEEKO=1 @@ -21587,11 +26146,11 @@ echo "${ECHO_T}$gl_cv_func_fseeko" >&6; } for ac_func in chsize do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21644,35 +26203,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -21687,19 +26253,21 @@ done # If someone lacks ftruncate, make configure fail, and request # a bug report to inform us about it. if test x"$SKIP_FTRUNCATE_CHECK" != xyes; then - { { echo "$as_me:$LINENO: error: Your system lacks the ftruncate function. - Please report this, along with the output of \"uname -a\", to the - bug-coreutils@gnu.org mailing list. To continue past this point, - rerun configure with SKIP_FTRUNCATE_CHECK=yes. - E.g., ./configure SKIP_FTRUNCATE_CHECK=yes + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: Your system lacks the ftruncate function. + Please report this, along with the output of \"uname -a\", to the + bug-coreutils@gnu.org mailing list. To continue past this point, + rerun configure with SKIP_FTRUNCATE_CHECK=yes. + E.g., ./configure SKIP_FTRUNCATE_CHECK=yes See \`config.log' for more details." >&5 -echo "$as_me: error: Your system lacks the ftruncate function. - Please report this, along with the output of \"uname -a\", to the - bug-coreutils@gnu.org mailing list. To continue past this point, - rerun configure with SKIP_FTRUNCATE_CHECK=yes. - E.g., ./configure SKIP_FTRUNCATE_CHECK=yes +$as_echo "$as_me: error: Your system lacks the ftruncate function. + Please report this, along with the output of \"uname -a\", to the + bug-coreutils@gnu.org mailing list. To continue past this point, + rerun configure with SKIP_FTRUNCATE_CHECK=yes. + E.g., ./configure SKIP_FTRUNCATE_CHECK=yes See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi esac fi @@ -21709,22 +26277,31 @@ See \`config.log' for more details." >&2;} GNULIB_FTRUNCATE=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_FTRUNCATE 1 +_ACEOF + + + + gl_abort_bug=no - case $gl_cv_func_getcwd_null in - yes) + case $gl_cv_func_getcwd_null,$host_os in + *,mingw*) + gl_cv_func_getcwd_path_max=yes;; + yes,*) - { echo "$as_me:$LINENO: checking whether getcwd handles long file names properly" >&5 -echo $ECHO_N "checking whether getcwd handles long file names properly... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether getcwd handles long file names properly" >&5 +$as_echo_n "checking whether getcwd handles long file names properly... " >&6; } if test "${gl_cv_func_getcwd_path_max+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Arrange for deletion of the temporary directory this test creates. ac_clean_files="$ac_clean_files confdir3" @@ -21791,7 +26368,7 @@ main () exit (0); #else char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) - + DIR_NAME_SIZE + BUF_SLOP]; + + DIR_NAME_SIZE + BUF_SLOP]; char *cwd = getcwd (buf, PATH_MAX); size_t initial_cwd_len; size_t cwd_len; @@ -21810,58 +26387,58 @@ main () cwd_len += DIR_NAME_SIZE; /* 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. */ + 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. */ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0) - { - if (! (errno == ERANGE || is_ENAMETOOLONG (errno))) - fail = 2; - break; - } + { + if (! (errno == ERANGE || is_ENAMETOOLONG (errno))) + fail = 2; + break; + } if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE) - { - c = getcwd (buf, PATH_MAX); - if (!c && errno == ENOENT) - { - fail = 1; - break; - } - if (c || ! (errno == ERANGE || is_ENAMETOOLONG (errno))) - { - fail = 2; - break; - } - } + { + c = getcwd (buf, PATH_MAX); + if (!c && errno == ENOENT) + { + fail = 1; + break; + } + if (c || ! (errno == ERANGE || is_ENAMETOOLONG (errno))) + { + fail = 2; + break; + } + } if (dotdot_max <= cwd_len - initial_cwd_len) - { - if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len) - break; - c = getcwd (buf, cwd_len + 1); - if (!c) - { - if (! (errno == ERANGE || errno == ENOENT - || is_ENAMETOOLONG (errno))) - { - fail = 2; - break; - } - if (AT_FDCWD || errno == ERANGE || errno == ENOENT) - { - fail = 1; - break; - } - } - } + { + if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len) + break; + c = getcwd (buf, cwd_len + 1); + if (!c) + { + if (! (errno == ERANGE || errno == ENOENT + || is_ENAMETOOLONG (errno))) + { + fail = 2; + break; + } + if (AT_FDCWD || errno == ERANGE || errno == ENOENT) + { + fail = 1; + break; + } + } + } if (c && strlen (c) != cwd_len) - { - fail = 2; - break; - } + { + fail = 2; + break; + } ++n_chdirs; } @@ -21875,10 +26452,10 @@ main () rmdir (DIR_NAME); for (i = 0; i <= n_chdirs; i++) { - if (chdir ("..") < 0) - break; - if (rmdir (DIR_NAME) != 0) - break; + if (chdir ("..") < 0) + break; + if (rmdir (DIR_NAME) != 0) + break; } } @@ -21893,24 +26470,26 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_getcwd_path_max=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) @@ -21919,14 +26498,15 @@ case $? in *) gl_cv_func_getcwd_path_max=no;; esac fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_path_max" >&5 -echo "${ECHO_T}$gl_cv_func_getcwd_path_max" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_path_max" >&5 +$as_echo "$gl_cv_func_getcwd_path_max" >&6; } case $gl_cv_func_getcwd_path_max in no,*) @@ -21944,11 +26524,11 @@ _ACEOF for ac_func in getpagesize do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22001,44 +26581,51 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done - { echo "$as_me:$LINENO: checking whether getcwd aborts when 4k < cwd_length < 16k" >&5 -echo $ECHO_N "checking whether getcwd aborts when 4k < cwd_length < 16k... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether getcwd aborts when 4k < cwd_length < 16k" >&5 +$as_echo_n "checking whether getcwd aborts when 4k < cwd_length < 16k... " >&6; } if test "${gl_cv_func_getcwd_abort_bug+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Remove any remnants of a previous test. rm -rf confdir-14B--- @@ -22099,14 +26686,14 @@ main () initial_cwd_len = strlen (cwd); free (cwd); desired_depth = ((TARGET_LEN - 1 - initial_cwd_len) - / (1 + strlen (dir_name))); + / (1 + strlen (dir_name))); for (d = 0; d < desired_depth; d++) { if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0) - { - fail = 3; /* Unable to construct deep hierarchy. */ - break; - } + { + fail = 3; /* Unable to construct deep hierarchy. */ + break; + } } /* If libc has the bug in question, this invocation of getcwd @@ -22121,7 +26708,7 @@ main () while (0 < d--) { if (chdir ("..") < 0) - break; + break; rmdir (dir_name); } @@ -22135,37 +26722,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_getcwd_abort_bug=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_getcwd_abort_bug=yes fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_abort_bug" >&5 -echo "${ECHO_T}$gl_cv_func_getcwd_abort_bug" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_getcwd_abort_bug" >&5 +$as_echo "$gl_cv_func_getcwd_abort_bug" >&6; } if test $gl_cv_func_getcwd_abort_bug = yes; then gl_abort_bug=yes fi @@ -22174,7 +26764,7 @@ fi esac case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in - yes,yes,no) ;; + *yes,yes,no) ;; *) REPLACE_GETCWD=1 @@ -22199,15 +26789,22 @@ fi GNULIB_GETCWD=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_GETCWD 1 +_ACEOF + + + - { echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 -echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6; } + + { $as_echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 +$as_echo_n "checking for struct tm.tm_zone... " >&6; } if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22235,20 +26832,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_zone=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -22277,20 +26875,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_zone=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_tm_tm_zone=no @@ -22301,9 +26900,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6; } -if test $ac_cv_member_struct_tm_tm_zone = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 +$as_echo "$ac_cv_member_struct_tm_tm_zone" >&6; } +if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TM_TM_ZONE 1 @@ -22319,10 +26918,10 @@ cat >>confdefs.h <<\_ACEOF _ACEOF else - { echo "$as_me:$LINENO: checking whether tzname is declared" >&5 -echo $ECHO_N "checking whether tzname is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether tzname is declared" >&5 +$as_echo_n "checking whether tzname is declared... " >&6; } if test "${ac_cv_have_decl_tzname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22349,20 +26948,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_tzname=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_tzname=no @@ -22370,9 +26970,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5 -echo "${ECHO_T}$ac_cv_have_decl_tzname" >&6; } -if test $ac_cv_have_decl_tzname = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5 +$as_echo "$ac_cv_have_decl_tzname" >&6; } +if test "x$ac_cv_have_decl_tzname" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TZNAME 1 @@ -22388,10 +26988,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for tzname" >&5 -echo $ECHO_N "checking for tzname... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for tzname" >&5 +$as_echo_n "checking for tzname... " >&6; } if test "${ac_cv_var_tzname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22418,31 +27018,35 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_var_tzname=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_var_tzname=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 -echo "${ECHO_T}$ac_cv_var_tzname" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 +$as_echo "$ac_cv_var_tzname" >&6; } if test $ac_cv_var_tzname = yes; then cat >>confdefs.h <<\_ACEOF @@ -22454,8 +27058,55 @@ fi + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <time.h> /* for time_t */ +#include <limits.h> /* for CHAR_BIT, LONG_MIN, LONG_MAX */ +#define TYPE_MINIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) +#define TYPE_MAXIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) +typedef int verify_min[2 * (LONG_MIN <= TYPE_MINIMUM (time_t)) - 1]; +typedef int verify_max[2 * (TYPE_MAXIMUM (time_t) <= LONG_MAX) - 1]; + +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_T_FITS_IN_LONG_INT 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext @@ -22469,102 +27120,131 @@ fi -for ac_func in getdelim -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + if test $ac_cv_func_getdelim = yes; then + { $as_echo "$as_me:$LINENO: checking for working getdelim function" >&5 +$as_echo_n "checking for working getdelim function... " >&6; } +if test "${gl_cv_func_working_getdelim+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + if test "$cross_compiling" = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> +#include <features.h> +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) + Lucky GNU user + #endif #endif -#undef $ac_func +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1; then + gl_cv_func_working_getdelim=yes +else + gl_cv_func_working_getdelim=no +fi +rm -f conftest* -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -int -main () -{ -return $ac_func (); - ; - return 0; -} +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +# include <stdio.h> +# include <stdlib.h> +# include <string.h> + int main () + { + FILE *in = fopen ("./conftest.data", "r"); + if (!in) + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getdelim (&line, &siz, '\n', in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + return 1; + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getdelim (&line, &siz, '\n', in) == -1) + return 1; + } + return 0; + } + +_ACEOF +rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_working_getdelim=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_var=no" +( exit $ac_status ) +gl_cv_func_working_getdelim=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext + fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_getdelim" >&5 +$as_echo "$gl_cv_func_working_getdelim" >&6; } + else + gl_cv_func_working_getdelim=no + fi -else + if test $ac_cv_have_decl_getdelim = no; then + HAVE_DECL_GETDELIM=0 + fi - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + if test $gl_cv_func_working_getdelim = no; then + if test $ac_cv_func_getdelim = yes; then + REPLACE_GETDELIM=1 + fi -fi -done @@ -22572,17 +27252,18 @@ done - if test $ac_cv_func_getdelim = no; then + gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext" + for ac_func in flockfile funlockfile do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22635,44 +27316,51 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done - { echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 -echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 +$as_echo_n "checking whether getc_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22698,20 +27386,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getc_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getc_unlocked=no @@ -22719,9 +27408,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6; } -if test $ac_cv_have_decl_getc_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 +$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; } +if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED 1 @@ -22740,13 +27429,49 @@ fi fi - if test $ac_cv_have_decl_getdelim = no; then - HAVE_DECL_GETDELIM=0 + + + GNULIB_GETDELIM=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_GETDELIM 1 +_ACEOF + + + + + + + + + + + + if test $ac_cv_func_getdtablesize != yes; then + HAVE_GETDTABLESIZE=0 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext" + fi - GNULIB_GETDELIM=1 + GNULIB_GETDTABLESIZE=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_GETDTABLESIZE 1 +_ACEOF + + @@ -22759,10 +27484,10 @@ fi gl_getline_needs_run_time_check=no - { echo "$as_me:$LINENO: checking for getline" >&5 -echo $ECHO_N "checking for getline... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for getline" >&5 +$as_echo_n "checking for getline... " >&6; } if test "${ac_cv_func_getline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22815,44 +27540,48 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_getline=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_getline=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_getline" >&5 -echo "${ECHO_T}$ac_cv_func_getline" >&6; } -if test $ac_cv_func_getline = yes; then - gl_getline_needs_run_time_check=yes +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_getline" >&5 +$as_echo "$ac_cv_func_getline" >&6; } +if test "x$ac_cv_func_getline" = x""yes; then + gl_getline_needs_run_time_check=yes else am_cv_func_working_getline=no fi if test $gl_getline_needs_run_time_check = yes; then - { echo "$as_me:$LINENO: checking for working getline function" >&5 -echo $ECHO_N "checking for working getline function... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for working getline function" >&5 +$as_echo_n "checking for working getline function... " >&6; } if test "${am_cv_func_working_getline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - echo fooN |tr -d '\012'|tr N '\012' > conftest.data + echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data if test "$cross_compiling" = yes; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22890,15 +27619,28 @@ cat >>conftest.$ac_ext <<_ACEOF # include <stdlib.h> # include <string.h> int main () - { /* Based on a test program from Karl Heuer. */ - char *line = NULL; - size_t siz = 0; - int len; + { FILE *in = fopen ("./conftest.data", "r"); if (!in) - return 1; - len = getline (&line, &siz, in); - exit ((len == 4 && line && strcmp (line, "foo\n") == 0) ? 0 : 1); + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getline (&line, &siz, in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + return 1; + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getline (&line, &siz, in) == -1) + return 1; + } + return 0; } _ACEOF @@ -22908,36 +27650,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_func_working_getline=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) am_cv_func_working_getline=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $am_cv_func_working_getline" >&5 -echo "${ECHO_T}$am_cv_func_working_getline" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_working_getline" >&5 +$as_echo "$am_cv_func_working_getline" >&6; } fi if test $ac_cv_have_decl_getline = no; then @@ -22945,7 +27690,7 @@ echo "${ECHO_T}$am_cv_func_working_getline" >&6; } fi if test $am_cv_func_working_getline = no; then - REPLACE_GETLINE=1 + REPLACE_GETLINE=1 @@ -22972,102 +27717,129 @@ echo "${ECHO_T}$am_cv_func_working_getline" >&6; } -for ac_func in getdelim -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + if test $ac_cv_func_getdelim = yes; then + { $as_echo "$as_me:$LINENO: checking for working getdelim function" >&5 +$as_echo_n "checking for working getdelim function... " >&6; } +if test "${gl_cv_func_working_getdelim+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + if test "$cross_compiling" = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> +#include <features.h> +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) + Lucky GNU user + #endif #endif -#undef $ac_func +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Lucky GNU user" >/dev/null 2>&1; then + gl_cv_func_working_getdelim=yes +else + gl_cv_func_working_getdelim=no +fi +rm -f conftest* -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me -#endif -int -main () -{ -return $ac_func (); - ; - return 0; -} +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +# include <stdio.h> +# include <stdlib.h> +# include <string.h> + int main () + { + FILE *in = fopen ("./conftest.data", "r"); + if (!in) + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getdelim (&line, &siz, '\n', in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + return 1; + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getdelim (&line, &siz, '\n', in) == -1) + return 1; + } + return 0; + } + +_ACEOF +rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_working_getdelim=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_var=no" +( exit $ac_status ) +gl_cv_func_working_getdelim=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext + fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_getdelim" >&5 +$as_echo "$gl_cv_func_working_getdelim" >&6; } + else + gl_cv_func_working_getdelim=no + fi -else + if test $ac_cv_have_decl_getdelim = no; then + HAVE_DECL_GETDELIM=0 + fi - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + if test $gl_cv_func_working_getdelim = no; then + if test $ac_cv_func_getdelim = yes; then + REPLACE_GETDELIM=1 + fi -fi -done @@ -23075,17 +27847,18 @@ done - if test $ac_cv_func_getdelim = no; then + gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext" + for ac_func in flockfile funlockfile do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23138,44 +27911,51 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done - { echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 -echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 +$as_echo_n "checking whether getc_unlocked is declared... " >&6; } if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23201,20 +27981,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getc_unlocked=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getc_unlocked=no @@ -23222,9 +28003,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6; } -if test $ac_cv_have_decl_getc_unlocked = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 +$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; } +if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED 1 @@ -23243,10 +28024,6 @@ fi fi - if test $ac_cv_have_decl_getdelim = no; then - HAVE_DECL_GETDELIM=0 - fi - fi @@ -23255,8 +28032,9 @@ fi GNULIB_GETLINE=1 - - if test -n "$GETOPT_H"; then +cat >>confdefs.h <<\_ACEOF +#define GNULIB_GETLINE 1 +_ACEOF @@ -23266,8 +28044,10 @@ fi - gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" +cat >>confdefs.h <<\_ACEOF +#define GNULIB_GETOPT_GNU 1 +_ACEOF @@ -23275,8 +28055,8 @@ fi + if test -n "$gl_replace_getopt"; then - gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" GETOPT_H=getopt.h @@ -23287,6 +28067,28 @@ _ACEOF + GNULIB_UNISTD_H_GETOPT=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" + + @@ -23301,13 +28103,14 @@ fi + for ac_func in getpagesize do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23360,35 +28163,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -23399,20 +28209,21 @@ done for ac_header in OS.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23428,32 +28239,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23467,51 +28279,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -23520,21 +28333,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -23547,20 +28363,21 @@ done for ac_header in sys/param.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23576,32 +28393,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23615,51 +28433,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -23668,21 +28487,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -23714,6 +28536,13 @@ done GNULIB_GETPAGESIZE=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_GETPAGESIZE 1 +_ACEOF + + + + @@ -23749,10 +28578,180 @@ done - { echo "$as_me:$LINENO: checking for gettimeofday with POSIX signature" >&5 -echo $ECHO_N "checking for gettimeofday with POSIX signature... $ECHO_C" >&6; } -if test "${gl_cv_func_gettimeofday_posix_signature+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + gl_gettimeofday_timezone=void + if test $ac_cv_func_gettimeofday != yes; then + HAVE_GETTIMEOFDAY=0 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext" + + + +for ac_header in sys/timeb.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------ ## +## Report this to bug-tar@gnu.org ## +## ------------------------------ ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_func in _ftime +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23760,58 +28759,101 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <sys/time.h> - struct timeval c; +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif int main () { - - int (*f) (struct timeval *restrict, void *restrict) = gettimeofday; - int x = f (&c, 0); - return !(x | c.tv_sec | c.tv_usec); - +return $ac_func (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then - gl_cv_func_gettimeofday_posix_signature=yes + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gl_cv_func_gettimeofday_posix_signature=no + eval "$as_ac_var=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_posix_signature" >&5 -echo "${ECHO_T}$gl_cv_func_gettimeofday_posix_signature" >&6; } +done + else + - { echo "$as_me:$LINENO: checking whether gettimeofday clobbers localtime buffer" >&5 -echo $ECHO_N "checking whether gettimeofday clobbers localtime buffer... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether gettimeofday clobbers localtime buffer" >&5 +$as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; } if test "${gl_cv_func_gettimeofday_clobber+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then gl_cv_func_gettimeofday_clobber=yes @@ -23823,22 +28865,22 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <string.h> - #include <sys/time.h> - #include <time.h> - #include <stdlib.h> + #include <sys/time.h> + #include <time.h> + #include <stdlib.h> int main () { - time_t t = 0; - struct tm *lt; - struct tm saved_lt; - struct timeval tv; - lt = localtime (&t); - saved_lt = *lt; - gettimeofday (&tv, NULL); - return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; + time_t t = 0; + struct tm *lt; + struct tm saved_lt; + struct timeval tv; + lt = localtime (&t); + saved_lt = *lt; + gettimeofday (&tv, NULL); + return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; ; return 0; @@ -23850,40 +28892,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_gettimeofday_clobber=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_gettimeofday_clobber=yes fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_clobber" >&5 -echo "${ECHO_T}$gl_cv_func_gettimeofday_clobber" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_clobber" >&5 +$as_echo "$gl_cv_func_gettimeofday_clobber" >&6; } if test $gl_cv_func_gettimeofday_clobber = yes; then REPLACE_GETTIMEOFDAY=1 - SYS_TIME_H=sys/time.h @@ -23899,20 +28943,21 @@ echo "${ECHO_T}$gl_cv_func_gettimeofday_clobber" >&6; } for ac_header in sys/timeb.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23928,32 +28973,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23967,51 +29013,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -24020,21 +29067,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -24044,11 +29094,11 @@ done for ac_func in _ftime do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24101,35 +29151,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -24154,11 +29211,115 @@ _ACEOF fi + { $as_echo "$as_me:$LINENO: checking for gettimeofday with POSIX signature" >&5 +$as_echo_n "checking for gettimeofday with POSIX signature... " >&6; } +if test "${gl_cv_func_gettimeofday_posix_signature+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/time.h> + struct timeval c; + int gettimeofday (struct timeval *restrict, void *restrict); + +int +main () +{ +/* glibc uses struct timezone * rather than the POSIX void * + if _GNU_SOURCE is defined. However, since the only portable + use of gettimeofday uses NULL as the second parameter, and + since the glibc definition is actually more typesafe, it is + not worth wrapping this to get a compliant signature. */ + int (*f) (struct timeval *restrict, void *restrict) + = gettimeofday; + int x = f (&c, 0); + return !(x | c.tv_sec | c.tv_usec); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_func_gettimeofday_posix_signature=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/time.h> +int gettimeofday (struct timeval *restrict, struct timezone *restrict); + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_func_gettimeofday_posix_signature=almost +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_func_gettimeofday_posix_signature=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi - if test $gl_cv_func_gettimeofday_posix_signature != yes; then - REPLACE_GETTIMEOFDAY=1 - SYS_TIME_H=sys/time.h - if test $gl_cv_func_gettimeofday_clobber != yes; then +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_posix_signature" >&5 +$as_echo "$gl_cv_func_gettimeofday_posix_signature" >&6; } + if test $gl_cv_func_gettimeofday_posix_signature = almost; then + gl_gettimeofday_timezone='struct timezone' + elif test $gl_cv_func_gettimeofday_posix_signature != yes; then + REPLACE_GETTIMEOFDAY=1 @@ -24173,20 +29334,21 @@ _ACEOF for ac_header in sys/timeb.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -24202,32 +29364,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -24241,51 +29404,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -24294,21 +29458,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -24318,11 +29485,11 @@ done for ac_func in _ftime do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24375,35 +29542,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -24413,6 +29587,22 @@ done fi fi +cat >>confdefs.h <<_ACEOF +#define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone +_ACEOF + + + + + GNULIB_GETTIMEOFDAY=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_GETTIMEOFDAY 1 +_ACEOF + + + @@ -24443,10 +29633,10 @@ done - { echo "$as_me:$LINENO: checking whether the compiler generally respects inline" >&5 -echo $ECHO_N "checking whether the compiler generally respects inline... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether the compiler generally respects inline" >&5 +$as_echo_n "checking whether the compiler generally respects inline... " >&6; } if test "${gl_cv_c_inline_effective+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test $ac_cv_c_inline = no; then gl_cv_c_inline_effective=no @@ -24474,20 +29664,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_c_inline_effective=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_c_inline_effective=no @@ -24497,8 +29688,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_c_inline_effective" >&5 -echo "${ECHO_T}$gl_cv_c_inline_effective" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_c_inline_effective" >&5 +$as_echo "$gl_cv_c_inline_effective" >&6; } if test $gl_cv_c_inline_effective = yes; then cat >>confdefs.h <<\_ACEOF @@ -24578,21 +29769,27 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether inttypes.h conforms to C99" >&5 -echo $ECHO_N "checking whether inttypes.h conforms to C99... $ECHO_C" >&6; } + + + + + + + { $as_echo "$as_me:$LINENO: checking whether inttypes.h conforms to C99" >&5 +$as_echo_n "checking whether inttypes.h conforms to C99... " >&6; } if test "${gl_cv_header_working_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gl_cv_header_working_inttypes_h=no if test "$gl_cv_header_working_stdint_h" = yes \ - && test $ac_cv_header_inttypes_h = yes \ - && test "$ac_cv_have_decl_imaxabs" = yes \ - && test "$ac_cv_have_decl_imaxdiv" = yes \ - && test "$ac_cv_have_decl_strtoimax" = yes \ - && test "$ac_cv_have_decl_strtoumax" = yes; then + && test $ac_cv_header_inttypes_h = yes \ + && test "$ac_cv_have_decl_imaxabs" = yes \ + && test "$ac_cv_have_decl_imaxdiv" = yes \ + && test "$ac_cv_have_decl_strtoimax" = yes \ + && test "$ac_cv_have_decl_strtoumax" = yes; then cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ + /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF @@ -24711,20 +29908,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_header_working_inttypes_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -24733,12 +29931,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_working_inttypes_h" >&5 -echo "${ECHO_T}$gl_cv_header_working_inttypes_h" >&6; } - - if false && test $gl_cv_header_working_inttypes_h = yes; then - INTTYPES_H='' - else +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_inttypes_h" >&5 +$as_echo "$gl_cv_header_working_inttypes_h" >&6; } @@ -24755,14 +29949,14 @@ echo "${ECHO_T}$gl_cv_header_working_inttypes_h" >&6; } if test $gl_cv_have_include_next = yes; then gl_cv_next_inttypes_h='<'inttypes.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <inttypes.h>" >&5 -echo $ECHO_N "checking absolute name of <inttypes.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <inttypes.h>" >&5 +$as_echo_n "checking absolute name of <inttypes.h>... " >&6; } if test "${gl_cv_next_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_inttypes_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_inttypes_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -24771,27 +29965,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <inttypes.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/inttypes.h#{ - s#.*"\(.*/inttypes.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_inttypes_h='<'inttypes.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/inttypes.h#{ + s#.*"\(.*/inttypes.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_inttypes_h='<'inttypes.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_inttypes_h" >&5 -echo "${ECHO_T}$gl_cv_next_inttypes_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_inttypes_h" >&5 +$as_echo "$gl_cv_next_inttypes_h" >&6; } fi NEXT_INTTYPES_H=$gl_cv_next_inttypes_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'inttypes.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_inttypes_h + fi + NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive + @@ -24805,26 +30008,26 @@ _ACEOF - PRIPTR_PREFIX= - if test -n "$STDINT_H"; then - PRIPTR_PREFIX='"l"' - else - for glpfx in '' l ll I64; do - case $glpfx in - '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - I64) gltype1='__int64';; - esac - cat >conftest.$ac_ext <<_ACEOF + PRIPTR_PREFIX= + if test -n "$STDINT_H"; then + PRIPTR_PREFIX='"l"' + else + for glpfx in '' l ll I64; do + case $glpfx in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + I64) gltype1='__int64';; + esac + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <stdint.h> - extern intptr_t foo; - extern $gltype1 foo; + extern intptr_t foo; + extern $gltype1 foo; int main () { @@ -24839,136 +30042,525 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then PRIPTR_PREFIX='"'$glpfx'"' else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test -n "$PRIPTR_PREFIX" && break + test -n "$PRIPTR_PREFIX" && break + done + fi + + + if test "$ac_cv_have_decl_imaxabs" = yes; then + HAVE_DECL_IMAXABS=1 + else + HAVE_DECL_IMAXABS=0 + fi + + if test "$ac_cv_have_decl_imaxdiv" = yes; then + HAVE_DECL_IMAXDIV=1 + else + HAVE_DECL_IMAXDIV=0 + fi + + if test "$ac_cv_have_decl_strtoimax" = yes; then + HAVE_DECL_STRTOIMAX=1 + else + HAVE_DECL_STRTOIMAX=0 + fi + + if test "$ac_cv_have_decl_strtoumax" = yes; then + HAVE_DECL_STRTOUMAX=1 + else + HAVE_DECL_STRTOUMAX=0 + fi + + + { $as_echo "$as_me:$LINENO: checking whether INT32_MAX < INTMAX_MAX" >&5 +$as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; } +if test "${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Work also in C++ mode. */ + #define __STDC_LIMIT_MACROS 1 + + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H + + #include <limits.h> + #if HAVE_STDINT_H + #include <stdint.h> + #endif + + #if defined INT32_MAX && defined INTMAX_MAX + #define CONDITION (INT32_MAX < INTMAX_MAX) + #elif HAVE_LONG_LONG_INT + #define CONDITION (sizeof (int) < sizeof (long long int)) + #else + #define CONDITION 0 + #endif + int test[CONDITION ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5 +$as_echo "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; } + if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then + INT32_MAX_LT_INTMAX_MAX=1; + else + INT32_MAX_LT_INTMAX_MAX=0; + fi + + + if test $APPLE_UNIVERSAL_BUILD = 0; then + + { $as_echo "$as_me:$LINENO: checking whether INT64_MAX == LONG_MAX" >&5 +$as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; } +if test "${gl_cv_test_INT64_MAX_EQ_LONG_MAX+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Work also in C++ mode. */ + #define __STDC_LIMIT_MACROS 1 + + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H + + #include <limits.h> + #if HAVE_STDINT_H + #include <stdint.h> + #endif + + #if defined INT64_MAX + #define CONDITION (INT64_MAX == LONG_MAX) + #elif HAVE_LONG_LONG_INT + #define CONDITION (sizeof (long long int) == sizeof (long int)) + #else + #define CONDITION 0 + #endif + int test[CONDITION ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_test_INT64_MAX_EQ_LONG_MAX=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5 +$as_echo "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; } + if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then + INT64_MAX_EQ_LONG_MAX=1; + else + INT64_MAX_EQ_LONG_MAX=0; + fi + + + else + INT64_MAX_EQ_LONG_MAX=-1 + fi + + { $as_echo "$as_me:$LINENO: checking whether UINT32_MAX < UINTMAX_MAX" >&5 +$as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; } +if test "${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Work also in C++ mode. */ + #define __STDC_LIMIT_MACROS 1 + + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H + + #include <limits.h> + #if HAVE_STDINT_H + #include <stdint.h> + #endif + + #if defined UINT32_MAX && defined UINTMAX_MAX + #define CONDITION (UINT32_MAX < UINTMAX_MAX) + #elif HAVE_LONG_LONG_INT + #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int)) + #else + #define CONDITION 0 + #endif + int test[CONDITION ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5 +$as_echo "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; } + if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then + UINT32_MAX_LT_UINTMAX_MAX=1; + else + UINT32_MAX_LT_UINTMAX_MAX=0; + fi + + + if test $APPLE_UNIVERSAL_BUILD = 0; then + + { $as_echo "$as_me:$LINENO: checking whether UINT64_MAX == ULONG_MAX" >&5 +$as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; } +if test "${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Work also in C++ mode. */ + #define __STDC_LIMIT_MACROS 1 + + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H + + #include <limits.h> + #if HAVE_STDINT_H + #include <stdint.h> + #endif + + #if defined UINT64_MAX + #define CONDITION (UINT64_MAX == ULONG_MAX) + #elif HAVE_LONG_LONG_INT + #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int)) + #else + #define CONDITION 0 + #endif + int test[CONDITION ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5 +$as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; } + if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then + UINT64_MAX_EQ_ULONG_MAX=1; + else + UINT64_MAX_EQ_ULONG_MAX=0; + fi + + + else + UINT64_MAX_EQ_ULONG_MAX=-1 + fi + + + + + + + for gl_func in imaxabs imaxdiv strtoimax strtoumax; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <inttypes.h> + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + done - fi - if test "$ac_cv_have_decl_imaxabs" = yes; then - HAVE_DECL_IMAXABS=1 - else - HAVE_DECL_IMAXABS=0 - fi - if test "$ac_cv_have_decl_imaxdiv" = yes; then - HAVE_DECL_IMAXDIV=1 - else - HAVE_DECL_IMAXDIV=0 - fi - if test "$ac_cv_have_decl_strtoimax" = yes; then - HAVE_DECL_STRTOIMAX=1 - else - HAVE_DECL_STRTOIMAX=0 - fi - if test "$ac_cv_have_decl_strtoumax" = yes; then - HAVE_DECL_STRTOUMAX=1 - else - HAVE_DECL_STRTOUMAX=0 - fi - { echo "$as_me:$LINENO: checking whether INT32_MAX < INTMAX_MAX" >&5 -echo $ECHO_N "checking whether INT32_MAX < INTMAX_MAX... $ECHO_C" >&6; } -if test "${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_langinfo_h='<'langinfo.h'>' + else + { $as_echo "$as_me:$LINENO: checking absolute name of <langinfo.h>" >&5 +$as_echo_n "checking absolute name of <langinfo.h>... " >&6; } +if test "${gl_cv_next_langinfo_h+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + + if test $ac_cv_header_langinfo_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Work also in C++ mode. */ - #define __STDC_LIMIT_MACROS 1 +#include <langinfo.h> - /* Work if build is not clean. */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/langinfo.h#{ + s#.*"\(.*/langinfo.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_langinfo_h='<'langinfo.h'>' + fi - #include <limits.h> - #if HAVE_STDINT_H - #include <stdint.h> - #endif +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_langinfo_h" >&5 +$as_echo "$gl_cv_next_langinfo_h" >&6; } + fi + NEXT_LANGINFO_H=$gl_cv_next_langinfo_h - #if defined INT32_MAX && defined INTMAX_MAX - #define CONDITION (INT32_MAX < INTMAX_MAX) - #elif HAVE_LONG_LONG_INT - #define CONDITION (sizeof (int) < sizeof (long long int)) - #else - #define CONDITION 0 - #endif - int test[CONDITION ? 1 : -1]; -int -main () -{ + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'langinfo.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_langinfo_h + fi + NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H=$gl_next_as_first_directive - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5 -echo "${ECHO_T}$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; } - if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then - INT32_MAX_LT_INTMAX_MAX=1; - else - INT32_MAX_LT_INTMAX_MAX=0; - fi + HAVE_LANGINFO_CODESET=0 + HAVE_LANGINFO_ERA=0 - if test $APPLE_UNIVERSAL_BUILD = 0; then - { echo "$as_me:$LINENO: checking whether INT64_MAX == LONG_MAX" >&5 -echo $ECHO_N "checking whether INT64_MAX == LONG_MAX... $ECHO_C" >&6; } -if test "${gl_cv_test_INT64_MAX_EQ_LONG_MAX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + if test $ac_cv_header_langinfo_h = yes; then + HAVE_LANGINFO_H=1 + { $as_echo "$as_me:$LINENO: checking whether langinfo.h defines CODESET" >&5 +$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; } +if test "${gl_cv_header_langinfo_codeset+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24976,25 +30568,9 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Work also in C++ mode. */ - #define __STDC_LIMIT_MACROS 1 - - /* Work if build is not clean. */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H - - #include <limits.h> - #if HAVE_STDINT_H - #include <stdint.h> - #endif +#include <langinfo.h> +int a = CODESET; - #if defined INT64_MAX - #define CONDITION (INT64_MAX == LONG_MAX) - #elif HAVE_LONG_LONG_INT - #define CONDITION (sizeof (long long int) == sizeof (long int)) - #else - #define CONDITION 0 - #endif - int test[CONDITION ? 1 : -1]; int main () { @@ -25009,44 +30585,38 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes + gl_cv_header_langinfo_codeset=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gl_cv_test_INT64_MAX_EQ_LONG_MAX=no + gl_cv_header_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5 -echo "${ECHO_T}$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; } - if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then - INT64_MAX_EQ_LONG_MAX=1; - else - INT64_MAX_EQ_LONG_MAX=0; - fi - - else - INT64_MAX_EQ_LONG_MAX=-1 +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_langinfo_codeset" >&5 +$as_echo "$gl_cv_header_langinfo_codeset" >&6; } + if test $gl_cv_header_langinfo_codeset = yes; then + HAVE_LANGINFO_CODESET=1 fi - - { echo "$as_me:$LINENO: checking whether UINT32_MAX < UINTMAX_MAX" >&5 -echo $ECHO_N "checking whether UINT32_MAX < UINTMAX_MAX... $ECHO_C" >&6; } -if test "${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether langinfo.h defines ERA" >&5 +$as_echo_n "checking whether langinfo.h defines ERA... " >&6; } +if test "${gl_cv_header_langinfo_era+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25054,25 +30624,9 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Work also in C++ mode. */ - #define __STDC_LIMIT_MACROS 1 - - /* Work if build is not clean. */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H - - #include <limits.h> - #if HAVE_STDINT_H - #include <stdint.h> - #endif +#include <langinfo.h> +int a = ERA; - #if defined UINT32_MAX && defined UINTMAX_MAX - #define CONDITION (UINT32_MAX < UINTMAX_MAX) - #elif HAVE_LONG_LONG_INT - #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int)) - #else - #define CONDITION 0 - #endif - int test[CONDITION ? 1 : -1]; int main () { @@ -25087,42 +30641,49 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes + gl_cv_header_langinfo_era=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no + gl_cv_header_langinfo_era=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ echo "$as_me:$LINENO: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5 -echo "${ECHO_T}$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; } - if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then - UINT32_MAX_LT_UINTMAX_MAX=1; +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_langinfo_era" >&5 +$as_echo "$gl_cv_header_langinfo_era" >&6; } + if test $gl_cv_header_langinfo_era = yes; then + HAVE_LANGINFO_ERA=1 + fi else - UINT32_MAX_LT_UINTMAX_MAX=0; + HAVE_LANGINFO_H=0 fi - if test $APPLE_UNIVERSAL_BUILD = 0; then - { echo "$as_me:$LINENO: checking whether UINT64_MAX == ULONG_MAX" >&5 -echo $ECHO_N "checking whether UINT64_MAX == ULONG_MAX... $ECHO_C" >&6; } -if test "${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + for gl_func in nl_langinfo; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25130,29 +30691,13 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Work also in C++ mode. */ - #define __STDC_LIMIT_MACROS 1 - - /* Work if build is not clean. */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H - - #include <limits.h> - #if HAVE_STDINT_H - #include <stdint.h> - #endif +#include <langinfo.h> - #if defined UINT64_MAX - #define CONDITION (UINT64_MAX == ULONG_MAX) - #elif HAVE_LONG_LONG_INT - #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int)) - #else - #define CONDITION 0 - #endif - int test[CONDITION ? 1 : -1]; int main () { - +#undef $gl_func + (void) $gl_func; ; return 0; } @@ -25163,42 +30708,49 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes + eval "$as_gl_Symbol=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no + eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5 -echo "${ECHO_T}$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; } - if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then - UINT64_MAX_EQ_ULONG_MAX=1; - else - UINT64_MAX_EQ_ULONG_MAX=0; - fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + + done + + + - else - UINT64_MAX_EQ_ULONG_MAX=-1 - fi - INTTYPES_H='inttypes.h' - fi @@ -25215,11 +30767,11 @@ echo "${ECHO_T}$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; } for ac_func in lchown do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25272,35 +30824,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -25312,6 +30871,19 @@ done if test $ac_cv_func_lchown = no; then + HAVE_LCHOWN=0 + elif test "$gl_cv_func_chown_slash_works" != yes \ + || test "$gl_cv_func_chown_ctime_works" != yes; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS lchown.$ac_objext" + REPLACE_LCHOWN=1 fi @@ -25320,6 +30892,14 @@ done GNULIB_LCHOWN=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_LCHOWN 1 +_ACEOF + + + + + @@ -25334,10 +30914,10 @@ done - { echo "$as_me:$LINENO: checking whether lseek detects pipes" >&5 -echo $ECHO_N "checking whether lseek detects pipes... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether lseek detects pipes" >&5 +$as_echo_n "checking whether lseek detects pipes... " >&6; } if test "${gl_cv_func_lseek_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test $cross_compiling = no; then cat >conftest.$ac_ext <<_ACEOF @@ -25357,32 +30937,37 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then if test -s conftest$ac_exeext \ - && ./conftest$ac_exeext < conftest.$ac_ext \ - && { echo hi | ./conftest$ac_exeext; test $? = 1; }; then - gl_cv_func_lseek_pipe=yes - else - gl_cv_func_lseek_pipe=no - fi + && ./conftest$ac_exeext < conftest.$ac_ext \ + && test 1 = "`echo hi \ + | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then + gl_cv_func_lseek_pipe=yes + else + gl_cv_func_lseek_pipe=no + fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func_lseek_pipe=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext else @@ -25399,20 +30984,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_func_lseek_pipe=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func_lseek_pipe=no @@ -25421,8 +31007,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_lseek_pipe" >&5 -echo "${ECHO_T}$gl_cv_func_lseek_pipe" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_lseek_pipe" >&5 +$as_echo "$gl_cv_func_lseek_pipe" >&6; } if test $gl_cv_func_lseek_pipe = no; then @@ -25450,6 +31036,13 @@ _ACEOF GNULIB_LSEEK=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_LSEEK 1 +_ACEOF + + + + @@ -25458,16 +31051,185 @@ _ACEOF if test $ac_cv_func_lstat = yes; then - { echo "$as_me:$LINENO: checking whether lstat dereferences a symlink specified with a trailing slash" >&5 -echo $ECHO_N "checking whether lstat dereferences a symlink specified with a trailing slash... $ECHO_C" >&6; } -if test "${ac_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then + REPLACE_LSTAT=1 + fi + # Prerequisites of lib/lstat.c. + + else + HAVE_LSTAT=0 + fi + + + + GNULIB_LSTAT=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_LSTAT 1 +_ACEOF + + + + +for ac_header in stdlib.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------ ## +## Report this to bug-tar@gnu.org ## +## ------------------------------ ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +{ $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 +$as_echo_n "checking for GNU libc compatible malloc... " >&6; } +if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then + $as_echo_n "(cached) " >&6 else - rm -f conftest.sym conftest.file -echo >conftest.file -if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then - ac_cv_func_lstat_dereferences_slashed_symlink=no + ac_cv_func_malloc_0_nonnull=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25475,15 +31237,16 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default +#if defined STDC_HEADERS || defined HAVE_STDLIB_H +# include <stdlib.h> +#else +char *malloc (); +#endif + int main () { -struct stat sbuf; - /* Linux will dereference the symlink and fail. - That is better in the sense that it means we will not - have to compile and use the lstat wrapper. */ - return lstat ("conftest.sym/", &sbuf) == 0; +return ! malloc (0); ; return 0; } @@ -25494,227 +31257,561 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_malloc_0_nonnull=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_malloc_0_nonnull=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 +$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } +if test $ac_cv_func_malloc_0_nonnull = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC 1 +_ACEOF + +else + cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC 0 +_ACEOF + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + + +cat >>confdefs.h <<\_ACEOF +#define malloc rpl_malloc +_ACEOF + +fi + + + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MALLOC_GNU 1 +_ACEOF + + + + if test $gl_cv_func_malloc_posix = yes; then + HAVE_MALLOC_POSIX=1 + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MALLOC_POSIX 1 +_ACEOF + + else + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" + + HAVE_MALLOC_POSIX=0 + fi + + + + + GNULIB_MALLOC_POSIX=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MALLOC_POSIX 1 +_ACEOF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then + + + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } +if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on AIX and OSF/1. + osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 1; + } + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_mbrtowc_incomplete_state=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_mbrtowc_incomplete_state=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + fi + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <locale.h> +#include <stdlib.h> +#include <string.h> +#include <wchar.h> +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 1; + } + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_lstat_dereferences_slashed_symlink=yes + gl_cv_func_mbrtowc_sanitycheck=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -ac_cv_func_lstat_dereferences_slashed_symlink=no +gl_cv_func_mbrtowc_sanitycheck=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -else - # If the `ln -s' command failed, then we probably don't even - # have an lstat function. - ac_cv_func_lstat_dereferences_slashed_symlink=no -fi -rm -f conftest.sym conftest.file + fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 -echo "${ECHO_T}$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } - -test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && - -cat >>confdefs.h <<_ACEOF -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 -_ACEOF - - -if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then - +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + if test $REPLACE_MBSTATE_T = 1; then + : + fi + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBRTOWC=1 + fi - gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext" -fi - if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then - REPLACE_LSTAT=1 - fi - # Prerequisites of lib/lstat.c. + if test $ac_cv_func_mbrtowc = no; then + HAVE_MBRTOWC=0 fi + if test $HAVE_MBRTOWC != 0 && test $REPLACE_MBRTOWC != 1; then - GNULIB_LSTAT=1 - + { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles a NULL string argument" >&5 +$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; } +if test "${gl_cv_func_mbrtowc_null_arg+set}" = set; then + $as_echo_n "(cached) " >&6 +else -for ac_header in stdlib.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } + case "$host_os" in + # Guess no on OSF/1. + osf*) gl_cv_func_mbrtowc_null_arg="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_null_arg="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none; then + if test "$cross_compiling" = yes; then + : else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> + +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + mbstate_t state; + wchar_t wc; + int ret; + + memset (&state, '\0', sizeof (mbstate_t)); + wc = (wchar_t) 0xBADFACE; + mbrtowc (&wc, NULL, 5, &state); + /* Check that wc was not modified. */ + if (wc != (wchar_t) 0xBADFACE) + return 1; + } + return 0; +} _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_mbrtowc_null_arg=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_compiler=no +( exit $ac_status ) +gl_cv_func_mbrtowc_null_arg=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF + fi + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_null_arg" >&5 +$as_echo "$gl_cv_func_mbrtowc_null_arg" >&6; } + + + + + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc has a correct return value" >&5 +$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; } +if test "${gl_cv_func_mbrtowc_retval+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + case "$host_os" in + # Guess no on HP-UX and Solaris. + hpux* | solaris*) gl_cv_func_mbrtowc_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_retval="guessing yes" ;; + esac + if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none; then + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <$ac_header> + +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + /* This fails on Solaris. */ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 1) + return 1; + } + } + /* This fails on HP-UX 11.11. */ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 2) + return 1; + } + } + return 0; +} _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_mbrtowc_retval=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no +( exit $ac_status ) +gl_cv_func_mbrtowc_retval=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ------------------------------ ## -## Report this to bug-tar@gnu.org ## -## ------------------------------ ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } + fi fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_retval" >&5 +$as_echo "$gl_cv_func_mbrtowc_retval" >&6; } -fi -done -{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5 -echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; } -if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 +$as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; } +if test "${gl_cv_func_mbrtowc_nul_retval+set}" = set; then + $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then - ac_cv_func_malloc_0_nonnull=no + + case "$host_os" in + # Guess no on Solaris 8 and 9. + solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25722,17 +31819,22 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if defined STDC_HEADERS || defined HAVE_STDLIB_H -# include <stdlib.h> -#else -char *malloc (); -#endif -int -main () +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () { -return ! malloc (0); - ; + /* This fails on Solaris 8 and 9. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "", 1, &state) != 0) + return 1; + } return 0; } _ACEOF @@ -25742,103 +31844,111 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_malloc_0_nonnull=yes + gl_cv_func_mbrtowc_nul_retval=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -ac_cv_func_malloc_0_nonnull=no +gl_cv_func_mbrtowc_nul_retval=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + fi + fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; } -if test $ac_cv_func_malloc_0_nonnull = yes; then +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_nul_retval" >&5 +$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; } + case "$gl_cv_func_mbrtowc_null_arg" in + *yes) ;; + *) cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 1 +#define MBRTOWC_NULL_ARG_BUG 1 _ACEOF -else - cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC 0 + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_retval" in + *yes) ;; + *) +cat >>confdefs.h <<\_ACEOF +#define MBRTOWC_RETVAL_BUG 1 _ACEOF - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" - - + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_nul_retval" in + *yes) ;; + *) cat >>confdefs.h <<\_ACEOF -#define malloc rpl_malloc +#define MBRTOWC_NUL_RETVAL_BUG 1 _ACEOF -fi - - + REPLACE_MBRTOWC=1 + ;; + esac + fi + if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then + : -cat >>confdefs.h <<\_ACEOF -#define GNULIB_MALLOC_GNU 1 -_ACEOF - if test $gl_cv_func_malloc_posix = yes; then - HAVE_MALLOC_POSIX=1 -cat >>confdefs.h <<\_ACEOF -#define HAVE_MALLOC_POSIX 1 -_ACEOF - else + gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" + : + fi - gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext" - HAVE_MALLOC_POSIX=0 - fi + GNULIB_MBRTOWC=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MBRTOWC 1 +_ACEOF - GNULIB_MALLOC_POSIX=1 + GNULIB_MBSCASECMP=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MBSCASECMP 1 +_ACEOF @@ -25866,10 +31976,10 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5 -echo $ECHO_N "checking whether mbrtowc handles incomplete characters... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$host_os" in @@ -25880,11 +31990,7 @@ else esac if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25918,29 +32024,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_mbrtowc_incomplete_state=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_mbrtowc_incomplete_state=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -25948,58 +32057,27 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 -echo "${ECHO_T}$gl_cv_func_mbrtowc_incomplete_state" >&6; } - - case "$gl_cv_func_mbrtowc_incomplete_state" in - *yes) REPLACE_MBSTATE_T=0 ;; - *) REPLACE_MBSTATE_T=1 ;; - esac - else - REPLACE_MBSTATE_T=1 - fi - if test $REPLACE_MBSTATE_T = 1; then - - - WCHAR_H=wchar.h - - fi - - if test $REPLACE_MBSTATE_T = 1; then - REPLACE_MBRTOWC=1 - fi - - +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } - if test $ac_cv_func_mbrtowc = no; then - HAVE_MBRTOWC=0 - fi - if test $HAVE_MBRTOWC != 0 && test $REPLACE_MBRTOWC != 1; then - - - - { echo "$as_me:$LINENO: checking whether mbrtowc handles a NULL string argument" >&5 -echo $ECHO_N "checking whether mbrtowc handles a NULL string argument... $ECHO_C" >&6; } -if test "${gl_cv_func_mbrtowc_null_arg+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then + $as_echo_n "(cached) " >&6 else case "$host_os" in - # Guess no on OSF/1. - osf*) gl_cv_func_mbrtowc_null_arg="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_mbrtowc_null_arg="guessing yes" ;; + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac - if test $LOCALE_FR_UTF8 != none; then + if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26009,21 +32087,23 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <locale.h> +#include <stdlib.h> #include <string.h> #include <wchar.h> int main () { - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; - int ret; memset (&state, '\0', sizeof (mbstate_t)); - wc = (wchar_t) 0xBADFACE; - mbrtowc (&wc, NULL, 5, &state); - /* Check that wc was not modified. */ - if (wc != (wchar_t) 0xBADFACE) + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) return 1; } return 0; @@ -26035,29 +32115,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - gl_cv_func_mbrtowc_null_arg=yes + gl_cv_func_mbrtowc_sanitycheck=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -gl_cv_func_mbrtowc_null_arg=no +gl_cv_func_mbrtowc_sanitycheck=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -26065,32 +32148,108 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_null_arg" >&5 -echo "${ECHO_T}$gl_cv_func_mbrtowc_null_arg" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + if test $REPLACE_MBSTATE_T = 1; then + : + fi + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBSINIT=1 + fi - { echo "$as_me:$LINENO: checking whether mbrtowc has a correct return value" >&5 -echo $ECHO_N "checking whether mbrtowc has a correct return value... $ECHO_C" >&6; } -if test "${gl_cv_func_mbrtowc_retval+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + + if test $ac_cv_func_mbsinit = no; then + HAVE_MBSINIT=0 + fi + if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then + + : + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext" + + + : + + fi + + + + GNULIB_MBSINIT=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MBSINIT 1 +_ACEOF + + + + + + + + + + + + + + + + + + + + + + + + if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then + + + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } +if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then + $as_echo_n "(cached) " >&6 else case "$host_os" in - # Guess no on HP-UX and Solaris. - hpux* | solaris*) gl_cv_func_mbrtowc_retval="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_mbrtowc_retval="guessing yes" ;; + # Guess no on AIX and OSF/1. + osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; esac - if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none; then + if test $LOCALE_JA != none; then if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26104,35 +32263,16 @@ cat >>conftest.$ac_ext <<_ACEOF #include <wchar.h> int main () { - /* This fails on Solaris. */ - if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) - { - char input[] = "B\303\274\303\237er"; /* "Büßer" */ - mbstate_t state; - wchar_t wc; - - memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) - { - input[1] = '\0'; - if (mbrtowc (&wc, input + 2, 5, &state) != 1) - return 1; - } - } - /* This fails on HP-UX 11.11. */ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { - char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) - { - input[1] = '\0'; - if (mbrtowc (&wc, input + 2, 5, &state) != 2) - return 1; - } + if (mbsinit (&state)) + return 1; } return 0; } @@ -26143,29 +32283,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - gl_cv_func_mbrtowc_retval=yes + gl_cv_func_mbrtowc_incomplete_state=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -gl_cv_func_mbrtowc_retval=no +gl_cv_func_mbrtowc_incomplete_state=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -26173,31 +32316,27 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_retval" >&5 -echo "${ECHO_T}$gl_cv_func_mbrtowc_retval" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } - { echo "$as_me:$LINENO: checking whether mbrtowc returns 0 when parsing a NUL character" >&5 -echo $ECHO_N "checking whether mbrtowc returns 0 when parsing a NUL character... $ECHO_C" >&6; } -if test "${gl_cv_func_mbrtowc_nul_retval+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then + $as_echo_n "(cached) " >&6 else case "$host_os" in - # Guess no on Solaris 9. - solaris2.9) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; # Guess yes otherwise. - *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; esac if test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26207,18 +32346,23 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <locale.h> +#include <stdlib.h> #include <string.h> #include <wchar.h> int main () { - /* This fails on Solaris 9. */ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ mbstate_t state; wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, "", 1, &state) != 0) + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) return 1; } return 0; @@ -26230,29 +32374,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - gl_cv_func_mbrtowc_nul_retval=yes + gl_cv_func_mbrtowc_sanitycheck=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -gl_cv_func_mbrtowc_nul_retval=no +gl_cv_func_mbrtowc_sanitycheck=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -26260,117 +32407,60 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_nul_retval" >&5 -echo "${ECHO_T}$gl_cv_func_mbrtowc_nul_retval" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } - case "$gl_cv_func_mbrtowc_null_arg" in + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in *yes) ;; - *) -cat >>confdefs.h <<\_ACEOF -#define MBRTOWC_NULL_ARG_BUG 1 -_ACEOF - - REPLACE_MBRTOWC=1 - ;; + *) REPLACE_MBSTATE_T=1 ;; esac - case "$gl_cv_func_mbrtowc_retval" in + case "$gl_cv_func_mbrtowc_sanitycheck" in *yes) ;; - *) -cat >>confdefs.h <<\_ACEOF -#define MBRTOWC_RETVAL_BUG 1 -_ACEOF - - REPLACE_MBRTOWC=1 - ;; - esac - case "$gl_cv_func_mbrtowc_nul_retval" in - *yes) ;; - *) -cat >>confdefs.h <<\_ACEOF -#define MBRTOWC_NUL_RETVAL_BUG 1 -_ACEOF - - REPLACE_MBRTOWC=1 - ;; + *) REPLACE_MBSTATE_T=1 ;; esac + else + REPLACE_MBSTATE_T=1 fi - if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then - - - WCHAR_H=wchar.h - - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" - + if test $REPLACE_MBSTATE_T = 1; then - : + : fi - - - GNULIB_MBRTOWC=1 - - - - - : - - - - - GNULIB_MBSCASECMP=1 - - - - - - - - - - - - - + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBSRTOWCS=1 + fi + if test $ac_cv_func_mbsrtowcs = no; then + HAVE_MBSRTOWCS=0 + fi + if test $HAVE_MBSRTOWCS != 0 && test $REPLACE_MBSRTOWCS != 1; then - if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then - { echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5 -echo $ECHO_N "checking whether mbrtowc handles incomplete characters... $ECHO_C" >&6; } -if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether mbsrtowcs works" >&5 +$as_echo_n "checking whether mbsrtowcs works... " >&6; } +if test "${gl_cv_func_mbsrtowcs_works+set}" = set; then + $as_echo_n "(cached) " >&6 else case "$host_os" in - # Guess no on AIX and OSF/1. - osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + # Guess no on HP-UX and Solaris. + hpux* | solaris*) gl_cv_func_mbsrtowcs_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; esac - if test $LOCALE_JA != none; then + if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26384,16 +32474,49 @@ cat >>conftest.$ac_ext <<_ACEOF #include <wchar.h> int main () { + /* Test whether the function works when started with a conversion state + in non-initial state. This fails on HP-UX 11.11 and Solaris 10. */ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + return 1; + } + } if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) { - const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + const char input[] = "<\306\374\313\334\270\354>"; mbstate_t state; - wchar_t wc; memset (&state, '\0', sizeof (mbstate_t)); - if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) - if (mbsinit (&state)) - return 1; + if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 4; + if (mbsrtowcs (NULL, &src, 10, &state) != 3) + return 1; + } + } + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + const char input[] = "B\250\271\201\060\211\070er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + return 1; + } } return 0; } @@ -26404,29 +32527,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - gl_cv_func_mbrtowc_incomplete_state=yes + gl_cv_func_mbsrtowcs_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -gl_cv_func_mbrtowc_incomplete_state=no +gl_cv_func_mbsrtowcs_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -26434,39 +32560,27 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 -echo "${ECHO_T}$gl_cv_func_mbrtowc_incomplete_state" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbsrtowcs_works" >&5 +$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; } - case "$gl_cv_func_mbrtowc_incomplete_state" in - *yes) REPLACE_MBSTATE_T=0 ;; - *) REPLACE_MBSTATE_T=1 ;; + case "$gl_cv_func_mbsrtowcs_works" in + *yes) ;; + *) REPLACE_MBSRTOWCS=1 ;; esac - else - REPLACE_MBSTATE_T=1 fi - if test $REPLACE_MBSTATE_T = 1; then - - - WCHAR_H=wchar.h + if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then - fi + : - if test $REPLACE_MBSTATE_T = 1; then - REPLACE_MBSINIT=1 - fi - if test $ac_cv_func_mbsinit = no; then - HAVE_MBSINIT=0 - fi - if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then - WCHAR_H=wchar.h + gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext" @@ -26476,7 +32590,7 @@ echo "${ECHO_T}$gl_cv_func_mbrtowc_incomplete_state" >&6; } - gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext" + gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext" : @@ -26485,7 +32599,15 @@ echo "${ECHO_T}$gl_cv_func_mbrtowc_incomplete_state" >&6; } - GNULIB_MBSINIT=1 + GNULIB_MBSRTOWCS=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MBSRTOWCS 1 +_ACEOF + + + @@ -26495,6 +32617,18 @@ echo "${ECHO_T}$gl_cv_func_mbrtowc_incomplete_state" >&6; } + GNULIB_MEMCHR=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MEMCHR 1 +_ACEOF + + + + + + @@ -26509,11 +32643,11 @@ echo "${ECHO_T}$gl_cv_func_mbrtowc_incomplete_state" >&6; } for ac_func in mempcpy do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26566,35 +32700,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -26617,6 +32758,13 @@ done GNULIB_MEMPCPY=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MEMPCPY 1 +_ACEOF + + + + @@ -26639,11 +32787,11 @@ done for ac_func in memrchr do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26696,35 +32844,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -26744,6 +32899,191 @@ done GNULIB_MEMRCHR=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MEMRCHR 1 +_ACEOF + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking whether mkdir handles trailing slash" >&5 +$as_echo_n "checking whether mkdir handles trailing slash... " >&6; } +if test "${gl_cv_func_mkdir_trailing_slash_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + rm -rf conftest.dir + if test "$cross_compiling" = yes; then + gl_cv_func_mkdir_trailing_slash_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +# include <sys/types.h> +# include <sys/stat.h> + +int +main () +{ +return mkdir ("conftest.dir/", 0700); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_mkdir_trailing_slash_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_mkdir_trailing_slash_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -rf conftest.dir + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mkdir_trailing_slash_works" >&5 +$as_echo "$gl_cv_func_mkdir_trailing_slash_works" >&6; } + if test "$gl_cv_func_mkdir_trailing_slash_works" != yes; then + REPLACE_MKDIR=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mkdir.$ac_objext" + + fi + + { $as_echo "$as_me:$LINENO: checking whether mkdir handles trailing dot" >&5 +$as_echo_n "checking whether mkdir handles trailing dot... " >&6; } +if test "${gl_cv_func_mkdir_trailing_dot_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + rm -rf conftest.dir + if test "$cross_compiling" = yes; then + gl_cv_func_mkdir_trailing_dot_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +# include <sys/types.h> +# include <sys/stat.h> + +int +main () +{ +return !mkdir ("conftest.dir/./", 0700); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_mkdir_trailing_dot_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_mkdir_trailing_dot_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -rf conftest.dir + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mkdir_trailing_dot_works" >&5 +$as_echo "$gl_cv_func_mkdir_trailing_dot_works" >&6; } + if test "$gl_cv_func_mkdir_trailing_dot_works" != yes; then + REPLACE_MKDIR=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mkdir.$ac_objext" + + +cat >>confdefs.h <<\_ACEOF +#define FUNC_MKDIR_DOT_BUG 1 +_ACEOF + + fi + + @@ -26756,11 +33096,11 @@ done for ac_func in mkdtemp do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26813,35 +33153,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -26863,6 +33210,14 @@ done GNULIB_MKDTEMP=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_MKDTEMP 1 +_ACEOF + + + + + @@ -26882,10 +33237,10 @@ if test $APPLE_UNIVERSAL_BUILD = 1; then # But we need a configuration result that is valid in both modes. ac_cv_func_working_mktime=no fi -{ echo "$as_me:$LINENO: checking for working mktime" >&5 -echo $ECHO_N "checking for working mktime... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for working mktime" >&5 +$as_echo_n "checking for working mktime... " >&6; } if test "${ac_cv_func_working_mktime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_working_mktime=no @@ -26957,8 +33312,8 @@ static int mktime_test (time_t now) { return (mktime_test1 (now) - && mktime_test1 ((time_t) (time_t_max - now)) - && mktime_test1 ((time_t) (time_t_min + now))); + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); } static int @@ -26988,17 +33343,17 @@ bigtime_test (int j) { struct tm *lt = localtime (&now); if (! (lt - && lt->tm_year == tm.tm_year - && lt->tm_mon == tm.tm_mon - && lt->tm_mday == tm.tm_mday - && lt->tm_hour == tm.tm_hour - && lt->tm_min == tm.tm_min - && lt->tm_sec == tm.tm_sec - && lt->tm_yday == tm.tm_yday - && lt->tm_wday == tm.tm_wday - && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) - == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - return 0; + && lt->tm_year == tm.tm_year + && lt->tm_mon == tm.tm_mon + && lt->tm_mday == tm.tm_mday + && lt->tm_hour == tm.tm_hour + && lt->tm_min == tm.tm_min + && lt->tm_sec == tm.tm_sec + && lt->tm_yday == tm.tm_yday + && lt->tm_wday == tm.tm_wday + && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) + == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) + return 0; } return 1; } @@ -27030,7 +33385,7 @@ year_2050_test () to the correct answer that we can assume the discrepancy is due to leap seconds. */ return (t == (time_t) -1 - || (0 < t && answer - 120 <= t && t <= answer + 120)); + || (0 < t && answer - 120 <= t && t <= answer + 120)); } int @@ -27048,7 +33403,7 @@ main () { t = (time_t_max << 1) + 1; if (t <= time_t_max) - break; + break; time_t_max = t; } time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; @@ -27057,23 +33412,23 @@ main () for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) - putenv (tz_strings[i]); + putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) - if (! mktime_test (t)) - return 1; + if (! mktime_test (t)) + return 1; if (! (mktime_test ((time_t) 1) - && mktime_test ((time_t) (60 * 60)) - && mktime_test ((time_t) (60 * 60 * 24)))) - return 1; + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + return 1; for (j = 1; ; j <<= 1) - if (! bigtime_test (j)) - return 1; - else if (INT_MAX / 2 < j) - break; + if (! bigtime_test (j)) + return 1; + else if (INT_MAX / 2 < j) + break; if (! bigtime_test (INT_MAX)) - return 1; + return 1; } return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); } @@ -27084,36 +33439,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_working_mktime=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_working_mktime=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 -echo "${ECHO_T}$ac_cv_func_working_mktime" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 +$as_echo "$ac_cv_func_working_mktime" >&6; } if test $ac_cv_func_working_mktime = no; then @@ -27128,15 +33486,26 @@ if test $ac_cv_func_working_mktime = no; then fi if test $ac_cv_func_working_mktime = no; then + REPLACE_MKTIME=1 + + + + else + REPLACE_MKTIME=0 + fi + + + + GNULIB_MKTIME=1 + cat >>confdefs.h <<\_ACEOF -#define mktime rpl_mktime +#define GNULIB_MKTIME 1 _ACEOF - fi @@ -27145,9 +33514,62 @@ _ACEOF + gl_LIBOBJS="$gl_LIBOBJS modechange.$ac_objext" - gl_LIBOBJS="$gl_LIBOBJS modechange.$ac_objext" + + + + + + + + + + + if test $ac_cv_func_nl_langinfo = yes; then + if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1; then + : + else + REPLACE_NL_LANGINFO=1 + +cat >>confdefs.h <<\_ACEOF +#define REPLACE_NL_LANGINFO 1 +_ACEOF + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext" + + fi + else + HAVE_NL_LANGINFO=0 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext" + + fi + + + + GNULIB_NL_LANGINFO=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_NL_LANGINFO 1 +_ACEOF @@ -27163,10 +33585,10 @@ _ACEOF -{ echo "$as_me:$LINENO: checking for obstacks" >&5 -echo $ECHO_N "checking for obstacks... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for obstacks" >&5 +$as_echo_n "checking for obstacks... " >&6; } if test "${ac_cv_func_obstack+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -27194,31 +33616,35 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_obstack=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_obstack=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_obstack" >&5 -echo "${ECHO_T}$ac_cv_func_obstack" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_obstack" >&5 +$as_echo "$ac_cv_func_obstack" >&6; } if test $ac_cv_func_obstack = yes; then cat >>confdefs.h <<\_ACEOF @@ -27244,7 +33670,7 @@ fi mingw* | pw*) - if test $REPLACE_OPEN != 1; then + REPLACE_OPEN=1 @@ -27257,22 +33683,32 @@ fi + : - fi - REPLACE_OPEN=1 ;; *) - { echo "$as_me:$LINENO: checking whether open recognizes a trailing slash" >&5 -echo $ECHO_N "checking whether open recognizes a trailing slash... $ECHO_C" >&6; } + + + + + + + { $as_echo "$as_me:$LINENO: checking whether open recognizes a trailing slash" >&5 +$as_echo_n "checking whether open recognizes a trailing slash... " >&6; } if test "${gl_cv_func_open_slash+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + touch conftest.tmp + ln -s conftest.tmp conftest.lnk + fi if test "$cross_compiling" = yes; then case "$host_os" in + freebsd*) gl_cv_func_open_slash="guessing no" ;; solaris2.[0-9]*) gl_cv_func_open_slash="guessing no" ;; hpux*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; @@ -27292,6 +33728,9 @@ cat >>conftest.$ac_ext <<_ACEOF #endif int main () { +#if HAVE_LSTAT + if (open ("conftest.lnk/", O_RDONLY) != -1) return 2; +#endif return open ("conftest.sl/", O_CREAT, 0600) >= 0; } _ACEOF @@ -27301,38 +33740,41 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_open_slash=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_open_slash=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi - rm -f conftest.sl + rm -f conftest.sl conftest.tmp conftest.lnk fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_open_slash" >&5 -echo "${ECHO_T}$gl_cv_func_open_slash" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_open_slash" >&5 +$as_echo "$gl_cv_func_open_slash" >&6; } case "$gl_cv_func_open_slash" in *no) @@ -27342,7 +33784,7 @@ _ACEOF - if test $REPLACE_OPEN != 1; then + REPLACE_OPEN=1 @@ -27355,10 +33797,9 @@ _ACEOF + : - fi - REPLACE_OPEN=1 ;; esac @@ -27377,6 +33818,25 @@ _ACEOF GNULIB_OPEN=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_OPEN 1 +_ACEOF + + + + + + GNULIB_OPENAT=1 + + + GNULIB_FCHMODAT=1 + GNULIB_FSTATAT=1 + GNULIB_MKDIRAT=1 + + + GNULIB_FCHOWNAT=1 + GNULIB_UNLINKAT=1 + @@ -27425,13 +33885,23 @@ _ACEOF -for ac_func in fchmodat mkdirat openat + + + + + + + + + + +for ac_func in fchmodat fstatat mkdirat openat unlinkat do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -27484,35 +33954,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -27524,9 +34001,38 @@ done + case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in - yes+yes) ;; + yes+yes) + # GNU/Hurd has unlinkat, but it has the same bug as unlink. + if test $REPLACE_UNLINK = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS unlinkat.$ac_objext" + + REPLACE_UNLINKAT=1 + fi ;; yes+*) + # Solaris 9 has *at functions, but uniformly mishandles trailing + # slash in all of them. + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext" + + REPLACE_OPENAT=1 + @@ -27535,26 +34041,42 @@ done gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext" -;; + + REPLACE_FSTATAT=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS unlinkat.$ac_objext" + + REPLACE_UNLINKAT=1 + ;; *) + HAVE_OPENAT=0 + HAVE_UNLINKAT=0 # No known system with unlinkat but not openat + HAVE_FSTATAT=0 # No known system with fstatat but not openat -cat >>confdefs.h <<\_ACEOF -#define __OPENAT_PREFIX rpl_ -_ACEOF : ;; esac + if test $ac_cv_func_fchmodat != yes; then + HAVE_FCHMODAT=0 + fi + if test $ac_cv_func_mkdirat != yes; then + HAVE_MKDIRAT=0 + fi - # Assume we'll use the replacement function. - # The only case in which we won't is when we have fchownat, and it works. - use_replacement_fchownat=yes - { echo "$as_me:$LINENO: checking for fchownat" >&5 -echo $ECHO_N "checking for fchownat... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for fchownat" >&5 +$as_echo_n "checking for fchownat... " >&6; } if test "${ac_cv_func_fchownat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -27607,43 +34129,41 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_fchownat=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_fchownat=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_fchownat" >&5 -echo "${ECHO_T}$ac_cv_func_fchownat" >&6; } -if test $ac_cv_func_fchownat = yes; then - have_fchownat=yes -else - have_fchownat=no -fi - - if test $have_fchownat = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_fchownat" >&5 +$as_echo "$ac_cv_func_fchownat" >&6; } +if test "x$ac_cv_func_fchownat" = x""yes; then - { echo "$as_me:$LINENO: checking whether fchownat works with AT_SYMLINK_NOFOLLOW" >&5 -echo $ECHO_N "checking whether fchownat works with AT_SYMLINK_NOFOLLOW... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether fchownat works with AT_SYMLINK_NOFOLLOW" >&5 +$as_echo_n "checking whether fchownat works with AT_SYMLINK_NOFOLLOW... " >&6; } if test "${gl_cv_func_fchownat_nofollow_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gl_dangle=conftest.dangle @@ -27671,8 +34191,8 @@ int main () { return (fchownat (AT_FDCWD, "$gl_dangle", -1, getgid (), - AT_SYMLINK_NOFOLLOW) != 0 - && errno == ENOENT); + AT_SYMLINK_NOFOLLOW) != 0 + && errno == ENOENT); } _ACEOF @@ -27682,66 +34202,58 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_fchownat_nofollow_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_fchownat_nofollow_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_fchownat_nofollow_works" >&5 -echo "${ECHO_T}$gl_cv_func_fchownat_nofollow_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_fchownat_nofollow_works" >&5 +$as_echo "$gl_cv_func_fchownat_nofollow_works" >&6; } if test $gl_cv_func_fchownat_nofollow_works = no; then - : -else - use_replacement_fchownat=no -fi - - - fi - - if test $use_replacement_fchownat = yes; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS fchownat.$ac_objext" - + REPLACE_FCHOWNAT=1 cat >>confdefs.h <<\_ACEOF -#define fchownat rpl_fchownat +#define FCHOWNAT_NOFOLLOW_BUG 1 _ACEOF - fi +fi +else + HAVE_FCHOWNAT=0 +fi + if test $REPLACE_CHOWN = 1; then + REPLACE_FCHOWNAT=1 + fi + if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then @@ -27750,7 +34262,9 @@ _ACEOF + gl_LIBOBJS="$gl_LIBOBJS fchownat.$ac_objext" + fi @@ -27758,7 +34272,6 @@ _ACEOF - gl_LIBOBJS="$gl_LIBOBJS quote.$ac_objext" @@ -27771,21 +34284,111 @@ _ACEOF - gl_LIBOBJS="$gl_LIBOBJS quotearg.$ac_objext" +for ac_func in getppriv +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $ac_func innocuous_$ac_func +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif +#undef $ac_func +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + eval "$as_ac_var=no" +fi +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF +fi +done - { echo "$as_me:$LINENO: checking for mbstate_t" >&5 -echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; } -if test "${ac_cv_type_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether program_invocation_name is declared" >&5 +$as_echo_n "checking whether program_invocation_name is declared... " >&6; } +if test "${ac_cv_have_decl_program_invocation_name+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -27793,12 +34396,15 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -# include <wchar.h> +#include <errno.h> + int main () { -mbstate_t x; return sizeof x; +#ifndef program_invocation_name + (void) program_invocation_name; +#endif + ; return 0; } @@ -27809,48 +34415,50 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_mbstate_t=yes + ac_cv_have_decl_program_invocation_name=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_mbstate_t=no + ac_cv_have_decl_program_invocation_name=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 -echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; } - if test $ac_cv_type_mbstate_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_name" >&5 +$as_echo "$ac_cv_have_decl_program_invocation_name" >&6; } +if test "x$ac_cv_have_decl_program_invocation_name" = x""yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_MBSTATE_T 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1 _ACEOF - else -cat >>confdefs.h <<\_ACEOF -#define mbstate_t int +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0 _ACEOF - fi + +fi - { echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 -echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6; } -if test "${ac_cv_func_mbrtowc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether program_invocation_short_name is declared" >&5 +$as_echo_n "checking whether program_invocation_short_name is declared... " >&6; } +if test "${ac_cv_have_decl_program_invocation_short_name+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -27858,57 +34466,88 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <wchar.h> +#include <errno.h> + int main () { -wchar_t wc; - char const s[] = ""; - size_t n = 1; - mbstate_t state; - return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); +#ifndef program_invocation_short_name + (void) program_invocation_short_name; +#endif + ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_mbrtowc=yes + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_program_invocation_short_name=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_mbrtowc=no + ac_cv_have_decl_program_invocation_short_name=no fi -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 -echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6; } - if test $ac_cv_func_mbrtowc = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_program_invocation_short_name" >&5 +$as_echo "$ac_cv_have_decl_program_invocation_short_name" >&6; } +if test "x$ac_cv_have_decl_program_invocation_short_name" = x""yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_MBRTOWC 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1 _ACEOF - fi + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0 +_ACEOF + + +fi + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS quote.$ac_objext" + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS quotearg.$ac_objext" @@ -27926,11 +34565,11 @@ _ACEOF for ac_func in rawmemchr do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -27983,35 +34622,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -28032,6 +34678,13 @@ done GNULIB_RAWMEMCHR=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_RAWMEMCHR 1 +_ACEOF + + + + @@ -28054,6 +34707,157 @@ done : + else + { $as_echo "$as_me:$LINENO: checking whether readlink signature is correct" >&5 +$as_echo_n "checking whether readlink signature is correct... " >&6; } +if test "${gl_cv_decl_readlink_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <unistd.h> + /* Cause compilation failure if original declaration has wrong type. */ + ssize_t readlink (const char *, char *, size_t); +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_decl_readlink_works=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_decl_readlink_works=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_decl_readlink_works" >&5 +$as_echo "$gl_cv_decl_readlink_works" >&6; } + { $as_echo "$as_me:$LINENO: checking whether readlink handles trailing slash correctly" >&5 +$as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; } +if test "${gl_cv_func_readlink_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + # We have readlink, so assume ln -s works. + ln -s conftest.no-such conftest.link + ln -s conftest.link conftest.lnk2 + if test "$cross_compiling" = yes; then + gl_cv_func_readlink_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <unistd.h> + +int +main () +{ +char buf[20]; + return readlink ("conftest.lnk2/", buf, sizeof buf) != -1; + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_readlink_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_readlink_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -f conftest.link conftest.lnk2 +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_readlink_works" >&5 +$as_echo "$gl_cv_func_readlink_works" >&6; } + if test "$gl_cv_func_readlink_works" != yes; then + +cat >>confdefs.h <<\_ACEOF +#define READLINK_TRAILING_SLASH_BUG 1 +_ACEOF + + REPLACE_READLINK=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext" + + elif test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINK=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext" + + fi fi @@ -28061,6 +34865,13 @@ done GNULIB_READLINK=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_READLINK 1 +_ACEOF + + + + if test $gl_cv_func_malloc_posix = yes; then HAVE_REALLOC_POSIX=1 @@ -28089,6 +34900,13 @@ _ACEOF GNULIB_REALLOC_POSIX=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_REALLOC_POSIX 1 +_ACEOF + + + + @@ -28105,16 +34923,16 @@ fi case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex - ;; + ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. - { echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5 -echo $ECHO_N "checking for working re_compile_pattern... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5 +$as_echo_n "checking for working re_compile_pattern... " >&6; } if test "${gl_cv_func_re_compile_pattern_working+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then gl_cv_func_re_compile_pattern_working=no @@ -28126,132 +34944,139 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default - #if HAVE_LOCALE_H - #include <locale.h> - #endif - #include <limits.h> - #include <regex.h> + #if HAVE_LOCALE_H + #include <locale.h> + #endif + #include <limits.h> + #include <regex.h> int main () { static struct re_pattern_buffer regex; - unsigned char folded_chars[UCHAR_MAX + 1]; - int i; - const char *s; - struct re_registers regs; - - #if HAVE_LOCALE_H - /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html - This test needs valgrind to catch the bug on Debian - GNU/Linux 3.1 x86, but it might catch the bug better - on other platforms and it shouldn't hurt to try the - test here. */ - if (setlocale (LC_ALL, "en_US.UTF-8")) - { - static char const pat[] = "insert into"; - static char const data[] = - "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; - re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE - | RE_ICASE); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern (pat, sizeof pat - 1, ®ex); - if (s) - return 1; - if (re_search (®ex, data, sizeof data - 1, - 0, sizeof data - 1, ®s) - != -1) - return 1; - if (! setlocale (LC_ALL, "C")) - return 1; - } - #endif - - /* This test is from glibc bug 3957, reported by Andrew Mackey. */ - re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("a[^x]b", 6, ®ex); - if (s) - return 1; - - /* This should fail, but succeeds for glibc-2.5. */ - if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) - return 1; - - /* This regular expression is from Spencer ere test number 75 - in grep-2.3. */ - re_set_syntax (RE_SYNTAX_POSIX_EGREP); - memset (®ex, 0, sizeof regex); - for (i = 0; i <= UCHAR_MAX; i++) - folded_chars[i] = i; - regex.translate = folded_chars; - s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); - /* This should fail with _Invalid character class name_ error. */ - if (!s) - return 1; - - /* This should succeed, but does not for glibc-2.1.3. */ - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("{1", 2, ®ex); - - if (s) - return 1; - - /* The following example is derived from a problem report - against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("[an\371]*n", 7, ®ex); - if (s) - return 1; - - /* This should match, but does not for glibc-2.2.1. */ - if (re_match (®ex, "an", 2, 0, ®s) != 2) - return 1; - - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("x", 1, ®ex); - if (s) - return 1; - - /* glibc-2.2.93 does not work with a negative RANGE argument. */ - if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) - return 1; - - /* The version of regex.c in older versions of gnulib - ignored RE_ICASE. Detect that problem too. */ - re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("x", 1, ®ex); - if (s) - return 1; - - if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) - return 1; - - /* Catch a bug reported by Vin Shelton in - http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html - */ - re_set_syntax (RE_SYNTAX_POSIX_BASIC - & ~RE_CONTEXT_INVALID_DUP - & ~RE_NO_EMPTY_RANGES); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); - if (s) - return 1; - - /* REG_STARTEND was added to glibc on 2004-01-15. - Reject older versions. */ - if (! REG_STARTEND) - return 1; - - /* Reject hosts whose regoff_t values are too narrow. - These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t - and 32-bit int. */ - if (sizeof (regoff_t) < sizeof (ptrdiff_t) - || sizeof (regoff_t) < sizeof (ssize_t)) - return 1; - - return 0; + unsigned char folded_chars[UCHAR_MAX + 1]; + int i; + const char *s; + struct re_registers regs; + + #if HAVE_LOCALE_H + /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html + This test needs valgrind to catch the bug on Debian + GNU/Linux 3.1 x86, but it might catch the bug better + on other platforms and it shouldn't hurt to try the + test here. */ + if (setlocale (LC_ALL, "en_US.UTF-8")) + { + static char const pat[] = "insert into"; + static char const data[] = + "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; + re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE + | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern (pat, sizeof pat - 1, ®ex); + if (s) + return 1; + if (re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, ®s) + != -1) + return 1; + if (! setlocale (LC_ALL, "C")) + return 1; + } + #endif + + /* This test is from glibc bug 3957, reported by Andrew Mackey. */ + re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[^x]b", 6, ®ex); + if (s) + return 1; + + /* This should fail, but succeeds for glibc-2.5. */ + if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + return 1; + + /* This regular expression is from Spencer ere test number 75 + in grep-2.3. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + for (i = 0; i <= UCHAR_MAX; i++) + folded_chars[i] = i; + regex.translate = folded_chars; + s = re_compile_pattern ("a[[:]:]]b\n", 11, ®ex); + /* This should fail with _Invalid character class name_ error. */ + if (!s) + return 1; + + /* Ensure that [b-a] is diagnosed as invalid. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[b-a]", 6, ®ex); + if (s == 0) + return 1; + + /* This should succeed, but does not for glibc-2.1.3. */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("{1", 2, ®ex); + + if (s) + return 1; + + /* The following example is derived from a problem report + against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[an\371]*n", 7, ®ex); + if (s) + return 1; + + /* This should match, but does not for glibc-2.2.1. */ + if (re_match (®ex, "an", 2, 0, ®s) != 2) + return 1; + + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + return 1; + + /* glibc-2.2.93 does not work with a negative RANGE argument. */ + if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) + return 1; + + /* The version of regex.c in older versions of gnulib + ignored RE_ICASE. Detect that problem too. */ + re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + return 1; + + if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) + return 1; + + /* Catch a bug reported by Vin Shelton in + http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html + */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC + & ~RE_CONTEXT_INVALID_DUP + & ~RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); + if (s) + return 1; + + /* REG_STARTEND was added to glibc on 2004-01-15. + Reject older versions. */ + if (! REG_STARTEND) + return 1; + + /* Reject hosts whose regoff_t values are too narrow. + These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t + and 32-bit int. */ + if (sizeof (regoff_t) < sizeof (ptrdiff_t) + || sizeof (regoff_t) < sizeof (ssize_t)) + return 1; + + return 0; ; return 0; } @@ -28262,43 +35087,46 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_re_compile_pattern_working=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_re_compile_pattern_working=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_re_compile_pattern_working" >&5 -echo "${ECHO_T}$gl_cv_func_re_compile_pattern_working" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_re_compile_pattern_working" >&5 +$as_echo "$gl_cv_func_re_compile_pattern_working" >&6; } case $gl_cv_func_re_compile_pattern_working in #( yes) ac_use_included_regex=no;; #( no) ac_use_included_regex=yes;; esac ;; - *) { { echo "$as_me:$LINENO: error: Invalid value for --with-included-regex: $with_included_regex" >&5 -echo "$as_me: error: Invalid value for --with-included-regex: $with_included_regex" >&2;} + *) { { $as_echo "$as_me:$LINENO: error: Invalid value for --with-included-regex: $with_included_regex" >&5 +$as_echo "$as_me: error: Invalid value for --with-included-regex: $with_included_regex" >&2;} { (exit 1); exit 1; }; } ;; esac @@ -28399,22 +35227,24 @@ _ACEOF + for ac_header in libintl.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -28430,32 +35260,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -28469,51 +35300,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -28522,21 +35354,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -28553,10 +35388,10 @@ done - { echo "$as_me:$LINENO: checking whether isblank is declared" >&5 -echo $ECHO_N "checking whether isblank is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether isblank is declared" >&5 +$as_echo_n "checking whether isblank is declared... " >&6; } if test "${ac_cv_have_decl_isblank+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -28583,20 +35418,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_isblank=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_isblank=no @@ -28604,9 +35440,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_isblank" >&5 -echo "${ECHO_T}$ac_cv_have_decl_isblank" >&6; } -if test $ac_cv_have_decl_isblank = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_isblank" >&5 +$as_echo "$ac_cv_have_decl_isblank" >&6; } +if test "x$ac_cv_have_decl_isblank" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_ISBLANK 1 @@ -28637,14 +35473,13 @@ fi - -for ac_func in rpmatch +for ac_func in rmdir do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -28697,35 +35532,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -28736,13 +35578,37 @@ fi done - if test $ac_cv_func_rpmatch = no; then - HAVE_RPMATCH=0 - - { echo "$as_me:$LINENO: checking for nl_langinfo and YESEXPR" >&5 -echo $ECHO_N "checking for nl_langinfo and YESEXPR... $ECHO_C" >&6; } -if test "${gl_cv_langinfo_yesexpr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + if test $ac_cv_func_rmdir = no; then + REPLACE_RMDIR=1 + # If someone lacks rmdir, make configure fail, and request + # a bug report to inform us about it. + if test x"$SKIP_RMDIR_CHECK" != xyes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: Your system lacks the rmdir function. + Please report this, along with the output of \"uname -a\", to the + bug-coreutils@gnu.org mailing list. To continue past this point, + rerun configure with SKIP_RMDIR_CHECK=yes. + E.g., ./configure SKIP_RMDIR_CHECK=yes +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: Your system lacks the rmdir function. + Please report this, along with the output of \"uname -a\", to the + bug-coreutils@gnu.org mailing list. To continue past this point, + rerun configure with SKIP_RMDIR_CHECK=yes. + E.g., ./configure SKIP_RMDIR_CHECK=yes +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + fi + else + { $as_echo "$as_me:$LINENO: checking whether rmdir works" >&5 +$as_echo_n "checking whether rmdir works... " >&6; } +if test "${gl_cv_func_rmdir_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + mkdir conftest.dir + touch conftest.file + if test "$cross_compiling" = yes; then + gl_cv_func_rmdir_works="guessing no" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -28750,135 +35616,61 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <langinfo.h> +#include <stdio.h> + #include <errno.h> + #include <unistd.h> + int main () { -char* cs = nl_langinfo(YESEXPR); return !cs; +return !rmdir ("conftest.file/") || errno != ENOTDIR + || !rmdir ("conftest.dir/./"); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - gl_cv_langinfo_yesexpr=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_rmdir_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gl_cv_langinfo_yesexpr=no +( exit $ac_status ) +gl_cv_func_rmdir_works=no fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_langinfo_yesexpr" >&5 -echo "${ECHO_T}$gl_cv_langinfo_yesexpr" >&6; } - if test $gl_cv_langinfo_yesexpr = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LANGINFO_YESEXPR 1 -_ACEOF - - fi - - fi - - GNULIB_RPMATCH=1 - - - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS safe-read.$ac_objext" - - - - - - - - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS safe-write.$ac_objext" - - - - - - - - - - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS save-cwd.$ac_objext" - - - - - - - - - - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS savedir.$ac_objext" - - - - - - - - - - - if test $ac_cv_func_setenv = no; then - HAVE_SETENV=0 + rm -rf conftest.dir conftest.file +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_rmdir_works" >&5 +$as_echo "$gl_cv_func_rmdir_works" >&6; } + if test x"$gl_cv_func_rmdir_works" != xyes; then + REPLACE_RMDIR=1 @@ -28887,170 +35679,42 @@ _ACEOF - gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext" + gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext" + fi + fi + GNULIB_RMDIR=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_RMDIR 1 +_ACEOF -for ac_header in search.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ------------------------------ ## -## Report this to bug-tar@gnu.org ## -## ------------------------------ ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF -fi -done -for ac_func in tsearch +for ac_func in rpmatch do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -29103,41 +35767,229 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF +else + + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + fi done + if test $ac_cv_func_rpmatch = no; then + HAVE_RPMATCH=0 + + { $as_echo "$as_me:$LINENO: checking for nl_langinfo and YESEXPR" >&5 +$as_echo_n "checking for nl_langinfo and YESEXPR... " >&6; } +if test "${gl_cv_langinfo_yesexpr+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <langinfo.h> +int +main () +{ +char* cs = nl_langinfo(YESEXPR); return !cs; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + gl_cv_langinfo_yesexpr=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_langinfo_yesexpr=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_langinfo_yesexpr" >&5 +$as_echo "$gl_cv_langinfo_yesexpr" >&6; } + if test $gl_cv_langinfo_yesexpr = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LANGINFO_YESEXPR 1 +_ACEOF + + fi + + fi + + + + GNULIB_RPMATCH=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_RPMATCH 1 +_ACEOF + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS safe-read.$ac_objext" + + + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS safe-write.$ac_objext" + + + + + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS same.$ac_objext" + + + + + + + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS save-cwd.$ac_objext" + + + + + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS savedir.$ac_objext" + + + + + if test $HAVE_SETENV$REPLACE_SETENV != 10; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext" + fi @@ -29145,23 +35997,31 @@ done GNULIB_SETENV=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_SETENV 1 +_ACEOF + + + + for ac_header in stdint.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -29177,32 +36037,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -29216,51 +36077,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -29269,31 +36131,34 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done - { echo "$as_me:$LINENO: checking for SIZE_MAX" >&5 -echo $ECHO_N "checking for SIZE_MAX... $ECHO_C" >&6; } - if test "${gl_cv_size_max+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for SIZE_MAX" >&5 +$as_echo_n "checking for SIZE_MAX... " >&6; } +if test "${gl_cv_size_max+set}" = set; then + $as_echo_n "(cached) " >&6 else gl_cv_size_max= @@ -29346,13 +36211,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -29383,20 +36249,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -29410,7 +36277,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -29437,13 +36304,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -29474,20 +36342,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -29501,7 +36370,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -29538,20 +36407,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -29588,15 +36458,17 @@ main () long int i = longval (); if (i != (sizeof (size_t) * CHAR_BIT - 1)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (sizeof (size_t) * CHAR_BIT - 1)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -29609,29 +36481,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then size_t_bits_minus_1=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) size_t_bits_minus_1= fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val @@ -29660,13 +36535,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -29696,20 +36572,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -29723,7 +36600,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -29749,13 +36626,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -29785,20 +36663,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -29812,7 +36691,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -29848,20 +36727,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -29897,15 +36777,17 @@ main () long int i = longval (); if (i != (sizeof (size_t) <= sizeof (unsigned int))) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (sizeof (size_t) <= sizeof (unsigned int))) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -29918,29 +36800,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then fits_in_uint=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) fits_in_uint= fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val @@ -29970,20 +36855,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then fits_in_uint=0 else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -30002,9 +36888,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi - - { echo "$as_me:$LINENO: result: $gl_cv_size_max" >&5 -echo "${ECHO_T}$gl_cv_size_max" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_size_max" >&5 +$as_echo "$gl_cv_size_max" >&6; } if test "$gl_cv_size_max" != yes; then cat >>confdefs.h <<_ACEOF @@ -30015,10 +36900,12 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether sleep is declared" >&5 -echo $ECHO_N "checking whether sleep is declared... $ECHO_C" >&6; } + + + { $as_echo "$as_me:$LINENO: checking whether sleep is declared" >&5 +$as_echo_n "checking whether sleep is declared... " >&6; } if test "${ac_cv_have_decl_sleep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30045,20 +36932,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_sleep=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_sleep=no @@ -30066,9 +36954,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_sleep" >&5 -echo "${ECHO_T}$ac_cv_have_decl_sleep" >&6; } -if test $ac_cv_have_decl_sleep = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sleep" >&5 +$as_echo "$ac_cv_have_decl_sleep" >&6; } +if test "x$ac_cv_have_decl_sleep" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SLEEP 1 @@ -30084,6 +36972,12 @@ _ACEOF fi + + + + + + if test $ac_cv_have_decl_sleep != yes; then HAVE_SLEEP=0 @@ -30096,7 +36990,100 @@ fi gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext" - : + else + { $as_echo "$as_me:$LINENO: checking for working sleep" >&5 +$as_echo_n "checking for working sleep... " >&6; } +if test "${gl_cv_func_sleep_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + gl_cv_func_sleep_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <errno.h> +#include <unistd.h> +#include <signal.h> +static void +handle_alarm (int sig) +{ + if (sig != SIGALRM) + _exit (2); +} + +int +main () +{ + + /* Failure to compile this test due to missing alarm is okay, + since all such platforms (mingw) also lack sleep. */ + unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days. */ + unsigned int remaining; + signal (SIGALRM, handle_alarm); + alarm (1); + remaining = sleep (pentecost); + return !(pentecost - 10 < remaining && remaining <= pentecost); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_sleep_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_sleep_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_sleep_works" >&5 +$as_echo "$gl_cv_func_sleep_works" >&6; } + if test "$gl_cv_func_sleep_works" != yes; then + REPLACE_SLEEP=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext" + + fi fi @@ -30104,16 +37091,23 @@ fi GNULIB_SLEEP=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_SLEEP 1 +_ACEOF + + + + gl_cv_func_snprintf_usable=no for ac_func in snprintf do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30166,35 +37160,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -30203,10 +37204,10 @@ done if test $ac_cv_func_snprintf = yes; then - { echo "$as_me:$LINENO: checking whether snprintf respects a size of 1" >&5 -echo $ECHO_N "checking whether snprintf respects a size of 1... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether snprintf respects a size of 1" >&5 +$as_echo_n "checking whether snprintf respects a size of 1... " >&6; } if test "${gl_cv_func_snprintf_size1+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then @@ -30233,37 +37234,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_snprintf_size1=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_snprintf_size1=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_snprintf_size1" >&5 -echo "${ECHO_T}$gl_cv_func_snprintf_size1" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_snprintf_size1" >&5 +$as_echo "$gl_cv_func_snprintf_size1" >&6; } case "$gl_cv_func_snprintf_size1" in *yes) @@ -30303,10 +37307,17 @@ echo "${ECHO_T}$gl_cv_func_snprintf_size1" >&6; } GNULIB_SNPRINTF=1 - { echo "$as_me:$LINENO: checking for ssize_t" >&5 -echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; } +cat >>confdefs.h <<\_ACEOF +#define GNULIB_SNPRINTF 1 +_ACEOF + + + + + { $as_echo "$as_me:$LINENO: checking for ssize_t" >&5 +$as_echo_n "checking for ssize_t... " >&6; } if test "${gt_cv_ssize_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30330,20 +37341,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gt_cv_ssize_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_ssize_t=no @@ -30351,8 +37363,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5 -echo "${ECHO_T}$gt_cv_ssize_t" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_ssize_t" >&5 +$as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then cat >>confdefs.h <<\_ACEOF @@ -30370,11 +37382,201 @@ _ACEOF + { $as_echo "$as_me:$LINENO: checking whether stat handles trailing slashes on directories" >&5 +$as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; } +if test "${gl_cv_func_stat_dir_slash+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + case $host_os in + mingw*) gl_cv_func_stat_dir_slash="guessing no";; + *) gl_cv_func_stat_dir_slash="guessing yes";; + esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/stat.h> + +int +main () +{ +struct stat st; return stat (".", &st) != stat ("./", &st); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_stat_dir_slash=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_stat_dir_slash=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_stat_dir_slash" >&5 +$as_echo "$gl_cv_func_stat_dir_slash" >&6; } + { $as_echo "$as_me:$LINENO: checking whether stat handles trailing slashes on files" >&5 +$as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } +if test "${gl_cv_func_stat_file_slash+set}" = set; then + $as_echo_n "(cached) " >&6 +else + touch conftest.tmp + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.tmp conftest.lnk + fi + if test "$cross_compiling" = yes; then + gl_cv_func_stat_file_slash="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/stat.h> + +int +main () +{ +struct stat st; + if (!stat ("conftest.tmp/", &st)) return 1; +#if HAVE_LSTAT + if (!stat ("conftest.lnk/", &st)) return 2; +#endif - { echo "$as_me:$LINENO: checking for struct stat.st_atim.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_atim.tv_nsec... $ECHO_C" >&6; } + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_stat_file_slash=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_stat_file_slash=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -f conftest.tmp conftest.lnk +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_stat_file_slash" >&5 +$as_echo "$gl_cv_func_stat_file_slash" >&6; } + case $gl_cv_func_stat_dir_slash in + *no) REPLACE_STAT=1 + +cat >>confdefs.h <<\_ACEOF +#define REPLACE_FUNC_STAT_DIR 1 +_ACEOF +;; + esac + case $gl_cv_func_stat_file_slash in + *no) REPLACE_STAT=1 + +cat >>confdefs.h <<\_ACEOF +#define REPLACE_FUNC_STAT_FILE 1 +_ACEOF +;; + esac + if test $REPLACE_STAT = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext" + + + fi + + + + GNULIB_STAT=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STAT 1 +_ACEOF + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.tv_nsec" >&5 +$as_echo_n "checking for struct stat.st_atim.tv_nsec... " >&6; } if test "${ac_cv_member_struct_stat_st_atim_tv_nsec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30401,20 +37603,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atim_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -30442,20 +37645,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atim_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_atim_tv_nsec=no @@ -30466,18 +37670,18 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atim_tv_nsec" >&6; } -if test $ac_cv_member_struct_stat_st_atim_tv_nsec = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_tv_nsec" >&5 +$as_echo "$ac_cv_member_struct_stat_st_atim_tv_nsec" >&6; } +if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 _ACEOF -{ echo "$as_me:$LINENO: checking whether struct stat.st_atim is of type struct timespec" >&5 -echo $ECHO_N "checking whether struct stat.st_atim is of type struct timespec... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether struct stat.st_atim is of type struct timespec" >&5 +$as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; } if test "${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30486,20 +37690,20 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include <sys/types.h> - #include <sys/stat.h> - #if HAVE_SYS_TIME_H - # include <sys/time.h> - #endif - #include <time.h> - struct timespec ts; - struct stat st; + #include <sys/types.h> + #include <sys/stat.h> + #if HAVE_SYS_TIME_H + # include <sys/time.h> + #endif + #include <time.h> + struct timespec ts; + struct stat st; int main () { - st.st_atim = ts; + st.st_atim = ts; ; return 0; @@ -30511,20 +37715,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no @@ -30532,8 +37737,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 -echo "${ECHO_T}$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5 +$as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; } if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then cat >>confdefs.h <<\_ACEOF @@ -30542,10 +37747,10 @@ _ACEOF fi else - { echo "$as_me:$LINENO: checking for struct stat.st_atimespec.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_atimespec.tv_nsec... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct stat.st_atimespec.tv_nsec" >&5 +$as_echo_n "checking for struct stat.st_atimespec.tv_nsec... " >&6; } if test "${ac_cv_member_struct_stat_st_atimespec_tv_nsec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30554,7 +37759,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -30572,20 +37777,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -30595,7 +37801,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -30613,20 +37819,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_atimespec_tv_nsec=no @@ -30637,9 +37844,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&6; } -if test $ac_cv_member_struct_stat_st_atimespec_tv_nsec = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&5 +$as_echo "$ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&6; } +if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 @@ -30647,10 +37854,10 @@ _ACEOF else - { echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5 -echo $ECHO_N "checking for struct stat.st_atimensec... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5 +$as_echo_n "checking for struct stat.st_atimensec... " >&6; } if test "${ac_cv_member_struct_stat_st_atimensec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30659,7 +37866,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -30677,20 +37884,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atimensec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -30700,7 +37908,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -30718,20 +37926,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atimensec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_atimensec=no @@ -30742,9 +37951,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimensec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atimensec" >&6; } -if test $ac_cv_member_struct_stat_st_atimensec = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimensec" >&5 +$as_echo "$ac_cv_member_struct_stat_st_atimensec" >&6; } +if test "x$ac_cv_member_struct_stat_st_atimensec" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 @@ -30752,10 +37961,10 @@ _ACEOF else - { echo "$as_me:$LINENO: checking for struct stat.st_atim.st__tim.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_atim.st__tim.tv_nsec... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.st__tim.tv_nsec" >&5 +$as_echo_n "checking for struct stat.st_atim.st__tim.tv_nsec... " >&6; } if test "${ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30764,7 +37973,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -30782,20 +37991,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -30805,7 +38015,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -30823,20 +38033,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=no @@ -30847,9 +38058,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&6; } -if test $ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&5 +$as_echo "$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&6; } +if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 @@ -30874,10 +38085,10 @@ fi - { echo "$as_me:$LINENO: checking for struct stat.st_birthtimespec.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_birthtimespec.tv_nsec... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimespec.tv_nsec" >&5 +$as_echo_n "checking for struct stat.st_birthtimespec.tv_nsec... " >&6; } if test "${ac_cv_member_struct_stat_st_birthtimespec_tv_nsec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30904,20 +38115,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -30945,20 +38157,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=no @@ -30969,9 +38182,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&6; } -if test $ac_cv_member_struct_stat_st_birthtimespec_tv_nsec = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&5 +$as_echo "$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" >&6; } +if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1 @@ -30979,10 +38192,10 @@ _ACEOF else - { echo "$as_me:$LINENO: checking for struct stat.st_birthtimensec" >&5 -echo $ECHO_N "checking for struct stat.st_birthtimensec... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtimensec" >&5 +$as_echo_n "checking for struct stat.st_birthtimensec... " >&6; } if test "${ac_cv_member_struct_stat_st_birthtimensec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -30991,7 +38204,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -31009,20 +38222,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_birthtimensec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -31032,7 +38246,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -31050,20 +38264,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_birthtimensec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_birthtimensec=no @@ -31074,9 +38289,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimensec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_birthtimensec" >&6; } -if test $ac_cv_member_struct_stat_st_birthtimensec = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtimensec" >&5 +$as_echo "$ac_cv_member_struct_stat_st_birthtimensec" >&6; } +if test "x$ac_cv_member_struct_stat_st_birthtimensec" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1 @@ -31084,10 +38299,10 @@ _ACEOF else - { echo "$as_me:$LINENO: checking for struct stat.st_birthtim.tv_nsec" >&5 -echo $ECHO_N "checking for struct stat.st_birthtim.tv_nsec... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct stat.st_birthtim.tv_nsec" >&5 +$as_echo_n "checking for struct stat.st_birthtim.tv_nsec... " >&6; } if test "${ac_cv_member_struct_stat_st_birthtim_tv_nsec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -31096,7 +38311,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -31114,20 +38329,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_birthtim_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -31137,7 +38353,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <sys/types.h> - #include <sys/stat.h> + #include <sys/stat.h> int main () @@ -31155,20 +38371,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_birthtim_tv_nsec=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_birthtim_tv_nsec=no @@ -31179,9 +38396,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtim_tv_nsec" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_birthtim_tv_nsec" >&6; } -if test $ac_cv_member_struct_stat_st_birthtim_tv_nsec = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_birthtim_tv_nsec" >&5 +$as_echo "$ac_cv_member_struct_stat_st_birthtim_tv_nsec" >&6; } +if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1 @@ -31198,10 +38415,10 @@ fi STDARG_H=''; NEXT_STDARG_H='<stdarg.h>'; - { echo "$as_me:$LINENO: checking for va_copy" >&5 -echo $ECHO_N "checking for va_copy... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for va_copy" >&5 +$as_echo_n "checking for va_copy... " >&6; } if test "${gl_cv_func_va_copy+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -31229,20 +38446,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_func_va_copy=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func_va_copy=no @@ -31251,8 +38469,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - { echo "$as_me:$LINENO: result: $gl_cv_func_va_copy" >&5 -echo "${ECHO_T}$gl_cv_func_va_copy" >&6; } + { $as_echo "$as_me:$LINENO: result: $gl_cv_func_va_copy" >&5 +$as_echo "$gl_cv_func_va_copy" >&6; } if test $gl_cv_func_va_copy = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -31289,14 +38507,14 @@ rm -f conftest* if test $gl_cv_have_include_next = yes; then gl_cv_next_stdarg_h='<'stdarg.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <stdarg.h>" >&5 -echo $ECHO_N "checking absolute name of <stdarg.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <stdarg.h>" >&5 +$as_echo_n "checking absolute name of <stdarg.h>... " >&6; } if test "${gl_cv_next_stdarg_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_stdarg_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_stdarg_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -31305,27 +38523,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <stdarg.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/stdarg.h#{ - s#.*"\(.*/stdarg.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_stdarg_h='<'stdarg.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdarg.h#{ + s#.*"\(.*/stdarg.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdarg_h='<'stdarg.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_stdarg_h" >&5 -echo "${ECHO_T}$gl_cv_next_stdarg_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdarg_h" >&5 +$as_echo "$gl_cv_next_stdarg_h" >&6; } fi NEXT_STDARG_H=$gl_cv_next_stdarg_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdarg.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdarg_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive + if test "$gl_cv_next_stdarg_h" = '""'; then @@ -31333,8 +38560,11 @@ echo "${ECHO_T}$gl_cv_next_stdarg_h" >&6; } NEXT_STDARG_H="$gl_cv_next_stdarg_h" fi else - if test "${gl_cv_func___va_copy+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + saved_as_echo_n="$as_echo_n" + as_echo_n=':' + if test "${gl_cv_func___va_copy+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -31362,20 +38592,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_func___va_copy=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func___va_copy=no @@ -31384,6 +38615,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi + as_echo_n="$saved_as_echo_n" + if test $gl_cv_func___va_copy = yes; then cat >>confdefs.h <<\_ACEOF @@ -31424,6 +38657,134 @@ _ACEOF + if test $gt_cv_c_wchar_t = no; then + HAVE_WCHAR_T=0 + STDDEF_H=stddef.h + fi + { $as_echo "$as_me:$LINENO: checking whether NULL can be used in arbitrary expressions" >&5 +$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } +if test "${gl_cv_decl_null_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stddef.h> + int test[2 * (sizeof NULL == sizeof (void *)) -1]; + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_decl_null_works=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_decl_null_works=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_decl_null_works" >&5 +$as_echo "$gl_cv_decl_null_works" >&6; } + if test $gl_cv_decl_null_works = no; then + REPLACE_NULL=1 + STDDEF_H=stddef.h + fi + if test -n "$STDDEF_H"; then + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_stddef_h='<'stddef.h'>' + else + { $as_echo "$as_me:$LINENO: checking absolute name of <stddef.h>" >&5 +$as_echo_n "checking absolute name of <stddef.h>... " >&6; } +if test "${gl_cv_next_stddef_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_stddef_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stddef.h> + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stddef.h#{ + s#.*"\(.*/stddef.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stddef_h='<'stddef.h'>' + fi + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stddef_h" >&5 +$as_echo "$gl_cv_next_stddef_h" >&6; } + fi + NEXT_STDDEF_H=$gl_cv_next_stddef_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stddef.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stddef_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive + + + + fi + + + + if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else @@ -31466,14 +38827,14 @@ _ACEOF if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5 -echo $ECHO_N "checking absolute name of <stdint.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5 +$as_echo_n "checking absolute name of <stdint.h>... " >&6; } if test "${gl_cv_next_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_stdint_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_stdint_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -31482,27 +38843,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <stdint.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/stdint.h#{ - s#.*"\(.*/stdint.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_stdint_h='<'stdint.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdint.h#{ + s#.*"\(.*/stdint.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdint_h='<'stdint.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5 -echo "${ECHO_T}$gl_cv_next_stdint_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5 +$as_echo "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdint.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdint_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive + if test $ac_cv_header_stdint_h = yes; then @@ -31513,10 +38883,10 @@ echo "${ECHO_T}$gl_cv_next_stdint_h" >&6; } if test $ac_cv_header_stdint_h = yes; then - { echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5 -echo $ECHO_N "checking whether stdint.h conforms to C99... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5 +$as_echo_n "checking whether stdint.h conforms to C99... " >&6; } if test "${gl_cv_header_working_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gl_cv_header_working_stdint_h=no cat >conftest.$ac_ext <<_ACEOF @@ -31692,29 +39062,150 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then + if test "$cross_compiling" = yes; then + gl_cv_header_working_stdint_h=yes + +else + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ +#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include <stdint.h> + + + /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be + included before <wchar.h>. */ + #include <stddef.h> + #include <signal.h> + #if HAVE_WCHAR_H + # include <stdio.h> + # include <time.h> + # include <wchar.h> + #endif + + +#include <stdio.h> +#include <string.h> +#define MVAL(macro) MVAL1(macro) +#define MVAL1(expression) #expression +static const char *macro_values[] = + { +#ifdef INT8_MAX + MVAL (INT8_MAX), +#endif +#ifdef INT16_MAX + MVAL (INT16_MAX), +#endif +#ifdef INT32_MAX + MVAL (INT32_MAX), +#endif +#ifdef INT64_MAX + MVAL (INT64_MAX), +#endif +#ifdef UINT8_MAX + MVAL (UINT8_MAX), +#endif +#ifdef UINT16_MAX + MVAL (UINT16_MAX), +#endif +#ifdef UINT32_MAX + MVAL (UINT32_MAX), +#endif +#ifdef UINT64_MAX + MVAL (UINT64_MAX), +#endif + NULL + }; + +int +main () +{ + + const char **mv; + for (mv = macro_values; *mv != NULL; mv++) + { + const char *value = *mv; + /* Test whether it looks like a cast expression. */ + if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 + || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 + || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 + || strncmp (value, "((int)"/*)*/, 6) == 0 + || strncmp (value, "((signed short)"/*)*/, 15) == 0 + || strncmp (value, "((signed char)"/*)*/, 14) == 0) + return 1; + } + return 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then gl_cv_header_working_stdint_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5 -echo "${ECHO_T}$gl_cv_header_working_stdint_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5 +$as_echo "$gl_cv_header_working_stdint_h" >&6; } fi if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= @@ -31723,20 +39214,21 @@ echo "${ECHO_T}$gl_cv_header_working_stdint_h" >&6; } for ac_header in sys/inttypes.h sys/bitypes.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -31752,32 +39244,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -31791,51 +39284,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -31844,21 +39338,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -31893,10 +39390,10 @@ done for gltype in ptrdiff_t size_t ; do - { echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 -echo $ECHO_N "checking for bit size of $gltype... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 +$as_echo_n "checking for bit size of $gltype... " >&6; } if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. @@ -31934,13 +39431,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -31981,20 +39479,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -32008,7 +39507,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -32045,13 +39544,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -32092,20 +39592,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -32119,7 +39620,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -32166,20 +39667,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -32226,15 +39728,17 @@ main () long int i = longval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -32247,38 +39751,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then result=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) result=unknown fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val eval gl_cv_bitsizeof_${gltype}=\$result fi -ac_res=`eval echo '${'gl_cv_bitsizeof_${gltype}'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 @@ -32299,10 +39807,10 @@ _ACEOF for gltype in sig_atomic_t wchar_t wint_t ; do - { echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 -echo $ECHO_N "checking for bit size of $gltype... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5 +$as_echo_n "checking for bit size of $gltype... " >&6; } if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. @@ -32340,13 +39848,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -32387,20 +39896,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` @@ -32414,7 +39924,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -32451,13 +39961,14 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -32498,20 +40009,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` @@ -32525,7 +40037,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= @@ -32572,20 +40084,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` @@ -32632,15 +40145,17 @@ main () long int i = longval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%ld\n", i); + fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != (sizeof ($gltype) * CHAR_BIT)) return 1; - fprintf (f, "%lu\n", i); + fprintf (f, "%lu", i); } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ return ferror (f) || fclose (f) != 0; ; @@ -32653,38 +40168,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then result=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) result=unknown fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val eval gl_cv_bitsizeof_${gltype}=\$result fi -ac_res=`eval echo '${'gl_cv_bitsizeof_${gltype}'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 @@ -32704,10 +40223,10 @@ _ACEOF for gltype in sig_atomic_t wchar_t wint_t ; do - { echo "$as_me:$LINENO: checking whether $gltype is signed" >&5 -echo $ECHO_N "checking whether $gltype is signed... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether $gltype is signed" >&5 +$as_echo_n "checking whether $gltype is signed... " >&6; } if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -32741,20 +40260,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then result=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 result=no @@ -32764,9 +40284,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi -ac_res=`eval echo '${'gl_cv_type_${gltype}_signed'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_signed'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then @@ -32789,10 +40310,10 @@ _ACEOF for gltype in ptrdiff_t size_t ; do - { echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 -echo $ECHO_N "checking for $gltype integer literal suffix... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 +$as_echo_n "checking for $gltype integer literal suffix... " >&6; } if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed @@ -32804,12 +40325,12 @@ else for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - i64) gltype1='__int64';; - u) gltype1='unsigned int';; - ul) gltype1='unsigned long int';; - ull) gltype1='unsigned long long int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat >conftest.$ac_ext <<_ACEOF @@ -32845,20 +40366,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval gl_cv_type_${gltype}_suffix=\$glsuf else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -32869,9 +40391,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$result" != no && break done fi -ac_res=`eval echo '${'gl_cv_type_${gltype}_suffix'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= @@ -32890,10 +40413,10 @@ _ACEOF for gltype in sig_atomic_t wchar_t wint_t ; do - { echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 -echo $ECHO_N "checking for $gltype integer literal suffix... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5 +$as_echo_n "checking for $gltype integer literal suffix... " >&6; } if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed @@ -32905,12 +40428,12 @@ else for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - i64) gltype1='__int64';; - u) gltype1='unsigned int';; - ul) gltype1='unsigned long int';; - ull) gltype1='unsigned long long int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat >conftest.$ac_ext <<_ACEOF @@ -32946,20 +40469,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval gl_cv_type_${gltype}_suffix=\$glsuf else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -32970,9 +40494,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$result" != no && break done fi -ac_res=`eval echo '${'gl_cv_type_${gltype}_suffix'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= @@ -33002,17 +40527,18 @@ _ACEOF + if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <stdio.h>" >&5 -echo $ECHO_N "checking absolute name of <stdio.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <stdio.h>" >&5 +$as_echo_n "checking absolute name of <stdio.h>... " >&6; } if test "${gl_cv_next_stdio_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_stdio_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_stdio_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -33021,27 +40547,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <stdio.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/stdio.h#{ - s#.*"\(.*/stdio.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_stdio_h='<'stdio.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdio.h#{ + s#.*"\(.*/stdio.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdio_h='<'stdio.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_stdio_h" >&5 -echo "${ECHO_T}$gl_cv_next_stdio_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdio_h" >&5 +$as_echo "$gl_cv_next_stdio_h" >&6; } fi NEXT_STDIO_H=$gl_cv_next_stdio_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdio.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdio_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive + GNULIB_FPRINTF=1 @@ -33068,18 +40603,99 @@ echo "${ECHO_T}$gl_cv_next_stdio_h" >&6; } + for gl_func in dprintf fpurge fseeko ftello getdelim getline popen renameat snprintf vdprintf vsnprintf; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdio.h> + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + + done + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <stdlib.h>" >&5 -echo $ECHO_N "checking absolute name of <stdlib.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <stdlib.h>" >&5 +$as_echo_n "checking absolute name of <stdlib.h>... " >&6; } if test "${gl_cv_next_stdlib_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_stdlib_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_stdlib_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -33088,53 +40704,55 @@ cat >>conftest.$ac_ext <<_ACEOF #include <stdlib.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/stdlib.h#{ - s#.*"\(.*/stdlib.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_stdlib_h='<'stdlib.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/stdlib.h#{ + s#.*"\(.*/stdlib.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_stdlib_h='<'stdlib.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_stdlib_h" >&5 -echo "${ECHO_T}$gl_cv_next_stdlib_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdlib_h" >&5 +$as_echo "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'stdlib.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_stdlib_h + fi + NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive + for ac_header in random.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } + $as_echo_n "(cached) " >&6 else - # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default + #include <$ac_header> _ACEOF rm -f conftest.$ac_objext @@ -33143,130 +40761,94 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_header_compiler=yes + eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_compiler=no + eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF -# Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +fi + +done + + if test $ac_cv_header_random_h = yes; then + HAVE_RANDOM_H=1 + else + HAVE_RANDOM_H=0 + fi + + { $as_echo "$as_me:$LINENO: checking for struct random_data" >&5 +$as_echo_n "checking for struct random_data... " >&6; } +if test "${ac_cv_type_struct_random_data+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_struct_random_data=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <$ac_header> +#include <stdlib.h> + #if HAVE_RANDOM_H + # include <random.h> + #endif + + +int +main () +{ +if (sizeof (struct random_data)) + return 0; + ; + return 0; +} _ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || test ! -s conftest.err - }; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi - -rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( cat <<\_ASBOX -## ------------------------------ ## -## Report this to bug-tar@gnu.org ## -## ------------------------------ ## -_ASBOX - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - if test $ac_cv_header_random_h = yes; then - HAVE_RANDOM_H=1 - else - HAVE_RANDOM_H=0 - fi - - { echo "$as_me:$LINENO: checking for struct random_data" >&5 -echo $ECHO_N "checking for struct random_data... $ECHO_C" >&6; } -if test "${ac_cv_type_struct_random_data+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -33279,14 +40861,11 @@ cat >>conftest.$ac_ext <<_ACEOF #endif -typedef struct random_data ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; +if (sizeof ((struct random_data))) + return 0; ; return 0; } @@ -33297,30 +40876,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_struct_random_data=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_struct_random_data=no + ac_cv_type_struct_random_data=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_struct_random_data" >&5 -echo "${ECHO_T}$ac_cv_type_struct_random_data" >&6; } -if test $ac_cv_type_struct_random_data = yes; then + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_random_data" >&5 +$as_echo "$ac_cv_type_struct_random_data" >&6; } +if test "x$ac_cv_type_struct_random_data" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_RANDOM_DATA 1 @@ -33347,13 +40935,18 @@ fi -for ac_func in stpcpy -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + + + for gl_func in atoll canonicalize_file_name getloadavg getsubopt mkdtemp mkostemp mkostemps mkstemp mkstemps random_r initstat_r srandom_r setstate_r realpath rpmatch setenv strtod strtoll strtoull unsetenv; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -33361,100 +40954,70 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. - For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - <limits.h> exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" +#include <stdlib.h> +#if HAVE_SYS_LOADAVG_H +# include <sys/loadavg.h> #endif -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$ac_func || defined __stub___$ac_func -choke me +#if HAVE_RANDOM_H +# include <random.h> #endif int main () { -return $ac_func (); +#undef $gl_func + (void) $gl_func; ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - eval "$as_ac_var=no" + eval "$as_gl_Symbol=no" fi -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF -else - - gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" - + eval ac_cv_have_decl_$gl_func=yes fi -done + done - if test $ac_cv_func_stpcpy = no; then - HAVE_STPCPY=0 - - : - - fi - GNULIB_STPCPY=1 @@ -33468,13 +41031,13 @@ done -for ac_func in strcasecmp +for ac_func in stpcpy do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -33527,35 +41090,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -33566,8 +41136,8 @@ fi done - if test $ac_cv_func_strcasecmp = no; then - HAVE_STRCASECMP=0 + if test $ac_cv_func_stpcpy = no; then + HAVE_STPCPY=0 : @@ -33575,6 +41145,12 @@ done + GNULIB_STPCPY=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STPCPY 1 +_ACEOF @@ -33584,13 +41160,19 @@ done -for ac_func in strncasecmp + + + + + + +for ac_func in strcasecmp do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -33643,35 +41225,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -33682,82 +41271,12 @@ fi done - if test $ac_cv_func_strncasecmp = no; then + if test $ac_cv_func_strcasecmp = no; then + HAVE_STRCASECMP=0 : fi - { echo "$as_me:$LINENO: checking whether strncasecmp is declared" >&5 -echo $ECHO_N "checking whether strncasecmp is declared... $ECHO_C" >&6; } -if test "${ac_cv_have_decl_strncasecmp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef strncasecmp - (void) strncasecmp; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl_strncasecmp=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl_strncasecmp=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strncasecmp" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strncasecmp" >&6; } -if test $ac_cv_have_decl_strncasecmp = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRNCASECMP 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRNCASECMP 0 -_ACEOF - - -fi - - - if test $ac_cv_have_decl_strncasecmp = no; then - HAVE_DECL_STRNCASECMP=0 - fi @@ -33770,16 +41289,13 @@ fi - - - -for ac_func in strchrnul +for ac_func in strncasecmp do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -33832,35 +41348,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -33871,31 +41394,89 @@ fi done - if test $ac_cv_func_strchrnul = no; then - HAVE_STRCHRNUL=0 - : + if test $ac_cv_func_strncasecmp = no; then + + : + fi + { $as_echo "$as_me:$LINENO: checking whether strncasecmp is declared" >&5 +$as_echo_n "checking whether strncasecmp is declared... " >&6; } +if test "${ac_cv_have_decl_strncasecmp+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef strncasecmp + (void) strncasecmp; +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_strncasecmp=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_have_decl_strncasecmp=no +fi - GNULIB_STRCHRNUL=1 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strncasecmp" >&5 +$as_echo "$ac_cv_have_decl_strncasecmp" >&6; } +if test "x$ac_cv_have_decl_strncasecmp" = x""yes; then +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRNCASECMP 1 +_ACEOF +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRNCASECMP 0 +_ACEOF - if test $gl_cv_func_malloc_posix != yes; then - REPLACE_STRDUP=1 +fi + if test $ac_cv_have_decl_strncasecmp = no; then + HAVE_DECL_STRNCASECMP=0 + fi - gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" - else @@ -33905,13 +41486,13 @@ done -for ac_func in strdup +for ac_func in strchrnul do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -33964,35 +41545,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -34003,50 +41591,38 @@ fi done + if test $ac_cv_func_strchrnul = no; then + HAVE_STRCHRNUL=0 + : fi - - if test $ac_cv_have_decl_strdup = no; then - HAVE_DECL_STRDUP=0 - fi - : - - - - GNULIB_STRDUP=1 - - - - if test $REPLACE_STRERROR = 1; then - - - - + GNULIB_STRCHRNUL=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STRCHRNUL 1 +_ACEOF - gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" -cat >>confdefs.h <<_ACEOF -#define REPLACE_STRERROR $REPLACE_STRERROR -_ACEOF - fi + if test $gl_cv_func_malloc_posix != yes; then + REPLACE_STRDUP=1 - GNULIB_STRERROR=1 + gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext" + else @@ -34055,21 +41631,14 @@ _ACEOF - if test $ac_cv_have_decl_strndup = no; then - HAVE_DECL_STRNDUP=0 - fi - # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. - { echo "$as_me:$LINENO: checking for working strndup" >&5 -echo $ECHO_N "checking for working strndup... $ECHO_C" >&6; } -if test "${gl_cv_func_strndup+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: checking for strndup" >&5 -echo $ECHO_N "checking for strndup... $ECHO_C" >&6; } -if test "${ac_cv_func_strndup+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +for ac_func in strdup +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -34077,12 +41646,12 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define strndup to an innocuous variant, in case <limits.h> declares strndup. +/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. For example, HP-UX 11i <limits.h> declares gettimeofday. */ -#define strndup innocuous_strndup +#define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char strndup (); below. + which can conflict with char $ac_func (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ @@ -34092,7 +41661,7 @@ cat >>conftest.$ac_ext <<_ACEOF # include <assert.h> #endif -#undef strndup +#undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC @@ -34100,18 +41669,18 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef __cplusplus extern "C" #endif -char strndup (); +char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined __stub_strndup || defined __stub___strndup +#if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { -return strndup (); +return $ac_func (); ; return 0; } @@ -34122,66 +41691,150 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_strndup=yes + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_func_strndup=no + eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_strndup" >&5 -echo "${ECHO_T}$ac_cv_func_strndup" >&6; } -if test $ac_cv_func_strndup = yes; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef _AIX - too risky -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "too risky" >/dev/null 2>&1; then - gl_cv_func_strndup=no else - gl_cv_func_strndup=yes -fi -rm -f conftest* -else - gl_cv_func_strndup=no + gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext" + fi +done + + + fi + + + + + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi + : + + + + GNULIB_STRDUP=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STRDUP 1 +_ACEOF + + + + + + if test $REPLACE_STRERROR = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" + + +cat >>confdefs.h <<_ACEOF +#define REPLACE_STRERROR $REPLACE_STRERROR +_ACEOF + + fi + + + + GNULIB_STRERROR=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STRERROR 1 +_ACEOF + + + + + + + + + + + + + + + + + + + + + + + if test $ac_cv_have_decl_strndup = no; then + HAVE_DECL_STRNDUP=0 + fi + + if test $ac_cv_func_strndup = yes; then + # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. + { $as_echo "$as_me:$LINENO: checking for working strndup" >&5 +$as_echo_n "checking for working strndup... " >&6; } +if test "${gl_cv_func_strndup_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then + case $host_os in + aix*) gl_cv_func_strndup_works="guessing no";; + *) gl_cv_func_strndup_works="guessing yes";; + esac else cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ + /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <string.h> - #include <stdlib.h> + #include <stdlib.h> int main () { @@ -34204,44 +41857,55 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - gl_cv_func_strndup=yes + gl_cv_func_strndup_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -gl_cv_func_strndup=no +gl_cv_func_strndup_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_strndup" >&5 -echo "${ECHO_T}$gl_cv_func_strndup" >&6; } - if test $gl_cv_func_strndup = yes; then +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_strndup_works" >&5 +$as_echo "$gl_cv_func_strndup_works" >&6; } + case $gl_cv_func_strndup_works in + *no) + REPLACE_STRNDUP=1 -cat >>confdefs.h <<\_ACEOF -#define HAVE_STRNDUP 1 -_ACEOF + + + + + + + gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext" + + ;; + esac else - HAVE_STRNDUP=0 @@ -34252,7 +41916,6 @@ _ACEOF gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext" - : fi @@ -34260,6 +41923,13 @@ _ACEOF GNULIB_STRNDUP=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STRNDUP 1 +_ACEOF + + + + @@ -34271,10 +41941,10 @@ _ACEOF HAVE_DECL_STRNLEN=0 fi - { echo "$as_me:$LINENO: checking for working strnlen" >&5 -echo $ECHO_N "checking for working strnlen... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for working strnlen" >&5 +$as_echo_n "checking for working strnlen... " >&6; } if test "${ac_cv_func_strnlen_working+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_strnlen_working=no @@ -34315,36 +41985,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strnlen_working=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_strnlen_working=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5 -echo "${ECHO_T}$ac_cv_func_strnlen_working" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5 +$as_echo "$ac_cv_func_strnlen_working" >&6; } test $ac_cv_func_strnlen_working = no && @@ -34374,13 +42047,20 @@ _ACEOF GNULIB_STRNLEN=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STRNLEN 1 +_ACEOF + + + - { echo "$as_me:$LINENO: checking whether <inttypes.h> defines strtoimax as a macro" >&5 -echo $ECHO_N "checking whether <inttypes.h> defines strtoimax as a macro... $ECHO_C" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether <inttypes.h> defines strtoimax as a macro" >&5 +$as_echo_n "checking whether <inttypes.h> defines strtoimax as a macro... " >&6; } if test "${gl_cv_func_strtoimax_macro+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -34402,8 +42082,8 @@ fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_strtoimax_macro" >&5 -echo "${ECHO_T}$gl_cv_func_strtoimax_macro" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_strtoimax_macro" >&5 +$as_echo "$gl_cv_func_strtoimax_macro" >&6; } if test "$gl_cv_func_strtoimax_macro" != yes; then @@ -34417,11 +42097,11 @@ echo "${ECHO_T}$gl_cv_func_strtoimax_macro" >&6; } for ac_func in strtoimax do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -34474,35 +42154,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -34515,10 +42202,10 @@ done if test $ac_cv_func_strtoimax = no; then - { echo "$as_me:$LINENO: checking whether strtoll is declared" >&5 -echo $ECHO_N "checking whether strtoll is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether strtoll is declared" >&5 +$as_echo_n "checking whether strtoll is declared... " >&6; } if test "${ac_cv_have_decl_strtoll+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -34544,20 +42231,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strtoll=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strtoll=no @@ -34565,9 +42253,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoll" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoll" >&6; } -if test $ac_cv_have_decl_strtoll = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoll" >&5 +$as_echo "$ac_cv_have_decl_strtoll" >&6; } +if test "x$ac_cv_have_decl_strtoll" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRTOLL 1 @@ -34604,11 +42292,11 @@ fi for ac_func in strtol do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -34661,35 +42349,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -34716,11 +42411,11 @@ done for ac_func in strtoll do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -34773,35 +42468,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -34825,6 +42527,13 @@ done GNULIB_STRTOLL=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STRTOLL 1 +_ACEOF + + + + @@ -34836,11 +42545,11 @@ done for ac_func in strtoul do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -34893,35 +42602,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -34948,11 +42664,11 @@ done for ac_func in strtoull do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -35005,35 +42721,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -35057,13 +42780,20 @@ done GNULIB_STRTOULL=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_STRTOULL 1 +_ACEOF + + + + - { echo "$as_me:$LINENO: checking whether <inttypes.h> defines strtoumax as a macro" >&5 -echo $ECHO_N "checking whether <inttypes.h> defines strtoumax as a macro... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether <inttypes.h> defines strtoumax as a macro" >&5 +$as_echo_n "checking whether <inttypes.h> defines strtoumax as a macro... " >&6; } if test "${gl_cv_func_strtoumax_macro+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -35085,8 +42815,8 @@ fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_strtoumax_macro" >&5 -echo "${ECHO_T}$gl_cv_func_strtoumax_macro" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_strtoumax_macro" >&5 +$as_echo "$gl_cv_func_strtoumax_macro" >&6; } if test "$gl_cv_func_strtoumax_macro" != yes; then @@ -35100,11 +42830,11 @@ echo "${ECHO_T}$gl_cv_func_strtoumax_macro" >&6; } for ac_func in strtoumax do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -35157,35 +42887,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -35198,10 +42935,10 @@ done if test $ac_cv_func_strtoumax = no; then - { echo "$as_me:$LINENO: checking whether strtoull is declared" >&5 -echo $ECHO_N "checking whether strtoull is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether strtoull is declared" >&5 +$as_echo_n "checking whether strtoull is declared... " >&6; } if test "${ac_cv_have_decl_strtoull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -35227,20 +42964,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strtoull=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strtoull=no @@ -35248,9 +42986,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoull" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoull" >&6; } -if test $ac_cv_have_decl_strtoull = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoull" >&5 +$as_echo "$ac_cv_have_decl_strtoull" >&6; } +if test "x$ac_cv_have_decl_strtoull" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRTOULL 1 @@ -35284,19 +43022,6 @@ fi - if test $ac_cv_func_lstat = yes; then - HAVE_LSTAT=1 - else - HAVE_LSTAT=0 - fi - - - - - - - - @@ -35309,14 +43034,14 @@ fi if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <sys/stat.h>" >&5 -echo $ECHO_N "checking absolute name of <sys/stat.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <sys/stat.h>" >&5 +$as_echo_n "checking absolute name of <sys/stat.h>... " >&6; } if test "${gl_cv_next_sys_stat_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_sys_stat_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_sys_stat_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -35325,38 +43050,46 @@ cat >>conftest.$ac_ext <<_ACEOF #include <sys/stat.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/sys/stat.h#{ - s#.*"\(.*/sys/stat.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_sys_stat_h='<'sys/stat.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/sys/stat.h#{ + s#.*"\(.*/sys/stat.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_sys_stat_h='<'sys/stat.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_sys_stat_h" >&5 -echo "${ECHO_T}$gl_cv_next_sys_stat_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_sys_stat_h" >&5 +$as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sys/stat.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sys_stat_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive - SYS_STAT_H='sys/stat.h' - { echo "$as_me:$LINENO: checking for nlink_t" >&5 -echo $ECHO_N "checking for nlink_t... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for nlink_t" >&5 +$as_echo_n "checking for nlink_t... " >&6; } if test "${ac_cv_type_nlink_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_nlink_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -35365,14 +43098,47 @@ cat >>conftest.$ac_ext <<_ACEOF #include <sys/types.h> #include <sys/stat.h> -typedef nlink_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (nlink_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/stat.h> + +int +main () +{ +if (sizeof ((nlink_t))) + return 0; ; return 0; } @@ -35383,30 +43149,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_nlink_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_nlink_t=no + ac_cv_type_nlink_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_nlink_t" >&5 -echo "${ECHO_T}$ac_cv_type_nlink_t" >&6; } -if test $ac_cv_type_nlink_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_nlink_t" >&5 +$as_echo "$ac_cv_type_nlink_t" >&6; } +if test "x$ac_cv_type_nlink_t" = x""yes; then : else @@ -35418,11 +43193,92 @@ fi - { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } + + + + + + + + + + + + + for gl_func in fchmodat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/stat.h> + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + + done + + + { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin @@ -35457,17 +43313,18 @@ fi MKDIR_P="$ac_install_sh -d" fi fi -{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -echo "${ECHO_T}$MKDIR_P" >&6; } +{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + - { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin @@ -35502,8 +43359,9 @@ fi MKDIR_P="$ac_install_sh -d" fi fi -{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -echo "${ECHO_T}$MKDIR_P" >&6; } +{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + @@ -35528,14 +43386,14 @@ echo "${ECHO_T}$MKDIR_P" >&6; } if test $gl_cv_have_include_next = yes; then gl_cv_next_sysexits_h='<'sysexits.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <sysexits.h>" >&5 -echo $ECHO_N "checking absolute name of <sysexits.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <sysexits.h>" >&5 +$as_echo_n "checking absolute name of <sysexits.h>... " >&6; } if test "${gl_cv_next_sysexits_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_sysexits_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_sysexits_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -35544,27 +43402,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <sysexits.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_sysexits_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/sysexits.h#{ - s#.*"\(.*/sysexits.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_sysexits_h='<'sysexits.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_sysexits_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/sysexits.h#{ + s#.*"\(.*/sysexits.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_sysexits_h='<'sysexits.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_sysexits_h" >&5 -echo "${ECHO_T}$gl_cv_next_sysexits_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_sysexits_h" >&5 +$as_echo "$gl_cv_next_sysexits_h" >&6; } fi NEXT_SYSEXITS_H=$gl_cv_next_sysexits_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'sysexits.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_sysexits_h + fi + NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H=$gl_next_as_first_directive + cat >conftest.$ac_ext <<_ACEOF @@ -35578,25 +43445,25 @@ int main () { switch (0) - { - case EX_OK: - case EX_USAGE: - case EX_DATAERR: - case EX_NOINPUT: - case EX_NOUSER: - case EX_NOHOST: - case EX_UNAVAILABLE: - case EX_SOFTWARE: - case EX_OSERR: - case EX_OSFILE: - case EX_CANTCREAT: - case EX_IOERR: - case EX_TEMPFAIL: - case EX_PROTOCOL: - case EX_NOPERM: - case EX_CONFIG: - break; - } + { + case EX_OK: + case EX_USAGE: + case EX_DATAERR: + case EX_NOINPUT: + case EX_NOUSER: + case EX_NOHOST: + case EX_UNAVAILABLE: + case EX_SOFTWARE: + case EX_OSERR: + case EX_OSFILE: + case EX_CANTCREAT: + case EX_IOERR: + case EX_TEMPFAIL: + case EX_PROTOCOL: + case EX_NOPERM: + case EX_CONFIG: + break; + } ; return 0; @@ -35608,20 +43475,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then SYSEXITS_H= else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 SYSEXITS_H=sysexits.h @@ -35661,10 +43529,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { echo "$as_me:$LINENO: checking whether localtime_r is compatible with its POSIX signature" >&5 -echo $ECHO_N "checking whether localtime_r is compatible with its POSIX signature... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether localtime_r is compatible with its POSIX signature" >&5 +$as_echo_n "checking whether localtime_r is compatible with its POSIX signature... " >&6; } if test "${gl_cv_time_r_posix+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -35677,12 +43545,12 @@ int main () { /* We don't need to append 'restrict's to the argument types, - even though the POSIX signature has the 'restrict's, - since C99 says they can't affect type compatibility. */ - struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r; - if (ptr) return 0; - /* Check the return type is a pointer. On HP-UX 10 it is 'int'. */ - *localtime_r (0, 0); + even though the POSIX signature has the 'restrict's, + since C99 says they can't affect type compatibility. */ + struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r; + if (ptr) return 0; + /* Check the return type is a pointer. On HP-UX 10 it is 'int'. */ + *localtime_r (0, 0); ; return 0; } @@ -35693,20 +43561,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_time_r_posix=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_time_r_posix=no @@ -35714,8 +43583,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_time_r_posix" >&5 -echo "${ECHO_T}$gl_cv_time_r_posix" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_time_r_posix" >&5 +$as_echo "$gl_cv_time_r_posix" >&6; } if test $gl_cv_time_r_posix = yes; then REPLACE_LOCALTIME_R=0 else @@ -35752,17 +43621,18 @@ echo "${ECHO_T}$gl_cv_time_r_posix" >&6; } + if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <unistd.h>" >&5 -echo $ECHO_N "checking absolute name of <unistd.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <unistd.h>" >&5 +$as_echo_n "checking absolute name of <unistd.h>... " >&6; } if test "${gl_cv_next_unistd_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_unistd_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_unistd_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -35771,27 +43641,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <unistd.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/unistd.h#{ - s#.*"\(.*/unistd.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_unistd_h='<'unistd.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/unistd.h#{ + s#.*"\(.*/unistd.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_unistd_h='<'unistd.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_unistd_h" >&5 -echo "${ECHO_T}$gl_cv_next_unistd_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_unistd_h" >&5 +$as_echo "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'unistd.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_unistd_h + fi + NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive + @@ -35823,6 +43702,121 @@ echo "${ECHO_T}$gl_cv_next_unistd_h" >&6; } + + + + + + + + + + + + + + + + + + + + + + + for gl_func in chown dup2 dup3 environ euidaccess faccessat fchdir fchownat fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell lchown link linkat lseek pipe2 pread readlink readlinkat rmdir sleep symlink symlinkat unlink unlinkat usleep; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <unistd.h> +/* Some systems declare various items in the wrong headers. */ +#ifndef __GLIBC__ +# include <fcntl.h> +# include <stdio.h> +# include <stdlib.h> +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# include <io.h> +# endif +#endif + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_gl_Symbol=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_gl_Symbol=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + + eval ac_cv_have_decl_$gl_func=yes +fi + + done + + + + + + + + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS dup-safer.$ac_objext" @@ -35849,6 +43843,108 @@ echo "${ECHO_T}$gl_cv_next_unistd_h" >&6; } + { $as_echo "$as_me:$LINENO: checking whether unlink honors trailing slashes" >&5 +$as_echo_n "checking whether unlink honors trailing slashes... " >&6; } +if test "${gl_cv_func_unlink_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + touch conftest.file + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.file conftest.lnk + fi + if test "$cross_compiling" = yes; then + gl_cv_func_unlink_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <unistd.h> + #include <errno.h> + +int +main () +{ +if (!unlink ("conftest.file/") || errno != ENOTDIR) return 1; +#if HAVE_LSTAT + if (!unlink ("conftest.lnk/") || errno != ENOTDIR) return 2; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_unlink_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_unlink_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -f conftest.file conftest.lnk +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unlink_works" >&5 +$as_echo "$gl_cv_func_unlink_works" >&6; } + if test x"$gl_cv_func_unlink_works" != xyes; then + REPLACE_UNLINK=1 + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS unlink.$ac_objext" + + fi + + + + GNULIB_UNLINK=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_UNLINK 1 +_ACEOF + + + + + + @@ -35867,17 +43963,18 @@ echo "${ECHO_T}$gl_cv_next_unistd_h" >&6; } # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later, - # and Cygwin never let anyone (even root) unlink directories. + # Cygwin, and mingw never let anyone (even root) unlink directories. # If anyone knows of another system for which unlink can never # remove a directory, please report it to <bug-coreutils@gnu.org>. # Unfortunately this is difficult to test for, since it requires root access # and might create garbage in the file system, # so the code below simply relies on the kernel name and version number. - case $host in - *-*-gnu[0-9]* | \ - *-*-linux-* | *-*-linux | \ - *-*-freebsd2.2* | *-*-freebsd[3-9]* | *-*-freebsd[1-9][0-9]* | \ - *-cygwin) + case $host_os in + gnu[0-9]* | \ + linux-* | linux | \ + freebsd2.2* | freebsd[3-9]* | freebsd[1-9][0-9]* | \ + cygwin | \ + mingw*) cat >>confdefs.h <<\_ACEOF #define UNLINK_CANNOT_UNLINK_DIR 1 @@ -35952,11 +44049,11 @@ _ACEOF for ac_func in unsetenv do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -36009,35 +44106,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -36065,10 +44169,10 @@ done else - { echo "$as_me:$LINENO: checking for unsetenv() return type" >&5 -echo $ECHO_N "checking for unsetenv() return type... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for unsetenv() return type" >&5 +$as_echo_n "checking for unsetenv() return type... " >&6; } if test "${gt_cv_func_unsetenv_ret+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -36101,20 +44205,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gt_cv_func_unsetenv_ret='int' else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_unsetenv_ret='void' @@ -36122,35 +44227,15 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gt_cv_func_unsetenv_ret" >&5 -echo "${ECHO_T}$gt_cv_func_unsetenv_ret" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_unsetenv_ret" >&5 +$as_echo "$gt_cv_func_unsetenv_ret" >&6; } if test $gt_cv_func_unsetenv_ret = 'void'; then - VOID_UNSETENV=1 - fi - fi - - - - GNULIB_UNSETENV=1 - - - - if test $ac_cv_func_utime_null = no; then - - - - - - - - - gl_LIBOBJS="$gl_LIBOBJS utime.$ac_objext" - cat >>confdefs.h <<\_ACEOF -#define utime rpl_utime +#define VOID_UNSETENV 1 _ACEOF + REPLACE_UNSETENV=1 @@ -36159,14 +44244,17 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether utimes accepts a null argument" >&5 -echo $ECHO_N "checking whether utimes accepts a null argument... $ECHO_C" >&6; } -if test "${ac_cv_func_utimes_null+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext" + + fi + + { $as_echo "$as_me:$LINENO: checking whether unsetenv works on duplicates" >&5 +$as_echo_n "checking whether unsetenv works on duplicates... " >&6; } +if test "${gl_cv_func_unsetenv_works+set}" = set; then + $as_echo_n "(cached) " >&6 else - rm -f conftest.data; > conftest.data -if test "$cross_compiling" = yes; then - ac_cv_func_utimes_null=no + if test "$cross_compiling" = yes; then + gl_cv_func_unsetenv_works="guessing no" else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -36175,19 +44263,21 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* In case stat has been defined to rpl_stat, undef it here. */ -#undef stat -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/time.h> + #include <stdlib.h> + int -main () { -struct stat s, t; -return ! (stat ("conftest.data", &s) == 0 - && utimes ("conftest.data", 0) == 0 - && stat ("conftest.data", &t) == 0 - && t.st_mtime >= s.st_mtime - && t.st_mtime - s.st_mtime < 120)); +main () +{ + + char entry[] = "b=2"; + if (putenv ((char *) "a=1")) return 1; + if (putenv (entry)) return 2; + entry[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 3; + + ; + return 0; } _ACEOF rm -f conftest$ac_exeext @@ -36196,52 +44286,67 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_cv_func_utimes_null=yes + gl_cv_func_unsetenv_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -ac_cv_func_utimes_null=no +gl_cv_func_unsetenv_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi -rm -f core core.* *.core fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_utimes_null" >&5 -echo "${ECHO_T}$ac_cv_func_utimes_null" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_unsetenv_works" >&5 +$as_echo "$gl_cv_func_unsetenv_works" >&6; } + if test "$gl_cv_func_unsetenv_works" != yes; then + REPLACE_UNSETENV=1 + - if test $ac_cv_func_utimes_null = yes; then -cat >>confdefs.h <<\_ACEOF -#define HAVE_UTIMES_NULL 1 -_ACEOF - fi + + gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext" + + fi fi + GNULIB_UNSETENV=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_UNSETENV 1 +_ACEOF + + + + + @@ -36270,6 +44375,88 @@ _ACEOF + if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then + { $as_echo "$as_me:$LINENO: checking whether futimesat handles NULL file" >&5 +$as_echo_n "checking whether futimesat handles NULL file... " >&6; } +if test "${gl_cv_func_futimesat_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + touch conftest.file + if test "$cross_compiling" = yes; then + gl_cv_func_futimesat_works="guessing no" +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include <stddef.h> +#include <sys/times.h> + +int +main () +{ + int fd = open ("conftest.file", O_RDWR); + if (fd < 0) return 1; + if (futimesat (fd, NULL, NULL)) return 2; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_futimesat_works=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +gl_cv_func_futimesat_works=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + rm -f conftest.file +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_futimesat_works" >&5 +$as_echo "$gl_cv_func_futimesat_works" >&6; } + if test "$gl_cv_func_futimesat_works" != yes; then + +cat >>confdefs.h <<\_ACEOF +#define FUTIMESAT_NULL_BUG 1 +_ACEOF + + fi + fi + + + @@ -36340,26 +44527,58 @@ _ACEOF - { echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 +$as_echo_n "checking for ptrdiff_t... " >&6; } if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_ptrdiff_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -typedef ptrdiff_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (ptrdiff_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((ptrdiff_t))) + return 0; ; return 0; } @@ -36370,30 +44589,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_ptrdiff_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_ptrdiff_t=no + ac_cv_type_ptrdiff_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6; } -if test $ac_cv_type_ptrdiff_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 +$as_echo "$ac_cv_type_ptrdiff_t" >&6; } +if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : else @@ -36410,16 +44638,17 @@ fi + fi -for ac_func in snprintf wcslen +for ac_func in vasprintf do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -36472,113 +44701,155 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done - { echo "$as_me:$LINENO: checking whether _snprintf is declared" >&5 -echo $ECHO_N "checking whether _snprintf is declared... $ECHO_C" >&6; } -if test "${ac_cv_have_decl__snprintf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdio.h> + if test $ac_cv_func_vasprintf = no; then -int -main () -{ -#ifndef _snprintf - (void) _snprintf; -#endif - ; - return 0; -} + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS vasprintf.$ac_objext" + + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS asprintf.$ac_objext" + + + if test $ac_cv_func_vasprintf = yes; then + REPLACE_VASPRINTF=1 + else + HAVE_VASPRINTF=0 + fi + + + + + + + + + fi + + + + GNULIB_VASPRINTF=1 + + +cat >>confdefs.h <<\_ACEOF +#define GNULIB_VASPRINTF 1 _ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl__snprintf=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_have_decl__snprintf=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl__snprintf" >&5 -echo "${ECHO_T}$ac_cv_have_decl__snprintf" >&6; } -if test $ac_cv_have_decl__snprintf = yes; then + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=asprintf:2:c-format" + + + + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=vasprintf:2:c-format" + + +# Check whether --with-packager was given. +if test "${with_packager+set}" = set; then + withval=$with_packager; case $withval in + yes|no) ;; + *) cat >>confdefs.h <<_ACEOF -#define HAVE_DECL__SNPRINTF 1 +#define PACKAGE_PACKAGER "$withval" _ACEOF + ;; + esac + +fi -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL__SNPRINTF 0 -_ACEOF +# Check whether --with-packager-version was given. +if test "${with_packager_version+set}" = set; then + withval=$with_packager_version; case $withval in + yes|no) ;; + *) +cat >>confdefs.h <<_ACEOF +#define PACKAGE_PACKAGER_VERSION "$withval" +_ACEOF + ;; + esac fi +# Check whether --with-packager-bug-reports was given. +if test "${with_packager_bug_reports+set}" = set; then + withval=$with_packager_bug_reports; case $withval in + yes|no) ;; + *) +cat >>confdefs.h <<_ACEOF +#define PACKAGE_PACKAGER_BUG_REPORTS "$withval" +_ACEOF + ;; + esac +fi + if test "X$with_packager" = "X" && \ + test "X$with_packager_version$with_packager_bug_reports" != "X" + then + { { $as_echo "$as_me:$LINENO: error: The --with-packager-{bug-reports,version} options require --with-packager" >&5 +$as_echo "$as_me: error: The --with-packager-{bug-reports,version} options require --with-packager" >&2;} + { (exit 1); exit 1; }; } fi @@ -36587,11 +44858,11 @@ fi for ac_func in vsnprintf do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -36644,35 +44915,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -36681,10 +44959,10 @@ done if test $ac_cv_func_vsnprintf = yes; then - { echo "$as_me:$LINENO: checking whether snprintf respects a size of 1" >&5 -echo $ECHO_N "checking whether snprintf respects a size of 1... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether snprintf respects a size of 1" >&5 +$as_echo_n "checking whether snprintf respects a size of 1... " >&6; } if test "${gl_cv_func_snprintf_size1+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then @@ -36711,37 +44989,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_snprintf_size1=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_snprintf_size1=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_snprintf_size1" >&5 -echo "${ECHO_T}$gl_cv_func_snprintf_size1" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_snprintf_size1" >&5 +$as_echo "$gl_cv_func_snprintf_size1" >&6; } case "$gl_cv_func_snprintf_size1" in *yes) @@ -36781,15 +45062,140 @@ echo "${ECHO_T}$gl_cv_func_snprintf_size1" >&6; } GNULIB_VSNPRINTF=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_VSNPRINTF 1 +_ACEOF + + + + + + - { echo "$as_me:$LINENO: checking whether <wchar.h> is standalone" >&5 -echo $ECHO_N "checking whether <wchar.h> is standalone... $ECHO_C" >&6; } -if test "${gl_cv_header_wchar_h_standalone+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_wchar_h='<'wchar.h'>' + else + { $as_echo "$as_me:$LINENO: checking absolute name of <wchar.h>" >&5 +$as_echo_n "checking absolute name of <wchar.h>... " >&6; } +if test "${gl_cv_next_wchar_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_wchar_h = yes; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <wchar.h> + +_ACEOF + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/wchar.h#{ + s#.*"\(.*/wchar.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_wchar_h='<'wchar.h'>' + fi + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_wchar_h" >&5 +$as_echo "$gl_cv_next_wchar_h" >&6; } + fi + NEXT_WCHAR_H=$gl_cv_next_wchar_h + + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wchar.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wchar_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive + + + + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + + + + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + + + + + + + + + + + + + + + for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth; do + as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` + { $as_echo "$as_me:$LINENO: checking whether $gl_func is declared without a macro" >&5 +$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } +if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Some systems require additional headers. */ +#ifndef __GLIBC__ +# include <stddef.h> +# include <stdio.h> +# include <time.h> +#endif #include <wchar.h> -wchar_t w; + +int +main () +{ +#undef $gl_func + (void) $gl_func; + ; + return 0; +} _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" @@ -36797,41 +45203,45 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - gl_cv_header_wchar_h_standalone=yes + eval "$as_gl_Symbol=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - gl_cv_header_wchar_h_standalone=no + eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $gl_cv_header_wchar_h_standalone" >&5 -echo "${ECHO_T}$gl_cv_header_wchar_h_standalone" >&6; } +ac_res=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + as_val=`eval 'as_val=${'$as_gl_Symbol'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 +_ACEOF + eval ac_cv_have_decl_$gl_func=yes +fi - if test $gt_cv_c_wint_t = yes; then - HAVE_WINT_T=1 - else - HAVE_WINT_T=0 - fi + done - if test $gl_cv_header_wchar_h_standalone != yes || test $gt_cv_c_wint_t != yes; then - WCHAR_H=wchar.h - fi @@ -36839,11 +45249,6 @@ echo "${ECHO_T}$gl_cv_header_wchar_h_standalone" >&6; } - if test $ac_cv_header_wchar_h = yes; then - HAVE_WCHAR_H=1 - else - HAVE_WCHAR_H=0 - fi @@ -36856,53 +45261,207 @@ echo "${ECHO_T}$gl_cv_header_wchar_h_standalone" >&6; } - if test $gl_cv_have_include_next = yes; then - gl_cv_next_wchar_h='<'wchar.h'>' - else - { echo "$as_me:$LINENO: checking absolute name of <wchar.h>" >&5 -echo $ECHO_N "checking absolute name of <wchar.h>... $ECHO_C" >&6; } -if test "${gl_cv_next_wchar_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then + + + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc handles incomplete characters" >&5 +$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; } +if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_wchar_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + case "$host_os" in + # Guess no on AIX and OSF/1. + osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac + if test $LOCALE_JA != none; then + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + +#include <locale.h> +#include <string.h> #include <wchar.h> +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 1; + } + return 0; +} _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/wchar.h#{ - s#.*"\(.*/wchar.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_wchar_h='<'wchar.h'>' - fi +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_mbrtowc_incomplete_state=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +( exit $ac_status ) +gl_cv_func_mbrtowc_incomplete_state=no fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_wchar_h" >&5 -echo "${ECHO_T}$gl_cv_next_wchar_h" >&6; } - fi - NEXT_WCHAR_H=$gl_cv_next_wchar_h +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + fi + +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_incomplete_state" >&5 +$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; } + + + + + { $as_echo "$as_me:$LINENO: checking whether mbrtowc works as well as mbtowc" >&5 +$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; } +if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac + if test $LOCALE_ZH_CN != none; then + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <locale.h> +#include <stdlib.h> +#include <string.h> +#include <wchar.h> +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 1; + } + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gl_cv_func_mbrtowc_sanitycheck=yes +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 +( exit $ac_status ) +gl_cv_func_mbrtowc_sanitycheck=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + fi +fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc_sanitycheck" >&5 +$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; } + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi + if test $REPLACE_MBSTATE_T = 1; then + + : + + fi + + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_WCRTOMB=1 + fi @@ -36911,32 +45470,28 @@ echo "${ECHO_T}$gl_cv_next_wchar_h" >&6; } if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 - else - + fi + if test $HAVE_WCRTOMB != 0 && test $REPLACE_WCRTOMB != 1; then - { echo "$as_me:$LINENO: checking whether wcrtomb return value is correct" >&5 -echo $ECHO_N "checking whether wcrtomb return value is correct... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether wcrtomb return value is correct" >&5 +$as_echo_n "checking whether wcrtomb return value is correct... " >&6; } if test "${gl_cv_func_wcrtomb_retval+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$host_os" in - # Guess no on OSF/1 and Solaris. - osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_wcrtomb_retval="guessing yes" ;; + # Guess no on AIX 4, OSF/1 and Solaris. + aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -36980,29 +45535,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_wcrtomb_retval=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_wcrtomb_retval=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -37010,8 +45568,8 @@ fi fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_wcrtomb_retval" >&5 -echo "${ECHO_T}$gl_cv_func_wcrtomb_retval" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_wcrtomb_retval" >&5 +$as_echo "$gl_cv_func_wcrtomb_retval" >&6; } case "$gl_cv_func_wcrtomb_retval" in *yes) ;; *) REPLACE_WCRTOMB=1 ;; @@ -37019,8 +45577,7 @@ echo "${ECHO_T}$gl_cv_func_wcrtomb_retval" >&6; } fi if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then - - WCHAR_H=wchar.h + : @@ -37042,6 +45599,14 @@ echo "${ECHO_T}$gl_cv_func_wcrtomb_retval" >&6; } GNULIB_WCRTOMB=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_WCRTOMB 1 +_ACEOF + + + + + @@ -37071,13 +45636,12 @@ echo "${ECHO_T}$gl_cv_func_wcrtomb_retval" >&6; } fi - WCTYPE_H=wctype.h if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then - { echo "$as_me:$LINENO: checking whether iswcntrl works" >&5 -echo $ECHO_N "checking whether iswcntrl works... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether iswcntrl works" >&5 +$as_echo_n "checking whether iswcntrl works... " >&6; } if test "${gl_cv_func_iswcntrl_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then @@ -37105,20 +45669,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then gl_cv_func_iswcntrl_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gl_cv_func_iswcntrl_works=no @@ -37133,12 +45698,13 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <stddef.h> - #include <stdio.h> - #include <time.h> - #include <wchar.h> - #include <wctype.h> - int main () { return iswprint ('x') == 0; } + + #include <stddef.h> + #include <stdio.h> + #include <time.h> + #include <wchar.h> + #include <wctype.h> + int main () { return iswprint ('x') == 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" @@ -37146,40 +45712,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_iswcntrl_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_iswcntrl_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_iswcntrl_works" >&5 -echo "${ECHO_T}$gl_cv_func_iswcntrl_works" >&6; } - if test $gl_cv_func_iswcntrl_works = yes; then - WCTYPE_H= - fi +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_iswcntrl_works" >&5 +$as_echo "$gl_cv_func_iswcntrl_works" >&6; } fi @@ -37195,14 +45761,14 @@ echo "${ECHO_T}$gl_cv_func_iswcntrl_works" >&6; } if test $gl_cv_have_include_next = yes; then gl_cv_next_wctype_h='<'wctype.h'>' else - { echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5 -echo $ECHO_N "checking absolute name of <wctype.h>... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5 +$as_echo_n "checking absolute name of <wctype.h>... " >&6; } if test "${gl_cv_next_wctype_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test $ac_cv_header_wctype_h = yes; then - cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_header_wctype_h = yes; then + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -37211,27 +45777,36 @@ cat >>conftest.$ac_ext <<_ACEOF #include <wctype.h> _ACEOF - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | - sed -n '\#/wctype.h#{ - s#.*"\(.*/wctype.h\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"' - else - gl_cv_next_wctype_h='<'wctype.h'>' - fi + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n '\#/wctype.h#{ + s#.*"\(.*/wctype.h\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"' + else + gl_cv_next_wctype_h='<'wctype.h'>' + fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_next_wctype_h" >&5 -echo "${ECHO_T}$gl_cv_next_wctype_h" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_next_wctype_h" >&5 +$as_echo "$gl_cv_next_wctype_h" >&6; } fi NEXT_WCTYPE_H=$gl_cv_next_wctype_h + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'wctype.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_wctype_h + fi + NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive + HAVE_WCTYPE_H=1 @@ -37240,7 +45815,6 @@ echo "${ECHO_T}$gl_cv_next_wctype_h" >&6; } fi - if test "$gl_cv_func_iswcntrl_works" = no; then REPLACE_ISWCNTRL=1 else @@ -37269,10 +45843,10 @@ echo "${ECHO_T}$gl_cv_next_wctype_h" >&6; } - { echo "$as_me:$LINENO: checking whether wcwidth is declared" >&5 -echo $ECHO_N "checking whether wcwidth is declared... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether wcwidth is declared" >&5 +$as_echo_n "checking whether wcwidth is declared... " >&6; } if test "${ac_cv_have_decl_wcwidth+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -37310,20 +45884,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_wcwidth=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_wcwidth=no @@ -37331,9 +45906,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_wcwidth" >&5 -echo "${ECHO_T}$ac_cv_have_decl_wcwidth" >&6; } -if test $ac_cv_have_decl_wcwidth = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_wcwidth" >&5 +$as_echo "$ac_cv_have_decl_wcwidth" >&6; } +if test "x$ac_cv_have_decl_wcwidth" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_WCWIDTH 1 @@ -37356,14 +45931,20 @@ fi if test $ac_cv_func_wcwidth = no; then REPLACE_WCWIDTH=1 else - { echo "$as_me:$LINENO: checking whether wcwidth works reasonably in UTF-8 locales" >&5 -echo $ECHO_N "checking whether wcwidth works reasonably in UTF-8 locales... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether wcwidth works reasonably in UTF-8 locales" >&5 +$as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; } if test "${gl_cv_func_wcwidth_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - gl_cv_func_wcwidth_works="guessing no" + + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_wcwidth_works="guessing yes";; + *) gl_cv_func_wcwidth_works="guessing no";; + esac + else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -37404,37 +45985,40 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gl_cv_func_wcwidth_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gl_cv_func_wcwidth_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi -{ echo "$as_me:$LINENO: result: $gl_cv_func_wcwidth_works" >&5 -echo "${ECHO_T}$gl_cv_func_wcwidth_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_func_wcwidth_works" >&5 +$as_echo "$gl_cv_func_wcwidth_works" >&6; } case "$gl_cv_func_wcwidth_works" in *yes) ;; *no) REPLACE_WCWIDTH=1 ;; @@ -37455,8 +46039,7 @@ echo "${ECHO_T}$gl_cv_func_wcwidth_works" >&6; } if test $REPLACE_WCWIDTH = 1 || test $HAVE_DECL_WCWIDTH = 0; then - - WCHAR_H=wchar.h + : fi @@ -37465,6 +46048,13 @@ echo "${ECHO_T}$gl_cv_func_wcwidth_works" >&6; } GNULIB_WCWIDTH=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_WCWIDTH 1 +_ACEOF + + + + @@ -37473,6 +46063,13 @@ echo "${ECHO_T}$gl_cv_func_wcwidth_works" >&6; } GNULIB_WRITE=1 +cat >>confdefs.h <<\_ACEOF +#define GNULIB_WRITE 1 +_ACEOF + + + + @@ -37512,20 +46109,21 @@ echo "${ECHO_T}$gl_cv_func_wcwidth_works" >&6; } for ac_header in stdint.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -37541,32 +46139,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -37580,51 +46179,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -37633,21 +46233,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -37697,6 +46300,13 @@ done + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format" + + + + + + @@ -37712,7 +46322,7 @@ done - gl_source_base='.#bootmp/tests' + gl_source_base='tests' @@ -37720,9 +46330,9 @@ done - LIBTAR_LIBDEPS="$gl_libdeps" + LIBGNU_LIBDEPS="$gl_libdeps" - LIBTAR_LTLIBDEPS="$gl_ltlibdeps" + LIBGNU_LTLIBDEPS="$gl_ltlibdeps" # paxutils modules @@ -37734,10 +46344,10 @@ done -{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -37764,20 +46374,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_time=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_time=no @@ -37785,8 +46396,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then cat >>confdefs.h <<\_ACEOF @@ -37795,10 +46406,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 -echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 +$as_echo_n "checking for struct stat.st_blksize... " >&6; } if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -37823,20 +46434,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blksize=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -37862,20 +46474,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blksize=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_blksize=no @@ -37886,9 +46499,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6; } -if test $ac_cv_member_struct_stat_st_blksize = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 +$as_echo "$ac_cv_member_struct_stat_st_blksize" >&6; } +if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 @@ -37911,10 +46524,10 @@ fi # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary. pu_save_LIBS=$LIBS LIB_SETSOCKOPT= - { echo "$as_me:$LINENO: checking for library containing setsockopt" >&5 -echo $ECHO_N "checking for library containing setsockopt... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for library containing setsockopt" >&5 +$as_echo_n "checking for library containing setsockopt... " >&6; } if test "${ac_cv_search_setsockopt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF @@ -37952,26 +46565,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_search_setsockopt=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_setsockopt+set}" = set; then @@ -37986,17 +46603,17 @@ fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5 -echo "${ECHO_T}$ac_cv_search_setsockopt" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5 +$as_echo "$ac_cv_search_setsockopt" >&6; } ac_res=$ac_cv_search_setsockopt if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else - { echo "$as_me:$LINENO: checking for library containing setsockopt" >&5 -echo $ECHO_N "checking for library containing setsockopt... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for library containing setsockopt" >&5 +$as_echo_n "checking for library containing setsockopt... " >&6; } if test "${ac_cv_search_setsockopt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF @@ -38034,26 +46651,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_search_setsockopt=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_setsockopt+set}" = set; then @@ -38068,8 +46689,8 @@ fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5 -echo "${ECHO_T}$ac_cv_search_setsockopt" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5 +$as_echo "$ac_cv_search_setsockopt" >&6; } ac_res=$ac_cv_search_setsockopt if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -38078,10 +46699,10 @@ fi fi - { echo "$as_me:$LINENO: checking for library containing setsockopt" >&5 -echo $ECHO_N "checking for library containing setsockopt... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for library containing setsockopt" >&5 +$as_echo_n "checking for library containing setsockopt... " >&6; } if test "${ac_cv_search_setsockopt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF @@ -38119,26 +46740,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_search_setsockopt=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_setsockopt+set}" = set; then @@ -38153,8 +46778,8 @@ fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5 -echo "${ECHO_T}$ac_cv_search_setsockopt" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setsockopt" >&5 +$as_echo "$ac_cv_search_setsockopt" >&6; } ac_res=$ac_cv_search_setsockopt if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" @@ -38170,10 +46795,10 @@ fi enable_rmt() { if test $ac_cv_header_sys_mtio_h = yes; then - { echo "$as_me:$LINENO: checking for remote tape header files" >&5 -echo $ECHO_N "checking for remote tape header files... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for remote tape header files" >&5 +$as_echo_n "checking for remote tape header files... " >&6; } if test "${pu_cv_header_rmt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38192,20 +46817,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then pu_cv_header_rmt=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 pu_cv_header_rmt=no @@ -38213,8 +46839,8 @@ fi rm -f conftest.err conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $pu_cv_header_rmt" >&5 -echo "${ECHO_T}$pu_cv_header_rmt" >&6; } +{ $as_echo "$as_me:$LINENO: result: $pu_cv_header_rmt" >&5 +$as_echo "$pu_cv_header_rmt" >&6; } test $pu_cv_header_rmt = yes && PU_RMT_PROG='rmt$(EXEEXT)' fi @@ -38223,20 +46849,21 @@ echo "${ECHO_T}$pu_cv_header_rmt" >&6; } for ac_header in sys/mtio.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -38252,32 +46879,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -38291,51 +46919,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -38344,31 +46973,34 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done - { echo "$as_me:$LINENO: checking which ioctl field to test for reversed bytes" >&5 -echo $ECHO_N "checking which ioctl field to test for reversed bytes... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking which ioctl field to test for reversed bytes" >&5 +$as_echo_n "checking which ioctl field to test for reversed bytes... " >&6; } if test "${pu_cv_header_mtio_check_field+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38388,8 +47020,8 @@ fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $pu_cv_header_mtio_check_field" >&5 -echo "${ECHO_T}$pu_cv_header_mtio_check_field" >&6; } +{ $as_echo "$as_me:$LINENO: result: $pu_cv_header_mtio_check_field" >&5 +$as_echo "$pu_cv_header_mtio_check_field" >&6; } cat >>confdefs.h <<_ACEOF #define MTIO_CHECK_FIELD $pu_cv_header_mtio_check_field @@ -38404,29 +47036,29 @@ _ACEOF DEFAULT_RMT_DIR='$(libexecdir)' fi - { echo "$as_me:$LINENO: checking whether to build rmt" >&5 -echo $ECHO_N "checking whether to build rmt... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether to build rmt" >&5 +$as_echo_n "checking whether to build rmt... " >&6; } # Check whether --with-rmt was given. if test "${with_rmt+set}" = set; then withval=$with_rmt; case $withval in - yes|no) { { echo "$as_me:$LINENO: error: Invalid argument to --with-rmt" >&5 -echo "$as_me: error: Invalid argument to --with-rmt" >&2;} + yes|no) { { $as_echo "$as_me:$LINENO: error: Invalid argument to --with-rmt" >&5 +$as_echo "$as_me: error: Invalid argument to --with-rmt" >&2;} { (exit 1); exit 1; }; };; /*) DEFAULT_RMT_COMMAND=$withval - { echo "$as_me:$LINENO: result: no, use $withval instead" >&5 -echo "${ECHO_T}no, use $withval instead" >&6; };; - *) { { echo "$as_me:$LINENO: error: Argument to --with-rmt must be an absolute file name" >&5 -echo "$as_me: error: Argument to --with-rmt must be an absolute file name" >&2;} + { $as_echo "$as_me:$LINENO: result: no, use $withval instead" >&5 +$as_echo "no, use $withval instead" >&6; };; + *) { { $as_echo "$as_me:$LINENO: error: Argument to --with-rmt must be an absolute file name" >&5 +$as_echo "$as_me: error: Argument to --with-rmt must be an absolute file name" >&2;} { (exit 1); exit 1; }; };; esac else - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } enable_rmt if test "$PU_RMT_PROG" = ""; then - { echo "$as_me:$LINENO: WARNING: not building rmt, required header files are missing" >&5 -echo "$as_me: WARNING: not building rmt, required header files are missing" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: not building rmt, required header files are missing" >&5 +$as_echo "$as_me: WARNING: not building rmt, required header files are missing" >&2;} fi fi @@ -38493,11 +47125,11 @@ _ACEOF for ac_header in sys/buf.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38517,20 +47149,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" @@ -38538,12 +47171,15 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -38553,10 +47189,10 @@ done - { echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 -echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 +$as_echo_n "checking for struct stat.st_blksize... " >&6; } if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38581,20 +47217,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blksize=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF @@ -38620,20 +47257,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blksize=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_stat_st_blksize=no @@ -38644,9 +47282,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6; } -if test $ac_cv_member_struct_stat_st_blksize = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 +$as_echo "$ac_cv_member_struct_stat_st_blksize" >&6; } +if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 @@ -38670,6 +47308,94 @@ fi + { $as_echo "$as_me:$LINENO: checking for library containing gethostbyname" >&5 +$as_echo_n "checking for library containing gethostbyname... " >&6; } +if test "${ac_cv_search_gethostbyname+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_search_gethostbyname=$ac_res +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_gethostbyname+set}" = set; then + break +fi +done +if test "${ac_cv_search_gethostbyname+set}" = set; then + : +else + ac_cv_search_gethostbyname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname" >&5 +$as_echo "$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + @@ -38682,11 +47408,11 @@ fi for ac_func in fsync getdtablesize lstat mkfifo readlink symlink setlocale utimes do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38739,44 +47465,51 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -{ echo "$as_me:$LINENO: checking whether getgrgid is declared" >&5 -echo $ECHO_N "checking whether getgrgid is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether getgrgid is declared" >&5 +$as_echo_n "checking whether getgrgid is declared... " >&6; } if test "${ac_cv_have_decl_getgrgid+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38803,20 +47536,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getgrgid=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getgrgid=no @@ -38824,9 +47558,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getgrgid" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getgrgid" >&6; } -if test $ac_cv_have_decl_getgrgid = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getgrgid" >&5 +$as_echo "$ac_cv_have_decl_getgrgid" >&6; } +if test "x$ac_cv_have_decl_getgrgid" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETGRGID 1 @@ -38842,10 +47576,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether getpwuid is declared" >&5 -echo $ECHO_N "checking whether getpwuid is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether getpwuid is declared" >&5 +$as_echo_n "checking whether getpwuid is declared... " >&6; } if test "${ac_cv_have_decl_getpwuid+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38872,20 +47606,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_getpwuid=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_getpwuid=no @@ -38893,9 +47628,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_getpwuid" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getpwuid" >&6; } -if test $ac_cv_have_decl_getpwuid = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getpwuid" >&5 +$as_echo "$ac_cv_have_decl_getpwuid" >&6; } +if test "x$ac_cv_have_decl_getpwuid" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETPWUID 1 @@ -38911,10 +47646,10 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking whether time is declared" >&5 -echo $ECHO_N "checking whether time is declared... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether time is declared" >&5 +$as_echo_n "checking whether time is declared... " >&6; } if test "${ac_cv_have_decl_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38941,20 +47676,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_time=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_time=no @@ -38962,9 +47698,9 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_time" >&5 -echo "${ECHO_T}$ac_cv_have_decl_time" >&6; } -if test $ac_cv_have_decl_time = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_time" >&5 +$as_echo "$ac_cv_have_decl_time" >&6; } +if test "x$ac_cv_have_decl_time" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TIME 1 @@ -38984,11 +47720,11 @@ fi for ac_func in waitpid do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -39041,35 +47777,42 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_var'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else @@ -39084,10 +47827,10 @@ done -{ echo "$as_me:$LINENO: checking for remote shell" >&5 -echo $ECHO_N "checking for remote shell... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for remote shell" >&5 +$as_echo_n "checking for remote shell... " >&6; } if test "${tar_cv_path_RSH+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$RSH"; then tar_cv_path_RSH=$RSH @@ -39110,26 +47853,27 @@ else done fi fi -{ echo "$as_me:$LINENO: result: $tar_cv_path_RSH" >&5 -echo "${ECHO_T}$tar_cv_path_RSH" >&6; } +{ $as_echo "$as_me:$LINENO: result: $tar_cv_path_RSH" >&5 +$as_echo "$tar_cv_path_RSH" >&6; } if test $tar_cv_path_RSH = no; then for ac_header in netdb.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -39145,32 +47889,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -39184,51 +47929,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -39237,21 +47983,24 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -39266,8 +48015,121 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for default archive format" >&5 -echo $ECHO_N "checking for default archive format... $ECHO_C" >&6; } + + + + +# Check whether --with-compress was given. +if test "${with_compress+set}" = set; then + withval=$with_compress; tar_cv_compressor_compress=${withval} +else + tar_cv_compressor_compress=compress +fi + + +cat >>confdefs.h <<_ACEOF +#define COMPRESS_PROGRAM "$tar_cv_compressor_compress" +_ACEOF + + + + + +# Check whether --with-gzip was given. +if test "${with_gzip+set}" = set; then + withval=$with_gzip; tar_cv_compressor_gzip=${withval} +else + tar_cv_compressor_gzip=gzip +fi + + +cat >>confdefs.h <<_ACEOF +#define GZIP_PROGRAM "$tar_cv_compressor_gzip" +_ACEOF + + + + + +# Check whether --with-bzip2 was given. +if test "${with_bzip2+set}" = set; then + withval=$with_bzip2; tar_cv_compressor_bzip2=${withval} +else + tar_cv_compressor_bzip2=bzip2 +fi + + +cat >>confdefs.h <<_ACEOF +#define BZIP2_PROGRAM "$tar_cv_compressor_bzip2" +_ACEOF + + + + + +# Check whether --with-lzip was given. +if test "${with_lzip+set}" = set; then + withval=$with_lzip; tar_cv_compressor_lzip=${withval} +else + tar_cv_compressor_lzip=lzip +fi + + +cat >>confdefs.h <<_ACEOF +#define LZIP_PROGRAM "$tar_cv_compressor_lzip" +_ACEOF + + + + + +# Check whether --with-lzma was given. +if test "${with_lzma+set}" = set; then + withval=$with_lzma; tar_cv_compressor_lzma=${withval} +else + tar_cv_compressor_lzma=lzma +fi + + +cat >>confdefs.h <<_ACEOF +#define LZMA_PROGRAM "$tar_cv_compressor_lzma" +_ACEOF + + + + + +# Check whether --with-lzop was given. +if test "${with_lzop+set}" = set; then + withval=$with_lzop; tar_cv_compressor_lzop=${withval} +else + tar_cv_compressor_lzop=lzop +fi + + +cat >>confdefs.h <<_ACEOF +#define LZOP_PROGRAM "$tar_cv_compressor_lzop" +_ACEOF + + + + + +# Check whether --with-xz was given. +if test "${with_xz+set}" = set; then + withval=$with_xz; tar_cv_compressor_xz=${withval} +else + tar_cv_compressor_xz=xz +fi + + +cat >>confdefs.h <<_ACEOF +#define XZ_PROGRAM "$tar_cv_compressor_xz" +_ACEOF + + +{ $as_echo "$as_me:$LINENO: checking for default archive format" >&5 +$as_echo_n "checking for default archive format... " >&6; } @@ -39276,8 +48138,8 @@ if test -z "$DEFAULT_ARCHIVE_FORMAT"; then fi case $DEFAULT_ARCHIVE_FORMAT in V7|OLDGNU|USTAR|POSIX|GNU) ;; - *) { { echo "$as_me:$LINENO: error: Invalid format name" >&5 -echo "$as_me: error: Invalid format name" >&2;} + *) { { $as_echo "$as_me:$LINENO: error: Invalid format name" >&5 +$as_echo "$as_me: error: Invalid format name" >&2;} { (exit 1); exit 1; }; };; esac @@ -39285,19 +48147,19 @@ cat >>confdefs.h <<_ACEOF #define DEFAULT_ARCHIVE_FORMAT ${DEFAULT_ARCHIVE_FORMAT}_FORMAT _ACEOF -{ echo "$as_me:$LINENO: result: $DEFAULT_ARCHIVE_FORMAT" >&5 -echo "${ECHO_T}$DEFAULT_ARCHIVE_FORMAT" >&6; } +{ $as_echo "$as_me:$LINENO: result: $DEFAULT_ARCHIVE_FORMAT" >&5 +$as_echo "$DEFAULT_ARCHIVE_FORMAT" >&6; } -{ echo "$as_me:$LINENO: checking for default archive" >&5 -echo $ECHO_N "checking for default archive... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for default archive" >&5 +$as_echo_n "checking for default archive... " >&6; } if test -z "$DEFAULT_ARCHIVE"; then DEFAULT_ARCHIVE=- else if test -z "`ls $DEFAULT_ARCHIVE 2>/dev/null`"; then - { echo "$as_me:$LINENO: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system" >&5 -echo "$as_me: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system" >&5 +$as_echo "$as_me: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system" >&2;} fi # FIXME: Look for DEFTAPE in <sys/mtio.h>. # FIXME: Let DEVICE_PREFIX be configured from the environment. @@ -39333,23 +48195,23 @@ cat >>confdefs.h <<_ACEOF #define DEFAULT_ARCHIVE "$DEFAULT_ARCHIVE" _ACEOF -{ echo "$as_me:$LINENO: result: $DEFAULT_ARCHIVE" >&5 -echo "${ECHO_T}$DEFAULT_ARCHIVE" >&6; } +{ $as_echo "$as_me:$LINENO: result: $DEFAULT_ARCHIVE" >&5 +$as_echo "$DEFAULT_ARCHIVE" >&6; } -{ echo "$as_me:$LINENO: checking for default blocking" >&5 -echo $ECHO_N "checking for default blocking... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for default blocking" >&5 +$as_echo_n "checking for default blocking... " >&6; } DEFAULT_BLOCKING=${DEFAULT_BLOCKING-20} cat >>confdefs.h <<_ACEOF #define DEFAULT_BLOCKING $DEFAULT_BLOCKING _ACEOF -{ echo "$as_me:$LINENO: result: $DEFAULT_BLOCKING" >&5 -echo "${ECHO_T}$DEFAULT_BLOCKING" >&6; } +{ $as_echo "$as_me:$LINENO: result: $DEFAULT_BLOCKING" >&5 +$as_echo "$DEFAULT_BLOCKING" >&6; } -{ echo "$as_me:$LINENO: checking for default quoting style" >&5 -echo $ECHO_N "checking for default quoting style... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for default quoting style" >&5 +$as_echo_n "checking for default quoting style... " >&6; } DEFAULT_QUOTING_STYLE="escape" @@ -39357,12 +48219,12 @@ DEFAULT_QUOTING_STYLE="escape" case $DEFAULT_QUOTING_STYLE in literal|shell|shell-always|c|escape|locale|clocale) ;; -*) { { echo "$as_me:$LINENO: error: Invalid quoting style" >&5 -echo "$as_me: error: Invalid quoting style" >&2;} +*) { { $as_echo "$as_me:$LINENO: error: Invalid quoting style" >&5 +$as_echo "$as_me: error: Invalid quoting style" >&2;} { (exit 1); exit 1; }; };; esac -{ echo "$as_me:$LINENO: result: $DEFAULT_QUOTING_STYLE" >&5 -echo "${ECHO_T}$DEFAULT_QUOTING_STYLE" >&6; } +{ $as_echo "$as_me:$LINENO: result: $DEFAULT_QUOTING_STYLE" >&5 +$as_echo "$DEFAULT_QUOTING_STYLE" >&6; } DEFAULT_QUOTING_STYLE=`echo ${DEFAULT_QUOTING_STYLE}|sed 's/-/_/g'`_quoting_style cat >>confdefs.h <<_ACEOF @@ -39411,8 +48273,8 @@ fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +$as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -39427,7 +48289,7 @@ echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; @@ -39441,14 +48303,14 @@ echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } ;; esac elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${acl_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" @@ -39461,9 +48323,9 @@ else # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break ;; + test "$with_gnu_ld" != no && break ;; *) - test "$with_gnu_ld" != yes && break ;; + test "$with_gnu_ld" != yes && break ;; esac fi done @@ -39475,19 +48337,19 @@ fi LD="$acl_cv_path_LD" if test -n "$LD"; then - { echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6; } + { $as_echo "$as_me:$LINENO: result: $LD" >&5 +$as_echo "$LD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 </dev/null` in @@ -39497,17 +48359,17 @@ case `$LD -v 2>&1 </dev/null` in acl_cv_prog_gnu_ld=no ;; esac fi -{ echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6; } +{ $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld - { echo "$as_me:$LINENO: checking for shared library run path origin" >&5 -echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } if test "${acl_cv_rpath+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ @@ -39517,8 +48379,8 @@ else acl_cv_rpath=done fi -{ echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 -echo "${ECHO_T}$acl_cv_rpath" >&6; } +{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" @@ -39542,10 +48404,10 @@ fi acl_libdirstem2= case "$host_os" in solaris*) - { echo "$as_me:$LINENO: checking for 64-bit host" >&5 -echo $ECHO_N "checking for 64-bit host... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for 64-bit host" >&5 +$as_echo_n "checking for 64-bit host... " >&6; } if test "${gl_cv_solaris_64bit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -39569,8 +48431,8 @@ rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $gl_cv_solaris_64bit" >&5 -echo "${ECHO_T}$gl_cv_solaris_64bit" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gl_cv_solaris_64bit" >&5 +$as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in @@ -39587,6 +48449,9 @@ echo "${ECHO_T}$gl_cv_solaris_64bit" >&6; } if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; @@ -39660,6 +48525,7 @@ fi LTLIBICONV= INCICONV= LIBICONV_PREFIX= + HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= @@ -40095,10 +48961,10 @@ fi done - { echo "$as_me:$LINENO: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" @@ -40127,26 +48993,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then @@ -40176,40 +49046,44 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi -{ echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then - { echo "$as_me:$LINENO: checking for working iconv" >&5 -echo $ECHO_N "checking for working iconv... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } if test "${am_cv_func_iconv_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" @@ -40252,6 +49126,25 @@ int main () return 1; } } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { @@ -40292,29 +49185,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_func_iconv_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) am_cv_func_iconv_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -40322,8 +49218,8 @@ fi LIBS="$am_save_LIBS" fi -{ echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 -echo "${ECHO_T}$am_cv_func_iconv_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; @@ -40339,10 +49235,10 @@ _ACEOF fi if test "$am_cv_lib_iconv" = yes; then - { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 -echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $LIBICONV" >&5 -echo "${ECHO_T}$LIBICONV" >&6; } + { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= @@ -40352,10 +49248,10 @@ echo "${ECHO_T}$LIBICONV" >&6; } if test "$am_cv_func_iconv" = yes; then - { echo "$as_me:$LINENO: checking for iconv declaration" >&5 -echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5 +$as_echo_n "checking for iconv declaration... " >&6; } if test "${am_cv_proto_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -40391,20 +49287,21 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then am_cv_proto_iconv_arg1="" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_proto_iconv_arg1="const" @@ -40415,10 +49312,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - { echo "$as_me:$LINENO: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -echo "${ECHO_T}${ac_t:- - }$am_cv_proto_iconv" >&6; } + { $as_echo "$as_me:$LINENO: result: + $am_cv_proto_iconv" >&5 +$as_echo " + $am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 @@ -40429,20 +49326,21 @@ _ACEOF for ac_header in iconv.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -40458,32 +49356,33 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -40497,51 +49396,52 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------ ## ## Report this to bug-tar@gnu.org ## @@ -40550,33 +49450,37 @@ _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done -{ echo "$as_me:$LINENO: checking for iconv_t" >&5 -echo $ECHO_N "checking for iconv_t... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for iconv_t" >&5 +$as_echo_n "checking for iconv_t... " >&6; } if test "${ac_cv_type_iconv_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_iconv_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -40588,14 +49492,50 @@ cat >>conftest.$ac_ext <<_ACEOF #endif -typedef iconv_t ac__type_new_; int main () { -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) +if (sizeof (iconv_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef HAVE_ICONV_H +# include <iconv.h> +#endif + + +int +main () +{ +if (sizeof ((iconv_t))) + return 0; ; return 0; } @@ -40606,30 +49546,39 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then - ac_cv_type_iconv_t=yes + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_cv_type_iconv_t=no + ac_cv_type_iconv_t=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi -{ echo "$as_me:$LINENO: result: $ac_cv_type_iconv_t" >&5 -echo "${ECHO_T}$ac_cv_type_iconv_t" >&6; } -if test $ac_cv_type_iconv_t = yes; then + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_iconv_t" >&5 +$as_echo "$ac_cv_type_iconv_t" >&6; } +if test "x$ac_cv_type_iconv_t" = x""yes; then : else @@ -40642,8 +49591,8 @@ fi # Gettext. - { echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then enableval=$enable_nls; USE_NLS=$enableval @@ -40651,8 +49600,8 @@ else USE_NLS=yes fi - { echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6; } + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } @@ -40692,10 +49641,10 @@ rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) @@ -40724,19 +49673,19 @@ esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then - { echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6; } + { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) @@ -40751,7 +49700,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -40764,11 +49713,11 @@ esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6; } + { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -40815,10 +49764,10 @@ rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) @@ -40847,11 +49796,11 @@ esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then - { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6; } + { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi rm -f messages.po @@ -40893,10 +49842,10 @@ rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) @@ -40924,11 +49873,11 @@ esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then - { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -echo "${ECHO_T}$MSGMERGE" >&6; } + { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -40964,10 +49913,10 @@ fi - { echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 -echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" @@ -40992,32 +49941,36 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gt_cv_func_CFPreferencesCopyAppValue=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_CFPreferencesCopyAppValue=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi -{ echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 -echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then cat >>confdefs.h <<\_ACEOF @@ -41025,10 +49978,10 @@ cat >>confdefs.h <<\_ACEOF _ACEOF fi - { echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 -echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" @@ -41053,32 +50006,36 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gt_cv_func_CFLocaleCopyCurrent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_CFLocaleCopyCurrent=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi -{ echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 -echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then cat >>confdefs.h <<\_ACEOF @@ -41128,10 +50085,10 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; gt_expression_test_code= fi - { echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 -echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -41158,32 +50115,37 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$gt_func_gnugettext_libc=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$gt_func_gnugettext_libc=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$gt_func_gnugettext_libc'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$gt_func_gnugettext_libc'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then @@ -41216,10 +50178,10 @@ echo "${ECHO_T}$ac_res" >&6; } done - { echo "$as_me:$LINENO: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" @@ -41248,26 +50210,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then @@ -41297,40 +50263,44 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi -{ echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then - { echo "$as_me:$LINENO: checking for working iconv" >&5 -echo $ECHO_N "checking for working iconv... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } if test "${am_cv_func_iconv_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" @@ -41373,6 +50343,25 @@ int main () return 1; } } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { @@ -41413,29 +50402,32 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_func_iconv_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) am_cv_func_iconv_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -41443,8 +50435,8 @@ fi LIBS="$am_save_LIBS" fi -{ echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 -echo "${ECHO_T}$am_cv_func_iconv_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; @@ -41460,10 +50452,10 @@ _ACEOF fi if test "$am_cv_lib_iconv" = yes; then - { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 -echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $LIBICONV" >&5 -echo "${ECHO_T}$LIBICONV" >&6; } + { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= @@ -41529,6 +50521,7 @@ fi LTLIBINTL= INCINTL= LIBINTL_PREFIX= + HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= @@ -41933,10 +50926,10 @@ fi - { echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 -echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" @@ -41971,26 +50964,30 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$gt_func_gnugettext_libintl=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$gt_func_gnugettext_libintl=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then @@ -42024,38 +51021,43 @@ case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi -ac_res=`eval echo '${'$gt_func_gnugettext_libintl'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$gt_func_gnugettext_libintl'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ @@ -42091,13 +51093,13 @@ _ACEOF fi fi - { echo "$as_me:$LINENO: checking whether to use NLS" >&5 -echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6; } + { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then - { echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 -echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" @@ -42107,18 +51109,18 @@ echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6; } else gt_source="included intl directory" fi - { echo "$as_me:$LINENO: result: $gt_source" >&5 -echo "${ECHO_T}$gt_source" >&6; } + { $as_echo "$as_me:$LINENO: result: $gt_source" >&5 +$as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - { echo "$as_me:$LINENO: checking how to link with libintl" >&5 -echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $LIBINTL" >&5 -echo "${ECHO_T}$LIBINTL" >&6; } + { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:$LINENO: result: $LIBINTL" >&5 +$as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= @@ -42199,7 +51201,7 @@ else BACKUP_SED_COND='/^\#IF_DATE_FORMAT_OK/,/^\#ELSE_DATE_FORMAT_OK/d;/^\#ENDIF_DATE_FORMAT_OK/d' fi -ac_config_files="$ac_config_files Makefile doc/Makefile lib/Makefile po/Makefile.in scripts/Makefile rmt/Makefile src/Makefile" +ac_config_files="$ac_config_files Makefile doc/Makefile gnu/Makefile lib/Makefile po/Makefile.in scripts/Makefile rmt/Makefile src/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -42228,11 +51230,12 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac @@ -42265,12 +51268,12 @@ echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -42286,7 +51289,7 @@ ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`echo "$ac_i" | sed "$ac_script"` + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -42297,24 +51300,32 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. +$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"GL_COND_LIBTOOL\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"GL_COND_LIBTOOL\" was never defined. +$as_echo "$as_me: error: conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi @@ -42324,7 +51335,7 @@ fi if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' - for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do + for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done @@ -42340,7 +51351,7 @@ fi if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' - for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do + for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done @@ -42352,11 +51363,12 @@ fi : ${CONFIG_STATUS=./config.status} +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -42369,7 +51381,7 @@ ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## @@ -42379,7 +51391,7 @@ DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -42401,17 +51413,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi # Support unset when possible. @@ -42427,8 +51467,6 @@ fi # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -42451,7 +51489,7 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi @@ -42464,17 +51502,10 @@ PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && @@ -42496,7 +51527,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -42547,7 +51578,7 @@ $as_unset CDPATH s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems @@ -42575,7 +51606,6 @@ case `echo -n x` in *) ECHO_N='-n';; esac - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -42588,19 +51618,22 @@ if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -42625,10 +51658,10 @@ else as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else case $1 in - -*)set "./$1";; + -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi @@ -42650,8 +51683,8 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU tar $as_me 1.22, which was -generated by GNU Autoconf 2.61. Invocation command line was +This file was extended by GNU tar $as_me 1.23, which was +generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -42664,7 +51697,16 @@ on `(hostname || uname -n) 2>/dev/null | sed 1q` _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" @@ -42672,22 +51714,23 @@ config_commands="$ac_config_commands" _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. -Usage: $0 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages + -q, --quiet, --silent + do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE Configuration files: $config_files @@ -42701,13 +51744,13 @@ $config_commands Report bugs to <bug-autoconf@gnu.org>." _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -GNU tar config.status 1.22 -configured by $0, generated by GNU Autoconf 2.61, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +GNU tar config.status 1.23 +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2006 Free Software Foundation, Inc. +Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -42715,11 +51758,12 @@ ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do @@ -42741,30 +51785,36 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; + $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - { echo "$as_me: error: ambiguous option: $1 + { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { echo "$as_me: error: unrecognized option: $1 + -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -42783,27 +51833,29 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + exec "\$@" fi _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - echo "$ac_log" + $as_echo "$ac_log" } >&5 _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # @@ -42818,13 +51870,13 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.hin" ;; + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;; @@ -42832,14 +51884,15 @@ do "tests/atlocal") CONFIG_FILES="$CONFIG_FILES tests/atlocal" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "gnu/Makefile") CONFIG_FILES="$CONFIG_FILES gnu/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;; "rmt/Makefile") CONFIG_FILES="$CONFIG_FILES rmt/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done @@ -42880,758 +51933,143 @@ $debug || (umask 077 && mkdir "$tmp") } || { - echo "$me: cannot create a temporary directory in ." >&2 + $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } -# -# Set up the sed scripts for CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then -_ACEOF - - - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim -INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim -INSTALL_DATA!$INSTALL_DATA$ac_delim -am__isrc!$am__isrc$ac_delim -CYGPATH_W!$CYGPATH_W$ac_delim -PACKAGE!$PACKAGE$ac_delim -VERSION!$VERSION$ac_delim -ACLOCAL!$ACLOCAL$ac_delim -AUTOCONF!$AUTOCONF$ac_delim -AUTOMAKE!$AUTOMAKE$ac_delim -AUTOHEADER!$AUTOHEADER$ac_delim -MAKEINFO!$MAKEINFO$ac_delim -install_sh!$install_sh$ac_delim -STRIP!$STRIP$ac_delim -INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim -mkdir_p!$mkdir_p$ac_delim -AWK!$AWK$ac_delim -SET_MAKE!$SET_MAKE$ac_delim -am__leading_dot!$am__leading_dot$ac_delim -AMTAR!$AMTAR$ac_delim -am__tar!$am__tar$ac_delim -am__untar!$am__untar$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -LDFLAGS!$LDFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -DEPDIR!$DEPDIR$ac_delim -am__include!$am__include$ac_delim -am__quote!$am__quote$ac_delim -AMDEP_TRUE!$AMDEP_TRUE$ac_delim -AMDEP_FALSE!$AMDEP_FALSE$ac_delim -AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim -CCDEPMODE!$CCDEPMODE$ac_delim -am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim -am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim -RANLIB!$RANLIB$ac_delim -YACC!$YACC$ac_delim -YFLAGS!$YFLAGS$ac_delim -build!$build$ac_delim -build_cpu!$build_cpu$ac_delim -build_vendor!$build_vendor$ac_delim -build_os!$build_os$ac_delim -host!$host$ac_delim -host_cpu!$host_cpu$ac_delim -host_vendor!$host_vendor$ac_delim -host_os!$host_os$ac_delim -CPP!$CPP$ac_delim -GREP!$GREP$ac_delim -EGREP!$EGREP$ac_delim -STDBOOL_H!$STDBOOL_H$ac_delim -HAVE__BOOL!$HAVE__BOOL$ac_delim -GL_COND_LIBTOOL_TRUE!$GL_COND_LIBTOOL_TRUE$ac_delim -GL_COND_LIBTOOL_FALSE!$GL_COND_LIBTOOL_FALSE$ac_delim -ALLOCA!$ALLOCA$ac_delim -ALLOCA_H!$ALLOCA_H$ac_delim -GETOPT_H!$GETOPT_H$ac_delim -GNULIB_BTOWC!$GNULIB_BTOWC$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS <conf$$subs.sed -rm -f conf$$subs.sed -cat >>$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof -_ACEOF - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -GNULIB_WCTOB!$GNULIB_WCTOB$ac_delim -GNULIB_MBSINIT!$GNULIB_MBSINIT$ac_delim -GNULIB_MBRTOWC!$GNULIB_MBRTOWC$ac_delim -GNULIB_MBRLEN!$GNULIB_MBRLEN$ac_delim -GNULIB_MBSRTOWCS!$GNULIB_MBSRTOWCS$ac_delim -GNULIB_MBSNRTOWCS!$GNULIB_MBSNRTOWCS$ac_delim -GNULIB_WCRTOMB!$GNULIB_WCRTOMB$ac_delim -GNULIB_WCSRTOMBS!$GNULIB_WCSRTOMBS$ac_delim -GNULIB_WCSNRTOMBS!$GNULIB_WCSNRTOMBS$ac_delim -GNULIB_WCWIDTH!$GNULIB_WCWIDTH$ac_delim -HAVE_BTOWC!$HAVE_BTOWC$ac_delim -HAVE_MBSINIT!$HAVE_MBSINIT$ac_delim -HAVE_MBRTOWC!$HAVE_MBRTOWC$ac_delim -HAVE_MBRLEN!$HAVE_MBRLEN$ac_delim -HAVE_MBSRTOWCS!$HAVE_MBSRTOWCS$ac_delim -HAVE_MBSNRTOWCS!$HAVE_MBSNRTOWCS$ac_delim -HAVE_WCRTOMB!$HAVE_WCRTOMB$ac_delim -HAVE_WCSRTOMBS!$HAVE_WCSRTOMBS$ac_delim -HAVE_WCSNRTOMBS!$HAVE_WCSNRTOMBS$ac_delim -HAVE_DECL_WCTOB!$HAVE_DECL_WCTOB$ac_delim -HAVE_DECL_WCWIDTH!$HAVE_DECL_WCWIDTH$ac_delim -REPLACE_MBSTATE_T!$REPLACE_MBSTATE_T$ac_delim -REPLACE_BTOWC!$REPLACE_BTOWC$ac_delim -REPLACE_WCTOB!$REPLACE_WCTOB$ac_delim -REPLACE_MBSINIT!$REPLACE_MBSINIT$ac_delim -REPLACE_MBRTOWC!$REPLACE_MBRTOWC$ac_delim -REPLACE_MBRLEN!$REPLACE_MBRLEN$ac_delim -REPLACE_MBSRTOWCS!$REPLACE_MBSRTOWCS$ac_delim -REPLACE_MBSNRTOWCS!$REPLACE_MBSNRTOWCS$ac_delim -REPLACE_WCRTOMB!$REPLACE_WCRTOMB$ac_delim -REPLACE_WCSRTOMBS!$REPLACE_WCSRTOMBS$ac_delim -REPLACE_WCWIDTH!$REPLACE_WCWIDTH$ac_delim -WCHAR_H!$WCHAR_H$ac_delim -LOCALE_FR!$LOCALE_FR$ac_delim -GNULIB_CHOWN!$GNULIB_CHOWN$ac_delim -GNULIB_CLOSE!$GNULIB_CLOSE$ac_delim -GNULIB_DUP2!$GNULIB_DUP2$ac_delim -GNULIB_ENVIRON!$GNULIB_ENVIRON$ac_delim -GNULIB_EUIDACCESS!$GNULIB_EUIDACCESS$ac_delim -GNULIB_FCHDIR!$GNULIB_FCHDIR$ac_delim -GNULIB_FSYNC!$GNULIB_FSYNC$ac_delim -GNULIB_FTRUNCATE!$GNULIB_FTRUNCATE$ac_delim -GNULIB_GETCWD!$GNULIB_GETCWD$ac_delim -GNULIB_GETDOMAINNAME!$GNULIB_GETDOMAINNAME$ac_delim -GNULIB_GETDTABLESIZE!$GNULIB_GETDTABLESIZE$ac_delim -GNULIB_GETHOSTNAME!$GNULIB_GETHOSTNAME$ac_delim -GNULIB_GETLOGIN_R!$GNULIB_GETLOGIN_R$ac_delim -GNULIB_GETPAGESIZE!$GNULIB_GETPAGESIZE$ac_delim -GNULIB_GETUSERSHELL!$GNULIB_GETUSERSHELL$ac_delim -GNULIB_LCHOWN!$GNULIB_LCHOWN$ac_delim -GNULIB_LINK!$GNULIB_LINK$ac_delim -GNULIB_LSEEK!$GNULIB_LSEEK$ac_delim -GNULIB_READLINK!$GNULIB_READLINK$ac_delim -GNULIB_SLEEP!$GNULIB_SLEEP$ac_delim -GNULIB_UNISTD_H_SIGPIPE!$GNULIB_UNISTD_H_SIGPIPE$ac_delim -GNULIB_WRITE!$GNULIB_WRITE$ac_delim -HAVE_DUP2!$HAVE_DUP2$ac_delim -HAVE_EUIDACCESS!$HAVE_EUIDACCESS$ac_delim -HAVE_FSYNC!$HAVE_FSYNC$ac_delim -HAVE_FTRUNCATE!$HAVE_FTRUNCATE$ac_delim -HAVE_GETDOMAINNAME!$HAVE_GETDOMAINNAME$ac_delim -HAVE_GETDTABLESIZE!$HAVE_GETDTABLESIZE$ac_delim -HAVE_GETHOSTNAME!$HAVE_GETHOSTNAME$ac_delim -HAVE_GETPAGESIZE!$HAVE_GETPAGESIZE$ac_delim -HAVE_GETUSERSHELL!$HAVE_GETUSERSHELL$ac_delim -HAVE_LINK!$HAVE_LINK$ac_delim -HAVE_READLINK!$HAVE_READLINK$ac_delim -HAVE_SLEEP!$HAVE_SLEEP$ac_delim -HAVE_DECL_ENVIRON!$HAVE_DECL_ENVIRON$ac_delim -HAVE_DECL_GETLOGIN_R!$HAVE_DECL_GETLOGIN_R$ac_delim -HAVE_OS_H!$HAVE_OS_H$ac_delim -HAVE_SYS_PARAM_H!$HAVE_SYS_PARAM_H$ac_delim -REPLACE_CHOWN!$REPLACE_CHOWN$ac_delim -REPLACE_CLOSE!$REPLACE_CLOSE$ac_delim -REPLACE_FCHDIR!$REPLACE_FCHDIR$ac_delim -REPLACE_GETCWD!$REPLACE_GETCWD$ac_delim -REPLACE_GETPAGESIZE!$REPLACE_GETPAGESIZE$ac_delim -REPLACE_LCHOWN!$REPLACE_LCHOWN$ac_delim -REPLACE_LSEEK!$REPLACE_LSEEK$ac_delim -REPLACE_WRITE!$REPLACE_WRITE$ac_delim -UNISTD_H_HAVE_WINSOCK2_H!$UNISTD_H_HAVE_WINSOCK2_H$ac_delim -LIB_CLOCK_GETTIME!$LIB_CLOCK_GETTIME$ac_delim -GNULIB_DIRFD!$GNULIB_DIRFD$ac_delim -GNULIB_SCANDIR!$GNULIB_SCANDIR$ac_delim -GNULIB_ALPHASORT!$GNULIB_ALPHASORT$ac_delim -HAVE_DECL_DIRFD!$HAVE_DECL_DIRFD$ac_delim -HAVE_SCANDIR!$HAVE_SCANDIR$ac_delim -HAVE_ALPHASORT!$HAVE_ALPHASORT$ac_delim -DIRENT_H!$DIRENT_H$ac_delim -INCLUDE_NEXT!$INCLUDE_NEXT$ac_delim -INCLUDE_NEXT_AS_FIRST_DIRECTIVE!$INCLUDE_NEXT_AS_FIRST_DIRECTIVE$ac_delim -PRAGMA_SYSTEM_HEADER!$PRAGMA_SYSTEM_HEADER$ac_delim -NEXT_DIRENT_H!$NEXT_DIRENT_H$ac_delim -NEXT_ERRNO_H!$NEXT_ERRNO_H$ac_delim -ERRNO_H!$ERRNO_H$ac_delim -EMULTIHOP_HIDDEN!$EMULTIHOP_HIDDEN$ac_delim -EMULTIHOP_VALUE!$EMULTIHOP_VALUE$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` +ac_cr=' ' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr fi -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS <conf$$subs.sed -rm -f conf$$subs.sed -cat >>$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof +echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -ENOLINK_HIDDEN!$ENOLINK_HIDDEN$ac_delim -ENOLINK_VALUE!$ENOLINK_VALUE$ac_delim -EOVERFLOW_HIDDEN!$EOVERFLOW_HIDDEN$ac_delim -EOVERFLOW_VALUE!$EOVERFLOW_VALUE$ac_delim -GNULIB_OPEN!$GNULIB_OPEN$ac_delim -REPLACE_OPEN!$REPLACE_OPEN$ac_delim -GNULIB_FPRINTF!$GNULIB_FPRINTF$ac_delim -GNULIB_FPRINTF_POSIX!$GNULIB_FPRINTF_POSIX$ac_delim -GNULIB_PRINTF!$GNULIB_PRINTF$ac_delim -GNULIB_PRINTF_POSIX!$GNULIB_PRINTF_POSIX$ac_delim -GNULIB_SNPRINTF!$GNULIB_SNPRINTF$ac_delim -GNULIB_SPRINTF_POSIX!$GNULIB_SPRINTF_POSIX$ac_delim -GNULIB_VFPRINTF!$GNULIB_VFPRINTF$ac_delim -GNULIB_VFPRINTF_POSIX!$GNULIB_VFPRINTF_POSIX$ac_delim -GNULIB_VPRINTF!$GNULIB_VPRINTF$ac_delim -GNULIB_VPRINTF_POSIX!$GNULIB_VPRINTF_POSIX$ac_delim -GNULIB_VSNPRINTF!$GNULIB_VSNPRINTF$ac_delim -GNULIB_VSPRINTF_POSIX!$GNULIB_VSPRINTF_POSIX$ac_delim -GNULIB_DPRINTF!$GNULIB_DPRINTF$ac_delim -GNULIB_VDPRINTF!$GNULIB_VDPRINTF$ac_delim -GNULIB_VASPRINTF!$GNULIB_VASPRINTF$ac_delim -GNULIB_OBSTACK_PRINTF!$GNULIB_OBSTACK_PRINTF$ac_delim -GNULIB_OBSTACK_PRINTF_POSIX!$GNULIB_OBSTACK_PRINTF_POSIX$ac_delim -GNULIB_FOPEN!$GNULIB_FOPEN$ac_delim -GNULIB_FREOPEN!$GNULIB_FREOPEN$ac_delim -GNULIB_FSEEK!$GNULIB_FSEEK$ac_delim -GNULIB_FSEEKO!$GNULIB_FSEEKO$ac_delim -GNULIB_FTELL!$GNULIB_FTELL$ac_delim -GNULIB_FTELLO!$GNULIB_FTELLO$ac_delim -GNULIB_FFLUSH!$GNULIB_FFLUSH$ac_delim -GNULIB_FCLOSE!$GNULIB_FCLOSE$ac_delim -GNULIB_FPUTC!$GNULIB_FPUTC$ac_delim -GNULIB_PUTC!$GNULIB_PUTC$ac_delim -GNULIB_PUTCHAR!$GNULIB_PUTCHAR$ac_delim -GNULIB_FPUTS!$GNULIB_FPUTS$ac_delim -GNULIB_PUTS!$GNULIB_PUTS$ac_delim -GNULIB_FWRITE!$GNULIB_FWRITE$ac_delim -GNULIB_GETDELIM!$GNULIB_GETDELIM$ac_delim -GNULIB_GETLINE!$GNULIB_GETLINE$ac_delim -GNULIB_PERROR!$GNULIB_PERROR$ac_delim -GNULIB_STDIO_H_SIGPIPE!$GNULIB_STDIO_H_SIGPIPE$ac_delim -REPLACE_STDIO_WRITE_FUNCS!$REPLACE_STDIO_WRITE_FUNCS$ac_delim -REPLACE_FPRINTF!$REPLACE_FPRINTF$ac_delim -REPLACE_VFPRINTF!$REPLACE_VFPRINTF$ac_delim -REPLACE_PRINTF!$REPLACE_PRINTF$ac_delim -REPLACE_VPRINTF!$REPLACE_VPRINTF$ac_delim -REPLACE_SNPRINTF!$REPLACE_SNPRINTF$ac_delim -HAVE_DECL_SNPRINTF!$HAVE_DECL_SNPRINTF$ac_delim -REPLACE_VSNPRINTF!$REPLACE_VSNPRINTF$ac_delim -HAVE_DECL_VSNPRINTF!$HAVE_DECL_VSNPRINTF$ac_delim -REPLACE_SPRINTF!$REPLACE_SPRINTF$ac_delim -REPLACE_VSPRINTF!$REPLACE_VSPRINTF$ac_delim -HAVE_DPRINTF!$HAVE_DPRINTF$ac_delim -REPLACE_DPRINTF!$REPLACE_DPRINTF$ac_delim -HAVE_VDPRINTF!$HAVE_VDPRINTF$ac_delim -REPLACE_VDPRINTF!$REPLACE_VDPRINTF$ac_delim -HAVE_VASPRINTF!$HAVE_VASPRINTF$ac_delim -REPLACE_VASPRINTF!$REPLACE_VASPRINTF$ac_delim -HAVE_DECL_OBSTACK_PRINTF!$HAVE_DECL_OBSTACK_PRINTF$ac_delim -REPLACE_OBSTACK_PRINTF!$REPLACE_OBSTACK_PRINTF$ac_delim -REPLACE_FOPEN!$REPLACE_FOPEN$ac_delim -REPLACE_FREOPEN!$REPLACE_FREOPEN$ac_delim -HAVE_FSEEKO!$HAVE_FSEEKO$ac_delim -REPLACE_FSEEKO!$REPLACE_FSEEKO$ac_delim -REPLACE_FSEEK!$REPLACE_FSEEK$ac_delim -HAVE_FTELLO!$HAVE_FTELLO$ac_delim -REPLACE_FTELLO!$REPLACE_FTELLO$ac_delim -REPLACE_FTELL!$REPLACE_FTELL$ac_delim -REPLACE_FFLUSH!$REPLACE_FFLUSH$ac_delim -REPLACE_FCLOSE!$REPLACE_FCLOSE$ac_delim -HAVE_DECL_GETDELIM!$HAVE_DECL_GETDELIM$ac_delim -HAVE_DECL_GETLINE!$HAVE_DECL_GETLINE$ac_delim -REPLACE_GETLINE!$REPLACE_GETLINE$ac_delim -REPLACE_PERROR!$REPLACE_PERROR$ac_delim -LIB_CLOSE!$LIB_CLOSE$ac_delim -NEXT_FCNTL_H!$NEXT_FCNTL_H$ac_delim -FCNTL_H!$FCNTL_H$ac_delim -NEXT_FLOAT_H!$NEXT_FLOAT_H$ac_delim -FLOAT_H!$FLOAT_H$ac_delim -FNMATCH_H!$FNMATCH_H$ac_delim -LIBINTL!$LIBINTL$ac_delim -LTLIBINTL!$LTLIBINTL$ac_delim -NEXT_SYS_TIME_H!$NEXT_SYS_TIME_H$ac_delim -HAVE_SYS_TIME_H!$HAVE_SYS_TIME_H$ac_delim -HAVE_STRUCT_TIMEVAL!$HAVE_STRUCT_TIMEVAL$ac_delim -REPLACE_GETTIMEOFDAY!$REPLACE_GETTIMEOFDAY$ac_delim -SYS_TIME_H!$SYS_TIME_H$ac_delim -HAVE_LONG_LONG_INT!$HAVE_LONG_LONG_INT$ac_delim -HAVE_UNSIGNED_LONG_LONG_INT!$HAVE_UNSIGNED_LONG_LONG_INT$ac_delim -HAVE_INTTYPES_H!$HAVE_INTTYPES_H$ac_delim -HAVE_SYS_TYPES_H!$HAVE_SYS_TYPES_H$ac_delim -NEXT_STDINT_H!$NEXT_STDINT_H$ac_delim -HAVE_STDINT_H!$HAVE_STDINT_H$ac_delim -HAVE_SYS_INTTYPES_H!$HAVE_SYS_INTTYPES_H$ac_delim -HAVE_SYS_BITYPES_H!$HAVE_SYS_BITYPES_H$ac_delim -APPLE_UNIVERSAL_BUILD!$APPLE_UNIVERSAL_BUILD$ac_delim -BITSIZEOF_PTRDIFF_T!$BITSIZEOF_PTRDIFF_T$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS <conf$$subs.sed -rm -f conf$$subs.sed -cat >>$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof -_ACEOF - - +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -BITSIZEOF_SIZE_T!$BITSIZEOF_SIZE_T$ac_delim -BITSIZEOF_SIG_ATOMIC_T!$BITSIZEOF_SIG_ATOMIC_T$ac_delim -BITSIZEOF_WCHAR_T!$BITSIZEOF_WCHAR_T$ac_delim -BITSIZEOF_WINT_T!$BITSIZEOF_WINT_T$ac_delim -HAVE_SIGNED_SIG_ATOMIC_T!$HAVE_SIGNED_SIG_ATOMIC_T$ac_delim -HAVE_SIGNED_WCHAR_T!$HAVE_SIGNED_WCHAR_T$ac_delim -HAVE_SIGNED_WINT_T!$HAVE_SIGNED_WINT_T$ac_delim -PTRDIFF_T_SUFFIX!$PTRDIFF_T_SUFFIX$ac_delim -SIZE_T_SUFFIX!$SIZE_T_SUFFIX$ac_delim -SIG_ATOMIC_T_SUFFIX!$SIG_ATOMIC_T_SUFFIX$ac_delim -WCHAR_T_SUFFIX!$WCHAR_T_SUFFIX$ac_delim -WINT_T_SUFFIX!$WINT_T_SUFFIX$ac_delim -STDINT_H!$STDINT_H$ac_delim -PRI_MACROS_BROKEN!$PRI_MACROS_BROKEN$ac_delim -GNULIB_IMAXABS!$GNULIB_IMAXABS$ac_delim -GNULIB_IMAXDIV!$GNULIB_IMAXDIV$ac_delim -GNULIB_STRTOIMAX!$GNULIB_STRTOIMAX$ac_delim -GNULIB_STRTOUMAX!$GNULIB_STRTOUMAX$ac_delim -HAVE_DECL_IMAXABS!$HAVE_DECL_IMAXABS$ac_delim -HAVE_DECL_IMAXDIV!$HAVE_DECL_IMAXDIV$ac_delim -HAVE_DECL_STRTOIMAX!$HAVE_DECL_STRTOIMAX$ac_delim -HAVE_DECL_STRTOUMAX!$HAVE_DECL_STRTOUMAX$ac_delim -NEXT_INTTYPES_H!$NEXT_INTTYPES_H$ac_delim -PRIPTR_PREFIX!$PRIPTR_PREFIX$ac_delim -INT32_MAX_LT_INTMAX_MAX!$INT32_MAX_LT_INTMAX_MAX$ac_delim -INT64_MAX_EQ_LONG_MAX!$INT64_MAX_EQ_LONG_MAX$ac_delim -UINT32_MAX_LT_UINTMAX_MAX!$UINT32_MAX_LT_UINTMAX_MAX$ac_delim -UINT64_MAX_EQ_ULONG_MAX!$UINT64_MAX_EQ_ULONG_MAX$ac_delim -INTTYPES_H!$INTTYPES_H$ac_delim -GLIBC21!$GLIBC21$ac_delim -LOCALCHARSET_TESTS_ENVIRONMENT!$LOCALCHARSET_TESTS_ENVIRONMENT$ac_delim -GNULIB_LCHMOD!$GNULIB_LCHMOD$ac_delim -GNULIB_LSTAT!$GNULIB_LSTAT$ac_delim -HAVE_LCHMOD!$HAVE_LCHMOD$ac_delim -REPLACE_LSTAT!$REPLACE_LSTAT$ac_delim -REPLACE_MKDIR!$REPLACE_MKDIR$ac_delim -HAVE_MALLOC_POSIX!$HAVE_MALLOC_POSIX$ac_delim -GNULIB_MALLOC_POSIX!$GNULIB_MALLOC_POSIX$ac_delim -GNULIB_REALLOC_POSIX!$GNULIB_REALLOC_POSIX$ac_delim -GNULIB_CALLOC_POSIX!$GNULIB_CALLOC_POSIX$ac_delim -GNULIB_ATOLL!$GNULIB_ATOLL$ac_delim -GNULIB_GETLOADAVG!$GNULIB_GETLOADAVG$ac_delim -GNULIB_GETSUBOPT!$GNULIB_GETSUBOPT$ac_delim -GNULIB_MKDTEMP!$GNULIB_MKDTEMP$ac_delim -GNULIB_MKSTEMP!$GNULIB_MKSTEMP$ac_delim -GNULIB_PUTENV!$GNULIB_PUTENV$ac_delim -GNULIB_RANDOM_R!$GNULIB_RANDOM_R$ac_delim -GNULIB_RPMATCH!$GNULIB_RPMATCH$ac_delim -GNULIB_SETENV!$GNULIB_SETENV$ac_delim -GNULIB_STRTOD!$GNULIB_STRTOD$ac_delim -GNULIB_STRTOLL!$GNULIB_STRTOLL$ac_delim -GNULIB_STRTOULL!$GNULIB_STRTOULL$ac_delim -GNULIB_UNSETENV!$GNULIB_UNSETENV$ac_delim -HAVE_ATOLL!$HAVE_ATOLL$ac_delim -HAVE_CALLOC_POSIX!$HAVE_CALLOC_POSIX$ac_delim -HAVE_GETSUBOPT!$HAVE_GETSUBOPT$ac_delim -HAVE_MKDTEMP!$HAVE_MKDTEMP$ac_delim -HAVE_REALLOC_POSIX!$HAVE_REALLOC_POSIX$ac_delim -HAVE_RANDOM_R!$HAVE_RANDOM_R$ac_delim -HAVE_RPMATCH!$HAVE_RPMATCH$ac_delim -HAVE_SETENV!$HAVE_SETENV$ac_delim -HAVE_STRTOD!$HAVE_STRTOD$ac_delim -HAVE_STRTOLL!$HAVE_STRTOLL$ac_delim -HAVE_STRTOULL!$HAVE_STRTOULL$ac_delim -HAVE_STRUCT_RANDOM_DATA!$HAVE_STRUCT_RANDOM_DATA$ac_delim -HAVE_SYS_LOADAVG_H!$HAVE_SYS_LOADAVG_H$ac_delim -HAVE_UNSETENV!$HAVE_UNSETENV$ac_delim -HAVE_DECL_GETLOADAVG!$HAVE_DECL_GETLOADAVG$ac_delim -REPLACE_MKSTEMP!$REPLACE_MKSTEMP$ac_delim -REPLACE_PUTENV!$REPLACE_PUTENV$ac_delim -REPLACE_STRTOD!$REPLACE_STRTOD$ac_delim -VOID_UNSETENV!$VOID_UNSETENV$ac_delim -LOCALE_JA!$LOCALE_JA$ac_delim -LOCALE_FR_UTF8!$LOCALE_FR_UTF8$ac_delim -LOCALE_ZH_CN!$LOCALE_ZH_CN$ac_delim -GNULIB_MEMMEM!$GNULIB_MEMMEM$ac_delim -GNULIB_MEMPCPY!$GNULIB_MEMPCPY$ac_delim -GNULIB_MEMRCHR!$GNULIB_MEMRCHR$ac_delim -GNULIB_RAWMEMCHR!$GNULIB_RAWMEMCHR$ac_delim -GNULIB_STPCPY!$GNULIB_STPCPY$ac_delim -GNULIB_STPNCPY!$GNULIB_STPNCPY$ac_delim -GNULIB_STRCHRNUL!$GNULIB_STRCHRNUL$ac_delim -GNULIB_STRDUP!$GNULIB_STRDUP$ac_delim -GNULIB_STRNDUP!$GNULIB_STRNDUP$ac_delim -GNULIB_STRNLEN!$GNULIB_STRNLEN$ac_delim -GNULIB_STRPBRK!$GNULIB_STRPBRK$ac_delim -GNULIB_STRSEP!$GNULIB_STRSEP$ac_delim -GNULIB_STRSTR!$GNULIB_STRSTR$ac_delim -GNULIB_STRCASESTR!$GNULIB_STRCASESTR$ac_delim -GNULIB_STRTOK_R!$GNULIB_STRTOK_R$ac_delim -GNULIB_MBSLEN!$GNULIB_MBSLEN$ac_delim -GNULIB_MBSNLEN!$GNULIB_MBSNLEN$ac_delim -GNULIB_MBSCHR!$GNULIB_MBSCHR$ac_delim -GNULIB_MBSRCHR!$GNULIB_MBSRCHR$ac_delim -GNULIB_MBSSTR!$GNULIB_MBSSTR$ac_delim -GNULIB_MBSCASECMP!$GNULIB_MBSCASECMP$ac_delim -GNULIB_MBSNCASECMP!$GNULIB_MBSNCASECMP$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-4.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS <conf$$subs.sed -rm -f conf$$subs.sed -cat >>$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof -_ACEOF - - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -GNULIB_MBSPCASECMP!$GNULIB_MBSPCASECMP$ac_delim -GNULIB_MBSCASESTR!$GNULIB_MBSCASESTR$ac_delim -GNULIB_MBSCSPN!$GNULIB_MBSCSPN$ac_delim -GNULIB_MBSPBRK!$GNULIB_MBSPBRK$ac_delim -GNULIB_MBSSPN!$GNULIB_MBSSPN$ac_delim -GNULIB_MBSSEP!$GNULIB_MBSSEP$ac_delim -GNULIB_MBSTOK_R!$GNULIB_MBSTOK_R$ac_delim -GNULIB_STRERROR!$GNULIB_STRERROR$ac_delim -GNULIB_STRSIGNAL!$GNULIB_STRSIGNAL$ac_delim -GNULIB_STRVERSCMP!$GNULIB_STRVERSCMP$ac_delim -HAVE_DECL_MEMMEM!$HAVE_DECL_MEMMEM$ac_delim -HAVE_MEMPCPY!$HAVE_MEMPCPY$ac_delim -HAVE_DECL_MEMRCHR!$HAVE_DECL_MEMRCHR$ac_delim -HAVE_RAWMEMCHR!$HAVE_RAWMEMCHR$ac_delim -HAVE_STPCPY!$HAVE_STPCPY$ac_delim -HAVE_STPNCPY!$HAVE_STPNCPY$ac_delim -HAVE_STRCHRNUL!$HAVE_STRCHRNUL$ac_delim -HAVE_DECL_STRDUP!$HAVE_DECL_STRDUP$ac_delim -HAVE_STRNDUP!$HAVE_STRNDUP$ac_delim -HAVE_DECL_STRNDUP!$HAVE_DECL_STRNDUP$ac_delim -HAVE_DECL_STRNLEN!$HAVE_DECL_STRNLEN$ac_delim -HAVE_STRPBRK!$HAVE_STRPBRK$ac_delim -HAVE_STRSEP!$HAVE_STRSEP$ac_delim -HAVE_STRCASESTR!$HAVE_STRCASESTR$ac_delim -HAVE_DECL_STRTOK_R!$HAVE_DECL_STRTOK_R$ac_delim -HAVE_DECL_STRERROR!$HAVE_DECL_STRERROR$ac_delim -HAVE_DECL_STRSIGNAL!$HAVE_DECL_STRSIGNAL$ac_delim -HAVE_STRVERSCMP!$HAVE_STRVERSCMP$ac_delim -REPLACE_MEMMEM!$REPLACE_MEMMEM$ac_delim -REPLACE_STRDUP!$REPLACE_STRDUP$ac_delim -REPLACE_STRSTR!$REPLACE_STRSTR$ac_delim -REPLACE_STRCASESTR!$REPLACE_STRCASESTR$ac_delim -REPLACE_STRERROR!$REPLACE_STRERROR$ac_delim -REPLACE_STRSIGNAL!$REPLACE_STRSIGNAL$ac_delim -STDARG_H!$STDARG_H$ac_delim -NEXT_STDARG_H!$NEXT_STDARG_H$ac_delim -NEXT_STDIO_H!$NEXT_STDIO_H$ac_delim -NEXT_STDLIB_H!$NEXT_STDLIB_H$ac_delim -HAVE_RANDOM_H!$HAVE_RANDOM_H$ac_delim -HAVE_STRCASECMP!$HAVE_STRCASECMP$ac_delim -HAVE_DECL_STRNCASECMP!$HAVE_DECL_STRNCASECMP$ac_delim -NEXT_STRING_H!$NEXT_STRING_H$ac_delim -NEXT_STRINGS_H!$NEXT_STRINGS_H$ac_delim -HAVE_LSTAT!$HAVE_LSTAT$ac_delim -NEXT_SYS_STAT_H!$NEXT_SYS_STAT_H$ac_delim -SYS_STAT_H!$SYS_STAT_H$ac_delim -NEXT_SYSEXITS_H!$NEXT_SYSEXITS_H$ac_delim -HAVE_SYSEXITS_H!$HAVE_SYSEXITS_H$ac_delim -SYSEXITS_H!$SYSEXITS_H$ac_delim -REPLACE_LOCALTIME_R!$REPLACE_LOCALTIME_R$ac_delim -REPLACE_NANOSLEEP!$REPLACE_NANOSLEEP$ac_delim -REPLACE_STRPTIME!$REPLACE_STRPTIME$ac_delim -REPLACE_TIMEGM!$REPLACE_TIMEGM$ac_delim -NEXT_TIME_H!$NEXT_TIME_H$ac_delim -TIME_H_DEFINES_STRUCT_TIMESPEC!$TIME_H_DEFINES_STRUCT_TIMESPEC$ac_delim -SYS_TIME_H_DEFINES_STRUCT_TIMESPEC!$SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$ac_delim -NEXT_UNISTD_H!$NEXT_UNISTD_H$ac_delim -HAVE_UNISTD_H!$HAVE_UNISTD_H$ac_delim -HAVE_WINT_T!$HAVE_WINT_T$ac_delim -HAVE_WCHAR_H!$HAVE_WCHAR_H$ac_delim -NEXT_WCHAR_H!$NEXT_WCHAR_H$ac_delim -HAVE_ISWCNTRL!$HAVE_ISWCNTRL$ac_delim -NEXT_WCTYPE_H!$NEXT_WCTYPE_H$ac_delim -HAVE_WCTYPE_H!$HAVE_WCTYPE_H$ac_delim -WCTYPE_H!$WCTYPE_H$ac_delim -REPLACE_ISWCNTRL!$REPLACE_ISWCNTRL$ac_delim -LIBTAR_LIBDEPS!$LIBTAR_LIBDEPS$ac_delim -LIBTAR_LTLIBDEPS!$LIBTAR_LTLIBDEPS$ac_delim -LIB_SETSOCKOPT!$LIB_SETSOCKOPT$ac_delim -PU_RMT_PROG!$PU_RMT_PROG$ac_delim -DEFAULT_RMT_DIR!$DEFAULT_RMT_DIR$ac_delim -DEFAULT_RMT_COMMAND!$DEFAULT_RMT_COMMAND$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -DEFAULT_ARCHIVE_FORMAT!$DEFAULT_ARCHIVE_FORMAT$ac_delim -DEFAULT_ARCHIVE!$DEFAULT_ARCHIVE$ac_delim -DEFAULT_BLOCKING!$DEFAULT_BLOCKING$ac_delim -DEFAULT_QUOTING_STYLE!$DEFAULT_QUOTING_STYLE$ac_delim -LIBICONV!$LIBICONV$ac_delim -LTLIBICONV!$LTLIBICONV$ac_delim -USE_NLS!$USE_NLS$ac_delim -GETTEXT_MACRO_VERSION!$GETTEXT_MACRO_VERSION$ac_delim -MSGFMT!$MSGFMT$ac_delim -GMSGFMT!$GMSGFMT$ac_delim -MSGFMT_015!$MSGFMT_015$ac_delim -GMSGFMT_015!$GMSGFMT_015$ac_delim -XGETTEXT!$XGETTEXT$ac_delim -XGETTEXT_015!$XGETTEXT_015$ac_delim -MSGMERGE!$MSGMERGE$ac_delim -XGETTEXT_EXTRA_OPTIONS!$XGETTEXT_EXTRA_OPTIONS$ac_delim -INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim -INTLLIBS!$INTLLIBS$ac_delim -POSUB!$POSUB$ac_delim -AUTOM4TE!$AUTOM4TE$ac_delim -BACKUP_LIBEXEC_SCRIPTS!$BACKUP_LIBEXEC_SCRIPTS$ac_delim -BACKUP_SBIN_SCRIPTS!$BACKUP_SBIN_SCRIPTS$ac_delim -BACKUP_SED_COND!$BACKUP_SED_COND$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-5.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS <conf$$subs.sed -rm -f conf$$subs.sed -cat >>$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof -_ACEOF - + print line +} -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -gl_LIBOBJS!$gl_LIBOBJS$ac_delim -gl_LTLIBOBJS!$gl_LTLIBOBJS$ac_delim -gltests_LIBOBJS!$gltests_LIBOBJS$ac_delim -gltests_LTLIBOBJS!$gltests_LTLIBOBJS$ac_delim +_ACAWK _ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 4; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-6.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS <conf$$subs.sed -rm -f conf$$subs.sed -cat >>$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof -_ACEOF - # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and @@ -43648,19 +52086,133 @@ s/^[^=]*=[ ]*$// }' fi -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; @@ -43689,26 +52241,38 @@ echo "$as_me: error: Invalid tag $ac_tag." >&2;} [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac - ac_file_inputs="$ac_file_inputs $ac_f" + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ - configure_input="Generated from "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; esac ;; esac @@ -43718,7 +52282,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -43744,7 +52308,7 @@ echo X"$ac_file" | as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -43753,7 +52317,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -43774,17 +52338,17 @@ echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -43829,12 +52393,13 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix esac _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= -case `sed -n '/datarootdir/ { +ac_sed_dataroot=' +/datarootdir/ { p q } @@ -43843,13 +52408,14 @@ case `sed -n '/datarootdir/ { /@infodir@/p /@localedir@/p /@mandir@/p -' $ac_file_inputs` in +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g @@ -43863,15 +52429,16 @@ _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t +s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t @@ -43882,121 +52449,60 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" | sed -f "$tmp/subs-4.sed" | sed -f "$tmp/subs-5.sed" | sed -f "$tmp/subs-6.sed" >$tmp/out +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then - echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - rm -f $ac_file - mv "$tmp/config.h" $ac_file + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } fi else - echo "/* $configure_input */" - cat "$ac_result" + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } fi - rm -f "$tmp/out12" -# Compute $ac_file's index in $config_headers. -_am_arg=$ac_file +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in @@ -44011,7 +52517,7 @@ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -echo X"$_am_arg" | +$as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -44031,30 +52537,40 @@ echo X"$_am_arg" | s/.*/./; q'`/stamp-h$_am_stamp_count ;; - :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 -echo "$as_me: executing $ac_file commands" >&6;} + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || -echo X"$mf" | +$as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -44072,33 +52588,33 @@ echo X"$mf" | q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$file" | +$as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -44116,7 +52632,7 @@ echo X"$file" | q } s/.*/./; q'` - { as_dir=$dirpart/$fdir + { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac @@ -44124,7 +52640,7 @@ echo X"$file" | as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -44133,7 +52649,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -44154,13 +52670,14 @@ echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done done -done +} ;; "po-directories":C) for ac_file in $CONFIG_FILES; do @@ -44308,6 +52825,11 @@ _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. @@ -44329,4 +52851,8 @@ if test "$no_create" != yes; then # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi diff --git a/configure.ac b/configure.ac index 762f8e4576dbf536893c172584f55593b9066e19..5535b7097a97ef382d9107959b0da189ebc1d85f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,8 @@ # Configure template for GNU tar. -*- autoconf -*- # Copyright (C) 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 @@ -18,12 +19,15 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. -AC_INIT([GNU tar], [1.22], [bug-tar@gnu.org]) +AC_INIT([GNU tar], [1.23], [bug-tar@gnu.org]) AC_CONFIG_SRCDIR([src/tar.c]) AC_CONFIG_AUX_DIR([build-aux]) -AC_CONFIG_HEADERS([config.h:config.hin]) -AC_PREREQ([2.60]) -AM_INIT_AUTOMAKE([1.9 gnits tar-ustar dist-bzip2 dist-shar std-options]) +AC_CONFIG_HEADERS([config.h]) +AC_PREREQ([2.63]) +AM_INIT_AUTOMAKE([1.11 gnits tar-ustar dist-bzip2 dist-shar std-options silent-rules]) + +# Enable silent rules by default: +AM_SILENT_RULES([yes]) AC_PROG_CC AC_EXEEXT @@ -48,7 +52,6 @@ AC_CHECK_HEADERS([sys/buf.h], [], [], #endif]) AC_HEADER_SYS_WAIT -AM_STDBOOL_H AC_HEADER_DIRENT AC_HEADER_MAJOR @@ -122,6 +125,14 @@ else [Define to the full path of your rsh, if any.]) fi +TAR_COMPR_PROGRAM(compress) +TAR_COMPR_PROGRAM(gzip) +TAR_COMPR_PROGRAM(bzip2) +TAR_COMPR_PROGRAM(lzip) +TAR_COMPR_PROGRAM(lzma) +TAR_COMPR_PROGRAM(lzop) +TAR_COMPR_PROGRAM(xz) + AC_MSG_CHECKING(for default archive format) AC_ARG_VAR([DEFAULT_ARCHIVE_FORMAT], @@ -241,6 +252,7 @@ fi AC_OUTPUT([Makefile\ doc/Makefile\ + gnu/Makefile\ lib/Makefile\ po/Makefile.in\ scripts/Makefile\ diff --git a/doc/Makefile.am b/doc/Makefile.am index 1715d3566b9bd38dd6d110e822dfd0a5cb76e83c..ec771ca2908748fd094d81e6efa8e2b19b18b288 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -59,25 +59,28 @@ check-format: fi check-options: - @ARGP_HELP_FMT='usage-indent=0,short-opt-col=0,long-opt-col=0,\ -doc-opt-col=0,opt-doc-col=0,header-col=0,rmargin=1' \ + @ARGP_HELP_FMT='usage-indent=0,short-opt-col=0,long-opt-col=0,doc-opt-col=0,opt-doc-col=0,header-col=0,rmargin=1' \ $(top_builddir)/src/tar --usage | \ sed -n 's/^\[--\([^]\=\[]*\).*/\1/p' | sort | uniq > opts.$$$$;\ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) | \ sed -n '/^@macro/,/^@end macro/d;s/@opindex *\([^@,]*\).*/\1/p' \ | sort | uniq > docs.$$$$;\ - (echo 'Not documented options:';\ - join -v1 opts.$$$$ docs.$$$$;\ - echo 'Non-existing options:';\ - join -v2 opts.$$$$ docs.$$$$) > report.$$$$;\ - rm opts.$$$$ docs.$$$$;\ - if [ -n "`sed '1,2d' report.$$$$`" ]; then \ - cat report.$$$$;\ - rm report.$$$$;\ - exit 1;\ - fi;\ - rm report.$$$$ + status=0;\ + join -v1 opts.$$$$ docs.$$$$ > report.$$$$;\ + if test -s report.$$$$; then \ + echo 'Not documented options:'; \ + cat report.$$$$; \ + status=1; \ + fi; \ + join -v2 opts.$$$$ docs.$$$$ > report.$$$$;\ + if test -s report.$$$$; then \ + echo 'Non-existing options:';\ + cat report.$$$$; \ + status=1; \ + fi; \ + rm opts.$$$$ docs.$$$$ report.$$$$;\ + test $$status -ne 0 && exit $$status check-refs: @for file in $(info_TEXINFOS) $(tar_TEXINFOS); \ diff --git a/doc/Makefile.in b/doc/Makefile.in index cfee88ea0778c4769786c104543736a9ce062f9e..fe32c188ba055ad2bdc9c2a3e2fe92e394ee48db 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -20,8 +21,9 @@ # 2007 Free Software Foundation, Inc. VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -44,63 +46,71 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/canonicalize-lgpl.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ - $(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \ - $(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \ - $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \ - $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \ - $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ - $(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ - $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ - $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ - $(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \ - $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \ - $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \ - $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \ - $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ @@ -116,22 +126,31 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \ - $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \ - $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ - $(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ - $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = INFO_DEPS = $(srcdir)/tar.info @@ -152,12 +171,28 @@ am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -186,7 +221,6 @@ DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRENT_H = @DIRENT_H@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -199,7 +233,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ -FCNTL_H = @FCNTL_H@ FLOAT_H = @FLOAT_H@ FNMATCH_H = @FNMATCH_H@ GETOPT_H = @GETOPT_H@ @@ -211,45 +244,59 @@ GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ @@ -272,15 +319,31 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PUTC = @GNULIB_PUTC@ @@ -290,13 +353,20 @@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ @@ -307,6 +377,7 @@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ @@ -317,8 +388,16 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ @@ -338,8 +417,11 @@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ @@ -364,37 +446,68 @@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ -HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ @@ -408,7 +521,6 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRNDUP = @HAVE_STRNDUP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ @@ -417,6 +529,8 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ @@ -425,11 +539,15 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -447,16 +565,14 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -INTTYPES_H = @INTTYPES_H@ LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTAR_LIBDEPS = @LIBTAR_LIBDEPS@ -LIBTAR_LTLIBDEPS = @LIBTAR_LTLIBDEPS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LIB_CLOSE = @LIB_CLOSE@ LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ @@ -471,12 +587,36 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ @@ -505,25 +645,40 @@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PU_RMT_PROG = @PU_RMT_PROG@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ @@ -533,26 +688,53 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRPTIME = @REPLACE_STRPTIME@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -560,6 +742,7 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ @@ -570,22 +753,20 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYSEXITS_H = @SYSEXITS_H@ -SYS_STAT_H = @SYS_STAT_H@ -SYS_TIME_H = @SYS_TIME_H@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -VOID_UNSETENV = @VOID_UNSETENV@ -WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ -WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -643,6 +824,7 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ info_TEXINFOS = tar.texi @@ -676,14 +858,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits doc/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -701,10 +883,11 @@ $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): .texi.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ - am__cwd=`pwd` && cd $(srcdir) && \ + am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ @@ -716,10 +899,10 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) -o $@ $<; \ then \ rc=0; \ - cd $(srcdir); \ + $(am__cd) $(srcdir); \ else \ rc=$$?; \ - cd $(srcdir) && \ + $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc @@ -776,16 +959,18 @@ maintainer-clean-vti: uninstall-dvi-am: @$(NORMAL_UNINSTALL) - @list='$(DVIS)'; for p in $$list; do \ - f=$(am__strip_dir) \ + @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) - @list='$(HTMLS)'; for p in $$list; do \ - f=$(am__strip_dir) \ + @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done @@ -799,7 +984,8 @@ uninstall-info-am: for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ - install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ + if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ + then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @@ -815,16 +1001,18 @@ uninstall-info-am: uninstall-pdf-am: @$(NORMAL_UNINSTALL) - @list='$(PDFS)'; for p in $$list; do \ - f=$(am__strip_dir) \ + @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) - @list='$(PSS)'; for p in $$list; do \ - f=$(am__strip_dir) \ + @list='$(PSS)'; test -n "$(psdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done @@ -841,16 +1029,19 @@ dist-info: $(INFO_DEPS) for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ - test -f $(distdir)/$$relfile || \ - cp -p $$file $(distdir)/$$relfile; \ + test -f "$(distdir)/$$relfile" || \ + cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: - -rm -rf tar.aux tar.cp tar.cps tar.fn tar.ky tar.log tar.op tar.ops tar.pg \ - tar.tmp tar.toc tar.tp tar.tps tar.vr tar.dvi tar.pdf tar.ps \ - tar.html + -rm -rf tar.aux tar.cp tar.cps tar.fn tar.kw tar.ky tar.log tar.op tar.ops \ + tar.pg tar.tmp tar.toc tar.tp tar.tps tar.vr + +clean-aminfo: + -test -z "tar.dvi tar.pdf tar.ps tar.html" \ + || rm -rf tar.dvi tar.pdf tar.ps tar.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ @@ -881,13 +1072,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -921,13 +1116,14 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-local mostlyclean-am +clean-am: clean-aminfo clean-generic clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile @@ -952,11 +1148,14 @@ install-dvi: install-dvi-am install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)" - @list='$(DVIS)'; for p in $$list; do \ + @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \ - $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: @@ -965,26 +1164,31 @@ install-html: install-html-am install-html-am: $(HTMLS) @$(NORMAL_INSTALL) test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)" - @list='$(HTMLS)'; for p in $$list; do \ + @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ + for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ + $(am__strip_dir) \ if test -d "$$d$$p"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \ - $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \ + $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ - echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \ - $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \ + list2="$$list2 $$d$$p"; \ fi; \ - done + done; \ + test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ + done; } install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)" @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - list='$(INFO_DEPS)'; \ + list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ @@ -992,18 +1196,19 @@ install-info-am: $(INFO_DEPS) if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ - $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ + $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ - relfile=`echo "$$ifile" | sed 's|^.*/||'`; \ - echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \ - $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \ + echo "$$ifile"; \ else : ; fi; \ done; \ - done + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ - list='$(INFO_DEPS)'; \ + list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ @@ -1017,23 +1222,27 @@ install-pdf: install-pdf-am install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)" - @list='$(PDFS)'; for p in $$list; do \ + @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \ - $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \ - done + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-am install-ps-am: $(PSS) @$(NORMAL_INSTALL) test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)" - @list='$(PSS)'; for p in $$list; do \ + @list='$(PSS)'; test -n "$(psdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \ - $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \ - done + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-am @@ -1058,14 +1267,14 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic clean-local \ - dist-info distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: all all-am check check-am clean clean-aminfo clean-generic \ + clean-local dist-info distclean distclean-generic distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic \ maintainer-clean-vti mostlyclean mostlyclean-aminfo \ mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \ @@ -1093,25 +1302,28 @@ check-format: fi check-options: - @ARGP_HELP_FMT='usage-indent=0,short-opt-col=0,long-opt-col=0,\ -doc-opt-col=0,opt-doc-col=0,header-col=0,rmargin=1' \ + @ARGP_HELP_FMT='usage-indent=0,short-opt-col=0,long-opt-col=0,doc-opt-col=0,opt-doc-col=0,header-col=0,rmargin=1' \ $(top_builddir)/src/tar --usage | \ sed -n 's/^\[--\([^]\=\[]*\).*/\1/p' | sort | uniq > opts.$$$$;\ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \ $(info_TEXINFOS) | \ sed -n '/^@macro/,/^@end macro/d;s/@opindex *\([^@,]*\).*/\1/p' \ | sort | uniq > docs.$$$$;\ - (echo 'Not documented options:';\ - join -v1 opts.$$$$ docs.$$$$;\ - echo 'Non-existing options:';\ - join -v2 opts.$$$$ docs.$$$$) > report.$$$$;\ - rm opts.$$$$ docs.$$$$;\ - if [ -n "`sed '1,2d' report.$$$$`" ]; then \ - cat report.$$$$;\ - rm report.$$$$;\ - exit 1;\ - fi;\ - rm report.$$$$ + status=0;\ + join -v1 opts.$$$$ docs.$$$$ > report.$$$$;\ + if test -s report.$$$$; then \ + echo 'Not documented options:'; \ + cat report.$$$$; \ + status=1; \ + fi; \ + join -v2 opts.$$$$ docs.$$$$ > report.$$$$;\ + if test -s report.$$$$; then \ + echo 'Non-existing options:';\ + cat report.$$$$; \ + status=1; \ + fi; \ + rm opts.$$$$ docs.$$$$ report.$$$$;\ + test $$status -ne 0 && exit $$status check-refs: @for file in $(info_TEXINFOS) $(tar_TEXINFOS); \ @@ -1171,6 +1383,7 @@ manual: MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \ TEXI2DVI="$(TEXI2DVI) -t @finalout" \ $(GENDOCS) --texi2html tar 'GNU tar manual' + # 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. .NOEXPORT: diff --git a/doc/genfile.texi b/doc/genfile.texi index f9ef870104e5e0e7f5c2cac48aa2adb670636a84..b37e26ecc35f49d4ad39def3048e0dada7a34e43 100644 --- a/doc/genfile.texi +++ b/doc/genfile.texi @@ -1,5 +1,5 @@ @c This is part of the paxutils manual. -@c Copyright (C) 2005, 2006 Free Software Foundation, Inc. +@c Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc. @c Written by Sergey Poznyakoff @c This file is distributed under GFDL 1.1 or any later version @c published by the Free Software Foundation. @@ -268,31 +268,14 @@ commands when some of the files change during archiving. It is an experimental mode. The @samp{Exec Mode} is toggled by @option{--run} command line -option (or its alias @option{-r}). The argument to this option gives -the command line to be executed. The actual command line is -constructed by inserting @option{--checkpoint} option between the -command name and its first argument (if any). Due to this, the -argument to @option{--run} may not use traditional @command{tar} -option syntax, i.e., the following is wrong: +option (or its alias @option{-r}). The non-optional arguments to +@command{getopt} give the command line to be executed. Normally, +it should contain at least the @option{--checkpoint} option. -@smallexample -# Wrong! -genfile --run 'tar cf foo bar' -@end smallexample - -@noindent - -Use the following syntax instead: - -@smallexample -genfile --run 'tar -cf foo bar' -@end smallexample - - The rest of command line after @option{--run} or its equivalent -specifies checkpoint values and actions to be executed upon reaching -them. Checkpoint values are introduced with @option{--checkpoint} -command line option. Argument to this option is the number of -checkpoint in decimal. + A set of options is provided for defining checkpoint values and +actions to be executed upon reaching them. Checkpoint values are +introduced with the @option{--checkpoint} command line +option. Argument to this option is the number of checkpoint in decimal. Any number of @dfn{actions} may be specified after a checkpoint. Available actions are @@ -316,7 +299,9 @@ an almost arbitrary format (@pxref{Date input formats}). @item --exec @var{command} Execute given shell command. - + +@item --unlink @var{file} + Unlink the @var{file}. @end table Option @option{--verbose} instructs @command{genfile} to print on @@ -329,3 +314,35 @@ connected to descriptor 1. All messages it prints to file descriptor error. @command{Genfile} exits with the exit status of the executed command. + + For compatibility with previous @command{genfile} versions, the +@option{--run} option takes an optional argument. If used this way, +its argument supplies the command line to be executed. There should +be no non-optional arguments in the @command{genfile} command line. + + The actual command line is constructed by inserting +the @option{--checkpoint} option between the command name and its +first argument (if any). Due to this, the argument to @option{--run} +may not use traditional @command{tar} option syntax, i.e., the +following is wrong: + +@smallexample +# Wrong! +genfile --run='tar cf foo bar' +@end smallexample + +@noindent + +Use the following syntax instead: + +@smallexample +genfile --run='tar -cf foo bar' @var{actions}... +@end smallexample + +The above command line is equivalent to + +@smallexample +genfile @var{actions}... -- tar -cf foo bar +@end smallexample + +Notice, that the use of compatibility mode is deprecated. diff --git a/doc/getdate.texi b/doc/getdate.texi index e7947800d383c8eea895aba760b5b16f84350e3a..48e8b683433051a74458a90d729a7f953c643b25 100644 --- a/doc/getdate.texi +++ b/doc/getdate.texi @@ -1,7 +1,7 @@ @c GNU date syntax documentation -@c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@c 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +@c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +@c 2004, 2005, 2006, 2009, 2010 Free Software Foundation, Inc. @c Permission is granted to copy, distribute and/or modify this document @c under the terms of the GNU Free Documentation License, Version 1.3 or diff --git a/doc/snapshot.texi b/doc/snapshot.texi index 33664025a6907932dec2fe6e019e11827fb9bd34..656fd18372a60ffebd11d5571fe950cfd0bc3b2d 100644 --- a/doc/snapshot.texi +++ b/doc/snapshot.texi @@ -23,14 +23,14 @@ snapshots only in format 2. This appendix describes all three formats in detail. @enumerate 0 -@cindex format 0, snapshot file +@cindex format 0, snapshot file @cindex snapshot file, format 0 -@item +@item @samp{Format 0} snapshot file begins with a line containing a decimal number that represents a @acronym{UNIX} timestamp of the beginning of the last archivation. This line is followed by directory metadata descriptions, one per line. Each description has the -following format: +following format: @smallexample @var{nfs}@var{dev} @var{inode} @var{name} @@ -55,9 +55,9 @@ Name of the directory. Any special characters (white-space, backslashes, etc.) are quoted. @end table -@cindex format 1, snapshot file +@cindex format 1, snapshot file @cindex snapshot file, format 1 -@item +@item @samp{Format 1} snapshot file begins with a line specifying the format of the file. This line has the following structure: @@ -69,7 +69,7 @@ format of the file. This line has the following structure: where @var{tar-version} is the version number of @GNUTAR{} implementation that created this snapshot, and @var{incr-format-version} is the version number of the snapshot format -(in this case @samp{1}). +(in this case @samp{1}). Next line contains two decimal numbers, representing the time of the last backup. First number is the number of seconds, the @@ -89,11 +89,11 @@ modification time of this directory with nanosecond precision; @var{nfs}, @var{dev}, @var{inode} and @var{name} have the same meaning as with @samp{format 0}. -@cindex format 2, snapshot file +@cindex format 2, snapshot file @cindex snapshot file, format 2 -@item @FIXME{} - A snapshot file begins with a format identifier, as described for +@item + @samp{Format 2} snapshot file begins with a format identifier, as described for version 1, e.g.: @smallexample @@ -109,7 +109,7 @@ snapshot is a binary file. time of the last backup. First number is the number of seconds, the second one is the number of nanoseconds, since the beginning of the epoch. These are followed by arbitrary number of directory records. - + Each @dfn{directory record} contains a set of metadata describing a particular directory. Parts of a directory record are delimited with @acronym{ASCII} 0 characters. The following table describes each @@ -124,11 +124,11 @@ an @acronym{NFS}-mounted partition, or @samp{0} otherwise; @item mtime-nano @tab Number @tab Modification time, nanoseconds; @item dev-no @tab Number @tab Device number; @item i-no @tab Number @tab I-node number; -@item name @tab String @tab Directory name; In contrast to the -previous versions it is not quoted. +@item name @tab String @tab Directory name; in contrast to the +previous versions it is not quoted; @item contents @tab Dumpdir @tab Contents of the directory; @xref{Dumpdir}, for a description of its format. -@item +@item @end multitable Dumpdirs stored in snapshot files contain only records of types @@ -138,4 +138,3 @@ previous versions it is not quoted. @c End of snapshot.texi - diff --git a/doc/sparse.texi b/doc/sparse.texi index e8a9ea1e8c982d4e3222a6e68c2851377c3f65fc..d48375c178398e68effdd43d616ade9ea81ac213 100644 --- a/doc/sparse.texi +++ b/doc/sparse.texi @@ -14,12 +14,12 @@ The support for sparse files in @GNUTAR{} has a long history. The earliest version featuring this support that I was able to find was 1.09, released in November, 1990. The format introduced back then is called @dfn{old GNU} sparse format and in spite of the fact that its design -contained many flaws, it was the only format @GNUTAR{} supported +contained many flaws, it was the only format @GNUTAR{} supported until version 1.14 (May, 2004), which introduced initial support for sparse archives in @acronym{PAX} archives (@pxref{posix}). This -format was not free from design flows, either and it was subsequently +format was not free from design flaws, either and it was subsequently improved in versions 1.15.2 (November, 2005) and 1.15.92 (June, -2006). +2006). In addition to GNU sparse format, @GNUTAR{} is able to read and extract sparse files archived by @command{star}. @@ -37,7 +37,7 @@ The following subsections describe each format in detail. @cindex sparse formats, Old GNU @cindex Old GNU sparse format -The format introduced some time around 1990 (v. 1.09). It was +The format introduced in November 1990 (v. 1.09) was designed on top of standard @code{ustar} headers in such an unfortunate way that some of its fields overwrote fields required by POSIX. @@ -61,7 +61,7 @@ extension sparse header follows, @code{0} otherwise. @end multitable Each of @code{sparse_header} object at offset 386 describes a single -data chunk. It has the following structure: +data chunk. It has the following structure: @multitable @columnfractions 0.10 0.10 0.20 0.60 @headitem Offset @tab Size @tab Data type @tab Contents @@ -78,7 +78,7 @@ the following structure: @multitable @columnfractions 0.10 0.10 0.20 0.20 0.40 @headitem Offset @tab Size @tab Name @tab Data type @tab Contents @item 0 @tab 21 @tab sp @tab @code{sparse_header} @tab -(21 entires) File map. +(21 entries) File map. @item 504 @tab 1 @tab isextended @tab Bool @tab @code{1} if an extension sparse header follows, or @code{0} otherwise. @end multitable @@ -97,19 +97,19 @@ versions 1.14--1.15.1. The sparse file map is kept in extended @table @code @vrindex GNU.sparse.size, extended header variable @item GNU.sparse.size -Real size of the stored file +Real size of the stored file; @item GNU.sparse.numblocks @vrindex GNU.sparse.numblocks, extended header variable -Number of blocks in the sparse map +Number of blocks in the sparse map; @item GNU.sparse.offset @vrindex GNU.sparse.offset, extended header variable -Offset of the data block +Offset of the data block; @item GNU.sparse.numbytes @vrindex GNU.sparse.numbytes, extended header variable -Size of the data block +Size of the data block. @end table The latter two variables repeat for each data block, so the overall @@ -117,11 +117,11 @@ structure is like this: @smallexample @group -GNU.sparse.size=@var{size} -GNU.sparse.numblocks=@var{numblocks} +GNU.sparse.size=@var{size} +GNU.sparse.numblocks=@var{numblocks} repeat @var{numblocks} times - GNU.sparse.offset=@var{offset} - GNU.sparse.numbytes=@var{numbytes} + GNU.sparse.offset=@var{offset} + GNU.sparse.numbytes=@var{numbytes} end repeat @end group @end smallexample @@ -136,8 +136,8 @@ meaningful. Thus, multiple occurrences of @code{GNU.sparse.offset} and @code{GNU.sparse.numbytes} are conflicting with the POSIX specs. @item -Attempting to extract such archives using a third-party @command{tar}s -results in extraction of sparse files in @emph{compressed form}. If +Attempting to extract such archives using a third-party's @command{tar} +results in extraction of sparse files in @emph{condensed form}. If the @command{tar} implementation in question does not support POSIX format, it will also extract a file containing extension header attributes. This file can be used to expand the file to its original @@ -160,7 +160,7 @@ it uses a single variable: @item GNU.sparse.map @vrindex GNU.sparse.map, extended header variable Map of non-null data chunks. It is a string consisting of -comma-separated values "@var{offset},@var{size}[,@var{offset-1},@var{size-1}...]" +comma-separated values "@var{offset},@var{size}[,@var{offset-1},@var{size-1}...]" @end table To address the 2nd problem, the @code{name} field in @code{ustar} @@ -181,7 +181,7 @@ restore such members using non-GNU @command{tar}s. The resulting @code{GNU.sparse.map} string can be @emph{very} long. Although POSIX does not impose any limit on the length of a @code{x} -header variable, this possibly can confuse some tars. +header variable, this possibly can confuse some @command{tar}s. @node PAX 1 @appendixsubsec PAX Format, Version 1.0 @@ -218,18 +218,18 @@ The real name of the sparse file is stored in the variable variable @code{GNU.sparse.realsize}. The sparse map itself is stored in the file data block, preceding the actual -file data. It consists of a series of octal numbers of arbitrary length, delimited +file data. It consists of a series of octal numbers of arbitrary length, delimited by newlines. The map is padded with nulls to the nearest block boundary. The first number gives the number of entries in the map. Following are map entries, each one consisting of two numbers giving the offset and size of the data block it describes. -The format is designed in such a way that non-posix aware tars and tars not +The format is designed in such a way that non-posix aware @command{tar}s and @command{tar}s not supporting @code{GNU.sparse.*} keywords will extract each sparse file in its condensed form with the file map prepended and will place it into a separate directory. Then, using a simple program it would be possible to expand the file to its original form even without @GNUTAR{}. @xref{Sparse Recovery}, for the detailed information on how to extract sparse members without @GNUTAR{}. - + diff --git a/doc/stamp-vti b/doc/stamp-vti index d015a3c5afb49793e7b18c9e5a0ada835db75ba5..591fd0e3e70cd7e317ae7161a8aad8152c98946e 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 5 March 2009 -@set UPDATED-MONTH March 2009 -@set EDITION 1.22 -@set VERSION 1.22 +@set UPDATED 9 March 2010 +@set UPDATED-MONTH March 2010 +@set EDITION 1.23 +@set VERSION 1.23 diff --git a/doc/tar-snapshot-edit.texi b/doc/tar-snapshot-edit.texi index 9c01a4ae35b5aed81b5fec44c1c31701e450f378..9c930efe3c8ef493329ee845c54d6d6273941603 100644 --- a/doc/tar-snapshot-edit.texi +++ b/doc/tar-snapshot-edit.texi @@ -7,7 +7,7 @@ @cindex snapshot files, editing @cindex snapshot files, fixing device numbers Sometimes device numbers can change after upgrading your kernel -version or recofiguring the harvare. Reportedly this is the case with +version or reconfiguring the hardware. Reportedly this is the case with some newer @i{Linux} kernels, when using @acronym{LVM}. In majority of cases this change is unnoticed by the users. However, it influences @command{tar} incremental backups: the device number is stored in tar @@ -21,9 +21,9 @@ the @command{tar-snapshot-edit} utility for inspecting and updating device numbers in snapshot files. The utility, written by Dustin J.@: Mitchell, is available from @uref{http://www.gnu.org/@/software/@/tar/@/utils/@/tar-snapshot-edit.html, -@GNUTAR{} home page}. +@GNUTAR{} home page}. - To obtain the device numbers used in the snapshot file, run + To obtain the device numbers used in the snapshot file, run @smallexample $ @kbd{tar-snapshot-edit @var{snapfile}} @@ -31,7 +31,7 @@ $ @kbd{tar-snapshot-edit @var{snapfile}} @noindent where @var{snapfile} is the name of the snapshot file (you can supply as many -files as you wish in a single command line ). +files as you wish in a single command line). To update all occurrences of the given device number in the file, use @option{-r} option. It takes a single argument of the form diff --git a/doc/tar.info b/doc/tar.info index 0dd4e8d79851be2e82d8452851328077000abfd5..0ac94fe1b3c5e5fe3e4f96a2a3f96242dd0f8a35 100644 --- a/doc/tar.info +++ b/doc/tar.info @@ -1,10 +1,10 @@ This is tar.info, produced by makeinfo version 4.13 from tar.texi. -This manual is for GNU `tar' (version 1.22, 5 March 2009), which +This manual is for GNU `tar' (version 1.23, 9 March 2010), which creates and extracts files from archives. Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, -2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, @@ -30,377 +30,385 @@ END-INFO-DIR-ENTRY Indirect: -tar.info-1: 1246 -tar.info-2: 300776 +tar.info-1: 1252 +tar.info-2: 299753 Tag Table: (Indirect) -Node: Top1246 -Node: Introduction10516 -Node: Book Contents11303 -Node: Definitions13475 -Node: What tar Does15278 -Node: Naming tar Archives18044 -Node: Authors18764 -Node: Reports20577 -Node: Tutorial20937 -Node: assumptions21750 -Node: stylistic conventions24225 -Node: basic tar options24668 -Node: frequent operations28306 -Node: Two Frequent Options28958 -Node: file tutorial29589 -Node: verbose tutorial30950 -Ref: verbose member listing33164 -Node: help tutorial35917 -Node: create36271 -Node: prepare for examples37772 -Node: Creating the archive39540 -Node: create verbose42372 -Node: short create43193 -Node: create dir45946 -Node: list48653 -Ref: listing member and file names49927 -Node: list dir52208 -Node: extract53197 -Node: extracting archives54374 -Node: extracting files54864 -Ref: extracting files-Footnote-157511 -Node: extract dir57891 -Node: extracting untrusted archives60274 -Node: failing commands61153 -Node: going further62253 -Node: tar invocation62466 -Node: Synopsis63978 -Node: using tar options68947 -Ref: TAR_OPTIONS70532 -Node: Styles71549 -Node: Long Options73261 -Node: Short Options75433 -Ref: Short Options-Footnote-177241 -Node: Old Options77458 -Ref: Old Options-Footnote-180408 -Node: Mixing80578 -Ref: Mixing-Footnote-182944 -Node: All Options83064 -Node: Operation Summary83669 -Ref: --append83789 -Ref: --catenate83869 -Ref: --compare83940 -Ref: --concatenate84143 -Ref: --create84253 -Ref: --delete84321 -Ref: --diff84434 -Ref: --extract84490 -Ref: --get84592 -Ref: --list84650 -Ref: --update84718 -Node: Option Summary84928 -Ref: --absolute-names85083 -Ref: --after-date85261 -Ref: --anchored85313 -Ref: --atime-preserve85446 -Ref: --auto-compress87961 -Ref: --backup88188 -Ref: --block-number88379 -Ref: --blocking-factor88553 -Ref: --bzip288705 -Ref: --check-device88812 -Ref: --checkpoint89007 -Ref: --checkpoint-action89448 -Ref: --check-links90599 -Ref: --compress90876 -Ref: --uncompress90876 -Ref: --confirmation91080 -Ref: --delay-directory-restore91148 -Ref: --dereference91349 -Ref: --directory91534 -Ref: --exclude91787 -Ref: --exclude-from91906 -Ref: --exclude-caches92052 -Ref: --exclude-caches-under92246 -Ref: --exclude-caches-all92424 -Ref: --exclude-tag92553 -Ref: --exclude-tag-under92708 -Ref: --exclude-tag-all92876 -Ref: --exclude-vcs92990 -Ref: --file93145 -Ref: --files-from93345 -Ref: --force-local93548 -Ref: --format93739 -Ref: --group94409 -Ref: --gzip94757 -Ref: --gunzip94757 -Ref: --ungzip94757 -Ref: --hard-dereference94980 -Ref: --help95167 -Ref: --ignore-case95301 -Ref: --ignore-command-error95428 -Ref: --ignore-failed-read95539 -Ref: --ignore-zeros95669 -Ref: --incremental95814 -Ref: --index-file96079 -Ref: --info-script96164 -Ref: --new-volume-script96164 -Ref: --interactive96485 -Ref: --keep-newer-files96697 -Ref: --keep-old-files96839 -Ref: --label96970 -Ref: --listed-incremental97258 -Ref: --lzma97622 -Ref: --mode97822 -Ref: --mtime98113 -Ref: --multi-volume98554 -Ref: --newer98755 -Ref: --newer-mtime99033 -Ref: --no-anchored99257 -Ref: --no-auto-compress99394 -Ref: --no-check-device99545 -Ref: --no-delay-directory-restore99728 -Ref: --no-ignore-case99981 -Ref: --no-ignore-command-error100074 -Ref: --no-null100229 -Ref: --no-overwrite-dir100434 -Ref: --no-quote-chars100577 -Ref: --no-recursion100758 -Ref: --no-same-owner100863 -Ref: --no-same-permissions101046 -Ref: --no-unquote101248 -Ref: --no-wildcards101386 -Ref: --no-wildcards-match-slash101470 -Ref: --null101572 -Ref: --numeric-owner101800 -Ref: --occurrence102451 -Ref: --old-archive103018 -Ref: --one-file-system103067 -Ref: --overwrite103245 -Ref: --overwrite-dir103387 -Ref: --owner103532 -Ref: --pax-option103911 -Ref: --portability104210 -Ref: --posix104275 -Ref: --preserve104317 -Ref: --preserve-order104455 -Ref: --preserve-permissions104519 -Ref: --same-permissions104519 -Ref: --quote-chars104933 -Ref: --quoting-style105086 -Ref: --read-full-records105407 -Ref: --record-size105572 -Ref: --recursion105703 -Ref: --recursive-unlink105806 -Ref: --remove-files105973 -Ref: --restrict106119 -Ref: --rmt-command106307 -Ref: --rsh-command106448 -Ref: --same-order106570 -Ref: --same-owner106862 -Ref: --seek107239 -Ref: --show-defaults107496 -Ref: --show-omitted-dirs107864 -Ref: --show-transformed-names108018 -Ref: --show-stored-names108018 -Ref: --sparse108407 -Ref: --sparse-version108546 -Ref: --starting-file108770 -Ref: --strip-components108959 -Ref: --suffix109271 -Ref: --tape-length109406 -Ref: --test-label109561 -Ref: --to-command109713 -Ref: --to-stdout109872 -Ref: --totals110025 -Ref: --touch110256 -Ref: --transform110458 -Ref: --xform110458 -Ref: --unlink-first111069 -Ref: --unquote111237 -Ref: --use-compress-program111344 -Ref: --utc111522 -Ref: --verbose111615 -Ref: --verify111867 -Ref: --version111985 -Ref: --volno-file112157 -Ref: --wildcards112344 -Ref: --wildcards-match-slash112464 -Ref: --xz112556 -Ref: Option Summary-Footnote-1112687 -Node: Short Option Summary112905 -Node: help115106 -Ref: help-Footnote-1118936 -Node: defaults119146 -Node: verbose120163 -Ref: totals122464 -Ref: Progress information124054 -Ref: show-omitted-dirs125033 -Ref: block-number125452 -Ref: verbose-Footnote-1126479 -Node: checkpoints126586 -Node: interactive131983 -Node: operations134066 -Node: Basic tar134325 -Ref: Basic tar-Footnote-1137429 -Node: Advanced tar137573 -Node: Operations138418 -Node: append140388 -Ref: append-Footnote-1143553 -Node: appending files143719 -Node: multiple145500 -Node: update148190 -Node: how to update149229 -Node: concatenate151012 -Ref: concatenate-Footnote-1154261 -Node: delete154399 -Node: compare156242 -Node: create options157732 -Node: override158190 -Node: Ignore Failed Read161628 -Node: extract options161848 -Node: Reading162744 -Node: read full records164307 -Node: Ignore Zeros164643 -Node: Writing165634 -Node: Dealing with Old Files166191 -Node: Overwrite Old Files168618 -Node: Keep Old Files170075 -Node: Keep Newer Files170585 -Node: Unlink First170875 -Node: Recursive Unlink171279 -Node: Data Modification Times171832 -Node: Setting Access Permissions172642 -Node: Directory Modification Times and Permissions173274 -Node: Writing to Standard Output176880 -Node: Writing to an External Program178415 -Node: remove files181152 -Node: Scarce181345 -Node: Starting File181593 -Node: Same Order182413 -Node: backup183249 -Node: Applications186473 -Node: looking ahead187986 -Node: Backups188812 -Node: Full Dumps190644 -Node: Incremental Dumps192450 -Ref: device numbers195586 -Ref: incremental-op199568 -Ref: Incremental Dumps-Footnote-1199942 -Ref: Incremental Dumps-Footnote-2200092 -Node: Backup Levels200579 -Node: Backup Parameters202966 -Node: General-Purpose Variables204147 -Ref: RSH207304 -Node: Magnetic Tape Control209183 -Node: User Hooks210520 -Node: backup-specs example211848 -Node: Scripted Backups212991 -Ref: Scripted Backups-Footnote-1215853 -Node: Scripted Restoration216237 -Node: Choosing218845 -Node: file220030 -Ref: remote-dev222729 -Ref: local and remote archives223121 -Node: Selecting Archive Members224151 -Ref: input name quoting224832 -Node: files226818 -Ref: files-Footnote-1230092 -Node: nul230250 -Node: exclude232649 -Node: problems with exclude237611 -Node: wildcards239656 -Node: controlling pattern-matching242240 -Ref: controlling pattern-matching-Footnote-1246230 -Node: quoting styles246446 -Ref: escape sequences246792 -Node: transform252927 -Ref: show-transformed-names254916 -Node: after261105 -Node: recurse264770 -Node: one267539 -Node: directory269035 -Node: absolute272108 -Ref: absolute-Footnote-1275242 -Node: Date input formats275593 -Node: General date syntax277909 -Node: Calendar date items280860 -Node: Time of day items282857 -Node: Time zone items285053 -Node: Day of week items286287 -Node: Relative items in date strings287276 -Node: Pure numbers in date strings290078 -Node: Seconds since the Epoch291059 -Node: Specifying time zone rules292680 -Node: Authors of get_date295044 -Node: Formats295796 -Node: Compression300484 -Node: gzip300776 -Ref: auto-compress303938 -Ref: gzip-Footnote-1307972 -Node: sparse308021 -Node: Attributes311075 -Node: Portability316996 -Node: Portable Names318482 -Node: dereference319187 -Node: hard links320588 -Ref: hard links-Footnote-1323546 -Node: old323602 -Node: ustar324786 -Node: gnu325377 -Node: posix326254 -Node: PAX keywords326735 -Node: Checksumming331063 -Node: Large or Negative Values332987 -Node: Other Tars334587 -Node: Split Recovery335723 -Node: Sparse Recovery339455 -Ref: extracting sparse v.0.x343088 -Ref: Sparse Recovery-Footnote-1346377 -Ref: Sparse Recovery-Footnote-2346400 -Node: cpio346521 -Node: Media351277 -Node: Device353207 -Node: Remote Tape Server358275 -Node: Common Problems and Solutions362005 -Node: Blocking362397 -Node: Format Variations368904 -Node: Blocking Factor369816 -Node: Many381470 -Node: Tape Positioning385264 -Node: mt387137 -Node: Using Multiple Tapes388692 -Node: Multi-Volume Archives390758 -Ref: tape-length392243 -Ref: change volume prompt392547 -Ref: volno-file393417 -Ref: info-script393969 -Ref: Multi-Volume Archives-Footnote-1399153 -Ref: Multi-Volume Archives-Footnote-2399263 -Node: Tape Files399330 -Node: Tarcat400813 -Node: label401858 -Ref: --test-label option403487 -Ref: label-Footnote-1406532 -Node: verify406767 -Node: Write Protection410067 -Node: Changes410897 -Node: Configuring Help Summary414482 -Node: Fixing Snapshot Files420983 -Node: Tar Internals423168 -Node: Standard423500 -Node: Extensions445701 -Node: Sparse Formats448261 -Node: Old GNU Format449551 -Node: PAX 0451962 -Node: PAX 1455089 -Node: Snapshot Files456823 -Node: Dumpdir461276 -Node: Genfile464522 -Node: Generate Mode465615 -Node: Status Mode469912 -Node: Exec Mode471711 -Node: Free Software Needs Free Documentation473947 -Node: Copying This Manual478918 -Node: GNU Free Documentation License479200 -Node: Index of Command Line Options501607 -Node: Index525923 +Node: Top1252 +Node: Introduction10541 +Node: Book Contents11328 +Node: Definitions13500 +Node: What tar Does15303 +Node: Naming tar Archives18069 +Node: Authors18789 +Node: Reports20602 +Node: Tutorial20959 +Node: assumptions21772 +Node: stylistic conventions24247 +Node: basic tar options24690 +Node: frequent operations28328 +Node: Two Frequent Options28980 +Node: file tutorial29611 +Node: verbose tutorial30968 +Ref: verbose member listing33182 +Node: help tutorial35935 +Node: create36289 +Node: prepare for examples37790 +Node: Creating the archive39559 +Node: create verbose42391 +Node: short create43211 +Node: create dir45964 +Node: list48672 +Ref: listing member and file names49946 +Node: list dir52260 +Node: extract53249 +Node: extracting archives54363 +Node: extracting files54853 +Ref: extracting files-Footnote-157500 +Node: extract dir57880 +Node: extracting untrusted archives60263 +Node: failing commands61142 +Node: going further62236 +Node: tar invocation62449 +Node: Synopsis63911 +Node: using tar options68866 +Ref: TAR_OPTIONS70443 +Node: Styles71460 +Ref: Styles-Footnote-172959 +Node: Long Options73215 +Node: Short Options75387 +Ref: Short Options-Footnote-177195 +Node: Old Options77412 +Ref: Old Options-Footnote-180299 +Node: Mixing80469 +Ref: Mixing-Footnote-182835 +Node: All Options82955 +Node: Operation Summary83560 +Ref: --append83680 +Ref: --catenate83760 +Ref: --compare83831 +Ref: --concatenate84034 +Ref: --create84144 +Ref: --delete84212 +Ref: --diff84326 +Ref: --extract84382 +Ref: --get84484 +Ref: --list84542 +Ref: --update84610 +Node: Option Summary84820 +Ref: --absolute-names84975 +Ref: --after-date85153 +Ref: --anchored85205 +Ref: --atime-preserve85338 +Ref: --auto-compress87858 +Ref: --backup88085 +Ref: --block-number88276 +Ref: --blocking-factor88450 +Ref: --bzip288602 +Ref: --check-device88709 +Ref: --checkpoint88904 +Ref: --checkpoint-action89346 +Ref: --check-links90497 +Ref: --compress90774 +Ref: --uncompress90774 +Ref: --confirmation90978 +Ref: --delay-directory-restore91046 +Ref: --dereference91247 +Ref: --directory91432 +Ref: --exclude91685 +Ref: --exclude-backups91804 +Ref: --exclude-from91894 +Ref: --exclude-caches92040 +Ref: --exclude-caches-under92248 +Ref: --exclude-caches-all92426 +Ref: --exclude-tag92555 +Ref: --exclude-tag-under92726 +Ref: --exclude-tag-all92916 +Ref: --exclude-vcs93045 +Ref: --file93211 +Ref: --files-from93411 +Ref: --force-local93614 +Ref: --format93805 +Ref: --group94475 +Ref: --gzip94823 +Ref: --gunzip94823 +Ref: --ungzip94823 +Ref: --hard-dereference95046 +Ref: --help95233 +Ref: --ignore-case95367 +Ref: --ignore-command-error95494 +Ref: --ignore-failed-read95605 +Ref: --ignore-zeros95735 +Ref: --incremental95880 +Ref: --index-file96145 +Ref: --info-script96230 +Ref: --new-volume-script96230 +Ref: --interactive96551 +Ref: --keep-newer-files96763 +Ref: --keep-old-files96905 +Ref: --label97036 +Ref: --level97324 +Ref: --listed-incremental97765 +Ref: --lzip98129 +Ref: --lzma98229 +Ref: --mode98429 +Ref: --mtime98720 +Ref: --multi-volume99161 +Ref: --newer99365 +Ref: --newer-mtime99643 +Ref: --no-anchored99867 +Ref: --no-auto-compress100004 +Ref: --no-check-device100155 +Ref: --no-delay-directory-restore100338 +Ref: --no-ignore-case100591 +Ref: --no-ignore-command-error100684 +Ref: --no-null100839 +Ref: --no-overwrite-dir101044 +Ref: --no-quote-chars101187 +Ref: --no-recursion101368 +Ref: --no-same-owner101473 +Ref: --no-same-permissions101656 +Ref: --no-seek101858 +Ref: --no-unquote102076 +Ref: --no-wildcards102214 +Ref: --no-wildcards-match-slash102298 +Ref: --null102400 +Ref: --numeric-owner102628 +Ref: --occurrence103279 +Ref: --old-archive103846 +Ref: --one-file-system103895 +Ref: --overwrite104073 +Ref: --overwrite-dir104215 +Ref: --owner104360 +Ref: --pax-option104739 +Ref: --portability105046 +Ref: --posix105111 +Ref: --preserve105153 +Ref: --preserve-order105291 +Ref: --preserve-permissions105355 +Ref: --same-permissions105355 +Ref: --quote-chars105769 +Ref: --quoting-style105922 +Ref: --read-full-records106243 +Ref: --record-size106408 +Ref: --recursion106539 +Ref: --recursive-unlink106642 +Ref: --remove-files106809 +Ref: --restrict106955 +Ref: --rmt-command107143 +Ref: --rsh-command107284 +Ref: --same-order107406 +Ref: --same-owner107698 +Ref: --seek108075 +Ref: --show-defaults108444 +Ref: --show-omitted-dirs108934 +Ref: --show-transformed-names109088 +Ref: --show-stored-names109088 +Ref: --sparse109477 +Ref: --sparse-version109616 +Ref: --starting-file109840 +Ref: --strip-components110029 +Ref: --suffix110341 +Ref: --tape-length110460 +Ref: --test-label110615 +Ref: --to-command110767 +Ref: --to-stdout110926 +Ref: --totals111079 +Ref: --touch111310 +Ref: --transform111512 +Ref: --xform111512 +Ref: --unlink-first112123 +Ref: --unquote112291 +Ref: --use-compress-program112398 +Ref: --utc112576 +Ref: --verbose112669 +Ref: --verify112921 +Ref: --version113039 +Ref: --volno-file113211 +Ref: --warning113398 +Ref: --wildcards113575 +Ref: --wildcards-match-slash113695 +Ref: --xz113787 +Ref: Option Summary-Footnote-1113918 +Node: Short Option Summary114136 +Node: help116337 +Ref: help-Footnote-1120221 +Node: defaults120432 +Node: verbose121451 +Ref: totals123752 +Ref: Progress information125342 +Ref: show-omitted-dirs126321 +Ref: block-number126740 +Ref: verbose-Footnote-1127767 +Node: checkpoints127874 +Node: warnings133268 +Node: interactive135992 +Node: operations138074 +Node: Basic tar138333 +Ref: Basic tar-Footnote-1141437 +Node: Advanced tar141581 +Node: Operations142426 +Node: append144325 +Ref: append-Footnote-1147420 +Node: appending files147583 +Node: multiple149301 +Node: update151991 +Node: how to update152967 +Node: concatenate154749 +Ref: concatenate-Footnote-1157997 +Node: delete158135 +Node: compare159908 +Node: create options161336 +Node: override161794 +Node: Ignore Failed Read165226 +Node: extract options165446 +Node: Reading166279 +Node: read full records167779 +Node: Ignore Zeros168115 +Node: Writing169106 +Node: Dealing with Old Files169663 +Node: Overwrite Old Files172090 +Node: Keep Old Files173547 +Node: Keep Newer Files174057 +Node: Unlink First174347 +Node: Recursive Unlink174751 +Node: Data Modification Times175304 +Node: Setting Access Permissions176114 +Node: Directory Modification Times and Permissions176746 +Node: Writing to Standard Output180358 +Node: Writing to an External Program181893 +Node: remove files185032 +Node: Scarce185225 +Node: Starting File185473 +Node: Same Order186293 +Node: backup187129 +Node: Applications190215 +Node: looking ahead191678 +Node: Backups192504 +Node: Full Dumps194085 +Node: Incremental Dumps195891 +Ref: --level=0198805 +Ref: device numbers199338 +Ref: incremental-op203669 +Ref: Incremental Dumps-Footnote-1204043 +Ref: Incremental Dumps-Footnote-2204193 +Node: Backup Levels204681 +Node: Backup Parameters207068 +Node: General-Purpose Variables208249 +Ref: RSH211410 +Node: Magnetic Tape Control213289 +Node: User Hooks214627 +Node: backup-specs example215956 +Node: Scripted Backups217099 +Ref: Scripted Backups-Footnote-1219962 +Node: Scripted Restoration220346 +Node: Choosing222957 +Node: file224079 +Ref: remote-dev226715 +Ref: local and remote archives227100 +Node: Selecting Archive Members228131 +Ref: input name quoting228812 +Node: files230798 +Ref: files-Footnote-1234072 +Node: nul234230 +Node: exclude236629 +Node: problems with exclude241803 +Node: wildcards243848 +Node: controlling pattern-matching246432 +Ref: controlling pattern-matching-Footnote-1250422 +Node: quoting styles250638 +Ref: escape sequences250984 +Node: transform257119 +Ref: show-transformed-names259110 +Node: after265298 +Node: recurse268900 +Node: one271624 +Node: directory273057 +Node: absolute276119 +Ref: absolute-Footnote-1279199 +Node: Date input formats279550 +Node: General date syntax281866 +Node: Calendar date items284817 +Node: Time of day items286814 +Node: Time zone items289010 +Node: Day of week items290244 +Node: Relative items in date strings291233 +Node: Pure numbers in date strings294035 +Node: Seconds since the Epoch295016 +Node: Specifying time zone rules296637 +Node: Authors of get_date299001 +Node: Formats299753 +Node: Compression304441 +Node: gzip304733 +Ref: auto-compress307999 +Ref: gzip-Footnote-1312247 +Node: sparse312296 +Node: Attributes315350 +Node: Portability321171 +Node: Portable Names322657 +Node: dereference323362 +Node: hard links324763 +Ref: hard links-Footnote-1327661 +Node: old327717 +Node: ustar328901 +Node: gnu329492 +Node: posix330369 +Node: PAX keywords330850 +Node: Checksumming336460 +Node: Large or Negative Values338386 +Node: Other Tars339986 +Node: Split Recovery341122 +Node: Sparse Recovery344854 +Ref: extracting sparse v.0.x348487 +Ref: Sparse Recovery-Footnote-1351776 +Ref: Sparse Recovery-Footnote-2351799 +Node: cpio351920 +Node: Media356677 +Node: Device358607 +Node: Remote Tape Server363681 +Node: Common Problems and Solutions367404 +Node: Blocking367796 +Node: Format Variations374240 +Node: Blocking Factor375152 +Node: Many386804 +Node: Tape Positioning390598 +Node: mt392471 +Node: Using Multiple Tapes394026 +Node: Multi-Volume Archives396092 +Ref: tape-length397577 +Ref: change volume prompt397881 +Ref: volno-file398752 +Ref: info-script399304 +Ref: Multi-Volume Archives-Footnote-1404491 +Ref: Multi-Volume Archives-Footnote-2404601 +Node: Tape Files404669 +Node: Tarcat406151 +Node: label407196 +Ref: --test-label option408826 +Ref: label-Footnote-1411870 +Node: verify412105 +Node: Write Protection415405 +Node: Changes416235 +Node: Configuring Help Summary419831 +Node: Fixing Snapshot Files426332 +Node: Tar Internals428518 +Node: Standard428850 +Node: Extensions451051 +Node: Sparse Formats453611 +Node: Old GNU Format454901 +Node: PAX 0457302 +Node: PAX 1460433 +Node: Snapshot Files462171 +Node: Dumpdir466632 +Node: Genfile469878 +Node: Generate Mode470971 +Node: Status Mode475268 +Node: Exec Mode477067 +Node: Free Software Needs Free Documentation479812 +Node: Copying This Manual484783 +Node: GNU Free Documentation License485065 +Node: Index of Command Line Options507472 +Node: Index532883 End Tag Table diff --git a/doc/tar.info-1 b/doc/tar.info-1 index c9d9aab31628bd7efb55a38a6324b713688d03c1..c67ede69e37ebfcf83b77b20ab54573cfdb74af4 100644 --- a/doc/tar.info-1 +++ b/doc/tar.info-1 @@ -1,10 +1,10 @@ This is tar.info, produced by makeinfo version 4.13 from tar.texi. -This manual is for GNU `tar' (version 1.22, 5 March 2009), which +This manual is for GNU `tar' (version 1.23, 9 March 2010), which creates and extracts files from archives. Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, -2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, @@ -34,11 +34,11 @@ File: tar.info, Node: Top, Next: Introduction, Up: (dir) GNU tar: an archiver tool ************************* -This manual is for GNU `tar' (version 1.22, 5 March 2009), which +This manual is for GNU `tar' (version 1.23, 9 March 2010), which creates and extracts files from archives. Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, -2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, @@ -138,6 +138,7 @@ Invoking GNU `tar' * defaults:: * verbose:: * checkpoints:: +* warnings:: * interactive:: The Three Option Styles @@ -398,7 +399,7 @@ comments. The second chapter is a tutorial (*note Tutorial::) which provides a gentle introduction for people who are new to using `tar'. It is meant -to be self contained, not requiring any reading from subsequent +to be self-contained, not requiring any reading from subsequent chapters to make sense. It moves from topic to topic in a logical, progressive order, building on information already explained. @@ -561,7 +562,7 @@ in version 1.11. Thomas Bushnell, n/BSG and Amy Gorin worked on a tutorial and manual for GNU `tar'. Franc,ois Pinard put version 1.11.8 of the manual together by taking information from all these sources and merging them. Melissa Weisshaus finally edited and redesigned the book -to create version 1.12. The book for versions from 1.14 up to 1.22 +to create version 1.12. The book for versions from 1.14 up to 1.23 were edited by the current maintainer, Sergey Poznyakoff. For version 1.12, Daniel Hagerty contributed a great deal of @@ -585,7 +586,7 @@ If you find problems or have suggestions about this program or manual, please report them to `bug-tar@gnu.org'. When reporting a bug, please be sure to include as much detail as -possible, in order to reproduce it. . +possible, in order to reproduce it. File: tar.info, Node: Tutorial, Next: tar invocation, Prev: Introduction, Up: Top @@ -699,7 +700,7 @@ three forms: long (mnemonic) form, short form, and old style. Some of the operations and options have no short or "old" forms; however, the operations and options which we will cover in this tutorial have corresponding abbreviations. We will indicate those abbreviations -appropriately to get you used to seeing them. (Note that the "old +appropriately to get you used to seeing them. Note, that the "old style" option forms exist in GNU `tar' for compatibility with Unix `tar'. In this book we present a full discussion of this way of writing options and operations (*note Old Options::), and we discuss @@ -800,7 +801,7 @@ the name of the archive file that `tar' will work on. If you don't specify this argument, then `tar' will examine the environment variable `TAPE'. If it is set, its value will be used as the archive name. Otherwise, `tar' will use the default archive, -determined at the compile time. Usually it is standard output or some +determined at compile time. Usually it is standard output or some physical tape drive attached to your machine (you can verify what the default is by running `tar --show-defaults', *note defaults::). If there is no tape drive attached, or the default is not meaningful, then @@ -1009,7 +1010,7 @@ home directory. Now `cd' to the directory named `practice'; `practice' is now your "working directory". (_Please note_: Although the full file name of this directory is `/HOMEDIR/practice', in our examples we will refer to -this directory as `practice'; the HOMEDIR is presumed. +this directory as `practice'; the HOMEDIR is presumed.) In general, you should check that the files to be archived exist where you think they do (in the working directory) by running `ls'. @@ -1107,7 +1108,7 @@ the `create' example above would appear as: jazz This example is just like the example we showed which did not use -`--verbose', except that `tar' generated the remaining lines . +`--verbose', except that `tar' generated the remaining lines. In the rest of the examples in this chapter, we will frequently use `verbose' mode so we can show actions or `tar' responses that you would @@ -1238,7 +1239,7 @@ the exclusion of that one file. (_Please note:_ Other implementations of `tar' may not be so clever; they will enter an infinite loop when this happens, so you should not depend on this behavior unless you are certain you are running GNU `tar'. In general, it is wise to always -place the archive outside of the directory being dumped. +place the archive outside of the directory being dumped.) File: tar.info, Node: list, Next: extract, Prev: create, Up: Tutorial @@ -1290,12 +1291,12 @@ information). In other words, in verbose mode GNU `tar' shows "file names" when creating an archive and "member names" when listing it. Consider this example: - $ tar cfv archive /etc/mail + $ tar --create --verbose --file archive /etc/mail tar: Removing leading `/' from member names /etc/mail/ /etc/mail/sendmail.cf /etc/mail/aliases - $ tar tf archive + $ tar --test --file archive etc/mail/ etc/mail/sendmail.cf etc/mail/aliases @@ -1371,8 +1372,6 @@ File: tar.info, Node: extract, Next: going further, Prev: list, Up: Tutorial 2.8 How to Extract Members from an Archive ========================================== - _(This message will disappear, once this node revised.)_ - Creating an archive is only half the job--there is no point in storing files in an archive if you can't retrieve them. The act of retrieving members from an archive so they can be used and manipulated as @@ -1565,16 +1564,15 @@ you will get the following response: tar: folk: Not found in archive tar: jazz: Not found in archive - $ This is because these files were not originally _in_ the parent directory `..', where the archive is located; they were in the `practice' directory, and their file names reflect this: $ tar -tvf music.tar + practice/blues practice/folk practice/jazz - practice/rock Likewise, if you try to use this command, @@ -1601,8 +1599,6 @@ File: tar.info, Node: tar invocation, Next: operations, Prev: Tutorial, Up: 3 Invoking GNU `tar' ******************** - _(This message will disappear, once this node revised.)_ - This chapter is about how one invokes the GNU `tar' command, from the command synopsis (*note Synopsis::). There are numerous options, and many styles for writing them. One mandatory option specifies the @@ -1634,6 +1630,7 @@ receives about what is going on. These are the `--help' and * defaults:: * verbose:: * checkpoints:: +* warnings:: * interactive:: @@ -1704,15 +1701,15 @@ while `--create' (`-c') will usually yield a diagnostic and inhibit archive. Besides successful exits, GNU `tar' may fail for many reasons. Some -reasons correspond to bad usage, that is, when the `tar' command is -improperly written. Errors may be encountered later, while -encountering an error processing the archive or the files. Some errors -are recoverable, in which case the failure is delayed until `tar' has -completed all its work. Some errors are such that it would not -meaningful, or at least risky, to continue processing: `tar' then -aborts processing immediately. All abnormal exits, whether immediate -or delayed, should always be clearly diagnosed on `stderr', after a -line stating the nature of the error. +reasons correspond to bad usage, that is, when the `tar' command line +is improperly written. Errors may be encountered later, while +processing the archive or the files. Some errors are recoverable, in +which case the failure is delayed until `tar' has completed all its +work. Some errors are such that it would be not meaningful, or at +least risky, to continue processing: `tar' then aborts processing +immediately. All abnormal exits, whether immediate or delayed, should +always be clearly diagnosed on `stderr', after a line stating the +nature of the error. Possible exit codes of GNU `tar' are summarized in the following table: @@ -1749,8 +1746,8 @@ File: tar.info, Node: using tar options, Next: Styles, Prev: Synopsis, Up: t GNU `tar' has a total of eight operating modes which allow you to perform a variety of tasks. You are required to choose one operating mode each time you employ the `tar' program by specifying one, and only -one operation as an argument to the `tar' command (two lists of four -operations each may be found at *note frequent operations:: and *note +one operation as an argument to the `tar' command (the corresponding +options may be found at *note frequent operations:: and *note Operations::). Depending on circumstances, you may also wish to customize how the chosen operating mode behaves. For example, you may wish to change the way the output looks, or the format of the files @@ -1801,18 +1798,14 @@ line invoking `tar'. The different styles were developed at different times during the history of `tar'. These styles will be presented below, from the most recent to the oldest. - Some options must take an argument. (For example, `--file' (`-f')) -takes the name of an archive file as an argument. If you do not supply -an archive file name, `tar' will use a default, but this can be -confusing; thus, we recommend that you always supply a specific archive -file name.) Where you _place_ the arguments generally depends on which -style of options you choose. We will detail specific information -relevant to each option style in the sections on the different option -styles, below. The differences are subtle, yet can often be very -important; incorrect option placement can cause you to overwrite a -number of important files. We urge you to note these differences, and -only use the option style(s) which makes the most sense to you until -you feel comfortable with the others. + Some options must take an argument(1). Where you _place_ the +arguments generally depends on which style of options you choose. We +will detail specific information relevant to each option style in the +sections on the different option styles, below. The differences are +subtle, yet can often be very important; incorrect option placement can +cause you to overwrite a number of important files. We urge you to +note these differences, and only use the option style(s) which makes +the most sense to you until you feel comfortable with the others. Some options _may_ take an argument. Such options may have at most long and short forms, they do not have old style equivalent. The rules @@ -1826,6 +1819,13 @@ specifying mandatory arguments. Please, pay special attention to them. * Old Options:: Old Option Style * Mixing:: Mixing Option Styles + ---------- Footnotes ---------- + + (1) For example, `--file' (`-f') takes the name of an archive file +as an argument. If you do not supply an archive file name, `tar' will +use a default, but this can be confusing; thus, we recommend that you +always supply a specific archive file name. + File: tar.info, Node: Long Options, Next: Short Options, Up: Styles @@ -1925,8 +1925,6 @@ File: tar.info, Node: Old Options, Next: Mixing, Prev: Short Options, Up: St 3.3.3 Old Option Style ---------------------- - _(This message will disappear, once this node revised.)_ - Like short options, "old options" are single letters. However, old options must be written together as a single clumped set, without spaces separating them or dashes preceding them(1). This set of @@ -2066,7 +2064,7 @@ File: tar.info, Node: All Options, Next: help, Prev: Styles, Up: tar invocat ===================== The coming manual sections contain an alphabetical listing of all `tar' -operations and options, with brief descriptions and cross references to +operations and options, with brief descriptions and cross-references to more in-depth explanations in the body of the manual. They also contain an alphabetically arranged table of the short option forms with their corresponding long option. You can use this table as a reference @@ -2108,8 +2106,8 @@ File: tar.info, Node: Operation Summary, Next: Option Summary, Up: All Option Creates a new `tar' archive. *Note create::. `--delete' - Deletes members from the archive. Don't try this on a archive on a - tape! *Note delete::. + Deletes members from the archive. Don't try this on an archive on + a tape! *Note delete::. `--diff' `-d' @@ -2168,8 +2166,8 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera most platforms restoring the access time also requires `tar' to restore the data modification time too, so this option may also cause problems if other programs are writing the file at the same - time. (Tar attempts to detect this situation, but cannot do so - reliably due to race conditions.) Worse, on most platforms + time (`tar' attempts to detect this situation, but cannot do so + reliably due to race conditions). Worse, on most platforms restoring the access time also updates the status change time, which means that this option is incompatible with incremental backups. @@ -2192,11 +2190,11 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera `--atime-preserve=replace', but this may change in the future as support for `--atime-preserve=system' improves. - If your operating system does not support + If your operating or file system does not support `--atime-preserve=system', you might be able to preserve access - times reliably by by using the `mount' command. For example, you - can mount the file system read-only, or access the file system via - a read-only loopback mount, or use the `noatime' mount option + times reliably by using the `mount' command. For example, you can + mount the file system read-only, or access the file system via a + read-only loopback mount, or use the `noatime' mount option available on some systems. However, mounting typically requires superuser privileges and can be a pain to manage. @@ -2237,7 +2235,7 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera it reads through the archive. It is intended for when you want a visual indication that `tar' is still running, but don't want to see `--verbose' output. You can also instruct `tar' to execute a - list of actions on each checkpoint, see `--checklist-action' + list of actions on each checkpoint, see `--checkpoint-action' below. For a detailed description, see *note checkpoints::. `--checkpoint-action=ACTION' @@ -2319,6 +2317,9 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera When performing operations, `tar' will skip files that match PATTERN. *Note exclude::. +`--exclude-backups' + Exclude backup and lock files. *Note exclude-backups: exclude. + `--exclude-from=FILE' `-X FILE' Similar to `--exclude', except `tar' will use the list of patterns @@ -2329,7 +2330,7 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera tag file, but still dump the directory node and the tag file itself. - *Note exclude::. + *Note exclude-caches: exclude. `--exclude-caches-under' Exclude from dump any directory containing a valid cache directory @@ -2343,21 +2344,23 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera `--exclude-tag=FILE' Exclude from dump any directory containing file named FILE, but - dump the directory node and FILE itself. *Note exclude::. + dump the directory node and FILE itself. *Note exclude-tag: + exclude. `--exclude-tag-under=FILE' Exclude from dump the contents of any directory containing file - named FILE, but dump the directory node itself. *Note exclude::. + named FILE, but dump the directory node itself. *Note + exclude-tag-under: exclude. `--exclude-tag-all=FILE' Exclude from dump any directory containing file named FILE. *Note - exclude::. + exclude-tag-all: exclude. `--exclude-vcs' Exclude from dump directories and files, that are internal for some widely used version control systems. - *Note exclude::. + *Note exclude-vcs: exclude. `--file=ARCHIVE' `-f ARCHIVE' @@ -2486,6 +2489,16 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera will only operate on archives that have a label matching the pattern specified in NAME. *Note Tape Files::. +`--level=N' + Force incremental backup of level N. As of GNU `tar' version + 1.23, the option `--level=0' truncates the snapshot file, thereby + forcing the level 0 dump. Other values of N are effectively + ignored. *Note --level=0::, for details and examples. + + The use of this option is valid only in conjunction with the + `--listed-incremental' option. *Note Incremental Dumps::, for a + detailed description. + `--listed-incremental=SNAPSHOT-FILE' `-g SNAPSHOT-FILE' During a `--create' operation, specifies that the archive that @@ -2494,6 +2507,10 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera operations, informs `tar' that the archive is in incremental format. *Note Incremental Dumps::. +`--lzip' + This option tells `tar' to read or write archives through `lzip'. + *Note gzip::. + `--lzma' This option tells `tar' to read or write archives through `lzma'. *Note gzip::. @@ -2523,7 +2540,7 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera multi-volume `tar' archive. *Note Using Multiple Tapes::. `--new-volume-script' - (see -info-script) + (see `--info-script') `--newer=DATE' `--after-date=DATE' @@ -2593,6 +2610,11 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera from the permissions specified in the archive. This is the default behavior for ordinary users. +`--no-seek' + The archive media does not support seeks to arbitrary locations. + Usually `tar' determines automatically whether the archive can be + seeked or not. Use this option to disable this mechanism. + `--no-unquote' Treat all input file or member names literally, do not interpret escape sequences. *Note input name quoting::. @@ -2666,10 +2688,10 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera This option does not affect extraction from archives. `--pax-option=KEYWORD-LIST' - This option is meaningful only with POSIX.1-2001 archives (*note - posix::). It modifies the way `tar' handles the extended header - keywords. KEYWORD-LIST is a comma-separated list of keyword - options. *Note PAX keywords::, for a detailed discussion. + This option enables creation of the archive in POSIX.1-2001 format + (*note posix::) and modifies the way `tar' handles the extended + header keywords. KEYWORD-LIST is a comma-separated list of + keyword options. *Note PAX keywords::, for a detailed discussion. `--portability' `--old-archive' @@ -2763,7 +2785,9 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera Assume that the archive media supports seeks to arbitrary locations. Usually `tar' determines automatically whether the archive can be seeked or not. This option is intended for use in - cases when such recognition fails. + cases when such recognition fails. It takes effect only if the + archive is open for reading (e.g. with `--list' or `--extract' + options). `--show-defaults' Displays the default options used by `tar' and exits successfully. @@ -2771,9 +2795,12 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera example of what you can see using this option: $ tar --show-defaults - --format=gnu -f- -b20 --quoting-style=escape \ + --format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/libexec/rmt --rsh-command=/usr/bin/rsh + Notice, that this option outputs only one line. The example output + above has been split to fit page boundaries. + `--show-omitted-dirs' Instructs `tar' to mention the directories it is skipping when operating on a `tar' archive. *Note show-omitted-dirs::. @@ -2811,8 +2838,6 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera would extract this file to file `name'. - , summary - `--suffix=SUFFIX' Alters the suffix `tar' uses when backing up files from the default `~'. *Note backup::. @@ -2907,6 +2932,11 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera of which volume of a multi-volume archive it is working in FILE. *Note volno-file::. +`--warning=KEYWORD' + Enable or disable warning messages identified by KEYWORD. The + messages are suppressed if KEYWORD is prefixed with `no-'. *Note + warnings::. + `--wildcards' Use wildcards when matching member names with patterns. *Note controlling pattern-matching::. @@ -2998,10 +3028,11 @@ information about its name, version, origin and legal status, all on standard output, and then exit successfully. For example, `tar --version' might print: - tar (GNU tar) 1.22 - Copyright (C) 2008 Free Software Foundation, Inc. - This is free software. You may redistribute copies of it under the terms - of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. + tar (GNU tar) 1.23 + Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010 Free Software Foundation, Inc. + License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. + This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by John Gilmore and Jay Fenlason. @@ -3041,7 +3072,7 @@ description. If you only wish to check the spelling of an option, running `tar --usage' may be a better choice. This will display a terse list of -`tar' option without accompanying explanations. +`tar' options without accompanying explanations. The short help output is quite succinct, and you might have to get back to the full documentation for precise points. If you are reading @@ -3069,7 +3100,7 @@ source of information about GNU `tar' is this Texinfo documentation. (1) There are plans to merge the `cpio' and `tar' packages into a single one which would be called `paxutils'. So, who knows if, one of -this days, the `--version' would not output `tar (GNU paxutils) 3.2' +this days, the `--version' would not output `tar (GNU paxutils) 3.2'. File: tar.info, Node: defaults, Next: verbose, Prev: help, Up: tar invocation @@ -3082,7 +3113,7 @@ explicitly specify another values. To obtain a list of such defaults, use `--show-defaults' option. This will output the values in the form of `tar' command line options: - tar --show-defaults + $ tar --show-defaults --format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt --rsh-command=/usr/bin/rsh @@ -3215,7 +3246,7 @@ reason. message it would normally produce, the block number within the archive where the message was triggered. Also, supplementary messages are triggered when reading blocks full of NULs, or when hitting end of file -on the archive. As of now, if the archive if properly terminated with +on the archive. As of now, if the archive is properly terminated with a NUL block, the reading of the file may stop before end of file is met, so the position of end of file will not usually show when `--block-number' (`-R') is used. Note that GNU `tar' drains the @@ -3234,7 +3265,7 @@ of the tape). *Note backup::. --checkpoint-action=dot'. *Note dot: checkpoints. -File: tar.info, Node: checkpoints, Next: interactive, Prev: verbose, Up: tar invocation +File: tar.info, Node: checkpoints, Next: warnings, Prev: verbose, Up: tar invocation 3.8 Checkpoints =============== @@ -3374,10 +3405,117 @@ can be used without `--checkpoint'. In this case, the default checkpoint frequency (at each 10th record) is assumed. -File: tar.info, Node: interactive, Prev: checkpoints, Up: tar invocation +File: tar.info, Node: warnings, Next: interactive, Prev: checkpoints, Up: tar invocation -3.9 Asking for Confirmation During Operations -============================================= +3.9 Controlling Warning Messages +================================ + +Sometimes, while performing the requested task, GNU `tar' notices some +conditions that are not exactly errors, but which the user should be +aware of. When this happens, `tar' issues a "warning message" +describing the condition. Warning messages are output to the standard +error and they do not affect the exit code of `tar' command. + + GNU `tar' allows the user to suppress some or all of its warning +messages: + +`--warning=KEYWORD' + Control display of the warning messages identified by KEYWORD. If + KEYWORD starts with the prefix `no-', such messages are + suppressed. Otherwise, they are enabled. + + Multiple `--warning' messages accumulate. + + The tables below list allowed values for KEYWORD along with the + warning messages they control. + +Keywords controlling `tar' operation +------------------------------------ + +all + Enable all warning messages. This is the default. + +none + Disable all warning messages. + +filename-with-nuls + `%s: file name read contains nul character' + +alone-zero-block + `A lone zero block at %s' + +Keywords applicable for `tar --create' +-------------------------------------- + +cachedir + `%s: contains a cache directory tag %s; %s' + +file-shrank + `%s: File shrank by %s bytes; padding with zeros' + +xdev + `%s: file is on a different filesystem; not dumped' + +file-ignored + `%s: Unknown file type; file ignored' + `%s: socket ignored' + `%s: door ignored' + +file-unchanged + `%s: file is unchanged; not dumped' + +ignore-archive + `%s: file is the archive; not dumped' + +file-removed + `%s: File removed before we read it' + +file-changed + `%s: file changed as we read it' + +Keywords applicable for `tar --extract' +--------------------------------------- + +timestamp + `%s: implausibly old time stamp %s' + `%s: time stamp %s is %s s in the future' + +contiguous-cast + `Extracting contiguous files as regular files' + +symlink-cast + `Attempting extraction of symbolic links as hard links' + +unknown-cast + `%s: Unknown file type `%c', extracted as normal file' + +ignore-newer + `Current %s is newer or same age' + +unknown-keyword + `Ignoring unknown extended header keyword `%s'' + +Keywords controlling incremental extraction: +-------------------------------------------- + +rename-directory + `%s: Directory has been renamed from %s' + `%s: Directory has been renamed' + +new-directory + `%s: Directory is new' + +xdev + `%s: directory is on a different device: not purging' + +bad-dumpdir + `Malformed dumpdir: 'X' never used' + + +File: tar.info, Node: interactive, Prev: warnings, Up: tar invocation + +3.10 Asking for Confirmation During Operations +============================================== Typically, `tar' carries out a command without stopping for further instructions. In some situations however, you may want to exclude some @@ -3532,8 +3670,6 @@ File: tar.info, Node: Operations, Next: append, Up: Advanced tar 4.2.1 The Five Advanced `tar' Operations ---------------------------------------- - _(This message will disappear, once this node revised.)_ - In the last chapter, you learned about the first three operations to `tar'. This chapter presents the remaining five operations to `tar': `--append', `--update', `--concatenate', `--delete', and `--compare'. @@ -3543,8 +3679,8 @@ covered in the last chapter; however, since they perform specialized functions, they are quite useful when you do need to use them. We will give examples using the same directory and files that you created in the last chapter. As you may recall, the directory is called -`practice', the files are `jazz', `blues', `folk', `rock', and the two -archive files you created are `collection.tar' and `music.tar'. +`practice', the files are `jazz', `blues', `folk', and the two archive +files you created are `collection.tar' and `music.tar'. We will also use the archive files `afiles.tar' and `bfiles.tar'. The archive `afiles.tar' contains the members `apple', `angst', and @@ -3588,8 +3724,6 @@ File: tar.info, Node: append, Next: update, Prev: Operations, Up: Advanced t 4.2.2 How to Add Files to Existing Archives: `--append' ------------------------------------------------------- - _(This message will disappear, once this node revised.)_ - If you want to add files to an existing archive, you don't need to create a new archive; you can use `--append' (`-r'). The archive must already exist in order to use `--append'. (A related operation is the @@ -3608,7 +3742,7 @@ listed, with their data modification times, owners, etc. Other operations don't deal with these members as perfectly as you might prefer; if you were to use `--extract' to extract the archive, -only the most recently added copy of a member with the same name as four +only the most recently added copy of a member with the same name as other members would end up in the working directory. This is because `--extract' extracts an archive in the order the members appeared in the archive; the most recently archived members will be extracted last. @@ -3632,13 +3766,13 @@ would extract only the second copy. *Note --occurrence: Option Summary, for the description of `--occurrence' option. If you want to replace an archive member, use `--delete' to delete -the member you want to remove from the archive, , and then use -`--append' to add the member you want to be in the archive. Note that -you can not change the order of the archive; the most recently added -member will still appear last. In this sense, you cannot truly -"replace" one member with another. (Replacing one member with another -will not work on certain types of media, such as tapes; see *note -delete:: and *note Media::, for more information.) +the member you want to remove from the archive, and then use `--append' +to add the member you want to be in the archive. Note that you can not +change the order of the archive; the most recently added member will +still appear last. In this sense, you cannot truly "replace" one +member with another. (Replacing one member with another will not work +on certain types of media, such as tapes; see *note delete:: and *note +Media::, for more information.) * Menu: @@ -3648,8 +3782,8 @@ delete:: and *note Media::, for more information.) ---------- Footnotes ---------- (1) Unless you give it `--keep-old-files' option, or the disk copy -is newer than the the one in the archive and you invoke `tar' with -`--keep-newer-files' option +is newer than the one in the archive and you invoke `tar' with +`--keep-newer-files' option. File: tar.info, Node: appending files, Next: multiple, Up: append @@ -3657,8 +3791,6 @@ File: tar.info, Node: appending files, Next: multiple, Up: append 4.2.2.1 Appending Files to an Archive ..................................... - _(This message will disappear, once this node revised.)_ - The simplest way to add a file to an already existing archive is the `--append' (`-r') operation, which writes specified files into the archive whether or not they are already among the archived files. @@ -3758,8 +3890,6 @@ File: tar.info, Node: update, Next: concatenate, Prev: append, Up: Advanced 4.2.3 Updating an Archive ------------------------- - _(This message will disappear, once this node revised.)_ - In the previous section, you learned how to use `--append' to add a file to an existing archive. A related operation is `--update' (`-u'). The `--update' operation updates a `tar' archive by comparing the date @@ -3809,7 +3939,7 @@ the archive, you will see `blues' and `classical' at its end. There will be a total of two versions of the member `blues'; the one at the end will be newer and larger, since you added text before updating it. - (The reason `tar' does not overwrite the older file when updating it + The reason `tar' does not overwrite the older file when updating it is because writing to the middle of a section of tape is a difficult process. Tapes are not designed to go backward. *Note Media::, for more information about tapes. @@ -3834,7 +3964,7 @@ one or more archives to the end of another archive, you should use the To use `--concatenate', give the first archive with `--file' option and name the rest of archives to be concatenated on the command line. The members, and their member names, will be copied verbatim from those -archives to the first one. (1) The new, concatenated archive will be +archives to the first one(1). The new, concatenated archive will be called by the same name as the one given with the `--file' option. As usual, if you omit `--file', `tar' will use the value of the environment variable `TAPE', or, if this has not been set, the default archive name. @@ -3908,8 +4038,6 @@ File: tar.info, Node: delete, Next: compare, Prev: concatenate, Up: Advanced 4.2.5 Removing Archive Members Using `--delete' ----------------------------------------------- - _(This message will disappear, once this node revised.)_ - You can remove members from an archive by using the `--delete' option. Specify the name of the archive with `--file' (`-f') and then specify the names of the members to be deleted; if you list no member names, @@ -3944,7 +4072,6 @@ directory, and then, folk jazz rock - $ The `--delete' option has been reported to work properly when `tar' acts as a filter from `stdin' to `stdout'. @@ -3955,8 +4082,6 @@ File: tar.info, Node: compare, Prev: delete, Up: Advanced tar 4.2.6 Comparing Archive Members with the File System ---------------------------------------------------- - _(This message will disappear, once this node revised.)_ - The `--compare' (`-d'), or `--diff' operation compares specified archive members against files with the same names, and then reports differences in file size, mode, owner, modification date and contents. @@ -3984,7 +4109,7 @@ report an error message.) The spirit behind the `--compare' (`--diff', `-d') option is to check whether the archive represents the current state of files on disk, more than validating the integrity of the archive media. For -this later goal, *Note verify::. +this latter goal, *Note verify::. File: tar.info, Node: create options, Next: extract options, Prev: Advanced tar, Up: operations @@ -4034,9 +4159,9 @@ stored in the archive. modification time of members when creating archives, instead of their actual modification times. The argument DATE can be either a textual date representation in almost arbitrary format (*note - Date input formats::) or a name of the existing file, starting - with `/' or `.'. In the latter case, the modification time of - that file will be used. + Date input formats::) or a name of an existing file, starting with + `/' or `.'. In the latter case, the modification time of that + file will be used. The following example will set the modification date to 00:00:00 UTC, January 1, 1970: @@ -4070,7 +4195,9 @@ stored in the archive. anonymous archives. For example: $ tar -c -f archive.tar --owner=0 . - # Or: + + or: + $ tar -c -f archive.tar --owner=root . `--group=GROUP' @@ -4094,8 +4221,6 @@ File: tar.info, Node: extract options, Next: backup, Prev: create options, U 4.4 Options Used by `--extract' =============================== - _(This message will disappear, once this node revised.)_ - The previous chapter showed how to use `--extract' to extract an archive into the file system. Various options cause `tar' to extract more information than just file contents, such as the owner, the @@ -4117,8 +4242,6 @@ File: tar.info, Node: Reading, Next: Writing, Up: extract options 4.4.1 Options to Help Read Archives ----------------------------------- - _(This message will disappear, once this node revised.)_ - Normally, `tar' will request data in full record increments from an archive storage device. If the device cannot return a full record, `tar' will report an error. However, some devices do not always return @@ -4438,7 +4561,7 @@ after extracting `foo/file2' the directory timestamp will be offset again. To correctly restore directory meta-information in such cases, use -`delay-directory-restore' command line option: +the `--delay-directory-restore' command line option: `--delay-directory-restore' Delays restoring of the modification times and permissions of @@ -4502,7 +4625,7 @@ the standard input of an external program: Extract files and pipe their contents to the standard input of COMMAND. When this option is used, instead of creating the files specified, `tar' invokes COMMAND and pipes the contents of the - files to its standard output. COMMAND may contain command line + files to its standard output. The COMMAND may contain command line arguments. The program is executed via `sh -c'. Notice, that COMMAND is executed once for each regular file extracted. Non-regular files (directories, etc.) are ignored when this option @@ -4540,7 +4663,7 @@ from the following environment variables: `TAR_ATIME' Time of last access. It is a decimal number, representing seconds - since the epoch. If the archive provides times with nanosecond + since the Epoch. If the archive provides times with nanosecond precision, the nanoseconds are appended to the timestamp after a decimal point. @@ -4559,8 +4682,24 @@ from the following environment variables: `TAR_GID' GID of the file owner. - In addition to these variables, `TAR_VERSION' contains the GNU `tar' -version number. + Additionally, the following variables contain information about tar +mode and the archive being processed: + +`TAR_VERSION' + GNU `tar' version number. + +`TAR_ARCHIVE' + The name of the archive `tar' is processing. + +`TAR_BLOCKING_FACTOR' + Current blocking factor (*note Blocking::). + +`TAR_VOLUME' + Ordinal number of the volume `tar' is processing. + +`TAR_FORMAT' + Format of the archive being processed. *Note Formats::, for a + complete list of archive format names. If COMMAND exits with a non-0 status, `tar' will print an error message similar to the following: @@ -4662,14 +4801,14 @@ well as individual extracted members. Other GNU programs (`cp', Backup options may prove unexpectedly useful when extracting archives containing many members having identical name, or when extracting archives on systems having file name limitations, making different -members appear has having similar names through the side-effect of name -truncation. (This is true only if we have a good scheme for truncated -backup names, which I'm not sure at all: I suspect work is needed in -this area.) When any existing file is backed up before being -overwritten by extraction, then clashing files are automatically be -renamed to be unique, and the true name is kept for only the last file -of a series of clashing files. By using verbose mode, users may track -exactly what happens. +members appear as having similar names through the side-effect of name +truncation. + + When any existing file is backed up before being overwritten by +extraction, then clashing files are automatically be renamed to be +unique, and the true name is kept for only the last file of a series of +clashing files. By using verbose mode, users may track exactly what +happens. At the detail level, some decisions are still experimental, and may change in the future, we are waiting comments from our users. So, @@ -4741,7 +4880,7 @@ they both support the `tar' program. For example, here is how you might copy a directory's contents from one disk to another, while preserving the dates, modes, owners and link-structure of all the files therein. In this case, the transfer -medium is a "pipe", which is one a Unix redirection mechanism: +medium is a "pipe": $ (cd sourcedir; tar -cf - .) | (cd targetdir; tar -xf -) @@ -4749,11 +4888,13 @@ You can avoid subshells by using `-C' option: $ tar -C sourcedir -cf - . | tar -C targetdir -xf - -The command also works using short option forms: +The command also works using long option forms: $ (cd sourcedir; tar --create --file=- . ) \ | (cd targetdir; tar --extract --file=-) - # Or: + +or + $ tar --directory sourcedir --create --file=- . ) \ | tar --directory targetdir --extract --file=- @@ -4785,23 +4926,16 @@ File: tar.info, Node: Backups, Next: Choosing, Prev: operations, Up: Top 5 Performing Backups and Restoring Files **************************************** - _(This message will disappear, once this node revised.)_ - -GNU `tar' is distributed along with the scripts which the Free Software -Foundation uses for performing backups. There is no corresponding -scripts available yet for doing restoration of files. Even if there is -a good chance those scripts may be satisfying to you, they are not the -only scripts or methods available for doing backups and restore. You -may well create your own, or use more sophisticated packages dedicated -to that purpose. +GNU `tar' is distributed along with the scripts for performing backups +and restores. Even if there is a good chance those scripts may be +satisfying to you, they are not the only scripts or methods available +for doing backups and restore. You may well create your own, or use +more sophisticated packages dedicated to that purpose. Some users are enthusiastic about `Amanda' (The Advanced Maryland Automatic Network Disk Archiver), a backup system developed by James da Silva `jds@cs.umd.edu' and available on many Unix systems. This is -free software, and it is available at these places: - - http://www.cs.umd.edu/projects/amanda/amanda.html - ftp://ftp.cs.umd.edu/pub/amanda +free software, and it is available from `http://www.amanda.org'. This chapter documents both the provided shell scripts and `tar' options which are more specific to usage as a backup tool. @@ -4937,17 +5071,26 @@ then be modified as follows: --listed-incremental=/var/log/usr.snar-1 \ /usr + You can force `level 0' backups either by removing the snapshot file +before running `tar', or by supplying the `--level=0' option, e.g.: + + $ tar --create \ + --file=archive.2.tar \ + --listed-incremental=/var/log/usr.snar-0 \ + --level=0 \ + /usr + Incremental dumps depend crucially on time stamps, so the results are unreliable if you modify a file's time stamps during dumping (e.g., with the `--atime-preserve=replace' option), or if you set the clock backwards. Metadata stored in snapshot files include device numbers, which, -obviously are supposed to be a non-volatile values. However, it turns +obviously are supposed to be non-volatile values. However, it turns out that NFS devices have undependable values when an automounter gets in the picture. This can lead to a great deal of spurious redumping in incremental dumps, so it is somewhat useless to compare two NFS devices -numbers over time. The solution implemented currently is to considers +numbers over time. The solution implemented currently is to consider all NFS devices as being equal when it comes to comparing directories; this is fairly gross, but there does not seem to be a better way to go. @@ -4982,7 +5125,7 @@ the usual practice is to use `--listed-incremental=/dev/null'. Alternatively, you can use `--incremental', which needs no arguments. In general, `--incremental' (`-G') can be used as a shortcut for `--listed-incremental' when listing or extracting incremental backups -(for more information, regarding this option, *note incremental-op::). +(for more information regarding this option, *note incremental-op::). When extracting from the incremental backup GNU `tar' attempts to restore the exact state the file system had when the archive was @@ -5004,7 +5147,19 @@ system, one would do(1): To list the contents of an incremental archive, use `--list' (*note list::), as usual. To obtain more information about the archive, use `--listed-incremental' or `--incremental' combined with two `--verbose' -options(2): +optionsTwo +`--verbose' options were selected to avoid breaking usual +verbose listing output (`--list --verbose') when using in +scripts. + + + + + +Versions of GNU `tar' up to 1.15.1 used to dump verbatim binary +contents of the DUMPDIR header (with terminating nulls) when +`--incremental' or `--listed-incremental' option was +given, no matter what the verbosity level(2): tar --list --incremental --verbose --verbose archive.tar @@ -5043,7 +5198,7 @@ contents of the DUMPDIR header (with terminating nulls) when `--incremental' or `--listed-incremental' option was given, no matter what the verbosity level. This behavior, and, especially, the binary output it produced were considered inconvenient and were changed in -version 1.16 +version 1.16. File: tar.info, Node: Backup Levels, Next: Backup Parameters, Prev: Incremental Dumps, Up: Backups @@ -5069,7 +5224,7 @@ it possible to restore a file system to within one day of accuracy by only extracting two archives--the last weekly (full) dump and the last daily (level one) dump. The only information lost would be in files changed or created since the last daily backup. (Doing dumps more than -once a day is usually not worth the trouble). +once a day is usually not worth the trouble.) GNU `tar' comes with scripts you can use to do full and level-one (actually, even level-two and so on) dumps. Using scripts (shell @@ -5184,8 +5339,8 @@ File: tar.info, Node: General-Purpose Variables, Next: Magnetic Tape Control, (for `restore'). These should be accessible from the machine on which the backup script is run. - If the list of file systems is very long you may wish to store it - in a separate file. This file is usually named + If the list of individual files is very long you may wish to store + it in a separate file. This file is usually named `/etc/backup/files', but this name may be overridden in `backup-specs' using `FILELIST' variable. @@ -5250,7 +5405,7 @@ File: tar.info, Node: Magnetic Tape Control, Next: User Hooks, Prev: General- --------------------------- Backup scripts access tape device using special "hook functions". -These functions take a single argument - the name of the tape device. +These functions take a single argument -- the name of the tape device. Their names are kept in the following variables: -- Backup variable: MT_BEGIN @@ -5323,7 +5478,7 @@ function taking four arguments: File system name with directory separators replaced with colons. This is useful, e.g., for creating unique files. - Following variables keep the names of user hook functions + Following variables keep the names of user hook functions: -- Backup variable: DUMP_BEGIN Dump begin function. It is executed before dumping the file @@ -5394,9 +5549,9 @@ The syntax for running a backup script is: backup --level=LEVEL --time=TIME - The `level' option requests the dump level. Thus, to produce a full -dump, specify `--level=0' (this is the default, so `--level' may be -omitted if its value is `0'). (1) + The `--level' option requests the dump level. Thus, to produce a +full dump, specify `--level=0' (this is the default, so `--level' may +be omitted if its value is `0')(1). The `--time' option determines when should the backup be run. TIME may take three forms: @@ -5405,7 +5560,7 @@ HH:MM The dump must be run at HH hours MM minutes. HH - The dump must be run at HH hours + The dump must be run at HH hours. now The dump must be run immediately. @@ -5488,7 +5643,8 @@ and files specified in `backup-specs' (*note BACKUP_DIRS: General-Purpose Variables.). You may select the file systems (and/or files) to restore by giving -`restore' list of "patterns" in its command line. For example, running +`restore' a list of "patterns" in its command line. For example, +running restore 'albert:*' @@ -5513,7 +5669,7 @@ option, as shown in the example below: `-a' `--all' - Restore all file systems and files specified in `backup-specs' + Restore all file systems and files specified in `backup-specs'. `-l LEVEL' `--level=LEVEL' @@ -5555,8 +5711,6 @@ File: tar.info, Node: Choosing, Next: Date input formats, Prev: Backups, Up: 6 Choosing Files and Names for `tar' ************************************ - _(This message will disappear, once this node revised.)_ - Certain options to `tar' enable you to specify a name for your archive. Other options let you decide which files to include or exclude from the archive, based on when or whether files were modified, whether the file @@ -5584,8 +5738,6 @@ File: tar.info, Node: file, Next: Selecting Archive Members, Up: Choosing 6.1 Choosing and Naming Archive Files ===================================== - _(This message will disappear, once this node revised.)_ - By default, `tar' uses an archive file name that was compiled when it was built on the system; usually this name refers to some physical tape drive on the machine. However, the person who installed `tar' on the @@ -5645,11 +5797,11 @@ use the following: --file=HOSTNAME:/DEV/FILE-NAME -`tar' will complete the remote connection, if possible, and prompt you +`tar' will set up the remote connection, if possible, and prompt you for a username and password. If you use -`--file=@HOSTNAME:/DEV/FILE-NAME', `tar' will complete the remote -connection, if possible, using your username as the username on the -remote machine. +`--file=@HOSTNAME:/DEV/FILE-NAME', `tar' will attempt to set up the +remote connection using your username as the username on the remote +machine. If the archive file name includes a colon (`:'), then it is assumed to be a file on another machine. If the archive file is @@ -5658,11 +5810,11 @@ is accessed using the `rsh' program, with a username of USER. If the username is omitted (along with the `@' sign), then your user name will be used. (This is the normal `rsh' behavior.) It is necessary for the remote machine, in addition to permitting your `rsh' access, to have -the `rmt' program installed (This command is included in the GNU `tar' +the `rmt' program installed (this command is included in the GNU `tar' distribution and by default is installed under `PREFIX/libexec/rmt', -were PREFIX means your installation prefix). If you need to use a file -whose name includes a colon, then the remote tape drive behavior can be -inhibited by using the `--force-local' option. +where PREFIX means your installation prefix). If you need to use a +file whose name includes a colon, then the remote tape drive behavior +can be inhibited by using the `--force-local' option. When the archive is being created to `/dev/null', GNU `tar' tries to minimize input and output operations. The Amanda backup system, when @@ -5774,11 +5926,11 @@ the files from that file, `small-files', to create the archive `little.tgz'. (The `-z' option to `tar' compresses the archive with `gzip'; *note gzip:: for more information.) - $ find . -size -400 -print > small-files + $ find . -size -400 -print > small-files $ tar -c -v -z -T small-files -f little.tgz In the file list given by `-T' option, any file name beginning with `-' -character is considered a `tar' option and is processed accordingly.(1) +character is considered a `tar' option and is processed accordingly(1). For example, the common use of this feature is to change to another directory by specifying `-C' option: @@ -5801,6 +5953,7 @@ resulting archive `foo.tar' will contain: libc.a + Notice that the option parsing algorithm used with `-T' is stricter than the one used by shell. Namely, when specifying option arguments, you should observe the following rules: @@ -5841,7 +5994,7 @@ consecutive lines. File: tar.info, Node: nul, Up: files -6.3.1 `NUL' Terminated File Names +6.3.1 `NUL'-Terminated File Names --------------------------------- The `--null' option causes `--files-from=FILE-OF-NAMES' (`-T @@ -5850,7 +6003,7 @@ newline, so files whose names contain newlines can be archived using `--files-from'. `--null' - Only consider `NUL' terminated file names, instead of files that + Only consider `NUL'-terminated file names, instead of files that terminate in a newline. `--no-null' @@ -5866,30 +6019,30 @@ larger than 800K in length and put that list into a file called `long-files'. The `-print0' option to `find' is just like `-print', except that it separates files with a `NUL' rather than with a newline. You can then run `tar' with both the `--null' and `-T' options to -specify that `tar' get the files from that file, `long-files', to +specify that `tar' gets the files from that file, `long-files', to create the archive `big.tgz'. The `--null' option to `tar' will cause `tar' to recognize the `NUL' separator between files. - $ find . -size +800 -print0 > long-files + $ find . -size +800 -print0 > long-files $ tar -c -v --null --files-from=long-files --file=big.tar The `--no-null' option can be used if you need to read both -zero-terminated and newline-terminated files on the same command line. +`NUL'-terminated and newline-terminated files on the same command line. For example, if `flist' is a newline-terminated file, then the following command can be used to combine it with the above command: - $ find . -size +800 -print0 | + $ find . -size +800 -print0 | tar -c -f big.tar --null -T - --no-null -T flist This example uses short options for typographic reasons, to avoid very long lines. - GNU `tar' is able to automatically detect null-terminated file + GNU `tar' is able to automatically detect `NUL'-terminated file lists, so it is safe to use them even without the `--null' option. In this case `tar' will print a warning and continue reading such a file as if `--null' were actually given: - $ find . -size +800 -print0 | tar -c -f big.tar -T - + $ find . -size +800 -print0 | tar -c -f big.tar -T - tar: -: file name read contains nul character The null terminator, however, remains in effect only for this @@ -5903,8 +6056,6 @@ File: tar.info, Node: exclude, Next: wildcards, Prev: files, Up: Choosing 6.4 Excluding Some Files ======================== - _(This message will disappear, once this node revised.)_ - To avoid operating on files whose names match a particular pattern, use the `--exclude' or `--exclude-from' options. @@ -5941,45 +6092,56 @@ difficult to catch using text editors. systems: `CVS', `RCS', `SCCS', `SVN', `Arch', `Bazaar', `Mercurial', and `Darcs'. - As of version 1.22, the following files are excluded: + As of version 1.23, the following files are excluded: + + * `CVS/', and everything under it + + * `RCS/', and everything under it + + * `SCCS/', and everything under it - * `CVS/', and everything under it + * `.git/', and everything under it - * `RCS/', and everything under it + * `.gitignore' - * `SCCS/', and everything under it + * `.cvsignore' - * `.git/', and everything under it + * `.svn/', and everything under it - * `.gitignore' + * `.arch-ids/', and everything under it - * `.cvsignore' + * `{arch}/', and everything under it - * `.svn/', and everything under it + * `=RELEASE-ID' - * `.arch-ids/', and everything under it + * `=meta-update' - * `{arch}/', and everything under it + * `=update' - * `=RELEASE-ID' + * `.bzr' - * `=meta-update' + * `.bzrignore' - * `=update' + * `.bzrtags' - * `.bzr' + * `.hg' - * `.bzrignore' + * `.hgignore' - * `.bzrtags' + * `.hgrags' - * `.hg' + * `_darcs' - * `.hgignore' +`--exclude-backups' + Exclude backup and lock files. This option causes exclusion of + files that match the following shell globbing patterns: - * `.hgrags' + .#* + + *~ + + #*# - * `_darcs' When creating an archive, the `--exclude-caches' option family causes `tar' to exclude all directories that contain a "cache directory @@ -6516,10 +6678,10 @@ File: tar.info, Node: transform, Next: after, Prev: quoting styles, Up: Choo =================================== `Tar' archives contain detailed information about files stored in them -and full file names are part of that information. When storing file to -an archive, its file name is recorded in it, along with the actual file -contents. When restoring from an archive, a file is created on disk -with exactly the same name as that stored in the archive. In the +and full file names are part of that information. When storing a file +to an archive, its file name is recorded in it, along with the actual +file contents. When restoring from an archive, a file is created on +disk with exactly the same name as that stored in the archive. In the majority of cases this is the desired behavior of a file archiver. However, there are some cases when it is not. @@ -6595,7 +6757,7 @@ where REGEXP is a "regular expression", REPLACE is a replacement for each file name part that matches REGEXP. Both REGEXP and REPLACE are described in detail in *note The "s" Command: (sed)The "s" Command. - Any delimiter can be used in lieue of `/', the only requirement being + Any delimiter can be used in lieu of `/', the only requirement being that it be used consistently throughout the expression. For example, the following two expressions are equivalent: @@ -6615,7 +6777,7 @@ a semicolon. first. `i' - Use case-insensitive matching + Use case-insensitive matching. `x' REGEXP is an "extended regular expression" (*note Extended regular @@ -6702,7 +6864,7 @@ this case, `/lib/libc.so.6' would become: /usr/local/lib/libc.so.6 -> /usr/local/libc-2.3.2.so - This is definitely not desired. To avoid this, the `S' flag are + This is definitely not desired. To avoid this, the `S' flag is used, which excludes symbolic link targets from filename transformations. The result is: @@ -6745,8 +6907,6 @@ File: tar.info, Node: after, Next: recurse, Prev: transform, Up: Choosing 6.8 Operating Only on New Files =============================== - _(This message will disappear, once this node revised.)_ - The `--after-date=DATE' (`--newer=DATE', `-N DATE') option causes `tar' to only work on files whose data modification or status change times are newer than the DATE given. If DATE starts with `/' or `.', it is @@ -6827,8 +6987,6 @@ File: tar.info, Node: recurse, Next: one, Prev: after, Up: Choosing 6.9 Descending into Directories =============================== - _(This message will disappear, once this node revised.)_ - Usually, `tar' will recursively explore all directories (either those given on the command line or through the `--files-from' option) for the various files they contain. However, you may not always want `tar' to @@ -6836,11 +6994,11 @@ act this way. The `--no-recursion' option inhibits `tar''s recursive descent into specified directories. If you specify `--no-recursion', you can use -the `find' utility for hunting through levels of directories to -construct a list of file names which you could then pass to `tar'. -`find' allows you to be more selective when choosing which files to -archive; see *note files::, for more information on using `find' with -`tar', or look. +the `find' (*note find: (find)Top.) utility for hunting through levels +of directories to construct a list of file names which you could then +pass to `tar'. `find' allows you to be more selective when choosing +which files to archive; see *note files::, for more information on +using `find' with `tar'. `--no-recursion' Prevents `tar' from recursively descending directories. @@ -6893,8 +7051,6 @@ File: tar.info, Node: one, Prev: recurse, Up: Choosing 6.10 Crossing File System Boundaries ==================================== - _(This message will disappear, once this node revised.)_ - `tar' will normally automatically cross file system boundaries in order to archive files which are part of a directory tree. You can change this behavior by running `tar' and specifying `--one-file-system'. @@ -6961,7 +7117,7 @@ three files will be written in the current directory. which records the third file in the archive under the name `red/cherry' so that, if the archive is extracted using `tar --extract', the third -file will be written in a subdirectory named `orange-colored'. +file will be written in a subdirectory named `red'. You can use the `--directory' option to make the archive independent of the original name of the directory holding the files. The following @@ -7009,17 +7165,15 @@ File: tar.info, Node: absolute, Prev: directory, Up: one 6.10.2 Absolute File Names -------------------------- - _(This message will disappear, once this node revised.)_ +By default, GNU `tar' drops a leading `/' on input or output, and +complains about file names containing a `..' component. There is an +option that turns off this behavior: `--absolute-names' `-P' Do not strip leading slashes from file names, and permit file names containing a `..' file name component. - By default, GNU `tar' drops a leading `/' on input or output, and -complains about file names containing a `..' component. This option -turns off this behavior. - When `tar' extracts archive members from an archive, it strips any leading slashes (`/') from the member name. This causes absolute member names in the archive to be treated as relative file names. This @@ -7039,7 +7193,7 @@ for other people with a non-GNU `tar' program to use. Therefore, GNU `tar' also strips leading slashes from member names when putting members into the archive. For example, if you ask `tar' to add the file `/bin/ls' to an archive, it will do so, but the member name will be -`bin/ls'.(1) +`bin/ls'(1). If you use the `--absolute-names' (`-P') option, `tar' will do none of these transformations. @@ -7547,131 +7701,3 @@ and others. (<pinard@iro.umontreal.ca>) from the `getdate.y' source code, and then edited by K. Berry (<kb@cs.umb.edu>). - -File: tar.info, Node: Formats, Next: Media, Prev: Date input formats, Up: Top - -8 Controlling the Archive Format -******************************** - -Due to historical reasons, there are several formats of tar archives. -All of them are based on the same principles, but have some subtle -differences that often make them incompatible with each other. - - GNU tar is able to create and handle archives in a variety of -formats. The most frequently used formats are (in alphabetical order): - -gnu - Format used by GNU `tar' versions up to 1.13.25. This format - derived from an early POSIX standard, adding some improvements - such as sparse file handling and incremental archives. - Unfortunately these features were implemented in a way - incompatible with other archive formats. - - Archives in `gnu' format are able to hold file names of unlimited - length. - -oldgnu - Format used by GNU `tar' of versions prior to 1.12. - -v7 - Archive format, compatible with the V7 implementation of tar. This - format imposes a number of limitations. The most important of them - are: - - 1. The maximum length of a file name is limited to 99 characters. - - 2. The maximum length of a symbolic link is limited to 99 - characters. - - 3. It is impossible to store special files (block and character - devices, fifos etc.) - - 4. Maximum value of user or group ID is limited to 2097151 - (7777777 octal) - - 5. V7 archives do not contain symbolic ownership information - (user and group name of the file owner). - - This format has traditionally been used by Automake when producing - Makefiles. This practice will change in the future, in the - meantime, however this means that projects containing file names - more than 99 characters long will not be able to use GNU `tar' - 1.22 and Automake prior to 1.9. - -ustar - Archive format defined by POSIX.1-1988 specification. It stores - symbolic ownership information. It is also able to store special - files. However, it imposes several restrictions as well: - - 1. The maximum length of a file name is limited to 256 - characters, provided that the file name can be split at a - directory separator in two parts, first of them being at most - 155 bytes long. So, in most cases the maximum file name - length will be shorter than 256 characters. - - 2. The maximum length of a symbolic link name is limited to 100 - characters. - - 3. Maximum size of a file the archive is able to accommodate is - 8GB - - 4. Maximum value of UID/GID is 2097151. - - 5. Maximum number of bits in device major and minor numbers is - 21. - -star - Format used by Jo"rg Schilling `star' implementation. GNU `tar' - is able to read `star' archives but currently does not produce - them. - -posix - Archive format defined by POSIX.1-2001 specification. This is the - most flexible and feature-rich format. It does not impose any - restrictions on file sizes or file name lengths. This format is - quite recent, so not all tar implementations are able to handle it - properly. However, this format is designed in such a way that any - tar implementation able to read `ustar' archives will be able to - read most `posix' archives as well, with the only exception that - any additional information (such as long file names etc.) will in - such case be extracted as plain text files along with the files it - refers to. - - This archive format will be the default format for future versions - of GNU `tar'. - - - The following table summarizes the limitations of each of these -formats: - -Format UID File Size File Name Devn --------------------------------------------------------------------- -gnu 1.8e19 Unlimited Unlimited 63 -oldgnu 1.8e19 Unlimited Unlimited 63 -v7 2097151 8GB 99 n/a -ustar 2097151 8GB 256 21 -posix Unlimited Unlimited Unlimited Unlimited - - The default format for GNU `tar' is defined at compilation time. -You may check it by running `tar --help', and examining the last lines -of its output. Usually, GNU `tar' is configured to create archives in -`gnu' format, however, future version will switch to `posix'. - -* Menu: - -* Compression:: Using Less Space through Compression -* Attributes:: Handling File Attributes -* Portability:: Making `tar' Archives More Portable -* cpio:: Comparison of `tar' and `cpio' - - -File: tar.info, Node: Compression, Next: Attributes, Up: Formats - -8.1 Using Less Space through Compression -======================================== - -* Menu: - -* gzip:: Creating and Reading Compressed Archives -* sparse:: Archiving Sparse Files - diff --git a/doc/tar.info-2 b/doc/tar.info-2 index dfdf504772d30a138c3d70e9589f0bf4cb8672eb..cd19ccc8f1f86c8ce0507a8d7e9bb0630c78e328 100644 --- a/doc/tar.info-2 +++ b/doc/tar.info-2 @@ -1,10 +1,10 @@ This is tar.info, produced by makeinfo version 4.13 from tar.texi. -This manual is for GNU `tar' (version 1.22, 5 March 2009), which +This manual is for GNU `tar' (version 1.23, 9 March 2010), which creates and extracts files from archives. Copyright (C) 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, -2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, @@ -28,6 +28,134 @@ START-INFO-DIR-ENTRY * tar: (tar)tar invocation. Invoking GNU `tar'. END-INFO-DIR-ENTRY + +File: tar.info, Node: Formats, Next: Media, Prev: Date input formats, Up: Top + +8 Controlling the Archive Format +******************************** + +Due to historical reasons, there are several formats of tar archives. +All of them are based on the same principles, but have some subtle +differences that often make them incompatible with each other. + + GNU tar is able to create and handle archives in a variety of +formats. The most frequently used formats are (in alphabetical order): + +gnu + Format used by GNU `tar' versions up to 1.13.25. This format + derived from an early POSIX standard, adding some improvements + such as sparse file handling and incremental archives. + Unfortunately these features were implemented in a way + incompatible with other archive formats. + + Archives in `gnu' format are able to hold file names of unlimited + length. + +oldgnu + Format used by GNU `tar' of versions prior to 1.12. + +v7 + Archive format, compatible with the V7 implementation of tar. This + format imposes a number of limitations. The most important of them + are: + + 1. The maximum length of a file name is limited to 99 characters. + + 2. The maximum length of a symbolic link is limited to 99 + characters. + + 3. It is impossible to store special files (block and character + devices, fifos etc.) + + 4. Maximum value of user or group ID is limited to 2097151 + (7777777 octal) + + 5. V7 archives do not contain symbolic ownership information + (user and group name of the file owner). + + This format has traditionally been used by Automake when producing + Makefiles. This practice will change in the future, in the + meantime, however this means that projects containing file names + more than 99 characters long will not be able to use GNU `tar' + 1.23 and Automake prior to 1.9. + +ustar + Archive format defined by POSIX.1-1988 specification. It stores + symbolic ownership information. It is also able to store special + files. However, it imposes several restrictions as well: + + 1. The maximum length of a file name is limited to 256 + characters, provided that the file name can be split at a + directory separator in two parts, first of them being at most + 155 bytes long. So, in most cases the maximum file name + length will be shorter than 256 characters. + + 2. The maximum length of a symbolic link name is limited to 100 + characters. + + 3. Maximum size of a file the archive is able to accommodate is + 8GB + + 4. Maximum value of UID/GID is 2097151. + + 5. Maximum number of bits in device major and minor numbers is + 21. + +star + Format used by Jo"rg Schilling `star' implementation. GNU `tar' + is able to read `star' archives but currently does not produce + them. + +posix + Archive format defined by POSIX.1-2001 specification. This is the + most flexible and feature-rich format. It does not impose any + restrictions on file sizes or file name lengths. This format is + quite recent, so not all tar implementations are able to handle it + properly. However, this format is designed in such a way that any + tar implementation able to read `ustar' archives will be able to + read most `posix' archives as well, with the only exception that + any additional information (such as long file names etc.) will in + such case be extracted as plain text files along with the files it + refers to. + + This archive format will be the default format for future versions + of GNU `tar'. + + + The following table summarizes the limitations of each of these +formats: + +Format UID File Size File Name Devn +-------------------------------------------------------------------- +gnu 1.8e19 Unlimited Unlimited 63 +oldgnu 1.8e19 Unlimited Unlimited 63 +v7 2097151 8GB 99 n/a +ustar 2097151 8GB 256 21 +posix Unlimited Unlimited Unlimited Unlimited + + The default format for GNU `tar' is defined at compilation time. +You may check it by running `tar --help', and examining the last lines +of its output. Usually, GNU `tar' is configured to create archives in +`gnu' format, however, future version will switch to `posix'. + +* Menu: + +* Compression:: Using Less Space through Compression +* Attributes:: Handling File Attributes +* Portability:: Making `tar' Archives More Portable +* cpio:: Comparison of `tar' and `cpio' + + +File: tar.info, Node: Compression, Next: Attributes, Up: Formats + +8.1 Using Less Space through Compression +======================================== + +* Menu: + +* gzip:: Creating and Reading Compressed Archives +* sparse:: Archiving Sparse Files + File: tar.info, Node: gzip, Next: sparse, Up: Compression @@ -35,18 +163,20 @@ File: tar.info, Node: gzip, Next: sparse, Up: Compression ---------------------------------------------- GNU `tar' is able to create and read compressed archives. It supports -`gzip', `bzip2', `lzma' and `lzop' compression programs. For backward -compatibility, it also supports `compress' command, although we -strongly recommend against using it, because it is by far less -effective than other compression programs(1). +a wide variety of compression programs, namely: `gzip', `bzip2', +`lzip', `lzma', `lzop', `xz' and traditional `compress'. The latter is +supported mostly for backward compatibility, and we recommend against +using it, because it is by far less effective than the other +compression programs(1). Creating a compressed archive is simple: you just specify a "compression option" along with the usual archive creation commands. The compression option is `-z' (`--gzip') to create a `gzip' compressed -archive, `-j' (`--bzip2') to create a `bzip2' compressed archive, `-J' -(`--xz') to create an XZ archive, `--lzma' to create an LZMA compressed -archive, `--lzop' to create an LSOP archive, and `-Z' (`--compress') to -use `compress' program. For example: +archive, `-j' (`--bzip2') to create a `bzip2' compressed archive, +`--lzip' to create an lzip compressed archive, `-J' (`--xz') to create +an XZ archive, `--lzma' to create an LZMA compressed archive, `--lzop' +to create an LSOP archive, and `-Z' (`--compress') to use `compress' +program. For example: $ tar cfz archive.tar.gz . @@ -96,10 +226,10 @@ invocation of GNU `tar': Notice also, that there are several restrictions on operations on compressed archives. First of all, compressed archives cannot be -modified, i.e., you cannot update (`--update' (`-u')) them or delete -(`--delete') members from them or add (`--append' (`-r')) members to -them. Likewise, you cannot append another `tar' archive to a -compressed archive using `--concatenate' (`-A')). Secondly, +modified, i.e., you cannot update (`--update', alias `-u') them or +delete (`--delete') members from them or add (`--append', alias `-r') +members to them. Likewise, you cannot append another `tar' archive to +a compressed archive using `--concatenate' (`-A'). Secondly, multi-volume archives cannot be compressed. The following table summarizes compression options used by GNU `tar'. @@ -120,6 +250,7 @@ multi-volume archives cannot be compressed. `.tz2' `bzip2' `.tbz2' `bzip2' `.tbz' `bzip2' + `.lz' `lzip' `.lzma' `lzma' `.tlz' `lzma' `.lzo' `lzop' @@ -167,6 +298,9 @@ multi-volume archives cannot be compressed. `--bzip2' Filter the archive through `bzip2'. Otherwise like `--gzip'. +`--lzip' + Filter the archive through `lzip'. Otherwise like `--gzip'. + `--lzma' Filter the archive through `lzma'. Otherwise like `--gzip'. @@ -180,9 +314,11 @@ multi-volume archives cannot be compressed. `--use-compress-program=PROG' `-I=PROG' - Use external compression program PROG. Use this option if you - have a compression program that GNU `tar' does not support. There - are two requirements to which PROG should comply: + Use external compression program PROG. Use this option if you are + not happy with the compression program associated with the suffix + at compile time or if you have a compression program that GNU `tar' + does not support. There are two requirements to which PROG should + comply: First, when called without options, it should read data from standard input, compress it and output it on standard output. @@ -200,7 +336,7 @@ PGP encryption on top of compression, using `gpg' (*note gpg: #! /bin/sh case $1 in -d) gpg --decrypt - | gzip -d -c;; - '') gzip -c | gpg -s ;; + '') gzip -c | gpg -s;; *) echo "Unknown option $1">&2; exit 1;; esac @@ -288,14 +424,10 @@ File: tar.info, Node: Attributes, Next: Portability, Prev: Compression, Up: 8.2 Handling File Attributes ============================ - _(This message will disappear, once this node revised.)_ - When `tar' reads files, it updates their access times. To avoid this, use the `--atime-preserve[=METHOD]' option, which can either reset the access time retroactively or avoid changing it in the first place. - Handling of file attributes - `--atime-preserve' `--atime-preserve=replace' `--atime-preserve=system' @@ -375,10 +507,10 @@ access time retroactively or avoid changing it in the first place. The numeric ids are _always_ saved into `tar' archives. The identifying names are added at create time when provided by the - system, unless `--old-archive' (`-o') is used. Numeric ids could - be used when moving archives between a collection of machines using - a centralized management for attribution of numeric ids to users - and groups. This is often made through using the NIS capabilities. + system, unless `--format=oldgnu' is used. Numeric ids could be + used when moving archives between a collection of machines using a + centralized management for attribution of numeric ids to users and + groups. This is often made through using the NIS capabilities. When making a `tar' file for distribution to other sites, it is sometimes cleaner to use a single owner for all files in the @@ -501,8 +633,6 @@ File: tar.info, Node: hard links, Next: old, Prev: dereference, Up: Portabil 8.3.3 Hard Links ---------------- - _(This message will disappear, once this node revised.)_ - Normally, when `tar' archives a hard link, it writes a block to the archive naming the target of the link (a `1' type block). In that way, the actual file contents is stored in file only once. For example, @@ -537,7 +667,7 @@ reproduction of the file system. The following option does that: For example, trying to archive only file `jeden' with this option produces the following diagnostics: - $ tar -c -f ../archive.tar jeden + $ tar -c -f ../archive.tar -l jeden tar: Missing links to `jeden'. Although creating special records for hard links helps keep a @@ -704,6 +834,12 @@ keyword option taking one of the following forms: %d/PaxHeaders.%p/%f +`exthdr.mtime=VALUE' + This keyword defines the value of the `mtime' field that is + written into the ustar header blocks for the extended headers. By + default, the `mtime' field is set to the modification time of the + archive member described by that extended headers. + `globexthdr.name=STRING' This keyword allows user control over the name that is written into the ustar header blocks for global extended header records. The @@ -729,6 +865,12 @@ keyword option taking one of the following forms: where `$TMPDIR' represents the value of the TMPDIR environment variable. If TMPDIR is not set, `tar' uses `/tmp'. +`globexthdr.mtime=VALUE' + This keyword defines the value of the `mtime' field that is + written into the ustar header blocks for the global extended + headers. By default, the `mtime' field is set to the time when + `tar' was invoked. + `KEYWORD=VALUE' When used with one of archive-creation commands, these keyword/value pairs will be included at the beginning of the @@ -756,6 +898,26 @@ keyword option taking one of the following forms: the group name will be forced to a new value for all files stored in the archive. + In any of the forms described above, the VALUE may be a string +enclosed in curly braces. In that case, the string between the braces +is understood either as a textual time representation, as described in +*note Date input formats::, or a name of the existing file, starting +with `/' or `.'. In the latter case, the modification time of that +file is used. + + For example, to set all modification times to the current date, you +use the following option: + + --pax-option='mtime:={now}' + + Note quoting of the option's argument. + + As another example, here is the option that ensures that any two +archives created using it, will be binary equivalent if they have the +same contents: + + --pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0 + File: tar.info, Node: Checksumming, Next: Large or Negative Values, Prev: posix, Up: Portability @@ -767,12 +929,13 @@ and containing non-ASCII file names, that is, file names having characters with the eight bit set, because they use signed checksums, while GNU `tar' uses unsigned checksums while creating archives, as per POSIX standards. On reading, GNU `tar' computes both checksums and -accept any. It is somewhat worrying that a lot of people may go around -doing backup of their files using faulty (or at least non-standard) -software, not learning about it until it's time to restore their -missing files with an incompatible file extractor, or vice versa. +accepts any. It is somewhat worrying that a lot of people may go +around doing backup of their files using faulty (or at least +non-standard) software, not learning about it until it's time to +restore their missing files with an incompatible file extractor, or +vice versa. - GNU `tar' compute checksums both ways, and accept any on read, so + GNU `tar' computes checksums both ways, and accept any on read, so GNU tar can read Sun tapes even with their wrong checksums. GNU `tar' produces the standard checksum, however, raising incompatibilities with Sun. That is to say, GNU `tar' has not been modified to _produce_ @@ -1146,7 +1309,7 @@ comes only with System III, System V, and later BSD (4.3-tahoe and later). `tar''s way of handling multiple hard links to a file can handle -file systems that support 32-bit inumbers (e.g., the BSD file system); +file systems that support 32-bit i-numbers (e.g., the BSD file system); `cpio's way requires you to play some games (in its "binary" format, i-numbers are only 16 bits, and in its "portable ASCII" format, they're 18 bits--it would have to play games with the "file system ID" field of @@ -1294,10 +1457,10 @@ of California, and a copy of the source code can be found with the sources for `tar'; it's compiled and installed by default. The exact path to this utility is determined when configuring the package. It is `PREFIX/libexec/rmt', where PREFIX stands for your installation prefix. -This location may also be overridden at runtime by using -`rmt-command=COMMAND' option (*Note --rmt-command: Option Summary, for -detailed description of this option. *Note Remote Tape Server::, for -the description of `rmt' command). +This location may also be overridden at runtime by using the +`--rmt-command=COMMAND' option (*Note --rmt-command: Option Summary, +for detailed description of this option. *Note Remote Tape Server::, +for the description of `rmt' command). If this option is not given, but the environment variable `TAPE' is set, its value is used; otherwise, old versions of `tar' used a default @@ -1376,8 +1539,8 @@ could also check for `DEFTAPE' in `<sys/mtio.h>'. File: tar.info, Node: Remote Tape Server, Next: Common Problems and Solutions, Prev: Device, Up: Media -9.2 The Remote Tape Server -========================== +9.2 Remote Tape Server +====================== In order to access the tape drive on a remote machine, `tar' uses the remote tape server written at the University of California at Berkeley. @@ -1424,7 +1587,7 @@ archive in order to reread or rewrite a record that was just read (or written). This is currently possible only on two kinds of files: normal disk files (or any other file that can be backspaced with `lseek'), and industry-standard 9-track magnetic tape (or any other kind of tape that -can be backspaced with the `MTIOCTOP' `ioctl'. +can be backspaced with the `MTIOCTOP' `ioctl'). This means that the `--append', `--concatenate', and `--delete' commands will not work on any other kind of file. Some media simply @@ -1469,8 +1632,6 @@ File: tar.info, Node: Blocking, Next: Many, Prev: Common Problems and Solutio 9.4 Blocking ============ - _(This message will disappear, once this node revised.)_ - "Block" and "record" terminology is rather confused, and it is also confusing to the expert reader. On the other hand, readers who are new to the field have a fresh mind, and they may safely skip the next two @@ -1666,7 +1827,7 @@ archive with a non-standard blocking factor (particularly if you're not sure what the blocking factor is), you can usually use the `--read-full-records' (`-B') option while specifying a blocking factor larger then the blocking factor of the archive (i.e., `tar --extract ---read-full-records --blocking-factor=300'. *Note list::, for more +--read-full-records --blocking-factor=300'). *Note list::, for more information on the `--list' (`-t') operation. *Note Reading::, for a more detailed explanation of that option. @@ -1679,7 +1840,7 @@ more detailed explanation of that option. `-b BLOCKS' `--blocking-factor=BLOCKS' - Set record size to BLOCKS * 512 bytes. + Set record size to BLOCKS*512 bytes. This option is used to specify a "blocking factor" for the archive. When reading or writing the archive, `tar', will do reads and @@ -1806,7 +1967,7 @@ information on it, used for decelerating the tape to a full stop, and for later regaining the reading or writing speed. When the tape driver starts reading a record, the record has to be read whole without stopping, as a tape gap is needed to stop the tape motion without -loosing information. +losing information. Using higher blocking (putting more disk blocks per tape block) will use the tape more efficiently as there will be less tape gaps. But @@ -1996,12 +2157,12 @@ OPERATION is one of the following: Moves tape position back NUMBER files. `rewind' - Rewinds the tape. (Ignores NUMBER). + Rewinds the tape. (Ignores NUMBER.) `offline' `rewoff1' Rewinds the tape and takes the tape device off-line. (Ignores - NUMBER). + NUMBER.) `status' Prints status information about the tape unit. @@ -2072,7 +2233,7 @@ To create an archive that is larger than will fit on a single unit of the media, use the `--multi-volume' (`-M') option in conjunction with the `--create' option (*note create::). A "multi-volume" archive can be manipulated like any other archive (provided the `--multi-volume' -option is specified), but is stored on more than one tape or disk. +option is specified), but is stored on more than one tape or file. When you specify `--multi-volume', `tar' does not report an error when it comes to the end of an archive volume (when reading), or the @@ -2115,7 +2276,7 @@ is archive file or device name. responses: `?' - Request `tar' to explain possible responses + Request `tar' to explain possible responses. `q' Request `tar' to exit immediately. @@ -2166,13 +2327,13 @@ via the following environment variables: The name of the archive `tar' is processing. `TAR_BLOCKING_FACTOR' - Current blocking factor (*note Blocking::. + Current blocking factor (*note Blocking::). `TAR_VOLUME' Ordinal number of the volume `tar' is about to start. `TAR_SUBCOMMAND' - A short option describing the operation `tar' is executing *Note + A short option describing the operation `tar' is executing. *Note Operations::, for a complete list of subcommand options. `TAR_FORMAT' @@ -2272,7 +2433,7 @@ implementation, read *note Split Recovery::. (1) If you run GNU `tar' under a different locale, the translation to the locale's language will be used. - (2) *Note --restrict::, for more information about this option + (2) *Note --restrict::, for more information about this option. File: tar.info, Node: Tape Files, Next: Tarcat, Prev: Multi-Volume Archives, Up: Using Multiple Tapes @@ -2289,7 +2450,7 @@ the front of the archive which will be displayed when the archive is listed with `--list'. If you are creating a multi-volume archive with `--multi-volume' (*note Using Multiple Tapes::), then the volume label will have `Volume NNN' appended to the name you give, where NNN is the -number of the volume of the archive. (If you use the +number of the volume of the archive. If you use the `--label=VOLUME-LABEL') option when reading an archive, it checks to make sure the label on the tape matches the one you give. *Note label::. @@ -2352,7 +2513,7 @@ is being created. the archive is being created, when used in conjunction with the `--create' operation. Checks to make sure the archive label matches the one specified (when used in conjunction with any other - operation. + operation). If you create an archive using both `--label=ARCHIVE-LABEL' (`-V ARCHIVE-LABEL') and `--multi-volume' (`-M'), each volume of the archive @@ -2422,7 +2583,7 @@ get some date string as part of the label. For example: $ tar cfMV /dev/tape "Daily backup for `date +%Y-%m-%d`" $ tar --create --file=/dev/tape --multi-volume \ - --volume="Daily backup for `date +%Y-%m-%d`" + --label="Daily backup for `date +%Y-%m-%d`" Also note that each label has its own date and time, which corresponds to when GNU `tar' initially attempted to write it, often @@ -2519,7 +2680,7 @@ be "write protected", to protect data on them from being changed. Once an archive is written, you should write protect the media to prevent the archive from being accidentally overwritten or deleted. (This will protect the archive from being changed with a tape or floppy drive--it -will not protect it from magnet fields or other physical hazards). +will not protect it from magnet fields or other physical hazards.) The write protection device itself is usually an integral part of the physical media, and can be a two position (write enabled/write @@ -2534,7 +2695,7 @@ Appendix A Changes ****************** This appendix lists some important user-visible changes between version -GNU `tar' 1.22 and previous versions. An up-to-date version of this +GNU `tar' 1.23 and previous versions. An up-to-date version of this document is available at the GNU `tar' documentation page (http://www.gnu.org/software/tar/manual/changes.html). @@ -2563,9 +2724,9 @@ Use of globbing patterns when listing and extracting. tar: *.c: Not found in archive tar: Error exit delayed from previous errors - To treat member names as globbing patterns, use -wildcards option. - If you want to tar to mimic the behavior of versions prior to - 1.15.91, add this option to your `TAR_OPTIONS' variable. + To treat member names as globbing patterns, use the `--wildcards' + option. If you want to tar to mimic the behavior of versions + prior to 1.15.91, add this option to your `TAR_OPTIONS' variable. *Note wildcards::, for the detailed discussion of the use of globbing patterns by GNU `tar'. @@ -2587,7 +2748,7 @@ Use of short option `-o'. distribution tarballs. *Note v7: Formats, for the detailed discussion of this issue and its implications. - . *Note tar-v7: (automake)Options, for a description on how to + *Note tar-formats: (automake)Options, for a description on how to use various archive formats with `automake'. Future versions of GNU `tar' will understand `-o' only as a @@ -2596,7 +2757,7 @@ Use of short option `-o'. Use of short option `-l' Earlier versions of GNU `tar' understood `-l' option as a synonym for `--one-file-system'. Since such usage contradicted to UNIX98 - specification and harmed compatibility with other implementation, + specification and harmed compatibility with other implementations, it was declared deprecated in version 1.14. However, to facilitate transition to its new semantics, it was supported by versions 1.15 and 1.15.90. The present use of `-l' as a short @@ -2775,7 +2936,7 @@ Appendix C Fixing Snapshot Files ******************************** Sometimes device numbers can change after upgrading your kernel version -or recofiguring the harvare. Reportedly this is the case with some +or reconfiguring the hardware. Reportedly this is the case with some newer Linux kernels, when using LVM. In majority of cases this change is unnoticed by the users. However, it influences `tar' incremental backups: the device number is stored in tar snapshot files (*note @@ -2794,7 +2955,7 @@ available from GNU `tar' home page $ tar-snapshot-edit SNAPFILE where SNAPFILE is the name of the snapshot file (you can supply as many -files as you wish in a single command line ). +files as you wish in a single command line). To update all occurrences of the given device number in the file, use `-r' option. It takes a single argument of the form `OLDDEV-NEWDEV', @@ -3369,7 +3530,7 @@ called "old GNU" sparse format and in spite of the fact that its design contained many flaws, it was the only format GNU `tar' supported until version 1.14 (May, 2004), which introduced initial support for sparse archives in PAX archives (*note posix::). This format was not free -from design flows, either and it was subsequently improved in versions +from design flaws, either and it was subsequently improved in versions 1.15.2 (November, 2005) and 1.15.92 (June, 2006). In addition to GNU sparse format, GNU `tar' is able to read and @@ -3389,9 +3550,9 @@ File: tar.info, Node: Old GNU Format, Next: PAX 0, Up: Sparse Formats D.0.1 Old GNU Format -------------------- -The format introduced some time around 1990 (v. 1.09). It was designed -on top of standard `ustar' headers in such an unfortunate way that some -of its fields overwrote fields required by POSIX. +The format introduced in November 1990 (v. 1.09) was designed on top of +standard `ustar' headers in such an unfortunate way that some of its +fields overwrote fields required by POSIX. An old GNU sparse header is designated by type `S' (`GNUTYPE_SPARSE') and has the following layout: @@ -3427,7 +3588,7 @@ structure: Offset Size Name Data type Contents ---------------------------------------------------------------------------- -0 21 sp `sparse_header' (21 entires) File map. +0 21 sp `sparse_header' (21 entries) File map. 504 1 isextended Bool `1' if an extension sparse header follows, or `0' otherwise. @@ -3446,16 +3607,16 @@ the initial version of sparse format used by `tar' versions variables: `GNU.sparse.size' - Real size of the stored file + Real size of the stored file; `GNU.sparse.numblocks' - Number of blocks in the sparse map + Number of blocks in the sparse map; `GNU.sparse.offset' - Offset of the data block + Offset of the data block; `GNU.sparse.numbytes' - Size of the data block + Size of the data block. The latter two variables repeat for each data block, so the overall structure is like this: @@ -3475,16 +3636,16 @@ structure is like this: `GNU.sparse.offset' and `GNU.sparse.numbytes' are conflicting with the POSIX specs. - 2. Attempting to extract such archives using a third-party `tar's - results in extraction of sparse files in _compressed form_. If - the `tar' implementation in question does not support POSIX - format, it will also extract a file containing extension header - attributes. This file can be used to expand the file to its - original state. However, posix-aware `tar's will usually ignore - the unknown variables, which makes restoring the file more - difficult. *Note Extraction of sparse members in v.0.0 format: - extracting sparse v.0.x, for the detailed description of how to - restore such members using non-GNU `tar's. + 2. Attempting to extract such archives using a third-party's `tar' + results in extraction of sparse files in _condensed form_. If the + `tar' implementation in question does not support POSIX format, it + will also extract a file containing extension header attributes. + This file can be used to expand the file to its original state. + However, posix-aware `tar's will usually ignore the unknown + variables, which makes restoring the file more difficult. *Note + Extraction of sparse members in v.0.0 format: extracting sparse + v.0.x, for the detailed description of how to restore such members + using non-GNU `tar's. GNU `tar' 1.15.2 introduced sparse format version `0.1', which attempted to solve these problems. As its predecessor, this format @@ -3512,7 +3673,7 @@ using non-GNU `tar's. The resulting `GNU.sparse.map' string can be _very_ long. Although POSIX does not impose any limit on the length of a `x' header variable, -this possibly can confuse some tars. +this possibly can confuse some `tar's. File: tar.info, Node: PAX 1, Prev: PAX 0, Up: Sparse Formats @@ -3551,8 +3712,8 @@ to the nearest block boundary. are map entries, each one consisting of two numbers giving the offset and size of the data block it describes. - The format is designed in such a way that non-posix aware tars and -tars not supporting `GNU.sparse.*' keywords will extract each sparse + The format is designed in such a way that non-posix aware `tar's and +`tar's not supporting `GNU.sparse.*' keywords will extract each sparse file in its condensed form with the file map prepended and will place it into a separate directory. Then, using a simple program it would be possible to expand the file to its original form even without GNU `tar'. @@ -3570,12 +3731,12 @@ backups (*note Incremental Dumps::). It contains the status of the file system at the time of the dump and is used to determine which files were modified since the last backup. - GNU `tar' version 1.22 supports three snapshot file formats. The + GNU `tar' version 1.23 supports three snapshot file formats. The first format, called "format 0", is the one used by GNU `tar' versions up to 1.15.1. The second format, called "format 1" is an extended version of this format, that contains more metadata and allows for further extensions. It was used by version 1.15.1. Starting from -version 1.16 and up to 1.22, the "format 2" is used. +version 1.16 and up to 1.23, the "format 2" is used. GNU `tar' is able to read all three formats, but will create snapshots only in format 2. @@ -3628,10 +3789,10 @@ snapshots only in format 2. this directory with nanosecond precision; NFS, DEV, INODE and NAME have the same meaning as with `format 0'. - 2. A snapshot file begins with a format identifier, as described - for version 1, e.g.: + 2. `Format 2' snapshot file begins with a format identifier, as + described for version 1, e.g.: - GNU tar-1.22-2 + GNU tar-1.23-2 This line is followed by newline. Rest of file consists of records, separated by null (ASCII 0) characters. Thus, in contrast @@ -3657,8 +3818,8 @@ snapshots only in format 2. mtime-nano Number Modification time, nanoseconds; dev-no Number Device number; i-no Number I-node number; - name String Directory name; In contrast to the - previous versions it is not quoted. + name String Directory name; in contrast to the + previous versions it is not quoted; contents Dumpdir Contents of the directory; *Note Dumpdir::, for a description of its format. @@ -4013,23 +4174,14 @@ when some of the files change during archiving. It is an experimental mode. The `Exec Mode' is toggled by `--run' command line option (or its -alias `-r'). The argument to this option gives the command line to be -executed. The actual command line is constructed by inserting -`--checkpoint' option between the command name and its first argument -(if any). Due to this, the argument to `--run' may not use traditional -`tar' option syntax, i.e., the following is wrong: +alias `-r'). The non-optional arguments to `getopt' give the command +line to be executed. Normally, it should contain at least the +`--checkpoint' option. - # Wrong! - genfile --run 'tar cf foo bar' - -Use the following syntax instead: - - genfile --run 'tar -cf foo bar' - - The rest of command line after `--run' or its equivalent specifies -checkpoint values and actions to be executed upon reaching them. -Checkpoint values are introduced with `--checkpoint' command line -option. Argument to this option is the number of checkpoint in decimal. + A set of options is provided for defining checkpoint values and +actions to be executed upon reaching them. Checkpoint values are +introduced with the `--checkpoint' command line option. Argument to +this option is the number of checkpoint in decimal. Any number of "actions" may be specified after a checkpoint. Available actions are @@ -4053,6 +4205,8 @@ Available actions are `--exec COMMAND' Execute given shell command. +`--unlink FILE' + Unlink the FILE. Option `--verbose' instructs `genfile' to print on standard output notifications about checkpoints being executed and to verbosely @@ -4064,6 +4218,29 @@ except checkpoint notifications, are forwarded to standard error. `Genfile' exits with the exit status of the executed command. + For compatibility with previous `genfile' versions, the `--run' +option takes an optional argument. If used this way, its argument +supplies the command line to be executed. There should be no +non-optional arguments in the `genfile' command line. + + The actual command line is constructed by inserting the +`--checkpoint' option between the command name and its first argument +(if any). Due to this, the argument to `--run' may not use traditional +`tar' option syntax, i.e., the following is wrong: + + # Wrong! + genfile --run='tar cf foo bar' + +Use the following syntax instead: + + genfile --run='tar -cf foo bar' ACTIONS... + + The above command line is equivalent to + + genfile ACTIONS... -- tar -cf foo bar + + Notice, that the use of compatibility mode is deprecated. + File: tar.info, Node: Free Software Needs Free Documentation, Next: Copying This Manual, Prev: Genfile, Up: Top @@ -4612,19 +4789,20 @@ Summary::. �[index�] * Menu: -* absolute-names: absolute. (line 8) +* absolute-names: absolute. (line 10) * absolute-names, summary: Option Summary. (line 6) -* add-file: files. (line 84) -* after-date: after. (line 26) +* add-file: files. (line 85) +* after-date: after. (line 24) * after-date, summary: Option Summary. (line 12) * anchored: controlling pattern-matching. (line 79) * anchored, summary: Option Summary. (line 15) -* append: append. (line 8) +* append <1>: appending files. (line 6) +* append: append. (line 6) * append, summary: Operation Summary. (line 6) -* atime-preserve: Attributes. (line 14) +* atime-preserve: Attributes. (line 10) * atime-preserve, summary: Option Summary. (line 19) -* auto-compress: gzip. (line 76) +* auto-compress: gzip. (line 78) * auto-compress, summary: Option Summary. (line 65) * backup: backup. (line 41) * backup, summary: Option Summary. (line 71) @@ -4632,13 +4810,13 @@ Summary::. * block-number, summary: Option Summary. (line 76) * blocking-factor: Blocking Factor. (line 8) * blocking-factor, summary: Option Summary. (line 82) -* bzip2: gzip. (line 131) +* bzip2: gzip. (line 134) * bzip2, summary: Option Summary. (line 87) * catenate: concatenate. (line 6) * catenate, summary: Operation Summary. (line 10) -* check-device, described: Incremental Dumps. (line 99) +* check-device, described: Incremental Dumps. (line 108) * check-device, summary: Option Summary. (line 92) -* check-links, described: hard links. (line 33) +* check-links, described: hard links. (line 31) * check-links, summary: Option Summary. (line 143) * checkpoint: checkpoints. (line 6) * checkpoint, defined: checkpoints. (line 13) @@ -4646,9 +4824,9 @@ Summary::. * checkpoint-action: checkpoints. (line 6) * checkpoint-action, defined: checkpoints. (line 22) * checkpoint-action, summary: Option Summary. (line 105) -* compare: compare. (line 8) +* compare: compare. (line 6) * compare, summary: Operation Summary. (line 14) -* compress: gzip. (line 145) +* compress: gzip. (line 151) * compress, summary: Option Summary. (line 152) * concatenate: concatenate. (line 6) * concatenate, summary: Operation Summary. (line 20) @@ -4663,284 +4841,298 @@ Summary::. * delay-directory-restore: Directory Modification Times and Permissions. (line 62) * delay-directory-restore, summary: Option Summary. (line 162) -* delete: delete. (line 8) +* delete: delete. (line 6) * delete, summary: Operation Summary. (line 29) +* delete, using before -append: append. (line 47) * dereference: dereference. (line 6) * dereference, summary: Option Summary. (line 167) * diff, summary: Operation Summary. (line 33) * directory: directory. (line 11) * directory, summary: Option Summary. (line 173) * directory, using in --files-from argument: files. (line 60) -* exclude: exclude. (line 11) +* exclude: exclude. (line 6) * exclude, potential problems with: problems with exclude. (line 6) * exclude, summary: Option Summary. (line 180) -* exclude-caches: exclude. (line 96) -* exclude-caches, summary: Option Summary. (line 189) -* exclude-caches-all: exclude. (line 104) -* exclude-caches-all, summary: Option Summary. (line 202) -* exclude-caches-under: exclude. (line 100) -* exclude-caches-under, summary: Option Summary. (line 196) -* exclude-from: exclude. (line 22) -* exclude-from, summary: Option Summary. (line 184) -* exclude-tag: exclude. (line 113) -* exclude-tag, summary: Option Summary. (line 206) -* exclude-tag-all: exclude. (line 121) -* exclude-tag-all, summary: Option Summary. (line 214) -* exclude-tag-under: exclude. (line 117) -* exclude-tag-under, summary: Option Summary. (line 210) -* exclude-vcs: exclude. (line 39) -* exclude-vcs, summary: Option Summary. (line 218) -* extract: extract. (line 8) -* extract, additional options: extract options. (line 8) +* exclude-backups: exclude. (line 82) +* exclude-backups, summary: Option Summary. (line 184) +* exclude-caches: exclude. (line 105) +* exclude-caches, summary: Option Summary. (line 192) +* exclude-caches-all: exclude. (line 113) +* exclude-caches-all, summary: Option Summary. (line 205) +* exclude-caches-under: exclude. (line 109) +* exclude-caches-under, summary: Option Summary. (line 199) +* exclude-from: exclude. (line 6) +* exclude-from, summary: Option Summary. (line 187) +* exclude-tag: exclude. (line 122) +* exclude-tag, summary: Option Summary. (line 209) +* exclude-tag-all: exclude. (line 130) +* exclude-tag-all, summary: Option Summary. (line 219) +* exclude-tag-under: exclude. (line 126) +* exclude-tag-under, summary: Option Summary. (line 214) +* exclude-vcs: exclude. (line 37) +* exclude-vcs, summary: Option Summary. (line 223) +* extract: extract. (line 6) +* extract, additional options: extract options. (line 6) * extract, complementary notes: Basic tar. (line 48) * extract, summary: Operation Summary. (line 37) * extract, using with --listed-incremental: Incremental Dumps. - (line 112) -* file, short description: file. (line 17) -* file, summary: Option Summary. (line 224) + (line 121) +* file: file. (line 6) +* file, short description: file. (line 15) +* file, summary: Option Summary. (line 229) * file, tutorial: file tutorial. (line 6) * files-from: files. (line 14) -* files-from, summary: Option Summary. (line 230) +* files-from, summary: Option Summary. (line 235) * force-local, short description: Device. (line 70) -* force-local, summary: Option Summary. (line 236) -* format, summary: Option Summary. (line 241) +* force-local, summary: Option Summary. (line 241) +* format, summary: Option Summary. (line 246) * get, summary: Operation Summary. (line 42) -* group: override. (line 73) -* group, summary: Option Summary. (line 266) -* gunzip, summary: Option Summary. (line 274) -* gzip: gzip. (line 97) -* gzip, summary: Option Summary. (line 274) -* hard-dereference, described: hard links. (line 61) -* hard-dereference, summary: Option Summary. (line 282) +* group: override. (line 75) +* group, summary: Option Summary. (line 271) +* gunzip, summary: Option Summary. (line 279) +* gzip: gzip. (line 100) +* gzip, summary: Option Summary. (line 279) +* hard-dereference, described: hard links. (line 59) +* hard-dereference, summary: Option Summary. (line 287) * help: help tutorial. (line 6) -* help, introduction: help. (line 26) -* help, summary: Option Summary. (line 288) +* help, introduction: help. (line 27) +* help, summary: Option Summary. (line 293) * ignore-case: controlling pattern-matching. (line 86) -* ignore-case, summary: Option Summary. (line 293) +* ignore-case, summary: Option Summary. (line 298) * ignore-command-error: Writing to an External Program. - (line 82) -* ignore-command-error, summary: Option Summary. (line 297) + (line 98) +* ignore-command-error, summary: Option Summary. (line 302) * ignore-failed-read: Ignore Failed Read. (line 7) -* ignore-failed-read, summary: Option Summary. (line 301) +* ignore-failed-read, summary: Option Summary. (line 306) * ignore-zeros: Ignore Zeros. (line 6) * ignore-zeros, short description: Blocking Factor. (line 156) -* ignore-zeros, summary: Option Summary. (line 305) -* incremental, summary: Option Summary. (line 310) -* incremental, using with --list: Incremental Dumps. (line 177) -* index-file, summary: Option Summary. (line 317) +* ignore-zeros, summary: Option Summary. (line 310) +* incremental, summary: Option Summary. (line 315) +* incremental, using with --list: Incremental Dumps. (line 157) +* index-file, summary: Option Summary. (line 322) * info-script: Multi-Volume Archives. (line 80) * info-script, short description: Device. (line 104) -* info-script, summary: Option Summary. (line 320) +* info-script, summary: Option Summary. (line 325) * interactive: interactive. (line 14) -* interactive, summary: Option Summary. (line 328) +* interactive, summary: Option Summary. (line 333) * keep-newer-files: Keep Newer Files. (line 6) -* keep-newer-files, summary: Option Summary. (line 335) +* keep-newer-files, summary: Option Summary. (line 340) * keep-old-files: Keep Old Files. (line 6) * keep-old-files, introduced: Dealing with Old Files. (line 16) -* keep-old-files, summary: Option Summary. (line 339) -* label: label. (line 8) -* label, summary: Option Summary. (line 344) +* keep-old-files, summary: Option Summary. (line 344) +* label <1>: label. (line 8) +* label: Tape Files. (line 6) +* label, summary: Option Summary. (line 349) +* level, described: Incremental Dumps. (line 76) +* level, summary: Option Summary. (line 356) * list: list. (line 6) * list, summary: Operation Summary. (line 46) -* list, using with --incremental: Incremental Dumps. (line 177) -* list, using with --listed-incremental: Incremental Dumps. (line 177) +* list, using with --incremental: Incremental Dumps. (line 159) +* list, using with --listed-incremental: Incremental Dumps. (line 160) * list, using with --verbose: list. (line 30) * list, using with file name arguments: list. (line 68) -* listed-incremental: Incremental Dumps. (line 14) -* listed-incremental, summary: Option Summary. (line 351) +* listed-incremental, described: Incremental Dumps. (line 14) +* listed-incremental, summary: Option Summary. (line 366) * listed-incremental, using with --extract: Incremental Dumps. - (line 112) -* listed-incremental, using with --list: Incremental Dumps. (line 177) -* lzma: gzip. (line 139) -* lzma, summary: Option Summary. (line 359) -* lzop: gzip. (line 142) + (line 121) +* listed-incremental, using with --list: Incremental Dumps. (line 158) +* lzip: gzip. (line 142) +* lzip, summary: Option Summary. (line 374) +* lzma: gzip. (line 145) +* lzma, summary: Option Summary. (line 378) +* lzop: gzip. (line 148) * mode: override. (line 14) -* mode, summary: Option Summary. (line 367) +* mode, summary: Option Summary. (line 386) * mtime: override. (line 29) -* mtime, summary: Option Summary. (line 373) +* mtime, summary: Option Summary. (line 392) * multi-volume: Multi-Volume Archives. (line 6) * multi-volume, short description: Device. (line 88) -* multi-volume, summary: Option Summary. (line 382) +* multi-volume, summary: Option Summary. (line 401) * new-volume-script: Multi-Volume Archives. (line 80) * new-volume-script, short description: Device. (line 104) -* new-volume-script, summary: Option Summary. (line 320) -* newer: after. (line 26) -* newer, summary: Option Summary. (line 390) -* newer-mtime: after. (line 37) -* newer-mtime, summary: Option Summary. (line 398) +* new-volume-script, summary: Option Summary. (line 325) +* newer: after. (line 24) +* newer, summary: Option Summary. (line 409) +* newer-mtime: after. (line 35) +* newer-mtime, summary: Option Summary. (line 417) * no-anchored: controlling pattern-matching. (line 79) -* no-anchored, summary: Option Summary. (line 403) -* no-auto-compress, summary: Option Summary. (line 407) -* no-check-device, described: Incremental Dumps. (line 95) -* no-check-device, summary: Option Summary. (line 411) +* no-anchored, summary: Option Summary. (line 422) +* no-auto-compress, summary: Option Summary. (line 426) +* no-check-device, described: Incremental Dumps. (line 104) +* no-check-device, summary: Option Summary. (line 430) * no-delay-directory-restore: Directory Modification Times and Permissions. (line 68) -* no-delay-directory-restore, summary: Option Summary. (line 416) +* no-delay-directory-restore, summary: Option Summary. (line 435) * no-ignore-case: controlling pattern-matching. (line 86) -* no-ignore-case, summary: Option Summary. (line 422) +* no-ignore-case, summary: Option Summary. (line 441) * no-ignore-command-error: Writing to an External Program. - (line 87) -* no-ignore-command-error, summary: Option Summary. (line 425) + (line 103) +* no-ignore-command-error, summary: Option Summary. (line 444) * no-null, described: nul. (line 15) -* no-null, summary: Option Summary. (line 429) -* no-overwrite-dir, summary: Option Summary. (line 434) -* no-quote-chars, summary: Option Summary. (line 438) -* no-recursion: recurse. (line 13) -* no-recursion, summary: Option Summary. (line 443) -* no-same-owner: Attributes. (line 67) -* no-same-owner, summary: Option Summary. (line 447) -* no-same-permissions, summary: Option Summary. (line 453) +* no-null, summary: Option Summary. (line 448) +* no-overwrite-dir, summary: Option Summary. (line 453) +* no-quote-chars, summary: Option Summary. (line 457) +* no-recursion: recurse. (line 11) +* no-recursion, summary: Option Summary. (line 462) +* no-same-owner: Attributes. (line 63) +* no-same-owner, summary: Option Summary. (line 466) +* no-same-permissions, summary: Option Summary. (line 472) +* no-seek, summary: Option Summary. (line 477) * no-unquote: Selecting Archive Members. (line 42) -* no-unquote, summary: Option Summary. (line 458) +* no-unquote, summary: Option Summary. (line 482) * no-wildcards: controlling pattern-matching. (line 41) -* no-wildcards, summary: Option Summary. (line 462) +* no-wildcards, summary: Option Summary. (line 486) * no-wildcards-match-slash: controlling pattern-matching. (line 92) -* no-wildcards-match-slash, summary: Option Summary. (line 465) +* no-wildcards-match-slash, summary: Option Summary. (line 489) * null, described: nul. (line 11) -* null, summary: Option Summary. (line 468) -* numeric-owner: Attributes. (line 73) -* numeric-owner, summary: Option Summary. (line 474) -* occurrence, summary: Option Summary. (line 491) -* old-archive, summary: Option Summary. (line 505) -* one-file-system: one. (line 16) -* one-file-system, summary: Option Summary. (line 508) +* null, summary: Option Summary. (line 492) +* numeric-owner: Attributes. (line 69) +* numeric-owner, summary: Option Summary. (line 498) +* occurrence, described: append. (line 34) +* occurrence, summary: Option Summary. (line 515) +* old-archive, summary: Option Summary. (line 529) +* one-file-system: one. (line 14) +* one-file-system, summary: Option Summary. (line 532) * overwrite: Overwrite Old Files. (line 6) * overwrite, introduced: Dealing with Old Files. (line 22) -* overwrite, summary: Option Summary. (line 513) +* overwrite, summary: Option Summary. (line 537) * overwrite-dir: Overwrite Old Files. (line 28) * overwrite-dir, introduced: Dealing with Old Files. (line 6) -* overwrite-dir, summary: Option Summary. (line 517) +* overwrite-dir, summary: Option Summary. (line 541) * owner: override. (line 57) -* owner, summary: Option Summary. (line 521) +* owner, summary: Option Summary. (line 545) * pax-option: PAX keywords. (line 6) -* pax-option, summary: Option Summary. (line 530) -* portability, summary: Option Summary. (line 536) -* posix, summary: Option Summary. (line 540) -* preserve: Attributes. (line 126) -* preserve, summary: Option Summary. (line 543) +* pax-option, summary: Option Summary. (line 554) +* portability, summary: Option Summary. (line 560) +* posix, summary: Option Summary. (line 564) +* preserve: Attributes. (line 122) +* preserve, summary: Option Summary. (line 567) * preserve-order: Same Order. (line 6) -* preserve-order, summary: Option Summary. (line 547) +* preserve-order, summary: Option Summary. (line 571) * preserve-permissions: Setting Access Permissions. (line 10) -* preserve-permissions, short description: Attributes. (line 113) -* preserve-permissions, summary: Option Summary. (line 550) -* quote-chars, summary: Option Summary. (line 560) +* preserve-permissions, short description: Attributes. (line 109) +* preserve-permissions, summary: Option Summary. (line 574) +* quote-chars, summary: Option Summary. (line 584) * quoting-style: quoting styles. (line 38) -* quoting-style, summary: Option Summary. (line 564) +* quoting-style, summary: Option Summary. (line 588) * read-full-records <1>: read full records. (line 6) -* read-full-records: Reading. (line 8) +* read-full-records: Reading. (line 6) * read-full-records, short description: Blocking Factor. (line 172) -* read-full-records, summary: Option Summary. (line 571) -* record-size, summary: Option Summary. (line 576) -* recursion: recurse. (line 24) -* recursion, summary: Option Summary. (line 580) +* read-full-records, summary: Option Summary. (line 595) +* record-size, summary: Option Summary. (line 600) +* recursion: recurse. (line 22) +* recursion, summary: Option Summary. (line 604) * recursive-unlink: Recursive Unlink. (line 6) -* recursive-unlink, summary: Option Summary. (line 584) +* recursive-unlink, summary: Option Summary. (line 608) * remove-files: remove files. (line 6) -* remove-files, summary: Option Summary. (line 589) -* restrict, summary: Option Summary. (line 593) -* rmt-command, summary: Option Summary. (line 598) +* remove-files, summary: Option Summary. (line 613) +* restrict, summary: Option Summary. (line 617) +* rmt-command, summary: Option Summary. (line 622) * rsh-command: Device. (line 73) -* rsh-command, summary: Option Summary. (line 602) +* rsh-command, summary: Option Summary. (line 626) * same-order: Same Order. (line 6) -* same-order, summary: Option Summary. (line 606) -* same-owner: Attributes. (line 48) -* same-owner, summary: Option Summary. (line 614) +* same-order, summary: Option Summary. (line 630) +* same-owner: Attributes. (line 44) +* same-owner, summary: Option Summary. (line 638) * same-permissions: Setting Access Permissions. (line 10) -* same-permissions, short description: Attributes. (line 113) -* same-permissions, summary: Option Summary. (line 550) -* seek, summary: Option Summary. (line 623) +* same-permissions, short description: Attributes. (line 109) +* same-permissions, summary: Option Summary. (line 574) +* seek, summary: Option Summary. (line 647) * show-defaults: defaults. (line 6) -* show-defaults, summary: Option Summary. (line 630) +* show-defaults, summary: Option Summary. (line 656) * show-omitted-dirs: verbose. (line 107) -* show-omitted-dirs, summary: Option Summary. (line 639) +* show-omitted-dirs, summary: Option Summary. (line 668) * show-stored-names: list. (line 60) -* show-stored-names, summary: Option Summary. (line 643) +* show-stored-names, summary: Option Summary. (line 672) * show-transformed-names: transform. (line 45) -* show-transformed-names, summary: Option Summary. (line 643) +* show-transformed-names, summary: Option Summary. (line 672) * sparse: sparse. (line 22) -* sparse, summary: Option Summary. (line 651) +* sparse, summary: Option Summary. (line 680) * sparse-version: sparse. (line 57) -* sparse-version, summary: Option Summary. (line 656) +* sparse-version, summary: Option Summary. (line 685) * starting-file: Starting File. (line 6) -* starting-file, summary: Option Summary. (line 661) +* starting-file, summary: Option Summary. (line 690) * strip-components: transform. (line 25) -* strip-components, summary: Option Summary. (line 667) +* strip-components, summary: Option Summary. (line 696) * suffix: backup. (line 68) -* suffix, summary: Option Summary. (line 676) +* suffix, summary: Option Summary. (line 705) * tape-length: Multi-Volume Archives. (line 33) * tape-length, short description: Device. (line 96) -* tape-length, summary: Option Summary. (line 682) +* tape-length, summary: Option Summary. (line 709) * test-label: label. (line 37) -* test-label, summary: Option Summary. (line 687) +* test-label, summary: Option Summary. (line 714) * to-command: Writing to an External Program. (line 9) -* to-command, summary: Option Summary. (line 691) +* to-command, summary: Option Summary. (line 718) * to-stdout: Writing to Standard Output. (line 14) -* to-stdout, summary: Option Summary. (line 695) +* to-stdout, summary: Option Summary. (line 722) * totals: verbose. (line 46) -* totals, summary: Option Summary. (line 700) -* touch <1>: Attributes. (line 37) +* totals, summary: Option Summary. (line 727) +* touch <1>: Attributes. (line 33) * touch: Data Modification Times. (line 15) -* touch, summary: Option Summary. (line 705) +* touch, summary: Option Summary. (line 732) * transform: transform. (line 74) -* transform, summary: Option Summary. (line 711) -* uncompress: gzip. (line 145) +* transform, summary: Option Summary. (line 738) +* uncompress: gzip. (line 151) * uncompress, summary: Option Summary. (line 152) -* ungzip: gzip. (line 97) -* ungzip, summary: Option Summary. (line 274) +* ungzip: gzip. (line 100) +* ungzip, summary: Option Summary. (line 279) * unlink-first: Unlink First. (line 6) * unlink-first, introduced: Dealing with Old Files. (line 42) -* unlink-first, summary: Option Summary. (line 731) +* unlink-first, summary: Option Summary. (line 758) * unquote: Selecting Archive Members. (line 39) -* unquote, summary: Option Summary. (line 737) -* update: update. (line 8) +* unquote, summary: Option Summary. (line 764) +* update <1>: how to update. (line 6) +* update: update. (line 6) * update, summary: Operation Summary. (line 50) -* usage: help. (line 53) -* use-compress-program: gzip. (line 150) -* use-compress-program, summary: Option Summary. (line 741) -* utc, summary: Option Summary. (line 746) +* usage: help. (line 54) +* use-compress-program: gzip. (line 156) +* use-compress-program, summary: Option Summary. (line 768) +* utc, summary: Option Summary. (line 773) * verbose: verbose. (line 18) * verbose, introduced: verbose tutorial. (line 6) -* verbose, summary: Option Summary. (line 750) +* verbose, summary: Option Summary. (line 777) * verbose, using with --create: create verbose. (line 6) * verbose, using with --list: list. (line 30) * verify, short description: verify. (line 8) -* verify, summary: Option Summary. (line 757) +* verify, summary: Option Summary. (line 784) * verify, using with --create: verify. (line 24) * version: help. (line 6) -* version, summary: Option Summary. (line 762) +* version, summary: Option Summary. (line 789) * volno-file: Multi-Volume Archives. (line 71) -* volno-file, summary: Option Summary. (line 767) +* volno-file, summary: Option Summary. (line 794) +* warning, explained: warnings. (line 12) +* warning, summary: Option Summary. (line 799) * wildcards: controlling pattern-matching. (line 38) -* wildcards, summary: Option Summary. (line 772) +* wildcards, summary: Option Summary. (line 804) * wildcards-match-slash: controlling pattern-matching. (line 92) -* wildcards-match-slash, summary: Option Summary. (line 776) +* wildcards-match-slash, summary: Option Summary. (line 808) * xform: transform. (line 74) -* xform, summary: Option Summary. (line 711) -* xz, summary: Option Summary. (line 779) +* xform, summary: Option Summary. (line 738) +* xz, summary: Option Summary. (line 811) File: tar.info, Node: Index, Prev: Index of Command Line Options, Up: Top @@ -4951,30 +5143,50 @@ Appendix I Index �[index�] * Menu: +* %s: Directory has been renamed from %s, warning message: warnings. + (line 94) +* %s: Directory has been renamed, warning message: warnings. (line 94) +* %s: Directory is new, warning message: warnings. (line 96) +* %s: directory is on a different device: not purging, warning message: warnings. + (line 99) +* -after-date and -update compared: after. (line 19) +* -newer-mtime and -update compared: after. (line 19) +* A lone zero block at, warning message: warnings. (line 35) * abbreviations for months: Calendar date items. (line 38) -* absolute file names: Remote Tape Server. (line 17) +* absolute file names <1>: Remote Tape Server. (line 17) +* absolute file names: absolute. (line 6) * Adding archives to an archive: concatenate. (line 6) -* Adding files to an Archive: appending files. (line 8) +* Adding files to an Archive: appending files. (line 6) * ADMINISTRATOR: General-Purpose Variables. (line 7) -* Age, excluding files by: after. (line 8) +* Age, excluding files by: after. (line 6) * ago in date strings: Relative items in date strings. (line 23) +* all: warnings. (line 28) +* alone-zero-block: warnings. (line 35) * am in date strings: Time of day items. (line 22) -* Appending files to an Archive: appending files. (line 8) -* Arch, excluding files: exclude. (line 39) +* Appending files to an Archive: appending files. (line 6) +* appending files to existing archive: append. (line 6) +* Arch, excluding files: exclude. (line 37) * archive: Definitions. (line 6) -* Archive creation: file. (line 36) +* Archive creation: file. (line 34) * archive member: Definitions. (line 15) -* Archive Name: file. (line 8) +* Archive Name: file. (line 6) * Archive, creation of: create. (line 8) -* Archives, Appending files to: appending files. (line 8) +* Archives, Appending files to: appending files. (line 6) +* archives, binary equivalent: PAX keywords. (line 132) * Archiving Directories: create dir. (line 6) * archiving files: Top. (line 24) * ARGP_HELP_FMT, environment variable: Configuring Help Summary. (line 21) +* arguments to long options: Long Options. (line 31) +* arguments to old options: Old Options. (line 17) +* arguments to short options: Short Options. (line 13) +* atrributes, files: Attributes. (line 6) +* Attempting extraction of symbolic links as hard links, warning message: warnings. + (line 77) * authors of get_date: Authors of get_date. (line 6) -* Avoiding recursion in directories: recurse. (line 8) +* Avoiding recursion in directories: recurse. (line 6) * backup options: backup. (line 6) * backup suffix: backup. (line 68) * BACKUP_DIRS: General-Purpose Variables. @@ -4983,14 +5195,19 @@ Appendix I Index (line 55) * BACKUP_HOUR: General-Purpose Variables. (line 11) +* backups <1>: Backups. (line 6) * backups: backup. (line 41) -* Bazaar, excluding files: exclude. (line 39) +* bad-dumpdir: warnings. (line 102) +* basic operations: Operations. (line 6) +* Bazaar, excluding files: exclude. (line 37) * beginning of time, for POSIX: Seconds since the Epoch. (line 13) * bell, checkpoint action: checkpoints. (line 65) * Bellovin, Steven M.: Authors of get_date. (line 6) * Berets, Jim: Authors of get_date. (line 6) * Berry, K.: Authors of get_date. (line 14) +* binary equivalent archives, creating: PAX keywords. (line 132) +* block: Blocking. (line 6) * Block number where error occurred: verbose. (line 115) * BLOCKING: General-Purpose Variables. (line 25) @@ -5000,25 +5217,29 @@ Appendix I Index * bug reports: Reports. (line 6) * Bytes per record: Blocking Factor. (line 6) * bzip2: gzip. (line 6) +* cachedir: warnings. (line 43) * calendar date item: Calendar date items. (line 6) * case, ignored in dates: General date syntax. (line 64) * cat vs concatenate: concatenate. (line 63) * Changing directory mid-stream: directory. (line 6) * Character class, excluding characters from: wildcards. (line 34) * checkpoints, defined: checkpoints. (line 6) -* Choosing an archive file: file. (line 8) +* Choosing an archive file: file. (line 6) * comments, in dates: General date syntax. (line 64) * compress: gzip. (line 6) * Compressed archives: gzip. (line 6) * concatenate vs cat: concatenate. (line 63) * Concatenating Archives: concatenate. (line 6) -* corrupted archives <1>: gzip. (line 116) +* contains a cache directory tag, warning message: warnings. (line 43) +* contiguous-cast: warnings. (line 74) +* corrupted archives <1>: gzip. (line 119) * corrupted archives: Full Dumps. (line 8) * Creation of the archive: create. (line 8) -* CVS, excluding files: exclude. (line 39) -* Darcs, excluding files: exclude. (line 39) +* Current %s is newer or same age, warning message: warnings. (line 83) +* CVS, excluding files: exclude. (line 37) +* Darcs, excluding files: exclude. (line 37) * DAT blocking: Blocking Factor. (line 204) -* Data Modification time, excluding files by: after. (line 8) +* Data Modification time, excluding files by: after. (line 6) * Data modification times of extracted files: Data Modification Times. (line 6) * date format, ISO 8601: Calendar date items. (line 30) @@ -5026,16 +5247,16 @@ Appendix I Index * day in date strings: Relative items in date strings. (line 15) * day of week item: Day of week items. (line 6) -* Deleting files from an archive: delete. (line 8) -* Deleting from tape archives: delete. (line 19) -* dereferencing hard links: hard links. (line 8) -* Descending directories, avoiding: recurse. (line 8) +* Deleting files from an archive: delete. (line 6) +* Deleting from tape archives: delete. (line 17) +* dereferencing hard links: hard links. (line 6) +* Descending directories, avoiding: recurse. (line 6) * Device numbers, changing: Fixing Snapshot Files. (line 6) * Device numbers, using in incremental backups: Incremental Dumps. - (line 81) + (line 90) * Directories, Archiving: create dir. (line 6) -* Directories, avoiding recursion: recurse. (line 8) +* Directories, avoiding recursion: recurse. (line 6) * Directory, changing mid-stream: directory. (line 6) * DIRLIST: General-Purpose Variables. (line 51) @@ -5043,6 +5264,7 @@ Appendix I Index (line 6) * doc-opt-col: Configuring Help Summary. (line 94) +* door ignored, warning message: warnings. (line 50) * dot, checkpoint action: checkpoints. (line 80) * Double-checking a write operation: verify. (line 6) * DUMP_BEGIN: User Hooks. (line 32) @@ -5064,34 +5286,56 @@ Appendix I Index (line 13) * Error message, block number of: verbose. (line 125) * Exabyte blocking: Blocking Factor. (line 204) -* exclude: exclude. (line 14) -* exclude-caches: exclude. (line 84) -* exclude-from: exclude. (line 27) -* exclude-tag: exclude. (line 107) +* exclude: exclude. (line 12) +* exclude-caches: exclude. (line 93) +* exclude-from: exclude. (line 25) +* exclude-tag: exclude. (line 116) * Excluding characters from a character class: wildcards. (line 34) -* Excluding file by age: after. (line 8) -* Excluding files by file system: exclude. (line 8) -* Excluding files by name and pattern: exclude. (line 8) +* Excluding file by age: after. (line 6) +* Excluding files by file system: exclude. (line 6) +* Excluding files by name and pattern: exclude. (line 6) * Exec Mode, genfile: Exec Mode. (line 6) * exec, checkpoint action: checkpoints. (line 96) * existing backup method: backup. (line 59) * exit status: Synopsis. (line 67) -* Extraction: extract. (line 8) +* Extracting contiguous files as regular files, warning message: warnings. + (line 74) +* extracting Nth copy of the file: append. (line 34) +* Extraction: extract. (line 6) * extraction: Definitions. (line 22) * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * file archival: Top. (line 24) +* file attributes: Attributes. (line 6) +* file changed as we read it, warning message: warnings. (line 64) +* file is on a different filesystem, warning message: warnings. + (line 47) +* file is the archive; not dumped, warning message: warnings. (line 58) +* file is unchanged; not dumped, warning message: warnings. (line 55) * File lists separated by NUL characters: Generate Mode. (line 33) * file name: Definitions. (line 15) * File Name arguments, alternatives: files. (line 6) * File name arguments, using --list with: list. (line 68) -* File names, excluding files by: exclude. (line 8) +* file name read contains nul character, warning message: warnings. + (line 32) +* file names, absolute: absolute. (line 6) +* File names, excluding files by: exclude. (line 6) * File names, terminated by NUL: nul. (line 6) -* File names, using hard links: hard links. (line 8) +* File names, using hard links: hard links. (line 6) * File names, using symbolic links: dereference. (line 6) +* File removed before we read it, warning message: warnings. (line 61) +* File shrank by %s bytes, warning message: warnings. (line 44) * File system boundaries, not crossing: one. (line 6) +* file-changed: warnings. (line 64) +* file-ignored: warnings. (line 50) +* file-removed: warnings. (line 61) +* file-shrank: warnings. (line 44) +* file-unchanged: warnings. (line 55) * FILELIST: General-Purpose Variables. (line 65) +* filename-with-nuls: warnings. (line 32) +* find, using with tar <1>: recurse. (line 11) +* find, using with tar: files. (line 6) * first in date strings: General date syntax. (line 26) * format 0, snapshot file: Snapshot Files. (line 23) * format 1, snapshot file: Snapshot Files. (line 47) @@ -5116,7 +5360,7 @@ Appendix I Index * genfile, seeking to a given offset: Generate Mode. (line 18) * get_date: Date input formats. (line 6) * Getting program version number: help. (line 6) -* git, excluding files: exclude. (line 39) +* git, excluding files: exclude. (line 37) * GNU archive format: gnu. (line 6) * GNU.sparse.major, extended header variable: PAX 1. (line 14) * GNU.sparse.map, extended header variable: PAX 0. (line 60) @@ -5128,22 +5372,28 @@ Appendix I Index * GNU.sparse.offset, extended header variable: PAX 0. (line 18) * GNU.sparse.realsize, extended header variable: PAX 1. (line 24) * GNU.sparse.size, extended header variable: PAX 0. (line 11) -* gnupg, using with tar: gzip. (line 163) -* gpg, using with tar: gzip. (line 163) +* gnupg, using with tar: gzip. (line 171) +* gpg, using with tar: gzip. (line 171) * gzip: gzip. (line 6) -* hard links, dereferencing: hard links. (line 8) +* hard links, dereferencing: hard links. (line 6) * header-col: Configuring Help Summary. (line 140) * hook: User Hooks. (line 13) * hour in date strings: Relative items in date strings. (line 15) +* ignore-archive: warnings. (line 58) +* ignore-newer: warnings. (line 83) * Ignoring end-of-archive blocks: Ignore Zeros. (line 6) +* Ignoring unknown extended header keyword `%s', warning message: warnings. + (line 86) +* implausibly old time stamp %s, warning message: warnings. (line 72) * Info script: Multi-Volume Archives. (line 80) * Interactive operation: interactive. (line 6) * ISO 8601 date format: Calendar date items. (line 30) * items in date strings: General date syntax. (line 6) * Labeling an archive: label. (line 6) +* labeling archives: Tape Files. (line 6) * Labeling multi-volume archives: label. (line 6) * Labels on the archive media: label. (line 6) * language, in dates: General date syntax. (line 40) @@ -5152,20 +5402,27 @@ Appendix I Index (line 6) * last DAY: Day of week items. (line 15) * last in date strings: General date syntax. (line 26) -* Listing all tar options: help. (line 26) +* Listing all tar options: help. (line 27) * listing member and file names: list. (line 41) * Listing volume label: label. (line 29) * Lists of file names: files. (line 6) -* Local and remote archives: file. (line 73) +* Local and remote archives: file. (line 71) +* long options: Long Options. (line 6) +* long options with mandatory arguments: Long Options. (line 31) +* long options with optional arguments: Long Options. (line 40) * long-opt-col: Configuring Help Summary. (line 86) +* lzip: gzip. (line 6) * lzma: gzip. (line 6) * lzop: gzip. (line 6) * MacKenzie, David: Authors of get_date. (line 6) +* Malformed dumpdir: 'X' never used, warning message: warnings. + (line 102) * member: Definitions. (line 15) * member name: Definitions. (line 15) -* Members, replacing with other members: append. (line 49) -* Mercurial, excluding files: exclude. (line 39) +* members, multiple: multiple. (line 6) +* Members, replacing with other members: append. (line 47) +* Mercurial, excluding files: exclude. (line 37) * Meyering, Jim: Authors of get_date. (line 6) * Middle of the archive, starting in the: Starting File. (line 11) * midnight in date strings: Time of day items. (line 22) @@ -5174,7 +5431,7 @@ Appendix I Index * minutes, time zone correction by: Time of day items. (line 30) * Modes of extracted files: Setting Access Permissions. (line 6) -* Modification time, excluding files by: after. (line 8) +* Modification time, excluding files by: after. (line 6) * Modification times of extracted files: Data Modification Times. (line 6) * month in date strings: Relative items in date strings. @@ -5193,36 +5450,51 @@ Appendix I Index (line 42) * Multi-volume archives: Multi-Volume Archives. (line 6) +* multiple members: multiple. (line 6) * Mutli-volume archives in PAX format, extracting using non-GNU tars: Split Recovery. (line 17) * Mutli-volume archives, extracting using non-GNU tars: Split Recovery. (line 6) -* Naming an archive: file. (line 8) +* Naming an archive: file. (line 6) * negative time stamps: Large or Negative Values. (line 6) +* new-directory: warnings. (line 96) * next DAY: Day of week items. (line 15) * next in date strings: General date syntax. (line 26) +* none: warnings. (line 29) * noon in date strings: Time of day items. (line 22) * now in date strings: Relative items in date strings. (line 33) * ntape device: Many. (line 6) -* NUL terminated file names: nul. (line 6) +* NUL-terminated file names: nul. (line 6) * Number of blocks per record: Blocking Factor. (line 6) * Number of bytes per record: Blocking Factor. (line 6) * numbered backup method: backup. (line 55) * numbers, written-out: General date syntax. (line 26) -* Obtaining help: help. (line 26) +* Obtaining help: help. (line 27) * Obtaining total status information: verbose. (line 46) * Old GNU archive format: gnu. (line 6) * Old GNU sparse format: Old GNU Format. (line 6) +* old option style: Old Options. (line 6) +* old options with mandatory arguments: Old Options. (line 17) * Old style archives: old. (line 6) * Old style format: old. (line 6) * opt-doc-col: Configuring Help Summary. (line 126) -* option syntax, traditional: Old Options. (line 60) +* option syntax, traditional: Old Options. (line 58) +* optional arguments to long options: Long Options. (line 40) +* optional arguments to short options: Short Options. (line 22) +* options for use with --extract: extract options. (line 6) * Options when reading archives: Reading. (line 6) * Options, archive format specifying: Format Variations. (line 6) * Options, format specifying: Format Variations. (line 6) +* options, GNU style: Long Options. (line 6) +* options, long style: Long Options. (line 6) +* options, mixing different styles: Mixing. (line 6) +* options, mnemonic names: Long Options. (line 6) +* options, old style: Old Options. (line 6) +* options, short style: Short Options. (line 6) +* options, traditional: Short Options. (line 6) * ordinal numbers: General date syntax. (line 26) * Overwriting old files, prevention: Dealing with Old Files. (line 16) @@ -5238,23 +5510,25 @@ Appendix I Index (line 26) * pure numbers in date strings: Pure numbers in date strings. (line 6) -* RCS, excluding files: exclude. (line 39) +* RCS, excluding files: exclude. (line 37) * Reading file names from a file: files. (line 6) -* Reading incomplete records: Reading. (line 8) +* Reading incomplete records: Reading. (line 6) +* record: Blocking. (line 6) * Record Size: Blocking Factor. (line 6) -* Records, incomplete: Reading. (line 8) -* Recursion in directories, avoiding: recurse. (line 8) +* Records, incomplete: Reading. (line 6) +* Recursion in directories, avoiding: recurse. (line 6) * relative items in date strings: Relative items in date strings. (line 6) -* Remote devices: file. (line 62) +* Remote devices: file. (line 60) * remote tape drive: Remote Tape Server. (line 6) -* Removing files from an archive: delete. (line 8) -* Replacing members with other members: append. (line 49) +* Removing files from an archive: delete. (line 6) +* rename-directory: warnings. (line 94) +* Replacing members with other members: append. (line 47) * reporting bugs: Reports. (line 6) * RESTORE_BEGIN: User Hooks. (line 39) * RESTORE_END: User Hooks. (line 42) -* Resurrecting files from an archive: extract. (line 8) -* Retrieving files from an archive: extract. (line 8) +* Resurrecting files from an archive: extract. (line 6) +* Retrieving files from an archive: extract. (line 6) * return status: Synopsis. (line 67) * rmargin: Configuring Help Summary. (line 158) @@ -5265,7 +5539,10 @@ Appendix I Index (line 77) * Running out of space: Scarce. (line 8) * Salz, Rich: Authors of get_date. (line 6) -* SCCS, excluding files: exclude. (line 39) +* SCCS, excluding files: exclude. (line 37) +* short options: Short Options. (line 6) +* short options with mandatory arguments: Short Options. (line 13) +* short options with optional arguments: Short Options. (line 22) * short-opt-col: Configuring Help Summary. (line 78) * simple backup method: backup. (line 64) @@ -5283,6 +5560,7 @@ Appendix I Index (line 6) * snapshot files, fixing device numbers: Fixing Snapshot Files. (line 6) +* socket ignored, warning message: warnings. (line 50) * Sparse Files: sparse. (line 6) * sparse files v.0.0, extracting with non-GNU tars: Sparse Recovery. (line 92) @@ -5304,19 +5582,20 @@ Appendix I Index (line 6) * Specifying files to act on: Selecting Archive Members. (line 6) -* Standard input and output: file. (line 41) +* Standard input and output: file. (line 39) * Standard output, writing extracted files to: Writing to Standard Output. (line 6) * Storing archives in compressed format: gzip. (line 6) -* SVN, excluding files: exclude. (line 39) +* SVN, excluding files: exclude. (line 37) * Symbolic link as file name: dereference. (line 6) +* symlink-cast: warnings. (line 77) * TAPE: file tutorial. (line 14) * tape blocking: Blocking Factor. (line 194) * tape marks: Many. (line 44) * tape positioning: Many. (line 26) * TAPE_FILE: General-Purpose Variables. (line 19) -* Tapes, using --delete and: delete. (line 19) +* Tapes, using --delete and: delete. (line 17) * TAR: General-Purpose Variables. (line 115) * tar: What tar Does. (line 6) @@ -5324,19 +5603,23 @@ Appendix I Index * Tar archive formats: Formats. (line 6) * tar entry: Naming tar Archives. (line 11) * tar file: Naming tar Archives. (line 11) -* tar to a remote device: file. (line 62) -* tar to standard input and output: file. (line 41) +* tar to a remote device: file. (line 60) +* tar to standard input and output: file. (line 39) * tar-snapshot-edit: Fixing Snapshot Files. (line 15) * TAR_ARCHIVE, checkpoint script environment: checkpoints. (line 108) * TAR_ARCHIVE, info script environment variable: Multi-Volume Archives. (line 100) +* TAR_ARCHIVE, to-command environment: Writing to an External Program. + (line 76) * TAR_ATIME, to-command environment: Writing to an External Program. (line 49) * TAR_BLOCKING_FACTOR, checkpoint script environment: checkpoints. (line 111) * TAR_BLOCKING_FACTOR, info script environment variable: Multi-Volume Archives. (line 103) +* TAR_BLOCKING_FACTOR, to-command environment: Writing to an External Program. + (line 79) * TAR_CHECKPOINT, checkpoint script environment: checkpoints. (line 114) * TAR_CTIME, to-command environment: Writing to an External Program. (line 58) @@ -5349,6 +5632,8 @@ Appendix I Index * TAR_FORMAT, checkpoint script environment: checkpoints. (line 121) * TAR_FORMAT, info script environment variable: Multi-Volume Archives. (line 113) +* TAR_FORMAT, to-command environment: Writing to an External Program. + (line 85) * TAR_GID, to-command environment: Writing to an External Program. (line 67) * TAR_GNAME, to-command environment: Writing to an External Program. @@ -5372,15 +5657,22 @@ Appendix I Index * TAR_VERSION, checkpoint script environment: checkpoints. (line 105) * TAR_VERSION, info script environment variable: Multi-Volume Archives. (line 97) +* TAR_VERSION, to-command environment: Writing to an External Program. + (line 73) * TAR_VOLUME, info script environment variable: Multi-Volume Archives. (line 106) +* TAR_VOLUME, to-command environment: Writing to an External Program. + (line 82) * tarcat: Tarcat. (line 6) * this in date strings: Relative items in date strings. (line 33) * time of day item: Time of day items. (line 6) +* time stamp %s is %s s in the future, warning message: warnings. + (line 72) * time zone correction: Time of day items. (line 30) * time zone item <1>: Time zone items. (line 6) * time zone item: General date syntax. (line 44) +* timestamp: warnings. (line 72) * today in date strings: Relative items in date strings. (line 33) * tomorrow in date strings: Relative items in date strings. @@ -5389,19 +5681,24 @@ Appendix I Index * TZ: Specifying time zone rules. (line 6) * Ultrix 3.1 and write failure: Remote Tape Server. (line 40) +* Unknown file type `%c', extracted as normal file, warning message: warnings. + (line 80) +* Unknown file type; file ignored, warning message: warnings. (line 50) +* unknown-cast: warnings. (line 80) +* unknown-keyword: warnings. (line 86) * unpacking: Definitions. (line 22) -* Updating an archive: update. (line 8) +* Updating an archive: update. (line 6) * usage-indent: Configuring Help Summary. (line 154) -* Using encrypted archives: gzip. (line 163) +* Using encrypted archives: gzip. (line 171) * ustar archive format: ustar. (line 6) * uuencode: Applications. (line 8) * v7 archive format: old. (line 6) -* VCS, excluding files: exclude. (line 39) +* VCS, excluding files: exclude. (line 37) * Verbose operation: verbose. (line 18) * Verifying a write operation: verify. (line 6) * Verifying the currency of an archive: compare. (line 6) -* version control system, excluding files: exclude. (line 39) +* version control system, excluding files: exclude. (line 37) * Version of the tar program: help. (line 6) * version-control Emacs variable: backup. (line 49) * VERSION_CONTROL: backup. (line 41) @@ -5414,11 +5711,12 @@ Appendix I Index (line 71) * week in date strings: Relative items in date strings. (line 15) -* Where is the archive?: file. (line 8) +* Where is the archive?: file. (line 6) * Working directory, specifying: directory. (line 6) * Writing extracted files to standard output: Writing to Standard Output. (line 6) -* Writing new archives: file. (line 36) +* Writing new archives: file. (line 34) +* xdev: warnings. (line 47) * XLIST: General-Purpose Variables. (line 87) * xsparse: Sparse Recovery. (line 13) diff --git a/doc/tar.texi b/doc/tar.texi index 7d8952bb9ebdb432961f878f41a53ab837470a96..0fcd04bc57e2b22074dc2b9d5c94fff87992c6ed 100644 --- a/doc/tar.texi +++ b/doc/tar.texi @@ -21,12 +21,14 @@ @include value.texi @defcodeindex op +@defcodeindex kw @c Put everything in one index (arbitrarily chosen to be the concept index). @syncodeindex fn cp @syncodeindex ky cp @syncodeindex pg cp @syncodeindex vr cp +@syncodeindex kw cp @copying @@ -35,7 +37,7 @@ This manual is for @acronym{GNU} @command{tar} (version from archives. Copyright @copyright{} 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, -2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -177,6 +179,7 @@ Invoking @GNUTAR{} * defaults:: * verbose:: * checkpoints:: +* warnings:: * interactive:: The Three Option Styles @@ -435,7 +438,7 @@ or comments. The second chapter is a tutorial (@pxref{Tutorial}) which provides a gentle introduction for people who are new to using @command{tar}. It is -meant to be self contained, not requiring any reading from subsequent +meant to be self-contained, not requiring any reading from subsequent chapters to make sense. It moves from topic to topic in a logical, progressive order, building on information already explained. @@ -640,7 +643,7 @@ please report them to @file{bug-tar@@gnu.org}. When reporting a bug, please be sure to include as much detail as possible, in order to reproduce it. @FIXME{Be more specific, I'd like to make this node as detailed as 'Bug reporting' node in Emacs -manual}. +manual.} @node Tutorial @chapter Tutorial Introduction to @command{tar} @@ -750,7 +753,7 @@ of three forms: long (mnemonic) form, short form, and old style. Some of the operations and options have no short or ``old'' forms; however, the operations and options which we will cover in this tutorial have corresponding abbreviations. We will indicate those abbreviations -appropriately to get you used to seeing them. (Note that the ``old +appropriately to get you used to seeing them. Note, that the ``old style'' option forms exist in @GNUTAR{} for compatibility with Unix @command{tar}. In this book we present a full discussion of this way of writing options and operations (@pxref{Old Options}), and we discuss @@ -856,7 +859,7 @@ that @command{tar} will work on. If you don't specify this argument, then @command{tar} will examine the environment variable @env{TAPE}. If it is set, its value will be used as the archive name. Otherwise, @command{tar} will use the -default archive, determined at the compile time. Usually it is +default archive, determined at compile time. Usually it is standard output or some physical tape drive attached to your machine (you can verify what the default is by running @kbd{tar --show-defaults}, @pxref{defaults}). If there is no tape drive @@ -1091,7 +1094,7 @@ Now @command{cd} to the directory named @file{practice}; @file{practice} is now your @dfn{working directory}. (@emph{Please note}: Although the full file name of this directory is @file{/@var{homedir}/practice}, in our examples we will refer to -this directory as @file{practice}; the @var{homedir} is presumed. +this directory as @file{practice}; the @var{homedir} is presumed.) In general, you should check that the files to be archived exist where you think they do (in the working directory) by running @command{ls}. @@ -1197,12 +1200,12 @@ jazz @end smallexample This example is just like the example we showed which did not use -@option{--verbose}, except that @command{tar} generated the remaining lines +@option{--verbose}, except that @command{tar} generated the remaining @iftex -(note the different font styles). +lines (note the different font styles). @end iftex @ifinfo -. +lines. @end ifinfo In the rest of the examples in this chapter, we will frequently use @@ -1359,7 +1362,7 @@ note:} Other implementations of @command{tar} may not be so clever; they will enter an infinite loop when this happens, so you should not depend on this behavior unless you are certain you are running @GNUTAR{}. In general, it is wise to always place the archive outside -of the directory being dumped. +of the directory being dumped.) @node list @section How to List Archives @@ -1429,12 +1432,12 @@ example: @smallexample @group -$ @kbd{tar cfv archive /etc/mail} +$ @kbd{tar --create --verbose --file archive /etc/mail} tar: Removing leading `/' from member names /etc/mail/ /etc/mail/sendmail.cf /etc/mail/aliases -$ @kbd{tar tf archive} +$ @kbd{tar --test --file archive} etc/mail/ etc/mail/sendmail.cf etc/mail/aliases @@ -1516,7 +1519,6 @@ all the files (including sub-directories) in that directory. @node extract @section How to Extract Members from an Archive -@UNREVISED @cindex Extraction @cindex Retrieving files from an archive @cindex Resurrecting files from an archive @@ -1724,7 +1726,6 @@ you will get the following response: @smallexample tar: folk: Not found in archive tar: jazz: Not found in archive -$ @end smallexample @noindent @@ -1734,9 +1735,9 @@ directory @file{..}, where the archive is located; they were in the @smallexample $ @kbd{tar -tvf music.tar} +practice/blues practice/folk practice/jazz -practice/rock @end smallexample @FIXME{make sure the above works when going through the examples in @@ -1768,7 +1769,6 @@ be in the rest of the manual.} @node tar invocation @chapter Invoking @GNUTAR{} -@UNREVISED This chapter is about how one invokes the @GNUTAR{} command, from the command synopsis (@pxref{Synopsis}). There are @@ -1801,6 +1801,7 @@ and @option{--interactive} options (@pxref{interactive}). * defaults:: * verbose:: * checkpoints:: +* warnings:: * interactive:: @end menu @@ -1879,15 +1880,14 @@ will act on the entire contents of the archive. @cindex return status Besides successful exits, @GNUTAR{} may fail for many reasons. Some reasons correspond to bad usage, that is, when the -@command{tar} command is improperly written. Errors may be -encountered later, while encountering an error processing the archive -or the files. Some errors are recoverable, in which case the failure -is delayed until @command{tar} has completed all its work. Some -errors are such that it would not meaningful, or at least risky, to -continue processing: @command{tar} then aborts processing immediately. -All abnormal exits, whether immediate or delayed, should always be -clearly diagnosed on @code{stderr}, after a line stating the nature of -the error. +@command{tar} command line is improperly written. Errors may be +encountered later, while processing the archive or the files. Some +errors are recoverable, in which case the failure is delayed until +@command{tar} has completed all its work. Some errors are such that +it would be not meaningful, or at least risky, to continue processing: +@command{tar} then aborts processing immediately. All abnormal exits, +whether immediate or delayed, should always be clearly diagnosed on +@code{stderr}, after a line stating the nature of the error. Possible exit codes of @GNUTAR{} are summarized in the following table: @@ -1924,7 +1924,7 @@ remote device (@pxref{Remote Tape Server}). allow you to perform a variety of tasks. You are required to choose one operating mode each time you employ the @command{tar} program by specifying one, and only one operation as an argument to the -@command{tar} command (two lists of four operations each may be found +@command{tar} command (the corresponding options may be found at @ref{frequent operations} and @ref{Operations}). Depending on circumstances, you may also wish to customize how the chosen operating mode behaves. For example, you may wish to change the way the output @@ -1978,11 +1978,11 @@ line invoking @command{tar}. The different styles were developed at different times during the history of @command{tar}. These styles will be presented below, from the most recent to the oldest. -Some options must take an argument. (For example, @option{--file} -(@option{-f})) takes the name of an archive file as an argument. If +Some options must take an argument@footnote{For example, @option{--file} +(@option{-f}) takes the name of an archive file as an argument. If you do not supply an archive file name, @command{tar} will use a default, but this can be confusing; thus, we recommend that you always -supply a specific archive file name.) Where you @emph{place} the +supply a specific archive file name.}. Where you @emph{place} the arguments generally depends on which style of options you choose. We will detail specific information relevant to each option style in the sections on the different option styles, below. The differences are @@ -2007,6 +2007,10 @@ attention to them. @node Long Options @subsection Long Option Style +@cindex long options +@cindex options, long style +@cindex options, GNU style +@cindex options, mnemonic names Each option has at least one @dfn{long} (or @dfn{mnemonic}) name starting with two dashes in a row, e.g., @option{--list}. The long names are more clear than their corresponding short or old names. It sometimes happens that a @@ -2035,6 +2039,8 @@ $ @kbd{tar --create --verbose --blocking-factor=20 --file=/dev/rmt0} gives a fairly good set of hints about what the command does, even for those not fully acquainted with @command{tar}. +@cindex arguments to long options +@cindex long options with mandatory arguments Long options which require arguments take those arguments immediately following the option name. There are two ways of specifying a mandatory argument. It can be separated from the @@ -2044,6 +2050,8 @@ tells the name of the @command{tar} archive) is given a file such as @file{archive.tar} as argument by using any of the following notations: @option{--file=archive.tar} or @option{--file archive.tar}. +@cindex optional arguments to long options +@cindex long options with optional arguments In contrast, optional arguments must always be introduced using an equal sign. For example, the @option{--backup} option takes an optional argument specifying backup type. It must be used @@ -2052,6 +2060,9 @@ as @option{--backup=@var{backup-type}}. @node Short Options @subsection Short Option Style +@cindex short options +@cindex options, short style +@cindex options, traditional Most options also have a @dfn{short option} name. Short options start with a single dash, and are followed by a single character, e.g., @option{-t} (which is equivalent to @option{--list}). The forms are absolutely @@ -2059,6 +2070,8 @@ identical in function; they are interchangeable. The short option names are faster to type than long option names. +@cindex arguments to short options +@cindex short options with mandatory arguments Short options which require arguments take their arguments immediately following the option, usually separated by white space. It is also possible to stick the argument right after the short option name, using @@ -2068,6 +2081,8 @@ archive.tar}} or @option{-farchive.tar} instead of using @w{@option{-f @var{archive-name}}} denote the option which indicates a specific archive, here named @file{archive.tar}. +@cindex optional arguments to short options +@cindex short options with optional arguments Short options which take optional arguments take their arguments immediately following the option letter, @emph{without any intervening white space characters}. @@ -2095,7 +2110,8 @@ end up overwriting files. @node Old Options @subsection Old Option Style -@UNREVISED +@cindex options, old style +@cindex old option style Like short options, @dfn{old options} are single letters. However, old options must be written together as a single clumped set, without spaces separating @@ -2110,6 +2126,8 @@ the same as the short option @option{-t}, and consequently, the same as the long option @option{--list}. So for example, the command @w{@samp{tar cv}} specifies the option @option{-v} in addition to the operation @option{-c}. +@cindex arguments to old options +@cindex old options with mandatory arguments When options that need arguments are given together with the command, all the associated arguments follow, in the same order as the options. Thus, the example given previously could also be written in the old @@ -2173,6 +2191,7 @@ equivalent to @w{@samp{tar -c}:} both of them specify the @node Mixing @subsection Mixing Option Styles +@cindex options, mixing different styles All three styles may be intermixed in a single @command{tar} command, so long as the rules for each style are fully respected@footnote{Before @GNUTAR{} version 1.11.6, @@ -2242,8 +2261,8 @@ the first sentence of this paragraph..} @section All @command{tar} Options The coming manual sections contain an alphabetical listing of all -@command{tar} operations and options, with brief descriptions and cross -references to more in-depth explanations in the body of the manual. +@command{tar} operations and options, with brief descriptions and +cross-references to more in-depth explanations in the body of the manual. They also contain an alphabetically arranged table of the short option forms with their corresponding long option. You can use this table as a reference for deciphering @command{tar} commands in scripts. @@ -2295,7 +2314,7 @@ Creates a new @command{tar} archive. @xref{create}. @opsummary{delete} @item --delete -Deletes members from the archive. Don't try this on a archive on a +Deletes members from the archive. Don't try this on an archive on a tape! @xref{delete}. @opsummary{diff} @@ -2370,9 +2389,9 @@ may cause problems if other programs are reading the file at the same time, as the times of their accesses will be lost. On most platforms restoring the access time also requires @command{tar} to restore the data modification time too, so this option may also cause problems if -other programs are writing the file at the same time. (Tar attempts +other programs are writing the file at the same time (@command{tar} attempts to detect this situation, but cannot do so reliably due to race -conditions.) Worse, on most platforms restoring the access time also +conditions). Worse, on most platforms restoring the access time also updates the status change time, which means that this option is incompatible with incremental backups. @@ -2394,9 +2413,9 @@ Currently @option{--atime-preserve} with no operand defaults to @option{--atime-preserve=replace}, but this may change in the future as support for @option{--atime-preserve=system} improves. -If your operating system does not support +If your operating or file system does not support @option{--atime-preserve=@-system}, you might be able to preserve access -times reliably by by using the @command{mount} command. For example, +times reliably by using the @command{mount} command. For example, you can mount the file system read-only, or access the file system via a read-only loopback mount, or use the @samp{noatime} mount option available on some systems. However, mounting typically requires @@ -2452,7 +2471,7 @@ messages as it reads through the archive. It is intended for when you want a visual indication that @command{tar} is still running, but don't want to see @option{--verbose} output. You can also instruct @command{tar} to execute a list of actions on each checkpoint, see -@option{--checklist-action} below. For a detailed description, see +@option{--checkpoint-action} below. For a detailed description, see @ref{checkpoints}. @opsummary{checkpoint-action} @@ -2552,6 +2571,10 @@ during archive creation, it is order sensitive. @xref{directory}. When performing operations, @command{tar} will skip files that match @var{pattern}. @xref{exclude}. +@opsummary{exclude-backups} +@item --exclude-backups +Exclude backup and lock files. @xref{exclude,, exclude-backups}. + @opsummary{exclude-from} @item --exclude-from=@var{file} @itemx -X @var{file} @@ -2565,7 +2588,7 @@ patterns in the file @var{file}. @xref{exclude}. Exclude from dump any directory containing a valid cache directory tag file, but still dump the directory node and the tag file itself. -@xref{exclude}. +@xref{exclude,, exclude-caches}. @opsummary{exclude-caches-under} @item --exclude-caches-under @@ -2585,19 +2608,20 @@ tag file. @xref{exclude}. @item --exclude-tag=@var{file} Exclude from dump any directory containing file named @var{file}, but -dump the directory node and @var{file} itself. @xref{exclude}. +dump the directory node and @var{file} itself. @xref{exclude,, exclude-tag}. @opsummary{exclude-tag-under} @item --exclude-tag-under=@var{file} Exclude from dump the contents of any directory containing file -named @var{file}, but dump the directory node itself. @xref{exclude}. +named @var{file}, but dump the directory node itself. @xref{exclude,, +exclude-tag-under}. @opsummary{exclude-tag-all} @item --exclude-tag-all=@var{file} Exclude from dump any directory containing file named @var{file}. -@xref{exclude}. +@xref{exclude,,exclude-tag-all}. @opsummary{exclude-vcs} @item --exclude-vcs @@ -2605,7 +2629,7 @@ Exclude from dump any directory containing file named @var{file}. Exclude from dump directories and files, that are internal for some widely used version control systems. -@xref{exclude}. +@xref{exclude,,exclude-vcs}. @opsummary{file} @item --file=@var{archive} @@ -2774,6 +2798,17 @@ as a name record in the archive. When extracting or listing archives, @command{tar} will only operate on archives that have a label matching the pattern specified in @var{name}. @xref{Tape Files}. +@opsummary{level} +@item --level=@var{n} +Force incremental backup of level @var{n}. As of @GNUTAR version +@value{VERSION}, the option @option{--level=0} truncates the snapshot +file, thereby forcing the level 0 dump. Other values of @var{n} are +effectively ignored. @xref{--level=0}, for details and examples. + +The use of this option is valid only in conjunction with the +@option{--listed-incremental} option. @xref{Incremental Dumps}, +for a detailed description. + @opsummary{listed-incremental} @item --listed-incremental=@var{snapshot-file} @itemx -g @var{snapshot-file} @@ -2784,6 +2819,12 @@ backup, using @var{snapshot-file} to determine which files to backup. With other operations, informs @command{tar} that the archive is in incremental format. @xref{Incremental Dumps}. +@opsummary{lzip} +@item --lzip + +This option tells @command{tar} to read or write archives through +@command{lzip}. @xref{gzip}. + @opsummary{lzma} @item --lzma @@ -2824,7 +2865,7 @@ multi-volume @command{tar} archive. @xref{Using Multiple Tapes}. @opsummary{new-volume-script} @item --new-volume-script -(see --info-script) +(see @option{--info-script}) @opsummary{newer} @item --newer=@var{date} @@ -2919,6 +2960,14 @@ When extracting an archive, subtract the user's umask from files from the permissions specified in the archive. This is the default behavior for ordinary users. +@opsummary{no-seek} +@item --no-seek + +The archive media does not support seeks to arbitrary +locations. Usually @command{tar} determines automatically whether +the archive can be seeked or not. Use this option to disable this +mechanism. + @opsummary{no-unquote} @item --no-unquote Treat all input file or member names literally, do not interpret @@ -3016,8 +3065,8 @@ This option does not affect extraction from archives. @opsummary{pax-option} @item --pax-option=@var{keyword-list} -This option is meaningful only with @acronym{POSIX.1-2001} archives -(@pxref{posix}). It modifies the way @command{tar} handles the +This option enables creation of the archive in @acronym{POSIX.1-2001} +format (@pxref{posix}) and modifies the way @command{tar} handles the extended header keywords. @var{Keyword-list} is a comma-separated list of keyword options. @xref{PAX keywords}, for a detailed discussion. @@ -3149,7 +3198,9 @@ effect only for ordinary users. @xref{Attributes}. Assume that the archive media supports seeks to arbitrary locations. Usually @command{tar} determines automatically whether the archive can be seeked or not. This option is intended for use -in cases when such recognition fails. +in cases when such recognition fails. It takes effect only if the +archive is open for reading (e.g. with @option{--list} or +@option{--extract} options). @opsummary{show-defaults} @item --show-defaults @@ -3160,10 +3211,14 @@ Here is an example of what you can see using this option: @smallexample $ tar --show-defaults ---format=gnu -f- -b20 --quoting-style=escape \ +--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/libexec/rmt --rsh-command=/usr/bin/rsh @end smallexample +@noindent +Notice, that this option outputs only one line. The example output +above has been split to fit page boundaries. + @opsummary{show-omitted-dirs} @item --show-omitted-dirs @@ -3216,7 +3271,7 @@ tar --extract --file archive.tar --strip-components=2 @noindent would extract this file to file @file{name}. -@opsummary{suffix}, summary +@opsummary{suffix} @item --suffix=@var{suffix} Alters the suffix @command{tar} uses when backing up files from the default @@ -3349,6 +3404,13 @@ Used in conjunction with @option{--multi-volume}. @command{tar} will keep track of which volume of a multi-volume archive it is working in @var{file}. @xref{volno-file}. +@opsummary{warning} +@item --warning=@var{keyword} + +Enable or disable warning messages identified by @var{keyword}. The +messages are suppressed if @var{keyword} is prefixed with @samp{no-}. +@xref{warnings}. + @opsummary{wildcards} @item --wildcards Use wildcards when matching member names with patterns. @@ -3478,9 +3540,10 @@ successfully. For example, @w{@samp{tar --version}} might print: @smallexample tar (GNU tar) @value{VERSION} -Copyright (C) 2008 Free Software Foundation, Inc. -This is free software. You may redistribute copies of it under the terms -of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. +Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. +This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by John Gilmore and Jay Fenlason. @@ -3496,7 +3559,7 @@ contains@footnote{There are plans to merge the @command{cpio} and @command{tar} packages into a single one which would be called @code{paxutils}. So, who knows if, one of this days, the @option{--version} would not output @w{@samp{tar (@acronym{GNU} -paxutils) 3.2}}}. +paxutils) 3.2}}.}. @cindex Obtaining help @cindex Listing all @command{tar} options @@ -3537,7 +3600,7 @@ configurable. @xref{Configuring Help Summary}, for a detailed description. @opindex usage If you only wish to check the spelling of an option, running @kbd{tar --usage} may be a better choice. This will display a terse list of -@command{tar} option without accompanying explanations. +@command{tar} options without accompanying explanations. The short help output is quite succinct, and you might have to get back to the full documentation for precise points. If you are reading @@ -3573,7 +3636,7 @@ values in the form of @command{tar} command line options: @smallexample @group -@kbd{tar --show-defaults} +$ @kbd{tar --show-defaults} --format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt --rsh-command=/usr/bin/rsh @end group @@ -3747,7 +3810,7 @@ If @option{--block-number} (@option{-R}) is used, @command{tar} prints, along wi every message it would normally produce, the block number within the archive where the message was triggered. Also, supplementary messages are triggered when reading blocks full of NULs, or when hitting end of -file on the archive. As of now, if the archive if properly terminated +file on the archive. As of now, if the archive is properly terminated with a NUL block, the reading of the file may stop before end of file is met, so the position of end of file will not usually show when @option{--block-number} (@option{-R}) is used. Note that @GNUTAR{} @@ -3952,6 +4015,144 @@ This example also illustrates the fact that @option{--checkpoint}. In this case, the default checkpoint frequency (at each 10th record) is assumed. +@node warnings +@section Controlling Warning Messages + +Sometimes, while performing the requested task, @GNUTAR{} notices +some conditions that are not exactly errors, but which the user +should be aware of. When this happens, @command{tar} issues a +@dfn{warning message} describing the condition. Warning messages +are output to the standard error and they do not affect the exit +code of @command{tar} command. + +@xopindex{warning, explained} +@GNUTAR{} allows the user to suppress some or all of its warning +messages: + +@table @option +@item --warning=@var{keyword} +Control display of the warning messages identified by @var{keyword}. +If @var{keyword} starts with the prefix @samp{no-}, such messages are +suppressed. Otherwise, they are enabled. + +Multiple @option{--warning} messages accumulate. + +The tables below list allowed values for @var{keyword} along with the +warning messages they control. +@end table + +@subheading Keywords controlling @command{tar} operation +@table @asis +@kwindex all +@item all +Enable all warning messages. This is the default. +@kwindex none +@item none +Disable all warning messages. +@kwindex filename-with-nuls +@cindex @samp{file name read contains nul character}, warning message +@item filename-with-nuls +@samp{%s: file name read contains nul character} +@kwindex alone-zero-block +@cindex @samp{A lone zero block at}, warning message +@item alone-zero-block +@samp{A lone zero block at %s} +@end table + +@subheading Keywords applicable for @command{tar --create} +@table @asis +@kwindex cachedir +@cindex @samp{contains a cache directory tag}, warning message +@item cachedir +@samp{%s: contains a cache directory tag %s; %s} +@kwindex file-shrank +@cindex @samp{File shrank by %s bytes}, warning message +@item file-shrank +@samp{%s: File shrank by %s bytes; padding with zeros} +@kwindex xdev +@cindex @samp{file is on a different filesystem}, warning message +@item xdev +@samp{%s: file is on a different filesystem; not dumped} +@kwindex file-ignored +@cindex @samp{Unknown file type; file ignored}, warning message +@cindex @samp{socket ignored}, warning message +@cindex @samp{door ignored}, warning message +@item file-ignored +@samp{%s: Unknown file type; file ignored} +@*@samp{%s: socket ignored} +@*@samp{%s: door ignored} +@kwindex file-unchanged +@cindex @samp{file is unchanged; not dumped}, warning message +@item file-unchanged +@samp{%s: file is unchanged; not dumped} +@kwindex ignore-archive +@cindex @samp{file is the archive; not dumped}, warning message +@kwindex ignore-archive +@cindex @samp{file is the archive; not dumped}, warning message +@item ignore-archive +@samp{%s: file is the archive; not dumped} +@kwindex file-removed +@cindex @samp{File removed before we read it}, warning message +@item file-removed +@samp{%s: File removed before we read it} +@kwindex file-changed +@cindex @samp{file changed as we read it}, warning message +@item file-changed +@samp{%s: file changed as we read it} +@end table + +@subheading Keywords applicable for @command{tar --extract} +@table @asis +@kwindex timestamp +@cindex @samp{implausibly old time stamp %s}, warning message +@cindex @samp{time stamp %s is %s s in the future}, warning message +@item timestamp +@samp{%s: implausibly old time stamp %s} +@*@samp{%s: time stamp %s is %s s in the future} +@kwindex contiguous-cast +@cindex @samp{Extracting contiguous files as regular files}, warning message +@item contiguous-cast +@samp{Extracting contiguous files as regular files} +@kwindex symlink-cast +@cindex @samp{Attempting extraction of symbolic links as hard links}, warning message +@item symlink-cast +@samp{Attempting extraction of symbolic links as hard links} +@kwindex unknown-cast +@cindex @samp{Unknown file type `%c', extracted as normal file}, warning message +@item unknown-cast +@samp{%s: Unknown file type `%c', extracted as normal file} +@kwindex ignore-newer +@cindex @samp{Current %s is newer or same age}, warning message +@item ignore-newer +@samp{Current %s is newer or same age} +@kwindex unknown-keyword +@cindex @samp{Ignoring unknown extended header keyword `%s'}, warning message +@item unknown-keyword +@samp{Ignoring unknown extended header keyword `%s'} +@end table + +@subheading Keywords controlling incremental extraction: +@table @asis +@kwindex rename-directory +@cindex @samp{%s: Directory has been renamed from %s}, warning message +@cindex @samp{%s: Directory has been renamed}, warning message +@item rename-directory +@samp{%s: Directory has been renamed from %s} +@*@samp{%s: Directory has been renamed} +@kwindex new-directory +@cindex @samp{%s: Directory is new}, warning message +@item new-directory +@samp{%s: Directory is new} +@kwindex xdev +@cindex @samp{%s: directory is on a different device: not purging}, warning message +@item xdev +@samp{%s: directory is on a different device: not purging} +@kwindex bad-dumpdir +@cindex @samp{Malformed dumpdir: 'X' never used}, warning message +@item bad-dumpdir +@samp{Malformed dumpdir: 'X' never used} +@end table + @node interactive @section Asking for Confirmation During Operations @cindex Interactive operation @@ -4110,8 +4311,8 @@ it still introduces the info in the chapter correctly : ).} @node Operations @subsection The Five Advanced @command{tar} Operations -@UNREVISED +@cindex basic operations In the last chapter, you learned about the first three operations to @command{tar}. This chapter presents the remaining five operations to @command{tar}: @option{--append}, @option{--update}, @option{--concatenate}, @@ -4123,7 +4324,7 @@ functions, they are quite useful when you do need to use them. We will give examples using the same directory and files that you created in the last chapter. As you may recall, the directory is called @file{practice}, the files are @samp{jazz}, @samp{blues}, @samp{folk}, -@samp{rock}, and the two archive files you created are +and the two archive files you created are @samp{collection.tar} and @samp{music.tar}. We will also use the archive files @samp{afiles.tar} and @@ -4161,8 +4362,8 @@ Compare archive members to their counterparts in the file system. @node append @subsection How to Add Files to Existing Archives: @option{--append} -@UNREVISED +@cindex appending files to existing archive @opindex append If you want to add files to an existing archive, you don't need to create a new archive; you can use @option{--append} (@option{-r}). @@ -4182,19 +4383,21 @@ of those members listed, with their data modification times, owners, etc. Other operations don't deal with these members as perfectly as you might prefer; if you were to use @option{--extract} to extract the archive, -only the most recently added copy of a member with the same name as four +only the most recently added copy of a member with the same name as other members would end up in the working directory. This is because @option{--extract} extracts an archive in the order the members appeared in the archive; the most recently archived members will be extracted last. Additionally, an extracted member will @emph{replace} a file of the same name which existed in the directory already, and @command{tar} will not prompt you about this@footnote{Unless you give it -@option{--keep-old-files} option, or the disk copy is newer than the +@option{--keep-old-files} option, or the disk copy is newer than the one in the archive and you invoke @command{tar} with -@option{--keep-newer-files} option}. Thus, only the most recently archived +@option{--keep-newer-files} option.}. Thus, only the most recently archived member will end up being extracted, as it will replace the one extracted before it, and so on. +@cindex extracting @var{n}th copy of the file +@xopindex{occurrence, described} There exists a special option that allows you to get around this behavior and extract (or list) only a particular copy of the file. This is @option{--occurrence} option. If you run @command{tar} with @@ -4216,13 +4419,14 @@ option. @FIXME{ hag -- you might want to incorporate some of the above into the MMwtSN node; not sure. i didn't know how to make it simpler... -There are a few ways to get around this. (maybe xref Multiple Members -with the Same Name.} +There are a few ways to get around this. Xref to Multiple Members +with the Same Name, maybe.} @cindex Members, replacing with other members @cindex Replacing members with other members +@xopindex{delete, using before --append} If you want to replace an archive member, use @option{--delete} to -delete the member you want to remove from the archive, , and then use +delete the member you want to remove from the archive, and then use @option{--append} to add the member you want to be in the archive. Note that you can not change the order of the archive; the most recently added member will still appear last. In this sense, you cannot truly @@ -4237,10 +4441,10 @@ and @ref{Media}, for more information.) @node appending files @subsubsection Appending Files to an Archive -@UNREVISED @cindex Adding files to an Archive @cindex Appending files to an Archive @cindex Archives, Appending files to +@opindex append The simplest way to add a file to an already existing archive is the @option{--append} (@option{-r}) operation, which writes specified @@ -4284,6 +4488,8 @@ $ @kbd{tar --list --file=collection.tar} @node multiple @subsubsection Multiple Members with the Same Name +@cindex members, multiple +@cindex multiple members You can use @option{--append} (@option{-r}) to add copies of files which have been updated since the archive was created. (However, we @@ -4350,10 +4556,9 @@ $ @kbd{tar --extract -vv --occurrence --file=collection.tar blues} @node update @subsection Updating an Archive -@UNREVISED @cindex Updating an archive - @opindex update + In the previous section, you learned how to use @option{--append} to add a file to an existing archive. A related operation is @option{--update} (@option{-u}). The @option{--update} operation @@ -4380,6 +4585,7 @@ the @option{--backup} option. @xref{multiple}, for a detailed discussion. @node how to update @subsubsection How to Update an Archive Using @option{--update} +@opindex update You must use file name arguments with the @option{--update} (@option{-u}) operation. If you don't specify any files, @@ -4412,7 +4618,7 @@ end. There will be a total of two versions of the member @samp{blues}; the one at the end will be newer and larger, since you added text before updating it. -(The reason @command{tar} does not overwrite the older file when updating +The reason @command{tar} does not overwrite the older file when updating it is because writing to the middle of a section of tape is a difficult process. Tapes are not designed to go backward. @xref{Media}, for more information about tapes. @@ -4439,9 +4645,9 @@ one or more archives to the end of another archive, you should use the To use @option{--concatenate}, give the first archive with @option{--file} option and name the rest of archives to be concatenated on the command line. The members, and their member -names, will be copied verbatim from those archives to the first one. -@footnote{This can cause multiple members to have the same name, for -information on how this affects reading the archive, @ref{multiple}.} +names, will be copied verbatim from those archives to the first +one@footnote{This can cause multiple members to have the same name, for +information on how this affects reading the archive, @ref{multiple}.}. The new, concatenated archive will be called by the same name as the one given with the @option{--file} option. As usual, if you omit @option{--file}, @command{tar} will use the value of the environment @@ -4521,7 +4727,6 @@ information on dealing with archives improperly combined using the @node delete @subsection Removing Archive Members Using @option{--delete} -@UNREVISED @cindex Deleting files from an archive @cindex Removing files from an archive @@ -4564,7 +4769,6 @@ $ @kbd{tar --list --file=collection.tar} folk jazz rock -$ @end smallexample @FIXME{Check if the above listing is actually produced after running @@ -4576,7 +4780,6 @@ The @option{--delete} option has been reported to work properly when @node compare @subsection Comparing Archive Members with the File System @cindex Verifying the currency of an archive -@UNREVISED @opindex compare The @option{--compare} (@option{-d}), or @option{--diff} operation compares @@ -4608,7 +4811,7 @@ tar: funk not found in archive The spirit behind the @option{--compare} (@option{--diff}, @option{-d}) option is to check whether the archive represents the current state of files on disk, more than validating the integrity of -the archive media. For this later goal, @xref{verify}. +the archive media. For this latter goal, @xref{verify}. @node create options @section Options Used by @option{--create} @@ -4662,7 +4865,7 @@ When adding files to an archive, @command{tar} will use @var{date} as the modification time of members when creating archives, instead of their actual modification times. The argument @var{date} can be either a textual date representation in almost arbitrary format -(@pxref{Date input formats}) or a name of the existing file, starting +(@pxref{Date input formats}) or a name of an existing file, starting with @samp{/} or @samp{.}. In the latter case, the modification time of that file will be used. @@ -4705,11 +4908,14 @@ anonymous anyway, so that might as well be the owner of anonymous archives. For example: @smallexample -@group $ @kbd{tar -c -f archive.tar --owner=0 .} -# @r{Or:} +@end smallexample + +@noindent +or: + +@smallexample $ @kbd{tar -c -f archive.tar --owner=root .} -@end group @end smallexample @item --group=@var{group} @@ -4731,7 +4937,7 @@ Do not exit with nonzero on unreadable files or directories. @node extract options @section Options Used by @option{--extract} -@UNREVISED +@cindex options for use with @option{--extract} @xopindex{extract, additional options} The previous chapter showed how to use @option{--extract} to extract @@ -4752,7 +4958,6 @@ considerations arise. You may review the information presented in @node Reading @subsection Options to Help Read Archives @cindex Options when reading archives -@UNREVISED @cindex Reading incomplete records @cindex Records, incomplete @@ -5090,7 +5295,7 @@ permission bits. However, after extracting @file{foo/file2} the directory timestamp will be offset again. To correctly restore directory meta-information in such cases, use -@option{delay-directory-restore} command line option: +the @option{--delay-directory-restore} command line option: @table @option @opindex delay-directory-restore @@ -5163,7 +5368,7 @@ file to the standard input of an external program: Extract files and pipe their contents to the standard input of @var{command}. When this option is used, instead of creating the files specified, @command{tar} invokes @var{command} and pipes the -contents of the files to its standard output. @var{Command} may +contents of the files to its standard output. The @var{command} may contain command line arguments. The program is executed via @code{sh -c}. Notice, that @var{command} is executed once for each regular file extracted. Non-regular files (directories, etc.) are ignored when this @@ -5212,7 +5417,7 @@ Name of the file owner group. @vrindex TAR_ATIME, to-command environment @item TAR_ATIME Time of last access. It is a decimal number, representing seconds -since the epoch. If the archive provides times with nanosecond +since the Epoch. If the archive provides times with nanosecond precision, the nanoseconds are appended to the timestamp after a decimal point. @@ -5237,9 +5442,32 @@ UID of the file owner. GID of the file owner. @end table -In addition to these variables, @env{TAR_VERSION} contains the +Additionally, the following variables contain information about +tar mode and the archive being processed: + +@table @env +@vrindex TAR_VERSION, to-command environment +@item TAR_VERSION @GNUTAR{} version number. +@vrindex TAR_ARCHIVE, to-command environment +@item TAR_ARCHIVE +The name of the archive @command{tar} is processing. + +@vrindex TAR_BLOCKING_FACTOR, to-command environment +@item TAR_BLOCKING_FACTOR +Current blocking factor (@pxref{Blocking}). + +@vrindex TAR_VOLUME, to-command environment +@item TAR_VOLUME +Ordinal number of the volume @command{tar} is processing. + +@vrindex TAR_FORMAT, to-command environment +@item TAR_FORMAT +Format of the archive being processed. @xref{Formats}, for a complete +list of archive format names. +@end table + If @var{command} exits with a non-0 status, @command{tar} will print an error message similar to the following: @@ -5352,9 +5580,9 @@ and @command{mv}, for example) offer similar options. Backup options may prove unexpectedly useful when extracting archives containing many members having identical name, or when extracting archives on systems having file name limitations, making different members appear -has having similar names through the side-effect of name truncation. -(This is true only if we have a good scheme for truncated backup names, -which I'm not sure at all: I suspect work is needed in this area.) +as having similar names through the side-effect of name truncation. +@FIXME{This is true only if we have a good scheme for truncated backup names, +which I'm not sure at all: I suspect work is needed in this area.} When any existing file is backed up before being overwritten by extraction, then clashing files are automatically be renamed to be unique, and the true name is kept for only the last file of a series of clashing files. @@ -5447,7 +5675,7 @@ long as they both support the @command{tar} program. For example, here is how you might copy a directory's contents from one disk to another, while preserving the dates, modes, owners and link-structure of all the files therein. In this case, the transfer -medium is a @dfn{pipe}, which is one a Unix redirection mechanism: +medium is a @dfn{pipe}: @smallexample $ @kbd{(cd sourcedir; tar -cf - .) | (cd targetdir; tar -xf -)} @@ -5461,12 +5689,17 @@ $ @kbd{tar -C sourcedir -cf - . | tar -C targetdir -xf -} @end smallexample @noindent -The command also works using short option forms: +The command also works using long option forms: @smallexample $ @kbd{(cd sourcedir; tar --create --file=- . ) \ | (cd targetdir; tar --extract --file=-)} -# Or: +@end smallexample + +@noindent +or + +@smallexample $ @kbd{tar --directory sourcedir --create --file=- . ) \ | tar --directory targetdir --extract --file=-} @end smallexample @@ -5497,25 +5730,18 @@ and not archive them. @xref{Choosing}. @node Backups @chapter Performing Backups and Restoring Files -@UNREVISED +@cindex backups -@GNUTAR{} is distributed along with the scripts -which the Free Software Foundation uses for performing backups. There -is no corresponding scripts available yet for doing restoration of -files. Even if there is a good chance those scripts may be satisfying -to you, they are not the only scripts or methods available for doing +@GNUTAR{} is distributed along with the scripts for performing backups +and restores. Even if there is a good chance those scripts may be +satisfying to you, they are not the only scripts or methods available for doing backups and restore. You may well create your own, or use more sophisticated packages dedicated to that purpose. Some users are enthusiastic about @code{Amanda} (The Advanced Maryland Automatic Network Disk Archiver), a backup system developed by James da Silva @file{jds@@cs.umd.edu} and available on many Unix systems. -This is free software, and it is available at these places: - -@smallexample -http://www.cs.umd.edu/projects/amanda/amanda.html -ftp://ftp.cs.umd.edu/pub/amanda -@end smallexample +This is free software, and it is available from @uref{http://www.amanda.org}. @FIXME{ @@ -5635,7 +5861,7 @@ can be restored when extracting the archive. backups: @option{--listed-incremental=@var{snapshot-file}} (@option{-g @var{snapshot-file}}) and @option{--incremental} (@option{-G}). -@opindex listed-incremental +@xopindex{listed-incremental, described} The option @option{--listed-incremental} instructs tar to operate on an incremental archive with additional metadata stored in a standalone file, called a @dfn{snapshot file}. The purpose of this file is to help @@ -5709,6 +5935,20 @@ $ @kbd{tar --create \ /usr} @end smallexample +@anchor{--level=0} +@xopindex{level, described} +You can force @samp{level 0} backups either by removing the snapshot +file before running @command{tar}, or by supplying the +@option{--level=0} option, e.g.: + +@smallexample +$ @kbd{tar --create \ + --file=archive.2.tar \ + --listed-incremental=/var/log/usr.snar-0 \ + --level=0 \ + /usr} +@end smallexample + Incremental dumps depend crucially on time stamps, so the results are unreliable if you modify a file's time stamps during dumping (e.g., with the @option{--atime-preserve=replace} option), or if you set the clock @@ -5717,12 +5957,12 @@ backwards. @anchor{device numbers} @cindex Device numbers, using in incremental backups Metadata stored in snapshot files include device numbers, which, -obviously are supposed to be a non-volatile values. However, it turns +obviously are supposed to be non-volatile values. However, it turns out that @acronym{NFS} devices have undependable values when an automounter gets in the picture. This can lead to a great deal of spurious redumping in incremental dumps, so it is somewhat useless to compare two @acronym{NFS} devices numbers over time. The solution implemented -currently is to considers all @acronym{NFS} devices as being equal +currently is to consider all @acronym{NFS} devices as being equal when it comes to comparing directories; this is fairly gross, but there does not seem to be a better way to go. @@ -5764,7 +6004,7 @@ practice is to use @option{--listed-incremental=/dev/null}. Alternatively, you can use @option{--incremental}, which needs no arguments. In general, @option{--incremental} (@option{-G}) can be used as a shortcut for @option{--listed-incremental} when listing or -extracting incremental backups (for more information, regarding this +extracting incremental backups (for more information regarding this option, @pxref{incremental-op}). When extracting from the incremental backup @GNUTAR{} attempts to @@ -5805,7 +6045,7 @@ contents of the DUMPDIR header (with terminating nulls) when @option{--incremental} or @option{--listed-incremental} option was given, no matter what the verbosity level. This behavior, and, especially, the binary output it produced were considered inconvenient -and were changed in version 1.16}: +and were changed in version 1.16.}: @smallexample @kbd{tar --list --incremental --verbose --verbose archive.tar} @@ -5857,7 +6097,7 @@ it possible to restore a file system to within one day of accuracy by only extracting two archives---the last weekly (full) dump and the last daily (level one) dump. The only information lost would be in files changed or created since the last daily backup. (Doing dumps -more than once a day is usually not worth the trouble). +more than once a day is usually not worth the trouble.) @GNUTAR{} comes with scripts you can use to do full and level-one (actually, even level-two and so on) dumps. Using @@ -5978,7 +6218,7 @@ A list of individual files to be dumped (for @code{backup}), or restored (for @code{restore}). These should be accessible from the machine on which the backup script is run. -If the list of file systems is very long you may wish to store it +If the list of individual files is very long you may wish to store it in a separate file. This file is usually named @file{/etc/backup/files}, but this name may be overridden in @file{backup-specs} using @code{FILELIST} variable. @@ -6060,7 +6300,7 @@ scripts will search @command{tar} in the current shell path. @subsection Magnetic Tape Control Backup scripts access tape device using special @dfn{hook functions}. -These functions take a single argument -- the name of the tape +These functions take a single argument --- the name of the tape device. Their names are kept in the following variables: @defvr {Backup variable} MT_BEGIN @@ -6145,7 +6385,7 @@ is useful, e.g., for creating unique files. @end table @end deffn -Following variables keep the names of user hook functions +Following variables keep the names of user hook functions: @defvr {Backup variable} DUMP_BEGIN Dump begin function. It is executed before dumping the file system. @@ -6218,16 +6458,16 @@ The syntax for running a backup script is: backup --level=@var{level} --time=@var{time} @end smallexample -The @option{level} option requests the dump level. Thus, to produce +The @option{--level} option requests the dump level. Thus, to produce a full dump, specify @code{--level=0} (this is the default, so -@option{--level} may be omitted if its value is @code{0}). -@footnote{For backward compatibility, the @code{backup} will also +@option{--level} may be omitted if its value is +@code{0})@footnote{For backward compatibility, the @code{backup} will also try to deduce the requested dump level from the name of the script itself. If the name consists of a string @samp{level-} followed by a single decimal digit, that digit is taken as the dump level number. Thus, you may create a link from @code{backup} to @code{level-1} and then run @code{level-1} whenever you need to -create a level one dump.} +create a level one dump.}. The @option{--time} option determines when should the backup be run. @var{Time} may take three forms: @@ -6239,7 +6479,7 @@ The dump must be run at @var{hh} hours @var{mm} minutes. @item @var{hh} -The dump must be run at @var{hh} hours +The dump must be run at @var{hh} hours. @item now @@ -6317,7 +6557,7 @@ then restore all the file systems and files specified in @file{backup-specs} (@pxref{General-Purpose Variables,BACKUP_DIRS}). You may select the file systems (and/or files) to restore by -giving @code{restore} list of @dfn{patterns} in its command +giving @code{restore} a list of @dfn{patterns} in its command line. For example, running @smallexample @@ -6352,7 +6592,7 @@ The full list of options accepted by @code{restore} follows: @table @option @item -a @itemx --all -Restore all file systems and files specified in @file{backup-specs} +Restore all file systems and files specified in @file{backup-specs}. @item -l @var{level} @itemx --level=@var{level} @@ -6392,7 +6632,6 @@ that determination. @node Choosing @chapter Choosing Files and Names for @command{tar} -@UNREVISED Certain options to @command{tar} enable you to specify a name for your archive. Other options let you decide which files to include or exclude @@ -6417,12 +6656,12 @@ This chapter discusses these options in detail. @node file @section Choosing and Naming Archive Files -@UNREVISED @cindex Naming an archive @cindex Archive Name @cindex Choosing an archive file @cindex Where is the archive? +@opindex file By default, @command{tar} uses an archive file name that was compiled when it was built on the system; usually this name refers to some physical tape drive on the machine. However, the person who installed @command{tar} @@ -6505,10 +6744,10 @@ use the following: @end smallexample @noindent -@command{tar} will complete the remote connection, if possible, and +@command{tar} will set up the remote connection, if possible, and prompt you for a username and password. If you use @option{--file=@@@var{hostname}:/@var{dev}/@var{file-name}}, @command{tar} -will complete the remote connection, if possible, using your username +will attempt to set up the remote connection using your username as the username on the remote machine. @cindex Local and remote archives @@ -6521,9 +6760,9 @@ program, with a username of @var{user}. If the username is omitted (along with the @samp{@@} sign), then your user name will be used. (This is the normal @command{rsh} behavior.) It is necessary for the remote machine, in addition to permitting your @command{rsh} access, to -have the @file{rmt} program installed (This command is included in +have the @file{rmt} program installed (this command is included in the @GNUTAR{} distribution and by default is installed under -@file{@var{prefix}/libexec/rmt}, were @var{prefix} means your +@file{@var{prefix}/libexec/rmt}, where @var{prefix} means your installation prefix). If you need to use a file whose name includes a colon, then the remote tape drive behavior can be inhibited by using the @option{--force-local} option. @@ -6625,6 +6864,7 @@ of files and archive members. @cindex Reading file names from a file @cindex Lists of file names @cindex File Name arguments, alternatives +@cindex @command{find}, using with @command{tar} Instead of giving the names of files or archive members on the command line, you can put the names into a file, and then use the @option{--files-from=@var{file-of-names}} (@option{-T @@ -6660,16 +6900,16 @@ create the archive @file{little.tgz}. (The @option{-z} option to more information.) @smallexample -$ @kbd{find . -size -400 -print > small-files} +$ @kbd{find . -size -400 -print > small-files} $ @kbd{tar -c -v -z -T small-files -f little.tgz} @end smallexample @noindent In the file list given by @option{-T} option, any file name beginning with @samp{-} character is considered a @command{tar} option and is -processed accordingly.@footnote{Versions of @GNUTAR{} up to 1.15.1 +processed accordingly@footnote{Versions of @GNUTAR{} up to 1.15.1 recognized only @option{-C} option in file lists, and only if the -option and its argument occupied two consecutive lines.} For example, +option and its argument occupied two consecutive lines.}. For example, the common use of this feature is to change to another directory by specifying @option{-C} option: @@ -6750,10 +6990,10 @@ being recognized as an option. For example: @code{--add-file=--my-file}. @end menu @node nul -@subsection @code{NUL} Terminated File Names +@subsection @code{NUL}-Terminated File Names @cindex File names, terminated by @code{NUL} -@cindex @code{NUL} terminated file names +@cindex @code{NUL}-terminated file names The @option{--null} option causes @option{--files-from=@var{file-of-names}} (@option{-T @var{file-of-names}}) to read file names terminated by a @code{NUL} instead of a newline, so @@ -6763,7 +7003,7 @@ files whose names contain newlines can be archived using @table @option @xopindex{null, described} @item --null -Only consider @code{NUL} terminated file names, instead of files that +Only consider @code{NUL}-terminated file names, instead of files that terminate in a newline. @xopindex{no-null, described} @@ -6782,24 +7022,24 @@ larger than 800K in length and put that list into a file called @file{long-files}. The @option{-print0} option to @command{find} is just like @option{-print}, except that it separates files with a @code{NUL} rather than with a newline. You can then run @command{tar} with both the -@option{--null} and @option{-T} options to specify that @command{tar} get the +@option{--null} and @option{-T} options to specify that @command{tar} gets the files from that file, @file{long-files}, to create the archive @file{big.tgz}. The @option{--null} option to @command{tar} will cause @command{tar} to recognize the @code{NUL} separator between files. @smallexample -$ @kbd{find . -size +800 -print0 > long-files} +$ @kbd{find . -size +800 -print0 > long-files} $ @kbd{tar -c -v --null --files-from=long-files --file=big.tar} @end smallexample The @option{--no-null} option can be used if you need to read both -zero-terminated and newline-terminated files on the same command line. +@code{NUL}-terminated and newline-terminated files on the same command line. For example, if @file{flist} is a newline-terminated file, then the following command can be used to combine it with the above command: @smallexample @group -$ @kbd{find . -size +800 -print0 | +$ @kbd{find . -size +800 -print0 | tar -c -f big.tar --null -T - --no-null -T flist} @end group @end smallexample @@ -6807,14 +7047,14 @@ $ @kbd{find . -size +800 -print0 | This example uses short options for typographic reasons, to avoid very long lines. -@GNUTAR is able to automatically detect null-terminated file lists, so +@GNUTAR is able to automatically detect @code{NUL}-terminated file lists, so it is safe to use them even without the @option{--null} option. In this case @command{tar} will print a warning and continue reading such a file as if @option{--null} were actually given: @smallexample @group -$ @kbd{find . -size +800 -print0 | tar -c -f big.tar -T -} +$ @kbd{find . -size +800 -print0 | tar -c -f big.tar -T -} tar: -: file name read contains nul character @end group @end smallexample @@ -6826,11 +7066,12 @@ to these eventual surplus @option{-T} options as well. @node exclude @section Excluding Some Files -@UNREVISED @cindex File names, excluding files by @cindex Excluding files by name and pattern @cindex Excluding files by file system +@opindex exclude +@opindex exclude-from To avoid operating on files whose names match a particular pattern, use the @option{--exclude} or @option{--exclude-from} options. @@ -6872,6 +7113,7 @@ which is difficult to catch using text editors. However, empty lines are OK. +@table @option @cindex version control system, excluding files @cindex VCS, excluding files @cindex SCCS, excluding files @@ -6883,13 +7125,11 @@ However, empty lines are OK. @cindex Arch, excluding files @cindex Mercurial, excluding files @cindex Darcs, excluding files -@table @option @opindex exclude-vcs @item --exclude-vcs Exclude files and directories used by following version control systems: @samp{CVS}, @samp{RCS}, @samp{SCCS}, @samp{SVN}, @samp{Arch}, @samp{Bazaar}, @samp{Mercurial}, and @samp{Darcs}. -@end table As of version @value{VERSION}, the following files are excluded: @@ -6915,6 +7155,19 @@ As of version @value{VERSION}, the following files are excluded: @item @file{_darcs} @end itemize +@opindex exclude-backups +@item --exclude-backups +Exclude backup and lock files. This option causes exclusion of files +that match the following shell globbing patterns: + +@table @asis +@item .#* +@item *~ +@item #*# +@end table + +@end table + @findex exclude-caches When creating an archive, the @option{--exclude-caches} option family causes @command{tar} to exclude all directories that contain a @dfn{cache @@ -7560,7 +7813,7 @@ characters that are quoted by default in the selected quoting style. @command{Tar} archives contain detailed information about files stored in them and full file names are part of that information. When -storing file to an archive, its file name is recorded in it, +storing a file to an archive, its file name is recorded in it, along with the actual file contents. When restoring from an archive, a file is created on disk with exactly the same name as that stored in the archive. In the majority of cases this is the desired behavior @@ -7671,7 +7924,7 @@ replacement for each file name part that matches @var{regexp}. Both @var{regexp} and @var{replace} are described in detail in @ref{The "s" Command, The "s" Command, The `s' Command, sed, GNU sed}. -Any delimiter can be used in lieue of @samp{/}, the only requirement being +Any delimiter can be used in lieu of @samp{/}, the only requirement being that it be used consistently throughout the expression. For example, the following two expressions are equivalent: @@ -7697,7 +7950,7 @@ Apply the replacement to @emph{all} matches to the @var{regexp}, not just the first. @item i -Use case-insensitive matching +Use case-insensitive matching. @item x @var{regexp} is an @dfn{extended regular expression} (@pxref{Extended @@ -7808,7 +8061,7 @@ targets. In this case, @file{/lib/libc.so.6} would become: @end smallexample This is definitely not desired. To avoid this, the @samp{S} flag -are used, which excludes symbolic link targets from filename +is used, which excludes symbolic link targets from filename transformations. The result is: @smallexample @@ -7855,7 +8108,6 @@ $ @kbd{tar -cf arch.tar \ @node after @section Operating Only on New Files -@UNREVISED @cindex Excluding file by age @cindex Data Modification time, excluding files by @@ -7875,6 +8127,8 @@ If you only want @command{tar} to make the date comparison based on modification of the file's data (rather than status changes), then use the @option{--newer-mtime=@var{date}} option. +@cindex --after-date and --update compared +@cindex --newer-mtime and --update compared You may use these options with any operation. Note that these options differ from the @option{--update} (@option{-u}) operation in that they allow you to specify a particular date against which @command{tar} can @@ -7951,27 +8205,26 @@ for proper way of creating incremental backups. @node recurse @section Descending into Directories -@UNREVISED @cindex Avoiding recursion in directories @cindex Descending directories, avoiding @cindex Directories, avoiding recursion @cindex Recursion in directories, avoiding -@FIXME{arrggh! this is still somewhat confusing to me. :-< } - Usually, @command{tar} will recursively explore all directories (either those given on the command line or through the @option{--files-from} option) for the various files they contain. However, you may not always want @command{tar} to act this way. @opindex no-recursion +@cindex @command{find}, using with @command{tar} The @option{--no-recursion} option inhibits @command{tar}'s recursive descent into specified directories. If you specify @option{--no-recursion}, you can -use the @command{find} utility for hunting through levels of directories to +use the @command{find} (@pxref{Top,, find, find, GNU Find Manual}) +utility for hunting through levels of directories to construct a list of file names which you could then pass to @command{tar}. @command{find} allows you to be more selective when choosing which files to archive; see @ref{files}, for more information on using @command{find} with -@command{tar}, or look. +@command{tar}. @table @option @item --no-recursion @@ -8032,7 +8285,6 @@ other than @file{grape/concord}. @node one @section Crossing File System Boundaries @cindex File system boundaries, not crossing -@UNREVISED @command{tar} will normally automatically cross file system boundaries in order to archive files which are part of a directory tree. You can @@ -8117,7 +8369,7 @@ $ @kbd{tar -c -f jams.tar grape prune -C food red/cherry} which records the third file in the archive under the name @file{red/cherry} so that, if the archive is extracted using @samp{tar --extract}, the third file will be written in a subdirectory -named @file{orange-colored}. +named @file{red}. You can use the @option{--directory} option to make the archive independent of the original name of the directory holding the files. @@ -8173,7 +8425,12 @@ The interpretation of @option{--directory} is disabled by @node absolute @subsection Absolute File Names -@UNREVISED +@cindex absolute file names +@cindex file names, absolute + +By default, @GNUTAR{} drops a leading @samp{/} on +input or output, and complains about file names containing a @file{..} +component. There is an option that turns off this behavior: @table @option @opindex absolute-names @@ -8183,10 +8440,6 @@ Do not strip leading slashes from file names, and permit file names containing a @file{..} file name component. @end table -By default, @GNUTAR{} drops a leading @samp{/} on -input or output, and complains about file names containing a @file{..} -component. This option turns off this behavior. - When @command{tar} extracts archive members from an archive, it strips any leading slashes (@samp{/}) from the member name. This causes absolute member names in the archive to be treated as relative file names. This @@ -8207,12 +8460,12 @@ program to use. Therefore, @GNUTAR{} also strips leading slashes from member names when putting members into the archive. For example, if you ask @command{tar} to add the file @file{/bin/ls} to an archive, it will do so, but the member name will -be @file{bin/ls}.@footnote{A side effect of this is that when +be @file{bin/ls}@footnote{A side effect of this is that when @option{--create} is used with @option{--verbose} the resulting output is not, generally speaking, the same as the one you'd get running @kbd{tar --list} command. This may be important if you use some scripts for comparing both outputs. @xref{listing member and file names}, -for the information on how to handle this case.} +for the information on how to handle this case.}. If you use the @option{--absolute-names} (@option{-P}) option, @command{tar} will do none of these transformations. @@ -8234,8 +8487,6 @@ may be more convenient than switching to root. @FIXME{Should be an example in the tutorial/wizardry section using this to transfer files between systems.} -@FIXME{Is write access an issue?} - @table @option @item --absolute-names Preserves full file names (including superior directory names) when @@ -8243,8 +8494,6 @@ archiving files. Preserves leading slash when extracting files. @end table -@FIXME{this is still horrible; need to talk with dan on monday.} - @command{tar} prints out a message about removing the @samp{/} from file names. This message appears once per @GNUTAR{} invocation. It represents something which ought to be told; ignoring @@ -8396,21 +8645,24 @@ switch to @samp{posix}. @cindex gzip @cindex bzip2 +@cindex lzip @cindex lzma @cindex lzop @cindex compress @GNUTAR{} is able to create and read compressed archives. It supports -@command{gzip}, @command{bzip2}, @command{lzma} and @command{lzop} compression -programs. For backward compatibility, it also supports -@command{compress} command, although we strongly recommend against -using it, because it is by far less effective than other compression -programs@footnote{It also had patent problems in the past.}. +a wide variety of compression programs, namely: @command{gzip}, +@command{bzip2}, @command{lzip}, @command{lzma}, @command{lzop}, +@command{xz} and traditional @command{compress}. The latter is +supported mostly for backward compatibility, and we recommend +against using it, because it is by far less effective than the other +compression programs@footnote{It also had patent problems in the past.}. Creating a compressed archive is simple: you just specify a @dfn{compression option} along with the usual archive creation commands. The compression option is @option{-z} (@option{--gzip}) to create a @command{gzip} compressed archive, @option{-j} (@option{--bzip2}) to create a @command{bzip2} compressed archive, +@option{--lzip} to create an @asis{lzip} compressed archive, @option{-J} (@option{--xz}) to create an @asis{XZ} archive, @option{--lzma} to create an @asis{LZMA} compressed archive, @option{--lzop} to create an @asis{LSOP} archive, and @@ -8479,11 +8731,11 @@ $ @kbd{cat archive.tar.gz | tar tfz -} Notice also, that there are several restrictions on operations on compressed archives. First of all, compressed archives cannot be -modified, i.e., you cannot update (@option{--update} (@option{-u})) +modified, i.e., you cannot update (@option{--update}, alias @option{-u}) them or delete (@option{--delete}) members from them or -add (@option{--append} (@option{-r})) members to them. Likewise, you +add (@option{--append}, alias @option{-r}) members to them. Likewise, you cannot append another @command{tar} archive to a compressed archive using -@option{--concatenate} (@option{-A})). Secondly, multi-volume +@option{--concatenate} (@option{-A}). Secondly, multi-volume archives cannot be compressed. The following table summarizes compression options used by @GNUTAR{}. @@ -8507,6 +8759,7 @@ suffix. The following suffixes are recognized: @item @samp{.tz2} @tab @command{bzip2} @item @samp{.tbz2} @tab @command{bzip2} @item @samp{.tbz} @tab @command{bzip2} +@item @samp{.lz} @tab @command{lzip} @item @samp{.lzma} @tab @command{lzma} @item @samp{.tlz} @tab @command{lzma} @item @samp{.lzo} @tab @command{lzop} @@ -8564,6 +8817,10 @@ Filter the archive through @code{xz}. Otherwise like @itemx --bzip2 Filter the archive through @code{bzip2}. Otherwise like @option{--gzip}. +@opindex lzip +@item --lzip +Filter the archive through @command{lzip}. Otherwise like @option{--gzip}. + @opindex lzma @item --lzma Filter the archive through @command{lzma}. Otherwise like @option{--gzip}. @@ -8584,8 +8841,10 @@ Filter the archive through @command{compress}. Otherwise like @option{--gzip}. @item --use-compress-program=@var{prog} @itemx -I=@var{prog} Use external compression program @var{prog}. Use this option if you -have a compression program that @GNUTAR{} does not support. There -are two requirements to which @var{prog} should comply: +are not happy with the compression program associated with the suffix +at compile time or if you have a compression program that @GNUTAR{} +does not support. There are two requirements to which @var{prog} +should comply: First, when called without options, it should read data from standard input, compress it and output it on standard output. @@ -8610,7 +8869,7 @@ Manual}). The following script does that: #! /bin/sh case $1 in -d) gpg --decrypt - | gzip -d -c;; -'') gzip -c | gpg -s ;; +'') gzip -c | gpg -s;; *) echo "Unknown option $1">&2; exit 1;; esac @end group @@ -8769,15 +9028,14 @@ Using @option{--sparse-format} option implies @option{--sparse}. @node Attributes @section Handling File Attributes -@UNREVISED +@cindex atrributes, files +@cindex file attributes When @command{tar} reads files, it updates their access times. To avoid this, use the @option{--atime-preserve[=METHOD]} option, which can either reset the access time retroactively or avoid changing it in the first place. -Handling of file attributes - @table @option @opindex atime-preserve @item --atime-preserve @@ -8860,7 +9118,7 @@ disk into another machine to do the restore. The numeric ids are @emph{always} saved into @command{tar} archives. The identifying names are added at create time when provided by the -system, unless @option{--old-archive} (@option{-o}) is used. Numeric ids could be +system, unless @option{--format=oldgnu} is used. Numeric ids could be used when moving archives between a collection of machines using a centralized management for attribution of numeric ids to users and groups. This is often made through using the NIS capabilities. @@ -8986,7 +9244,6 @@ it contains unresolved symbolic links. @node hard links @subsection Hard Links -@UNREVISED{} @cindex File names, using hard links @cindex hard links, dereferencing @cindex dereferencing hard links @@ -9036,7 +9293,7 @@ For example, trying to archive only file @file{jeden} with this option produces the following diagnostics: @smallexample -$ tar -c -f ../archive.tar jeden +$ tar -c -f ../archive.tar -l jeden tar: Missing links to `jeden'. @end smallexample @@ -9219,6 +9476,13 @@ will use the following default value: %d/PaxHeaders.%p/%f @end smallexample +@item exthdr.mtime=@var{value} + +This keyword defines the value of the @samp{mtime} field that +is written into the ustar header blocks for the extended headers. +By default, the @samp{mtime} field is set to the modification time +of the archive member described by that extended headers. + @item globexthdr.name=@var{string} This keyword allows user control over the name that is written into the ustar header blocks for global extended header records. The name @@ -9248,6 +9512,13 @@ where @samp{$TMPDIR} represents the value of the @var{TMPDIR} environment variable. If @var{TMPDIR} is not set, @command{tar} uses @samp{/tmp}. +@item globexthdr.mtime=@var{value} + +This keyword defines the value of the @samp{mtime} field that +is written into the ustar header blocks for the global extended headers. +By default, the @samp{mtime} field is set to the time when +@command{tar} was invoked. + @item @var{keyword}=@var{value} When used with one of archive-creation commands, these keyword/value pairs will be included at the beginning of the archive in a global extended @@ -9277,6 +9548,32 @@ the group name will be forced to a new value for all files stored in the archive. @end table +In any of the forms described above, the @var{value} may be +a string enclosed in curly braces. In that case, the string +between the braces is understood either as a textual time +representation, as described in @ref{Date input formats}, or a name of +the existing file, starting with @samp{/} or @samp{.}. In the latter +case, the modification time of that file is used. + +For example, to set all modification times to the current date, you +use the following option: + +@smallexample +--pax-option='mtime:=@{now@}' +@end smallexample + +Note quoting of the option's argument. + +@cindex archives, binary equivalent +@cindex binary equivalent archives, creating +As another example, here is the option that ensures that any two +archives created using it, will be binary equivalent if they have the +same contents: + +@smallexample +--pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0 +@end smallexample + @node Checksumming @subsection Checksumming Problems @@ -9286,13 +9583,13 @@ is, file names having characters with the eight bit set, because they use signed checksums, while @GNUTAR{} uses unsigned checksums while creating archives, as per @acronym{POSIX} standards. On reading, @GNUTAR{} computes both checksums and -accept any. It is somewhat worrying that a lot of people may go +accepts any. It is somewhat worrying that a lot of people may go around doing backup of their files using faulty (or at least non-standard) software, not learning about it until it's time to restore their missing files with an incompatible file extractor, or vice versa. -@GNUTAR{} compute checksums both ways, and accept +@GNUTAR{} computes checksums both ways, and accept any on read, so @acronym{GNU} tar can read Sun tapes even with their wrong checksums. @GNUTAR{} produces the standard checksum, however, raising incompatibilities with Sun. That is to @@ -9318,7 +9615,7 @@ a @command{tar} able to read the good archives they receive. @cindex large values @cindex future time stamps @cindex negative time stamps -@UNREVISED{} +@UNREVISED The above sections suggest to use @samp{oldest possible} archive format if in doubt. However, sometimes it is not possible. If you @@ -9735,7 +10032,7 @@ anything to enhance @command{tar} as a result.) (4.3-tahoe and later). @command{tar}'s way of handling multiple hard links to a file can handle -file systems that support 32-bit inumbers (e.g., the @acronym{BSD} file system); +file systems that support 32-bit i-numbers (e.g., the @acronym{BSD} file system); @command{cpio}s way requires you to play some games (in its ``binary'' format, i-numbers are only 16 bits, and in its ``portable @acronym{ASCII}'' format, they're 18 bits---it would have to play games with the "file system @acronym{ID}" @@ -9890,7 +10187,7 @@ with the sources for @command{tar}; it's compiled and installed by default. The exact path to this utility is determined when configuring the package. It is @file{@var{prefix}/libexec/rmt}, where @var{prefix} stands for your installation prefix. This location may also be overridden at -runtime by using @option{rmt-command=@var{command}} option (@xref{Option Summary, +runtime by using the @option{--rmt-command=@var{command}} option (@xref{Option Summary, ---rmt-command}, for detailed description of this option. @xref{Remote Tape Server}, for the description of @command{rmt} command). @@ -9979,7 +10276,7 @@ description of this option. @end table @node Remote Tape Server -@section The Remote Tape Server +@section Remote Tape Server @cindex remote tape drive @pindex rmt @@ -10035,7 +10332,7 @@ archive in order to reread or rewrite a record that was just read (or written). This is currently possible only on two kinds of files: normal disk files (or any other file that can be backspaced with @samp{lseek}), and industry-standard 9-track magnetic tape (or any other kind of tape -that can be backspaced with the @code{MTIOCTOP} @code{ioctl}. +that can be backspaced with the @code{MTIOCTOP} @code{ioctl}). This means that the @option{--append}, @option{--concatenate}, and @option{--delete} commands will not work on any other kind of file. @@ -10079,7 +10376,8 @@ device busy @node Blocking @section Blocking -@UNREVISED +@cindex block +@cindex record @dfn{Block} and @dfn{record} terminology is rather confused, and it is also confusing to the expert reader. On the other hand, readers @@ -10294,7 +10592,7 @@ it would normally. To extract files from an archive with a non-standard blocking factor (particularly if you're not sure what the blocking factor is), you can usually use the @option{--read-full-records} (@option{-B}) option while specifying a blocking factor larger then the blocking factor of the archive -(i.e., @samp{tar --extract --read-full-records --blocking-factor=300}. +(i.e., @samp{tar --extract --read-full-records --blocking-factor=300}). @xref{list}, for more information on the @option{--list} (@option{-t}) operation. @xref{Reading}, for a more detailed explanation of that option. @@ -10310,7 +10608,7 @@ Device blocking @table @option @item -b @var{blocks} @itemx --blocking-factor=@var{blocks} -Set record size to @math{@var{blocks} * 512} bytes. +Set record size to @math{@var{blocks}*512} bytes. This option is used to specify a @dfn{blocking factor} for the archive. When reading or writing the archive, @command{tar}, will do reads and writes @@ -10452,7 +10750,7 @@ with no information on it, used for decelerating the tape to a full stop, and for later regaining the reading or writing speed. When the tape driver starts reading a record, the record has to be read whole without stopping, as a tape gap is needed to stop the -tape motion without loosing information. +tape motion without losing information. @cindex Exabyte blocking @cindex DAT blocking @@ -10662,19 +10960,17 @@ Moves tape position forward @var{number} files. Moves tape position back @var{number} files. @item rewind -Rewinds the tape. (Ignores @var{number}). +Rewinds the tape. (Ignores @var{number}.) @item offline @itemx rewoff1 -Rewinds the tape and takes the tape device off-line. (Ignores @var{number}). +Rewinds the tape and takes the tape device off-line. (Ignores @var{number}.) @item status Prints status information about the tape unit. @end table -@FIXME{Is there a better way to frob the spacing on the list?} - If you don't specify a @var{tapename}, @command{mt} uses the environment variable @env{TAPE}; if @env{TAPE} is not set, @command{mt} will use the default device specified in your @file{sys/mtio.h} file @@ -10739,7 +11035,7 @@ the media, use the @option{--multi-volume} (@option{-M}) option in conjunction w the @option{--create} option (@pxref{create}). A @dfn{multi-volume} archive can be manipulated like any other archive (provided the @option{--multi-volume} option is specified), but is stored on more -than one tape or disk. +than one tape or file. When you specify @option{--multi-volume}, @command{tar} does not report an error when it comes to the end of an archive volume (when reading), or @@ -10801,7 +11097,7 @@ responses: @table @kbd @item ? -Request @command{tar} to explain possible responses +Request @command{tar} to explain possible responses. @item q Request @command{tar} to exit immediately. @item n @var{file-name} @@ -10810,7 +11106,7 @@ Request @command{tar} to write the next volume on the file @var{file-name}. Request @command{tar} to run a subshell. This option can be disabled by giving @option{--restrict} command line option to @command{tar}@footnote{@xref{--restrict}, for more information about -this option}. +this option.}. @item y Request @command{tar} to begin writing the next volume. @end table @@ -10869,7 +11165,7 @@ The name of the archive @command{tar} is processing. @vrindex TAR_BLOCKING_FACTOR, info script environment variable @item TAR_BLOCKING_FACTOR -Current blocking factor (@pxref{Blocking}. +Current blocking factor (@pxref{Blocking}). @vrindex TAR_VOLUME, info script environment variable @item TAR_VOLUME @@ -10877,7 +11173,7 @@ Ordinal number of the volume @command{tar} is about to start. @vrindex TAR_SUBCOMMAND, info script environment variable @item TAR_SUBCOMMAND -A short option describing the operation @command{tar} is executing +A short option describing the operation @command{tar} is executing. @xref{Operations}, for a complete list of subcommand options. @vrindex TAR_FORMAT, info script environment variable @@ -10991,6 +11287,8 @@ implementation, read @ref{Split Recovery}. @node Tape Files @subsection Tape Files +@cindex labeling archives +@opindex label @UNREVISED To give the archive a name which will be recorded in it, use the @@ -11002,7 +11300,7 @@ archive which will be displayed when the archive is listed with @option{--multi-volume} (@pxref{Using Multiple Tapes}), then the volume label will have @samp{Volume @var{nnn}} appended to the name you give, where @var{nnn} is the number of the volume of the archive. -(If you use the @option{--label=@var{volume-label}}) option when +If you use the @option{--label=@var{volume-label}}) option when reading an archive, it checks to make sure the label on the tape matches the one you give. @xref{label}. @@ -11070,7 +11368,7 @@ Includes an @dfn{archive-label} at the beginning of the archive when the archive is being created, when used in conjunction with the @option{--create} operation. Checks to make sure the archive label matches the one specified (when used in conjunction with any other -operation. +operation). @end table If you create an archive using both @@ -11172,7 +11470,7 @@ manage to get some date string as part of the label. For example: @group $ @kbd{tar cfMV /dev/tape "Daily backup for `date +%Y-%m-%d`"} $ @kbd{tar --create --file=/dev/tape --multi-volume \ - --volume="Daily backup for `date +%Y-%m-%d`"} + --label="Daily backup for `date +%Y-%m-%d`"} @end group @end smallexample @@ -11267,7 +11565,7 @@ be @dfn{write protected}, to protect data on them from being changed. Once an archive is written, you should write protect the media to prevent the archive from being accidentally overwritten or deleted. (This will protect the archive from being changed with a tape or floppy drive---it -will not protect it from magnet fields or other physical hazards). +will not protect it from magnet fields or other physical hazards.) The write protection device itself is usually an integral part of the physical media, and can be a two position (write enabled/write @@ -11315,7 +11613,7 @@ tar: *.c: Not found in archive tar: Error exit delayed from previous errors @end smallexample -To treat member names as globbing patterns, use --wildcards option. +To treat member names as globbing patterns, use the @option{--wildcards} option. If you want to tar to mimic the behavior of versions prior to 1.15.91, add this option to your @env{TAR_OPTIONS} variable. @@ -11340,10 +11638,7 @@ up to and including 1.8.4 invoke tar with this option to produce distribution tarballs. @xref{Formats,v7}, for the detailed discussion of this issue and its implications. -@FIXME{Change the first argument to tar-formats when the new Automake is -out. The proposition to add @anchor{} to the appropriate place of its -docs was accepted by Automake people --Sergey 2006-05-25}. -@xref{Options, tar-v7, Changing Automake's Behavior, +@xref{Options, tar-formats, Changing Automake's Behavior, automake, GNU Automake}, for a description on how to use various archive formats with @command{automake}. @@ -11355,7 +11650,7 @@ synonym for @option{--no-same-owner}. Earlier versions of @GNUTAR{} understood @option{-l} option as a synonym for @option{--one-file-system}. Since such usage contradicted to UNIX98 specification and harmed compatibility with other -implementation, it was declared deprecated in version 1.14. However, +implementations, it was declared deprecated in version 1.14. However, to facilitate transition to its new semantics, it was supported by versions 1.15 and 1.15.90. The present use of @option{-l} as a short variant of @option{--check-links} was introduced in version 1.15.91. diff --git a/doc/version.texi b/doc/version.texi index d015a3c5afb49793e7b18c9e5a0ada835db75ba5..591fd0e3e70cd7e317ae7161a8aad8152c98946e 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 5 March 2009 -@set UPDATED-MONTH March 2009 -@set EDITION 1.22 -@set VERSION 1.22 +@set UPDATED 9 March 2010 +@set UPDATED-MONTH March 2010 +@set EDITION 1.23 +@set VERSION 1.23 diff --git a/lib/gnulib.mk b/gnu/Makefile.am similarity index 64% rename from lib/gnulib.mk rename to gnu/Makefile.am index 7f94093dac4e6786f4dad4585de742b5286223cc..b34cc13297dd27fc9e91345ffb2c9c618493fd7a 100644 --- a/lib/gnulib.mk +++ b/gnu/Makefile.am @@ -1,6 +1,6 @@ ## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. -# Copyright (C) 2002-2009 Free Software Foundation, Inc. +# Copyright (C) 2002-2010 Free Software Foundation, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General @@ -9,7 +9,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libtar --source-base=.#bootmp/lib --m4-base=.#bootmp/m4 --doc-base=.#bootmp/doc --tests-base=.#bootmp/tests --aux-dir=.#bootmp/build-aux --avoid=lock --no-libtool --macro-prefix=gl alloca argmatch argp backupfile closeout configmake dirname error exclude exitfail fileblocks fnmatch-gnu fseeko ftruncate full-write getdate getline getopt getpagesize gettext gettime hash human inttostr inttypes lchown localcharset mkdtemp modechange obstack quote quotearg rpmatch safe-read save-cwd savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul timespec unlinkdir unlocked-io utime utimens version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax +# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=gnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --no-libtool --macro-prefix=gl alloca argmatch argp argp-version-etc backupfile canonicalize closeout configmake dirname error exclude exitfail fileblocks fnmatch-gnu fseeko ftruncate full-write getdate getline getopt getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown localcharset mkdtemp modechange obstack priv-set progname quote quotearg rpmatch safe-read save-cwd savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul timespec unlinkdir unlocked-io utimens version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects @@ -27,23 +27,24 @@ DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = +AM_CFLAGS = -noinst_LIBRARIES += libtar.a +noinst_LIBRARIES += libgnu.a -libtar_a_SOURCES = -libtar_a_LIBADD = $(gl_LIBOBJS) -libtar_a_DEPENDENCIES = $(gl_LIBOBJS) -EXTRA_libtar_a_SOURCES = +libgnu_a_SOURCES = +libgnu_a_LIBADD = $(gl_LIBOBJS) +libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) +EXTRA_libgnu_a_SOURCES = ## begin gnulib module alloca EXTRA_DIST += alloca.c -EXTRA_libtar_a_SOURCES += alloca.c +EXTRA_libgnu_a_SOURCES += alloca.c -libtar_a_LIBADD += @ALLOCA@ -libtar_a_DEPENDENCIES += @ALLOCA@ +libgnu_a_LIBADD += @ALLOCA@ +libgnu_a_DEPENDENCIES += @ALLOCA@ ## end gnulib module alloca ## begin gnulib module alloca-opt @@ -53,9 +54,10 @@ BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create <alloca.h> when the system # doesn't have one that works with the given compiler. alloca.h: alloca.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ - } > $@-t + } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += alloca.h alloca.h-t @@ -63,63 +65,131 @@ EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt +## begin gnulib module areadlink-with-size + +libgnu_a_SOURCES += areadlink-with-size.c + +EXTRA_DIST += areadlink.h + +## end gnulib module areadlink-with-size + +## begin gnulib module arg-nonnull + +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. + +BUILT_SOURCES += arg-nonnull.h +# The arg-nonnull.h that gets inserted into generated .h files is the same as +# build-aux/arg-nonnull.h, except that it has the copyright header cut off. +arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/GL_ARG_NONNULL/,$$p' \ + < $(top_srcdir)/build-aux/arg-nonnull.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t + +ARG_NONNULL_H=arg-nonnull.h + +EXTRA_DIST += $(top_srcdir)/build-aux/arg-nonnull.h + +## end gnulib module arg-nonnull + ## begin gnulib module argmatch EXTRA_DIST += argmatch.c argmatch.h -EXTRA_libtar_a_SOURCES += argmatch.c +EXTRA_libgnu_a_SOURCES += argmatch.c ## end gnulib module argmatch ## begin gnulib module argp -libtar_a_SOURCES += argp.h argp-ba.c argp-eexst.c \ +libgnu_a_SOURCES += 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 ## end gnulib module argp +## begin gnulib module argp-version-etc + +libgnu_a_SOURCES += argp-version-etc.h argp-version-etc.c + +## end gnulib module argp-version-etc + ## begin gnulib module backupfile EXTRA_DIST += backupfile.c backupfile.h -EXTRA_libtar_a_SOURCES += backupfile.c +EXTRA_libgnu_a_SOURCES += backupfile.c ## end gnulib module backupfile +## begin gnulib module bitrotate + +libgnu_a_SOURCES += bitrotate.h + +## end gnulib module bitrotate + ## begin gnulib module btowc EXTRA_DIST += btowc.c -EXTRA_libtar_a_SOURCES += btowc.c +EXTRA_libgnu_a_SOURCES += btowc.c ## end gnulib module btowc +## begin gnulib module c++defs + +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. + +BUILT_SOURCES += c++defs.h +# The c++defs.h that gets inserted into generated .h files is the same as +# build-aux/c++defs.h, except that it has the copyright header cut off. +c++defs.h: $(top_srcdir)/build-aux/c++defs.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/_GL_CXXDEFS/,$$p' \ + < $(top_srcdir)/build-aux/c++defs.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += c++defs.h c++defs.h-t + +CXXDEFS_H=c++defs.h + +EXTRA_DIST += $(top_srcdir)/build-aux/c++defs.h + +## end gnulib module c++defs + ## begin gnulib module c-ctype -libtar_a_SOURCES += c-ctype.h c-ctype.c +libgnu_a_SOURCES += c-ctype.h c-ctype.c ## end gnulib module c-ctype -## begin gnulib module canonicalize-lgpl +## begin gnulib module canonicalize -EXTRA_DIST += canonicalize-lgpl.c canonicalize.h +EXTRA_DIST += canonicalize.c canonicalize.h -EXTRA_libtar_a_SOURCES += canonicalize-lgpl.c +EXTRA_libgnu_a_SOURCES += canonicalize.c -## end gnulib module canonicalize-lgpl +## end gnulib module canonicalize ## begin gnulib module chdir-long EXTRA_DIST += chdir-long.c chdir-long.h -EXTRA_libtar_a_SOURCES += chdir-long.c +EXTRA_libgnu_a_SOURCES += chdir-long.c ## end gnulib module chdir-long @@ -128,25 +198,33 @@ EXTRA_libtar_a_SOURCES += chdir-long.c EXTRA_DIST += chown.c fchown-stub.c -EXTRA_libtar_a_SOURCES += chown.c fchown-stub.c +EXTRA_libgnu_a_SOURCES += chown.c fchown-stub.c ## end gnulib module chown ## begin gnulib module close -EXTRA_DIST += close.c w32sock.h +EXTRA_DIST += close.c -EXTRA_libtar_a_SOURCES += close.c +EXTRA_libgnu_a_SOURCES += close.c ## end gnulib module close +## begin gnulib module close-hook + +libgnu_a_SOURCES += close-hook.c + +EXTRA_DIST += close-hook.h + +## end gnulib module close-hook + ## begin gnulib module close-stream EXTRA_DIST += close-stream.c close-stream.h -EXTRA_libtar_a_SOURCES += close-stream.c +EXTRA_libgnu_a_SOURCES += close-stream.c ## end gnulib module close-stream @@ -155,7 +233,7 @@ EXTRA_libtar_a_SOURCES += close-stream.c EXTRA_DIST += closeout.c closeout.h -EXTRA_libtar_a_SOURCES += closeout.c +EXTRA_libgnu_a_SOURCES += closeout.c ## end gnulib module closeout @@ -179,7 +257,7 @@ EXTRA_libtar_a_SOURCES += closeout.c # The Automake-defined pkg* macros are appended, in the order # listed in the Automake 1.10a+ documentation. configmake.h: Makefile - rm -f $@-t $@ + $(AM_V_GEN)rm -f $@-t && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#define PREFIX "$(prefix)"'; \ echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ @@ -208,8 +286,13 @@ configmake.h: Makefile echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ echo '#define PKGLIBDIR "$(pkglibdir)"'; \ echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ - } | sed '/""/d' > $@-t - mv $@-t $@ + } | sed '/""/d' > $@-t && \ + if test -f $@ && cmp $@-t $@ > /dev/null; then \ + rm -f $@-t; \ + else \ + rm -f $@; mv $@-t $@; \ + fi + BUILT_SOURCES += configmake.h CLEANFILES += configmake.h configmake.h-t @@ -217,26 +300,32 @@ CLEANFILES += configmake.h configmake.h-t ## begin gnulib module dirent -BUILT_SOURCES += $(DIRENT_H) +BUILT_SOURCES += dirent.h # We need the following in order to create <dirent.h> when the system # doesn't have one that works with the given compiler. -dirent.h: dirent.in.h - rm -f $@-t $@ +dirent.h: dirent.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \ + -e 's|@''GNULIB_FDOPENDIR''@|$(GNULIB_FDOPENDIR)|g' \ -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \ -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ + -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \ -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \ - -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \ + -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \ + -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/dirent.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += dirent.h dirent.h-t @@ -244,30 +333,48 @@ EXTRA_DIST += dirent.in.h ## end gnulib module dirent +## begin gnulib module dirent-safer + + +EXTRA_DIST += dirent--.h dirent-safer.h opendir-safer.c + +EXTRA_libgnu_a_SOURCES += opendir-safer.c + +## end gnulib module dirent-safer + ## begin gnulib module dirfd EXTRA_DIST += dirfd.c -EXTRA_libtar_a_SOURCES += dirfd.c +EXTRA_libgnu_a_SOURCES += dirfd.c ## end gnulib module dirfd ## begin gnulib module dirname -EXTRA_DIST += basename.c dirname.c dirname.h stripslash.c +EXTRA_DIST += basename.c dirname.c stripslash.c -EXTRA_libtar_a_SOURCES += basename.c dirname.c stripslash.c +EXTRA_libgnu_a_SOURCES += basename.c dirname.c stripslash.c ## end gnulib module dirname +## begin gnulib module dirname-lgpl + + +EXTRA_DIST += basename-lgpl.c dirname-lgpl.c dirname.h stripslash.c + +EXTRA_libgnu_a_SOURCES += basename-lgpl.c dirname-lgpl.c stripslash.c + +## end gnulib module dirname-lgpl + ## begin gnulib module dup2 EXTRA_DIST += dup2.c -EXTRA_libtar_a_SOURCES += dup2.c +EXTRA_libgnu_a_SOURCES += dup2.c ## end gnulib module dup2 @@ -278,7 +385,7 @@ BUILT_SOURCES += $(ERRNO_H) # We need the following in order to create <errno.h> when the system # doesn't have one that is POSIX compliant. errno.h: errno.in.h - rm -f $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @@ -290,7 +397,7 @@ errno.h: errno.in.h -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ < $(srcdir)/errno.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += errno.h errno.h-t @@ -303,7 +410,7 @@ EXTRA_DIST += errno.in.h EXTRA_DIST += error.c error.h -EXTRA_libtar_a_SOURCES += error.c +EXTRA_libgnu_a_SOURCES += error.c ## end gnulib module error @@ -312,16 +419,15 @@ EXTRA_libtar_a_SOURCES += error.c EXTRA_DIST += exclude.c exclude.h -EXTRA_libtar_a_SOURCES += exclude.c +EXTRA_libgnu_a_SOURCES += exclude.c ## end gnulib module exclude ## begin gnulib module exitfail +libgnu_a_SOURCES += exitfail.c -EXTRA_DIST += exitfail.c exitfail.h - -EXTRA_libtar_a_SOURCES += exitfail.c +EXTRA_DIST += exitfail.h ## end gnulib module exitfail @@ -330,7 +436,7 @@ EXTRA_libtar_a_SOURCES += exitfail.c EXTRA_DIST += fchdir.c -EXTRA_libtar_a_SOURCES += fchdir.c +EXTRA_libgnu_a_SOURCES += fchdir.c ## end gnulib module fchdir @@ -339,48 +445,74 @@ EXTRA_libtar_a_SOURCES += fchdir.c EXTRA_DIST += fclose.c -EXTRA_libtar_a_SOURCES += fclose.c +EXTRA_libgnu_a_SOURCES += fclose.c ## end gnulib module fclose ## begin gnulib module fcntl -BUILT_SOURCES += $(FCNTL_H) + +EXTRA_DIST += fcntl.c + +EXTRA_libgnu_a_SOURCES += fcntl.c + +## end gnulib module fcntl + +## begin gnulib module fcntl-h + +BUILT_SOURCES += fcntl.h # We need the following in order to create <fcntl.h> when the system # doesn't have one that works with the given compiler. -fcntl.h: fcntl.in.h - rm -f $@-t $@ +fcntl.h: fcntl.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ + -e 's|@''GNULIB_FCNTL''@|$(GNULIB_FCNTL)|g' \ -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \ + -e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \ + -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ + -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ + -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ + -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += fcntl.h fcntl.h-t EXTRA_DIST += fcntl.in.h -## end gnulib module fcntl +## end gnulib module fcntl-h + +## begin gnulib module fdopendir -## begin gnulib module fcntl-safer +EXTRA_DIST += fdopendir.c openat-priv.h openat-proc.c -EXTRA_DIST += creat-safer.c fcntl--.h fcntl-safer.h open-safer.c +EXTRA_libgnu_a_SOURCES += fdopendir.c openat-proc.c -EXTRA_libtar_a_SOURCES += creat-safer.c open-safer.c +## end gnulib module fdopendir -## end gnulib module fcntl-safer +## begin gnulib module file-set + +libgnu_a_SOURCES += file-set.c + +EXTRA_DIST += file-set.h + +## end gnulib module file-set ## begin gnulib module fileblocks EXTRA_DIST += fileblocks.c -EXTRA_libtar_a_SOURCES += fileblocks.c +EXTRA_libgnu_a_SOURCES += fileblocks.c ## end gnulib module fileblocks @@ -391,13 +523,13 @@ BUILT_SOURCES += $(FLOAT_H) # We need the following in order to create <float.h> when the system # doesn't have one that works with the given compiler. float.h: float.in.h - rm -f $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ < $(srcdir)/float.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += float.h float.h-t @@ -411,16 +543,18 @@ BUILT_SOURCES += $(FNMATCH_H) # We need the following in order to create <fnmatch.h> when the system # doesn't have one that supports the required API. -fnmatch.h: fnmatch.in.h +fnmatch.h: fnmatch.in.h $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/fnmatch.in.h; \ - } > $@-t + sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + < $(srcdir)/fnmatch.in.h; \ + } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c -EXTRA_libtar_a_SOURCES += fnmatch.c fnmatch_loop.c +EXTRA_libgnu_a_SOURCES += fnmatch.c fnmatch_loop.c ## end gnulib module fnmatch @@ -429,7 +563,7 @@ EXTRA_libtar_a_SOURCES += fnmatch.c fnmatch_loop.c EXTRA_DIST += fpending.c fpending.h -EXTRA_libtar_a_SOURCES += fpending.c +EXTRA_libgnu_a_SOURCES += fpending.c ## end gnulib module fpending @@ -438,7 +572,7 @@ EXTRA_libtar_a_SOURCES += fpending.c EXTRA_DIST += fseeko.c stdio-impl.h -EXTRA_libtar_a_SOURCES += fseeko.c +EXTRA_libgnu_a_SOURCES += fseeko.c ## end gnulib module fseeko @@ -447,13 +581,13 @@ EXTRA_libtar_a_SOURCES += fseeko.c EXTRA_DIST += ftruncate.c -EXTRA_libtar_a_SOURCES += ftruncate.c +EXTRA_libgnu_a_SOURCES += ftruncate.c ## end gnulib module ftruncate ## begin gnulib module full-write -libtar_a_SOURCES += full-write.h full-write.c +libgnu_a_SOURCES += full-write.h full-write.c ## end gnulib module full-write @@ -462,13 +596,13 @@ libtar_a_SOURCES += full-write.h full-write.c EXTRA_DIST += getcwd.c -EXTRA_libtar_a_SOURCES += getcwd.c +EXTRA_libgnu_a_SOURCES += getcwd.c ## end gnulib module getcwd ## begin gnulib module getdate -libtar_a_SOURCES += getdate.y +libgnu_a_SOURCES += getdate.y BUILT_SOURCES += getdate.c MAINTAINERCLEANFILES += getdate.c EXTRA_DIST += getdate.c @@ -482,44 +616,59 @@ EXTRA_DIST += getdate.h EXTRA_DIST += getdelim.c -EXTRA_libtar_a_SOURCES += getdelim.c +EXTRA_libgnu_a_SOURCES += getdelim.c ## end gnulib module getdelim +## begin gnulib module getdtablesize + + +EXTRA_DIST += getdtablesize.c + +EXTRA_libgnu_a_SOURCES += getdtablesize.c + +## end gnulib module getdtablesize + ## begin gnulib module getline EXTRA_DIST += getline.c -EXTRA_libtar_a_SOURCES += getline.c +EXTRA_libgnu_a_SOURCES += getline.c ## end gnulib module getline -## begin gnulib module getopt +## begin gnulib module getopt-posix BUILT_SOURCES += $(GETOPT_H) # We need the following in order to create <getopt.h> when the system # doesn't have one that works with the given compiler. -getopt.h: getopt.in.h +getopt.h: getopt.in.h $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/getopt.in.h; \ - } > $@-t + sed -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + < $(srcdir)/getopt.in.h; \ + } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += getopt.h getopt.h-t EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h -EXTRA_libtar_a_SOURCES += getopt.c getopt1.c +EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c -## end gnulib module getopt +## end gnulib module getopt-posix ## begin gnulib module getpagesize EXTRA_DIST += getpagesize.c -EXTRA_libtar_a_SOURCES += getpagesize.c +EXTRA_libgnu_a_SOURCES += getpagesize.c ## end gnulib module getpagesize @@ -541,7 +690,7 @@ EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## begin gnulib module gettext-h -libtar_a_SOURCES += gettext.h +libgnu_a_SOURCES += gettext.h ## end gnulib module gettext-h @@ -550,7 +699,7 @@ libtar_a_SOURCES += gettext.h EXTRA_DIST += gettime.c -EXTRA_libtar_a_SOURCES += gettime.c +EXTRA_libgnu_a_SOURCES += gettime.c ## end gnulib module gettime @@ -559,19 +708,40 @@ EXTRA_libtar_a_SOURCES += gettime.c EXTRA_DIST += gettimeofday.c -EXTRA_libtar_a_SOURCES += gettimeofday.c +EXTRA_libgnu_a_SOURCES += gettimeofday.c ## end gnulib module gettimeofday +## begin gnulib module gitlog-to-changelog + + +EXTRA_DIST += $(top_srcdir)/build-aux/gitlog-to-changelog + +## end gnulib module gitlog-to-changelog + ## begin gnulib module hash EXTRA_DIST += hash.c hash.h -EXTRA_libtar_a_SOURCES += hash.c +EXTRA_libgnu_a_SOURCES += hash.c ## end gnulib module hash +## begin gnulib module hash-pjw + +libgnu_a_SOURCES += hash-pjw.h hash-pjw.c + +## end gnulib module hash-pjw + +## begin gnulib module hash-triple + +libgnu_a_SOURCES += hash-triple.c + +EXTRA_DIST += hash-triple.h + +## end gnulib module hash-triple + ## begin gnulib module havelib @@ -584,7 +754,7 @@ EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath EXTRA_DIST += human.c human.h -EXTRA_libtar_a_SOURCES += human.c +EXTRA_libgnu_a_SOURCES += human.c ## end gnulib module human @@ -600,18 +770,18 @@ EXTRA_DIST += intprops.h EXTRA_DIST += imaxtostr.c inttostr.c inttostr.h offtostr.c uinttostr.c umaxtostr.c -EXTRA_libtar_a_SOURCES += imaxtostr.c inttostr.c offtostr.c uinttostr.c umaxtostr.c +EXTRA_libgnu_a_SOURCES += imaxtostr.c inttostr.c offtostr.c uinttostr.c umaxtostr.c ## end gnulib module inttostr ## begin gnulib module inttypes -BUILT_SOURCES += $(INTTYPES_H) +BUILT_SOURCES += inttypes.h # We need the following in order to create <inttypes.h> when the system # doesn't have one that works with the given compiler. -inttypes.h: inttypes.in.h - rm -f $@-t $@ +inttypes.h: inttypes.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @@ -634,9 +804,10 @@ inttypes.h: inttypes.in.h -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += inttypes.h inttypes.h-t @@ -644,26 +815,47 @@ EXTRA_DIST += inttypes.in.h ## end gnulib module inttypes -## begin gnulib module lchown +## begin gnulib module langinfo +BUILT_SOURCES += langinfo.h -EXTRA_DIST += lchown.c +# We need the following in order to create an empty placeholder for +# <langinfo.h> when the system doesn't have one. +langinfo.h: langinfo.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ + -e 's|@''GNULIB_NL_LANGINFO''@|$(GNULIB_NL_LANGINFO)|g' \ + -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ + -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ + -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ + -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/langinfo.in.h; \ + } > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += langinfo.h langinfo.h-t -EXTRA_libtar_a_SOURCES += lchown.c +EXTRA_DIST += langinfo.in.h -## end gnulib module lchown +## end gnulib module langinfo + +## begin gnulib module lchown -## begin gnulib module link-warning -LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h +EXTRA_DIST += lchown.c -EXTRA_DIST += $(top_srcdir)/build-aux/link-warning.h +EXTRA_libgnu_a_SOURCES += lchown.c -## end gnulib module link-warning +## end gnulib module lchown ## begin gnulib module localcharset -libtar_a_SOURCES += localcharset.h localcharset.c +libgnu_a_SOURCES += localcharset.h localcharset.c # We need the following in order to install a simple file in $(libdir) # which is shared with other installed packages. We use a list of referencing @@ -676,7 +868,8 @@ all-local: charset.alias ref-add.sed ref-del.sed charset_alias = $(DESTDIR)$(libdir)/charset.alias charset_tmp = $(DESTDIR)$(libdir)/charset.tmp -install-exec-local: all-local +install-exec-local: install-exec-localcharset +install-exec-localcharset: all-local if test $(GLIBC21) = no; then \ case '$(host_os)' in \ darwin[56]*) \ @@ -704,7 +897,8 @@ install-exec-local: all-local fi ; \ fi -uninstall-local: all-local +uninstall-local: uninstall-localcharset +uninstall-localcharset: all-local if test -f $(charset_alias); then \ sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ if grep '^# Packages using this file: $$' $(charset_tmp) \ @@ -717,14 +911,14 @@ uninstall-local: all-local fi charset.alias: config.charset - rm -f t-$@ $@ - $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ + $(AM_V_GEN)rm -f t-$@ $@ && \ + $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ mv t-$@ $@ SUFFIXES += .sed .sin .sin.sed: - rm -f t-$@ $@ - sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ + $(AM_V_GEN)rm -f t-$@ $@ && \ + sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ mv t-$@ $@ CLEANFILES += charset.alias ref-add.sed ref-del.sed @@ -738,7 +932,7 @@ EXTRA_DIST += config.charset ref-add.sin ref-del.sin EXTRA_DIST += lseek.c -EXTRA_libtar_a_SOURCES += lseek.c +EXTRA_libgnu_a_SOURCES += lseek.c ## end gnulib module lseek @@ -747,7 +941,7 @@ EXTRA_libtar_a_SOURCES += lseek.c EXTRA_DIST += lstat.c -EXTRA_libtar_a_SOURCES += lstat.c +EXTRA_libgnu_a_SOURCES += lstat.c ## end gnulib module lstat @@ -756,7 +950,7 @@ EXTRA_libtar_a_SOURCES += lstat.c EXTRA_DIST += malloc.c -EXTRA_libtar_a_SOURCES += malloc.c +EXTRA_libgnu_a_SOURCES += malloc.c ## end gnulib module malloc @@ -765,13 +959,13 @@ EXTRA_libtar_a_SOURCES += malloc.c EXTRA_DIST += malloc.c -EXTRA_libtar_a_SOURCES += malloc.c +EXTRA_libgnu_a_SOURCES += malloc.c ## end gnulib module malloc-posix ## begin gnulib module malloca -libtar_a_SOURCES += malloca.c +libgnu_a_SOURCES += malloca.c EXTRA_DIST += malloca.h malloca.valgrind @@ -779,7 +973,7 @@ EXTRA_DIST += malloca.h malloca.valgrind ## begin gnulib module mbchar -libtar_a_SOURCES += mbchar.c +libgnu_a_SOURCES += mbchar.c EXTRA_DIST += mbchar.h @@ -790,13 +984,13 @@ EXTRA_DIST += mbchar.h EXTRA_DIST += mbrtowc.c -EXTRA_libtar_a_SOURCES += mbrtowc.c +EXTRA_libgnu_a_SOURCES += mbrtowc.c ## end gnulib module mbrtowc ## begin gnulib module mbscasecmp -libtar_a_SOURCES += mbscasecmp.c +libgnu_a_SOURCES += mbscasecmp.c ## end gnulib module mbscasecmp @@ -805,22 +999,40 @@ libtar_a_SOURCES += mbscasecmp.c EXTRA_DIST += mbsinit.c -EXTRA_libtar_a_SOURCES += mbsinit.c +EXTRA_libgnu_a_SOURCES += mbsinit.c ## end gnulib module mbsinit +## begin gnulib module mbsrtowcs + + +EXTRA_DIST += mbsrtowcs-state.c mbsrtowcs.c + +EXTRA_libgnu_a_SOURCES += mbsrtowcs-state.c mbsrtowcs.c + +## end gnulib module mbsrtowcs + ## begin gnulib module mbuiter -libtar_a_SOURCES += mbuiter.h +libgnu_a_SOURCES += mbuiter.h ## end gnulib module mbuiter +## begin gnulib module memchr + + +EXTRA_DIST += memchr.c memchr.valgrind + +EXTRA_libgnu_a_SOURCES += memchr.c + +## end gnulib module memchr + ## begin gnulib module mempcpy EXTRA_DIST += mempcpy.c -EXTRA_libtar_a_SOURCES += mempcpy.c +EXTRA_libgnu_a_SOURCES += mempcpy.c ## end gnulib module mempcpy @@ -829,25 +1041,34 @@ EXTRA_libtar_a_SOURCES += mempcpy.c EXTRA_DIST += memrchr.c -EXTRA_libtar_a_SOURCES += memrchr.c +EXTRA_libgnu_a_SOURCES += memrchr.c ## end gnulib module memrchr +## begin gnulib module mkdir + + +EXTRA_DIST += mkdir.c + +EXTRA_libgnu_a_SOURCES += mkdir.c + +## end gnulib module mkdir + ## begin gnulib module mkdtemp EXTRA_DIST += mkdtemp.c -EXTRA_libtar_a_SOURCES += mkdtemp.c +EXTRA_libgnu_a_SOURCES += mkdtemp.c ## end gnulib module mkdtemp ## begin gnulib module mktime -EXTRA_DIST += mktime.c +EXTRA_DIST += mktime-internal.h mktime.c -EXTRA_libtar_a_SOURCES += mktime.c +EXTRA_libgnu_a_SOURCES += mktime.c ## end gnulib module mktime @@ -856,16 +1077,25 @@ EXTRA_libtar_a_SOURCES += mktime.c EXTRA_DIST += modechange.c modechange.h -EXTRA_libtar_a_SOURCES += modechange.c +EXTRA_libgnu_a_SOURCES += modechange.c ## end gnulib module modechange +## begin gnulib module nl_langinfo + + +EXTRA_DIST += nl_langinfo.c + +EXTRA_libgnu_a_SOURCES += nl_langinfo.c + +## end gnulib module nl_langinfo + ## begin gnulib module obstack EXTRA_DIST += obstack.c obstack.h -EXTRA_libtar_a_SOURCES += obstack.c +EXTRA_libgnu_a_SOURCES += obstack.c ## end gnulib module obstack @@ -874,22 +1104,22 @@ EXTRA_libtar_a_SOURCES += obstack.c EXTRA_DIST += open.c -EXTRA_libtar_a_SOURCES += open.c +EXTRA_libgnu_a_SOURCES += open.c ## end gnulib module open ## begin gnulib module openat -EXTRA_DIST += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-priv.h openat-proc.c openat.c openat.h +EXTRA_DIST += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-priv.h openat-proc.c openat.c openat.h unlinkat.c -EXTRA_libtar_a_SOURCES += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-proc.c openat.c +EXTRA_libgnu_a_SOURCES += at-func.c fchmodat.c fchownat.c fstatat.c mkdirat.c openat-proc.c openat.c unlinkat.c ## end gnulib module openat ## begin gnulib module openat-die -libtar_a_SOURCES += openat-die.c +libgnu_a_SOURCES += openat-die.c ## end gnulib module openat-die @@ -900,12 +1130,26 @@ EXTRA_DIST += pathmax.h ## end gnulib module pathmax +## begin gnulib module priv-set + +libgnu_a_SOURCES += priv-set.c + +EXTRA_DIST += priv-set.h + +## end gnulib module priv-set + +## begin gnulib module progname + +libgnu_a_SOURCES += progname.h progname.c + +## end gnulib module progname + ## begin gnulib module quote EXTRA_DIST += quote.c quote.h -EXTRA_libtar_a_SOURCES += quote.c +EXTRA_libgnu_a_SOURCES += quote.c ## end gnulib module quote @@ -914,7 +1158,7 @@ EXTRA_libtar_a_SOURCES += quote.c EXTRA_DIST += quotearg.c quotearg.h -EXTRA_libtar_a_SOURCES += quotearg.c +EXTRA_libgnu_a_SOURCES += quotearg.c ## end gnulib module quotearg @@ -923,7 +1167,7 @@ EXTRA_libtar_a_SOURCES += quotearg.c EXTRA_DIST += rawmemchr.c rawmemchr.valgrind -EXTRA_libtar_a_SOURCES += rawmemchr.c +EXTRA_libgnu_a_SOURCES += rawmemchr.c ## end gnulib module rawmemchr @@ -932,7 +1176,7 @@ EXTRA_libtar_a_SOURCES += rawmemchr.c EXTRA_DIST += readlink.c -EXTRA_libtar_a_SOURCES += readlink.c +EXTRA_libgnu_a_SOURCES += readlink.c ## end gnulib module readlink @@ -941,7 +1185,7 @@ EXTRA_libtar_a_SOURCES += readlink.c EXTRA_DIST += realloc.c -EXTRA_libtar_a_SOURCES += realloc.c +EXTRA_libgnu_a_SOURCES += realloc.c ## end gnulib module realloc-posix @@ -950,16 +1194,25 @@ EXTRA_libtar_a_SOURCES += realloc.c EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c -EXTRA_libtar_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c +EXTRA_libgnu_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c ## end gnulib module regex +## begin gnulib module rmdir + + +EXTRA_DIST += rmdir.c + +EXTRA_libgnu_a_SOURCES += rmdir.c + +## end gnulib module rmdir + ## begin gnulib module rpmatch EXTRA_DIST += rpmatch.c -EXTRA_libtar_a_SOURCES += rpmatch.c +EXTRA_libgnu_a_SOURCES += rpmatch.c ## end gnulib module rpmatch @@ -968,7 +1221,7 @@ EXTRA_libtar_a_SOURCES += rpmatch.c EXTRA_DIST += safe-read.c safe-read.h -EXTRA_libtar_a_SOURCES += safe-read.c +EXTRA_libgnu_a_SOURCES += safe-read.c ## end gnulib module safe-read @@ -977,10 +1230,19 @@ EXTRA_libtar_a_SOURCES += safe-read.c EXTRA_DIST += safe-write.c safe-write.h -EXTRA_libtar_a_SOURCES += safe-write.c +EXTRA_libgnu_a_SOURCES += safe-write.c ## end gnulib module safe-write +## begin gnulib module same + + +EXTRA_DIST += same.c same.h + +EXTRA_libgnu_a_SOURCES += same.c + +## end gnulib module same + ## begin gnulib module same-inode @@ -993,7 +1255,7 @@ EXTRA_DIST += same-inode.h EXTRA_DIST += save-cwd.c save-cwd.h -EXTRA_libtar_a_SOURCES += save-cwd.c +EXTRA_libgnu_a_SOURCES += save-cwd.c ## end gnulib module save-cwd @@ -1002,7 +1264,7 @@ EXTRA_libtar_a_SOURCES += save-cwd.c EXTRA_DIST += savedir.c savedir.h -EXTRA_libtar_a_SOURCES += savedir.c +EXTRA_libgnu_a_SOURCES += savedir.c ## end gnulib module savedir @@ -1011,13 +1273,13 @@ EXTRA_libtar_a_SOURCES += savedir.c EXTRA_DIST += setenv.c -EXTRA_libtar_a_SOURCES += setenv.c +EXTRA_libgnu_a_SOURCES += setenv.c ## end gnulib module setenv ## begin gnulib module size_max -libtar_a_SOURCES += size_max.h +libgnu_a_SOURCES += size_max.h ## end gnulib module size_max @@ -1026,7 +1288,7 @@ libtar_a_SOURCES += size_max.h EXTRA_DIST += sleep.c -EXTRA_libtar_a_SOURCES += sleep.c +EXTRA_libgnu_a_SOURCES += sleep.c ## end gnulib module sleep @@ -1035,10 +1297,19 @@ EXTRA_libtar_a_SOURCES += sleep.c EXTRA_DIST += snprintf.c -EXTRA_libtar_a_SOURCES += snprintf.c +EXTRA_libgnu_a_SOURCES += snprintf.c ## end gnulib module snprintf +## begin gnulib module stat + + +EXTRA_DIST += stat.c + +EXTRA_libgnu_a_SOURCES += stat.c + +## end gnulib module stat + ## begin gnulib module stat-macros @@ -1060,13 +1331,13 @@ BUILT_SOURCES += $(STDARG_H) # We need the following in order to create <stdarg.h> when the system # doesn't have one that works with the given compiler. stdarg.h: stdarg.in.h - rm -f $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ < $(srcdir)/stdarg.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdarg.h stdarg.h-t @@ -1081,10 +1352,10 @@ BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create <stdbool.h> when the system # doesn't have one that works. stdbool.h: stdbool.in.h - rm -f $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdbool.h stdbool.h-t @@ -1092,6 +1363,29 @@ EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool +## begin gnulib module stddef + +BUILT_SOURCES += $(STDDEF_H) + +# We need the following in order to create <stddef.h> when the system +# doesn't have one that works with the given compiler. +stddef.h: stddef.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ + -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ + -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ + < $(srcdir)/stddef.in.h; \ + } > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += stddef.h stddef.h-t + +EXTRA_DIST += stddef.in.h + +## end gnulib module stddef + ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) @@ -1099,7 +1393,7 @@ BUILT_SOURCES += $(STDINT_H) # We need the following in order to create <stdint.h> when the system # doesn't have one that works with the given compiler. stdint.h: stdint.in.h - rm -f $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @@ -1126,7 +1420,7 @@ stdint.h: stdint.in.h -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ < $(srcdir)/stdint.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdint.h stdint.h-t @@ -1140,87 +1434,102 @@ BUILT_SOURCES += stdio.h # We need the following in order to create <stdio.h> when the system # doesn't have one that works with the given compiler. -stdio.h: stdio.in.h - rm -f $@-t $@ +stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ - -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \ - -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \ - -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ - -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ - -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \ - -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \ - -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ - -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \ - -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \ - -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ - -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \ - -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \ + -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \ + -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ + -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \ + -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \ + -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \ + -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \ -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ - -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ - -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \ - -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \ - -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \ - -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \ - -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \ - -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \ -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \ -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ + -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \ + -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \ -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \ + -e 's|@''GNULIB_POPEN''@|$(GNULIB_POPEN)|g' \ + -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \ + -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ + -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \ + -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \ + -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \ + -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \ + -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \ + -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \ + -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ + -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \ - -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ - -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ - -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ - -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ - -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ - -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ + -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ + -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \ + -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \ + -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \ + -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ + -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ + < $(srcdir)/stdio.in.h | \ + sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ + -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ + -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ + -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ - -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ - -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ - -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ - -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ - -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ - -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ + -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ - -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ - -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ - -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ + -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ + -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ + -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ + -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ + -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ + -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ - -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ - -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ + -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ - -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ - -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ - -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ - -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ + -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ + -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ + -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/stdio.in.h; \ - } > $@-t + -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ + -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ + -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ + -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ + -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ + -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ + -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ + -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ + -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ + -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ + -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ + -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ + -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t EXTRA_DIST += stdio-write.c stdio.in.h -EXTRA_libtar_a_SOURCES += stdio-write.c +EXTRA_libgnu_a_SOURCES += stdio-write.c ## end gnulib module stdio @@ -1230,23 +1539,27 @@ BUILT_SOURCES += stdlib.h # We need the following in order to create <stdlib.h> when the system # doesn't have one that works with the given compiler. -stdlib.h: stdlib.in.h - rm -f $@-t $@ +stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ - -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ - -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ - -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ - -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \ + -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ + -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \ -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \ + -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \ + -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \ + -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \ -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \ + -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \ -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \ -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \ + -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ + -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \ -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \ -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \ -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \ @@ -1255,11 +1568,18 @@ stdlib.h: stdlib.in.h -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \ + -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ - -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \ + -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ + -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ + -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ + -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ + -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \ + -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ @@ -1268,14 +1588,18 @@ stdlib.h: stdlib.in.h -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \ - -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ + -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ + -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ - -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/stdlib.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t @@ -1288,7 +1612,7 @@ EXTRA_DIST += stdlib.in.h EXTRA_DIST += stpcpy.c -EXTRA_libtar_a_SOURCES += stpcpy.c +EXTRA_libgnu_a_SOURCES += stpcpy.c ## end gnulib module stpcpy @@ -1297,7 +1621,7 @@ EXTRA_libtar_a_SOURCES += stpcpy.c EXTRA_DIST += strcasecmp.c strncasecmp.c -EXTRA_libtar_a_SOURCES += strcasecmp.c strncasecmp.c +EXTRA_libgnu_a_SOURCES += strcasecmp.c strncasecmp.c ## end gnulib module strcase @@ -1306,7 +1630,7 @@ EXTRA_libtar_a_SOURCES += strcasecmp.c strncasecmp.c EXTRA_DIST += strchrnul.c strchrnul.valgrind -EXTRA_libtar_a_SOURCES += strchrnul.c +EXTRA_libgnu_a_SOURCES += strchrnul.c ## end gnulib module strchrnul @@ -1315,7 +1639,7 @@ EXTRA_libtar_a_SOURCES += strchrnul.c EXTRA_DIST += strdup.c -EXTRA_libtar_a_SOURCES += strdup.c +EXTRA_libgnu_a_SOURCES += strdup.c ## end gnulib module strdup-posix @@ -1331,7 +1655,7 @@ EXTRA_DIST += streq.h EXTRA_DIST += strerror.c -EXTRA_libtar_a_SOURCES += strerror.c +EXTRA_libgnu_a_SOURCES += strerror.c ## end gnulib module strerror @@ -1341,8 +1665,8 @@ BUILT_SOURCES += string.h # We need the following in order to create <string.h> when the system # doesn't have one that works with the given compiler. -string.h: string.in.h - rm -f $@-t $@ +string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @@ -1361,6 +1685,7 @@ string.h: string.in.h -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \ -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \ -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \ + -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \ -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \ -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \ -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \ @@ -1379,6 +1704,8 @@ string.h: string.in.h -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \ -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \ -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \ + < $(srcdir)/string.in.h | \ + sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ @@ -1387,7 +1714,6 @@ string.h: string.in.h -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ - -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ @@ -1397,15 +1723,21 @@ string.h: string.in.h -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ + -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ + -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t @@ -1419,17 +1751,18 @@ BUILT_SOURCES += strings.h # We need the following in order to create <strings.h> when the system # doesn't have one that works with the given compiler. -strings.h: strings.in.h - rm -f $@-t $@ +strings.h: strings.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/strings.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += strings.h strings.h-t @@ -1442,7 +1775,7 @@ EXTRA_DIST += strings.in.h EXTRA_DIST += strndup.c -EXTRA_libtar_a_SOURCES += strndup.c +EXTRA_libgnu_a_SOURCES += strndup.c ## end gnulib module strndup @@ -1451,13 +1784,13 @@ EXTRA_libtar_a_SOURCES += strndup.c EXTRA_DIST += strnlen.c -EXTRA_libtar_a_SOURCES += strnlen.c +EXTRA_libgnu_a_SOURCES += strnlen.c ## end gnulib module strnlen ## begin gnulib module strnlen1 -libtar_a_SOURCES += strnlen1.h strnlen1.c +libgnu_a_SOURCES += strnlen1.h strnlen1.c ## end gnulib module strnlen1 @@ -1466,7 +1799,7 @@ libtar_a_SOURCES += strnlen1.h strnlen1.c EXTRA_DIST += strtoimax.c -EXTRA_libtar_a_SOURCES += strtoimax.c +EXTRA_libgnu_a_SOURCES += strtoimax.c ## end gnulib module strtoimax @@ -1475,7 +1808,7 @@ EXTRA_libtar_a_SOURCES += strtoimax.c EXTRA_DIST += strtol.c -EXTRA_libtar_a_SOURCES += strtol.c +EXTRA_libgnu_a_SOURCES += strtol.c ## end gnulib module strtol @@ -1484,7 +1817,7 @@ EXTRA_libtar_a_SOURCES += strtol.c EXTRA_DIST += strtoll.c -EXTRA_libtar_a_SOURCES += strtoll.c +EXTRA_libgnu_a_SOURCES += strtoll.c ## end gnulib module strtoll @@ -1493,7 +1826,7 @@ EXTRA_libtar_a_SOURCES += strtoll.c EXTRA_DIST += strtoul.c -EXTRA_libtar_a_SOURCES += strtoul.c +EXTRA_libgnu_a_SOURCES += strtoul.c ## end gnulib module strtoul @@ -1502,7 +1835,7 @@ EXTRA_libtar_a_SOURCES += strtoul.c EXTRA_DIST += strtoull.c -EXTRA_libtar_a_SOURCES += strtoull.c +EXTRA_libgnu_a_SOURCES += strtoull.c ## end gnulib module strtoull @@ -1511,32 +1844,60 @@ EXTRA_libtar_a_SOURCES += strtoull.c EXTRA_DIST += strtoumax.c -EXTRA_libtar_a_SOURCES += strtoumax.c +EXTRA_libgnu_a_SOURCES += strtoumax.c ## end gnulib module strtoumax ## begin gnulib module sys_stat -BUILT_SOURCES += $(SYS_STAT_H) +BUILT_SOURCES += sys/stat.h # We need the following in order to create <sys/stat.h> when the system # has one that is incomplete. -sys/stat.h: sys_stat.in.h - @MKDIR_P@ sys - rm -f $@-t $@ +sys/stat.h: sys_stat.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ + -e 's|@''GNULIB_FCHMODAT''@|$(GNULIB_FCHMODAT)|g' \ + -e 's|@''GNULIB_FSTATAT''@|$(GNULIB_FSTATAT)|g' \ + -e 's|@''GNULIB_FUTIMENS''@|$(GNULIB_FUTIMENS)|g' \ -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \ -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \ + -e 's|@''GNULIB_MKDIRAT''@|$(GNULIB_MKDIRAT)|g' \ + -e 's|@''GNULIB_MKFIFO''@|$(GNULIB_MKFIFO)|g' \ + -e 's|@''GNULIB_MKFIFOAT''@|$(GNULIB_MKFIFOAT)|g' \ + -e 's|@''GNULIB_MKNOD''@|$(GNULIB_MKNOD)|g' \ + -e 's|@''GNULIB_MKNODAT''@|$(GNULIB_MKNODAT)|g' \ + -e 's|@''GNULIB_STAT''@|$(GNULIB_STAT)|g' \ + -e 's|@''GNULIB_UTIMENSAT''@|$(GNULIB_UTIMENSAT)|g' \ + -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ + -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ + -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ + -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ + -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ + -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ + -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ + -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ + -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ + -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ + -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ + -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ + -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ + -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ + -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t MOSTLYCLEANDIRS += sys @@ -1547,22 +1908,27 @@ EXTRA_DIST += sys_stat.in.h ## begin gnulib module sys_time -BUILT_SOURCES += $(SYS_TIME_H) +BUILT_SOURCES += sys/time.h # We need the following in order to create <sys/time.h> when the system # doesn't have one that works with the given compiler. -sys/time.h: sys_time.in.h - @MKDIR_P@ sys - rm -f $@-t $@ +sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ - -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ + -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ + -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ + -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_time.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/time.h sys/time.h-t @@ -1577,13 +1943,14 @@ BUILT_SOURCES += $(SYSEXITS_H) # We need the following in order to create <sysexits.h> when the system # doesn't have one that works with the given compiler. sysexits.h: sysexits.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''NEXT_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \ < $(srcdir)/sysexits.in.h; \ - } > $@-t + } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += sysexits.h sysexits.h-t @@ -1596,7 +1963,7 @@ EXTRA_DIST += sysexits.in.h EXTRA_DIST += tempname.c tempname.h -EXTRA_libtar_a_SOURCES += tempname.c +EXTRA_libgnu_a_SOURCES += tempname.c ## end gnulib module tempname @@ -1606,20 +1973,28 @@ BUILT_SOURCES += time.h # We need the following in order to create <time.h> when the system # doesn't have one that works with the given compiler. -time.h: time.in.h - rm -f $@-t $@ +time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ - -e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ - -e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ - -e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \ - -e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ - -e 's|@SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ - -e 's|@TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ + -e 's|@''GNULIB_MKTIME''@|$(GNULIB_MKTIME)|g' \ + -e 's|@''GNULIB_NANOSLEEP''@|$(GNULIB_NANOSLEEP)|g' \ + -e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \ + -e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \ + -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ + -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ + -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ + -e 's|@''REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \ + -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ + -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t @@ -1632,7 +2007,7 @@ EXTRA_DIST += time.in.h EXTRA_DIST += time_r.c -EXTRA_libtar_a_SOURCES += time_r.c +EXTRA_libgnu_a_SOURCES += time_r.c ## end gnulib module time_r @@ -1649,8 +2024,8 @@ BUILT_SOURCES += unistd.h # We need the following in order to create an empty placeholder for # <unistd.h> when the system doesn't have one. -unistd.h: unistd.in.h - rm -f $@-t $@ +unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @@ -1659,53 +2034,101 @@ unistd.h: unistd.in.h -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \ -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \ -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \ + -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \ -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \ -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \ + -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \ -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \ + -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \ -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \ -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \ -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \ -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \ -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \ + -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \ -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \ + -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \ -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \ -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \ -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \ -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \ -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \ + -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \ -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \ + -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \ + -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \ -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ + -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \ + -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \ -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ + -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \ + -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \ + -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \ -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \ + -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \ + -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \ + -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \ -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \ + < $(srcdir)/unistd.in.h | \ + sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ + -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ + -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ + -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ + -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ + -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GETUSERSHELL''@|$(HAVE_GETUSERSHELL)|g' \ + -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ + -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ + -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ + -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ + -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ + -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ + -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ + -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ + -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ + -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ + -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \ + -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ + -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ + -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ + -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ + -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ + -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ + -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ + -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ + -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ + -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ + -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ + -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/unistd.in.h; \ - } > $@-t + -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t @@ -1718,7 +2141,7 @@ EXTRA_DIST += unistd.in.h EXTRA_DIST += dup-safer.c fd-safer.c pipe-safer.c unistd--.h unistd-safer.h -EXTRA_libtar_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c +EXTRA_libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c ## end gnulib module unistd-safer @@ -1738,18 +2161,27 @@ EXTRA_DIST += localcharset.h uniwidth.h ## begin gnulib module uniwidth/width -libtar_a_SOURCES += uniwidth/width.c +libgnu_a_SOURCES += uniwidth/width.c EXTRA_DIST += uniwidth/cjk.h ## end gnulib module uniwidth/width +## begin gnulib module unlink + + +EXTRA_DIST += unlink.c + +EXTRA_libgnu_a_SOURCES += unlink.c + +## end gnulib module unlink + ## begin gnulib module unlinkdir EXTRA_DIST += unlinkdir.c unlinkdir.h -EXTRA_libtar_a_SOURCES += unlinkdir.c +EXTRA_libgnu_a_SOURCES += unlinkdir.c ## end gnulib module unlinkdir @@ -1765,25 +2197,16 @@ EXTRA_DIST += unlocked-io.h EXTRA_DIST += unsetenv.c -EXTRA_libtar_a_SOURCES += unsetenv.c +EXTRA_libgnu_a_SOURCES += unsetenv.c ## end gnulib module unsetenv -## begin gnulib module utime - - -EXTRA_DIST += utime.c - -EXTRA_libtar_a_SOURCES += utime.c - -## end gnulib module utime - ## begin gnulib module utimens EXTRA_DIST += utimens.c utimens.h -EXTRA_libtar_a_SOURCES += utimens.c +EXTRA_libgnu_a_SOURCES += utimens.c ## end gnulib module utimens @@ -1792,25 +2215,34 @@ EXTRA_libtar_a_SOURCES += utimens.c EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h -EXTRA_libtar_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c +EXTRA_libgnu_a_SOURCES += asnprintf.c printf-args.c printf-parse.c vasnprintf.c ## end gnulib module vasnprintf +## begin gnulib module vasprintf + + +EXTRA_DIST += asprintf.c vasprintf.c + +EXTRA_libgnu_a_SOURCES += asprintf.c vasprintf.c + +## end gnulib module vasprintf + ## begin gnulib module verify -libtar_a_SOURCES += verify.h +libgnu_a_SOURCES += verify.h ## end gnulib module verify ## begin gnulib module version-etc -libtar_a_SOURCES += version-etc.h version-etc.c +libgnu_a_SOURCES += version-etc.h version-etc.c ## end gnulib module version-etc ## begin gnulib module version-etc-fsf -libtar_a_SOURCES += version-etc-fsf.c +libgnu_a_SOURCES += version-etc-fsf.c ## end gnulib module version-etc-fsf @@ -1819,18 +2251,37 @@ libtar_a_SOURCES += version-etc-fsf.c EXTRA_DIST += vsnprintf.c -EXTRA_libtar_a_SOURCES += vsnprintf.c +EXTRA_libgnu_a_SOURCES += vsnprintf.c ## end gnulib module vsnprintf +## begin gnulib module warn-on-use + +BUILT_SOURCES += warn-on-use.h +# The warn-on-use.h that gets inserted into generated .h files is the same as +# build-aux/warn-on-use.h, except that it has the copyright header cut off. +warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/^.ifndef/,$$p' \ + < $(top_srcdir)/build-aux/warn-on-use.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t + +WARN_ON_USE_H=warn-on-use.h + +EXTRA_DIST += $(top_srcdir)/build-aux/warn-on-use.h + +## end gnulib module warn-on-use + ## begin gnulib module wchar -BUILT_SOURCES += $(WCHAR_H) +BUILT_SOURCES += wchar.h # We need the following in order to create <wchar.h> when the system # version does not work standalone. -wchar.h: wchar.in.h - rm -f $@-t $@ +wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @@ -1869,10 +2320,13 @@ wchar.h: wchar.in.h -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ + -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wchar.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t @@ -1885,18 +2339,18 @@ EXTRA_DIST += wchar.in.h EXTRA_DIST += wcrtomb.c -EXTRA_libtar_a_SOURCES += wcrtomb.c +EXTRA_libgnu_a_SOURCES += wcrtomb.c ## end gnulib module wcrtomb ## begin gnulib module wctype -BUILT_SOURCES += $(WCTYPE_H) +BUILT_SOURCES += wctype.h # We need the following in order to create <wctype.h> when the system # doesn't have one that works with the given compiler. -wctype.h: wctype.in.h - rm -f $@-t $@ +wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @@ -1905,8 +2359,10 @@ wctype.h: wctype.in.h -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/wctype.in.h; \ - } > $@-t + } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wctype.h wctype.h-t @@ -1919,7 +2375,7 @@ EXTRA_DIST += wctype.in.h EXTRA_DIST += wcwidth.c -EXTRA_libtar_a_SOURCES += wcwidth.c +EXTRA_libgnu_a_SOURCES += wcwidth.c ## end gnulib module wcwidth @@ -1928,7 +2384,7 @@ EXTRA_libtar_a_SOURCES += wcwidth.c EXTRA_DIST += write.c -EXTRA_libtar_a_SOURCES += write.c +EXTRA_libgnu_a_SOURCES += write.c ## end gnulib module write @@ -1937,13 +2393,13 @@ EXTRA_libtar_a_SOURCES += write.c EXTRA_DIST += xalloc.h xmalloc.c -EXTRA_libtar_a_SOURCES += xmalloc.c +EXTRA_libgnu_a_SOURCES += xmalloc.c ## end gnulib module xalloc ## begin gnulib module xalloc-die -libtar_a_SOURCES += xalloc-die.c +libgnu_a_SOURCES += xalloc-die.c ## end gnulib module xalloc-die @@ -1952,19 +2408,19 @@ libtar_a_SOURCES += xalloc-die.c EXTRA_DIST += xgetcwd.c xgetcwd.h -EXTRA_libtar_a_SOURCES += xgetcwd.c +EXTRA_libgnu_a_SOURCES += xgetcwd.c ## end gnulib module xgetcwd ## begin gnulib module xsize -libtar_a_SOURCES += xsize.h +libgnu_a_SOURCES += xsize.h ## end gnulib module xsize ## begin gnulib module xstrndup -libtar_a_SOURCES += xstrndup.h xstrndup.c +libgnu_a_SOURCES += xstrndup.h xstrndup.c ## end gnulib module xstrndup @@ -1973,16 +2429,24 @@ libtar_a_SOURCES += xstrndup.h xstrndup.c EXTRA_DIST += xstrtol-error.c xstrtol.c xstrtol.h xstrtoul.c -EXTRA_libtar_a_SOURCES += xstrtol-error.c xstrtol.c xstrtoul.c +EXTRA_libgnu_a_SOURCES += xstrtol-error.c xstrtol.c xstrtoul.c ## end gnulib module xstrtol ## begin gnulib module xstrtoumax -libtar_a_SOURCES += xstrtoumax.c +libgnu_a_SOURCES += xstrtoumax.c ## end gnulib module xstrtoumax +## begin gnulib module xvasprintf + +libgnu_a_SOURCES += xvasprintf.h xvasprintf.c xasprintf.c + +EXTRA_DIST += xalloc.h + +## end gnulib module xvasprintf + mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ diff --git a/gnu/Makefile.in b/gnu/Makefile.in new file mode 100644 index 0000000000000000000000000000000000000000..de497b903ec32a059bc5bd83f9256cbb380b7246 --- /dev/null +++ b/gnu/Makefile.in @@ -0,0 +1,2538 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2002-2010 Free Software Foundation, Inc. +# +# This file is free software, distributed under the terms of the GNU +# General Public License. As a special exception to the GNU General +# Public License, this file may be distributed as part of a program +# that contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# Generated by gnulib-tool. +# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libgnu --source-base=gnu --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=lock --no-libtool --macro-prefix=gl alloca argmatch argp argp-version-etc backupfile canonicalize closeout configmake dirname error exclude exitfail fileblocks fnmatch-gnu fseeko ftruncate full-write getdate getline getopt getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown localcharset mkdtemp modechange obstack priv-set progname quote quotearg rpmatch safe-read save-cwd savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul timespec unlinkdir unlocked-io utimens version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = gnu +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in alloca.c getdate.c +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ + $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ + $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ + $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ + $(top_srcdir)/m4/clock_time.m4 \ + $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ + $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ + $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ + $(top_srcdir)/m4/getcwd-abort-bug.m4 \ + $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ + $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ + $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ + $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ + $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ + $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ + $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ + $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ + $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ + $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ + $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ + $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ + $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ + $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ + $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ + $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ + $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ + $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ + $(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \ + $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \ + $(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \ + $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtoimax.m4 \ + $(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \ + $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \ + $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/sys_stat_h.m4 \ + $(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \ + $(top_srcdir)/m4/system.m4 $(top_srcdir)/m4/tempname.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ + $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ + $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ + $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ + $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LIBRARIES = $(noinst_LIBRARIES) +AR = ar +ARFLAGS = cru +AM_V_AR = $(am__v_AR_$(V)) +am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY)) +am__v_AR_0 = @echo " AR " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +libgnu_a_AR = $(AR) $(ARFLAGS) +am__DEPENDENCIES_1 = +am__dirstamp = $(am__leading_dot)dirstamp +am_libgnu_a_OBJECTS = areadlink-with-size.$(OBJEXT) argp-ba.$(OBJEXT) \ + argp-eexst.$(OBJEXT) argp-fmtstream.$(OBJEXT) \ + argp-fs-xinl.$(OBJEXT) argp-help.$(OBJEXT) \ + argp-parse.$(OBJEXT) argp-pin.$(OBJEXT) argp-pv.$(OBJEXT) \ + argp-pvh.$(OBJEXT) argp-xinl.$(OBJEXT) \ + argp-version-etc.$(OBJEXT) c-ctype.$(OBJEXT) \ + close-hook.$(OBJEXT) exitfail.$(OBJEXT) file-set.$(OBJEXT) \ + full-write.$(OBJEXT) getdate.$(OBJEXT) hash-pjw.$(OBJEXT) \ + hash-triple.$(OBJEXT) localcharset.$(OBJEXT) malloca.$(OBJEXT) \ + mbchar.$(OBJEXT) mbscasecmp.$(OBJEXT) openat-die.$(OBJEXT) \ + priv-set.$(OBJEXT) progname.$(OBJEXT) strnlen1.$(OBJEXT) \ + uniwidth/width.$(OBJEXT) version-etc.$(OBJEXT) \ + version-etc-fsf.$(OBJEXT) xalloc-die.$(OBJEXT) \ + xstrndup.$(OBJEXT) xstrtoumax.$(OBJEXT) xvasprintf.$(OBJEXT) \ + xasprintf.$(OBJEXT) +libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) +LTLIBRARIES = $(noinst_LTLIBRARIES) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) +AM_V_YACC = $(am__v_YACC_$(V)) +am__v_YACC_ = $(am__v_YACC_$(AM_DEFAULT_VERBOSITY)) +am__v_YACC_0 = @echo " YACC " $@; +YLWRAP = $(top_srcdir)/build-aux/ylwrap +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) +DIST_SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +HEADERS = $(noinst_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOM4TE = @AUTOM4TE@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BACKUP_LIBEXEC_SCRIPTS = @BACKUP_LIBEXEC_SCRIPTS@ +BACKUP_SBIN_SCRIPTS = @BACKUP_SBIN_SCRIPTS@ +BACKUP_SED_COND = @BACKUP_SED_COND@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_ARCHIVE = @DEFAULT_ARCHIVE@ +DEFAULT_ARCHIVE_FORMAT = @DEFAULT_ARCHIVE_FORMAT@ +DEFAULT_BLOCKING = @DEFAULT_BLOCKING@ +DEFAULT_QUOTING_STYLE = @DEFAULT_QUOTING_STYLE@ +DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ +DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +EXEEXT = @EXEEXT@ +FLOAT_H = @FLOAT_H@ +FNMATCH_H = @FNMATCH_H@ +GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GLIBC21 = @GLIBC21@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ +GNULIB_ATOLL = @GNULIB_ATOLL@ +GNULIB_BTOWC = @GNULIB_BTOWC@ +GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ +GNULIB_CHOWN = @GNULIB_CHOWN@ +GNULIB_CLOSE = @GNULIB_CLOSE@ +GNULIB_DIRFD = @GNULIB_DIRFD@ +GNULIB_DPRINTF = @GNULIB_DPRINTF@ +GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ +GNULIB_ENVIRON = @GNULIB_ENVIRON@ +GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ +GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ +GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ +GNULIB_FFLUSH = @GNULIB_FFLUSH@ +GNULIB_FOPEN = @GNULIB_FOPEN@ +GNULIB_FPRINTF = @GNULIB_FPRINTF@ +GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ +GNULIB_FPUTC = @GNULIB_FPUTC@ +GNULIB_FPUTS = @GNULIB_FPUTS@ +GNULIB_FREOPEN = @GNULIB_FREOPEN@ +GNULIB_FSEEK = @GNULIB_FSEEK@ +GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ +GNULIB_FSYNC = @GNULIB_FSYNC@ +GNULIB_FTELL = @GNULIB_FTELL@ +GNULIB_FTELLO = @GNULIB_FTELLO@ +GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ +GNULIB_FWRITE = @GNULIB_FWRITE@ +GNULIB_GETCWD = @GNULIB_GETCWD@ +GNULIB_GETDELIM = @GNULIB_GETDELIM@ +GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ +GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ +GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ +GNULIB_GETLINE = @GNULIB_GETLINE@ +GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ +GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ +GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ +GNULIB_IMAXABS = @GNULIB_IMAXABS@ +GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ +GNULIB_LCHMOD = @GNULIB_LCHMOD@ +GNULIB_LCHOWN = @GNULIB_LCHOWN@ +GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ +GNULIB_LSEEK = @GNULIB_LSEEK@ +GNULIB_LSTAT = @GNULIB_LSTAT@ +GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ +GNULIB_MBRLEN = @GNULIB_MBRLEN@ +GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ +GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ +GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ +GNULIB_MBSCHR = @GNULIB_MBSCHR@ +GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ +GNULIB_MBSINIT = @GNULIB_MBSINIT@ +GNULIB_MBSLEN = @GNULIB_MBSLEN@ +GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ +GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ +GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ +GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ +GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ +GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ +GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ +GNULIB_MBSSEP = @GNULIB_MBSSEP@ +GNULIB_MBSSPN = @GNULIB_MBSSPN@ +GNULIB_MBSSTR = @GNULIB_MBSSTR@ +GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ +GNULIB_MEMMEM = @GNULIB_MEMMEM@ +GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ +GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ +GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ +GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ +GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ +GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ +GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ +GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ +GNULIB_PRINTF = @GNULIB_PRINTF@ +GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ +GNULIB_PUTC = @GNULIB_PUTC@ +GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ +GNULIB_PUTENV = @GNULIB_PUTENV@ +GNULIB_PUTS = @GNULIB_PUTS@ +GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ +GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ +GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ +GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ +GNULIB_RPMATCH = @GNULIB_RPMATCH@ +GNULIB_SCANDIR = @GNULIB_SCANDIR@ +GNULIB_SETENV = @GNULIB_SETENV@ +GNULIB_SLEEP = @GNULIB_SLEEP@ +GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ +GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ +GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ +GNULIB_STPCPY = @GNULIB_STPCPY@ +GNULIB_STPNCPY = @GNULIB_STPNCPY@ +GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ +GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ +GNULIB_STRDUP = @GNULIB_STRDUP@ +GNULIB_STRERROR = @GNULIB_STRERROR@ +GNULIB_STRNDUP = @GNULIB_STRNDUP@ +GNULIB_STRNLEN = @GNULIB_STRNLEN@ +GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ +GNULIB_STRSEP = @GNULIB_STRSEP@ +GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ +GNULIB_STRSTR = @GNULIB_STRSTR@ +GNULIB_STRTOD = @GNULIB_STRTOD@ +GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ +GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ +GNULIB_STRTOLL = @GNULIB_STRTOLL@ +GNULIB_STRTOULL = @GNULIB_STRTOULL@ +GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ +GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ +GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ +GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ +GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ +GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ +GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ +GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ +GNULIB_VPRINTF = @GNULIB_VPRINTF@ +GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ +GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ +GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ +GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ +GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ +GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ +GNULIB_WCTOB = @GNULIB_WCTOB@ +GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ +GNULIB_WRITE = @GNULIB_WRITE@ +GREP = @GREP@ +HAVE_ALPHASORT = @HAVE_ALPHASORT@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@ +HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ +HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SCANDIR = @HAVE_SCANDIR@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASECMP = @HAVE_STRCASECMP@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNSETENV = @HAVE_UNSETENV@ +HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE__BOOL = @HAVE__BOOL@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ +LOCALE_FR = @LOCALE_FR@ +LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ +LOCALE_JA = @LOCALE_JA@ +LOCALE_ZH_CN = @LOCALE_ZH_CN@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ +NEXT_DIRENT_H = @NEXT_DIRENT_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ +NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRINGS_H = @NEXT_STRINGS_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYSEXITS_H = @NEXT_SYSEXITS_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSUB = @POSUB@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +PU_RMT_PROG = @PU_RMT_PROG@ +RANLIB = @RANLIB@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ +REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRPTIME = @REPLACE_STRPTIME@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WRITE = @REPLACE_WRITE@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +STDARG_H = @STDARG_H@ +STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYSEXITS_H = @SYSEXITS_H@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects +SUBDIRS = +noinst_HEADERS = +noinst_LIBRARIES = libgnu.a +noinst_LTLIBRARIES = + +# This is for those projects which use "gettextize --intl" to put a source-code +# copy of libintl into their package. In such projects, every Makefile.am needs +# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory. +# For the Makefile.ams in other directories it is the maintainer's +# responsibility; for the one from gnulib we do it here. +# This option has no effect when the user disables NLS (because then the intl +# directory contains no libintl.h file) or when the project does not use +# "gettextize --intl". +#AM_CPPFLAGS += -I$(top_builddir)/intl +EXTRA_DIST = alloca.c alloca.in.h areadlink.h \ + $(top_srcdir)/build-aux/arg-nonnull.h argmatch.c argmatch.h \ + backupfile.c backupfile.h btowc.c \ + $(top_srcdir)/build-aux/c++defs.h canonicalize.c \ + canonicalize.h chdir-long.c chdir-long.h chown.c fchown-stub.c \ + close.c close-hook.h close-stream.c close-stream.h closeout.c \ + closeout.h dirent.in.h dirent--.h dirent-safer.h \ + opendir-safer.c dirfd.c basename.c dirname.c stripslash.c \ + basename-lgpl.c dirname-lgpl.c dirname.h stripslash.c dup2.c \ + errno.in.h error.c error.h exclude.c exclude.h exitfail.h \ + fchdir.c fclose.c fcntl.c fcntl.in.h fdopendir.c openat-priv.h \ + openat-proc.c file-set.h fileblocks.c float.in.h fnmatch.c \ + fnmatch.in.h fnmatch_loop.c fpending.c fpending.h fseeko.c \ + stdio-impl.h ftruncate.c getcwd.c getdate.c getdate.h \ + getdelim.c getdtablesize.c getline.c getopt.c getopt.in.h \ + getopt1.c getopt_int.h getpagesize.c \ + $(top_srcdir)/build-aux/config.rpath gettime.c gettimeofday.c \ + $(top_srcdir)/build-aux/gitlog-to-changelog hash.c hash.h \ + hash-triple.h $(top_srcdir)/build-aux/config.rpath human.c \ + human.h intprops.h imaxtostr.c inttostr.c inttostr.h \ + offtostr.c uinttostr.c umaxtostr.c inttypes.in.h langinfo.in.h \ + lchown.c config.charset ref-add.sin ref-del.sin lseek.c \ + lstat.c malloc.c malloc.c malloca.h malloca.valgrind mbchar.h \ + mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c memchr.c \ + memchr.valgrind mempcpy.c memrchr.c mkdir.c mkdtemp.c \ + mktime-internal.h mktime.c modechange.c modechange.h \ + nl_langinfo.c obstack.c obstack.h open.c at-func.c fchmodat.c \ + fchownat.c fstatat.c mkdirat.c openat-priv.h openat-proc.c \ + openat.c openat.h unlinkat.c pathmax.h priv-set.h quote.c \ + quote.h quotearg.c quotearg.h rawmemchr.c rawmemchr.valgrind \ + readlink.c realloc.c regcomp.c regex.c regex.h \ + regex_internal.c regex_internal.h regexec.c rmdir.c rpmatch.c \ + safe-read.c safe-read.h safe-write.c safe-write.h same.c \ + same.h same-inode.h save-cwd.c save-cwd.h savedir.c savedir.h \ + setenv.c sleep.c snprintf.c stat.c stat-macros.h stat-time.h \ + stdarg.in.h stdbool.in.h stddef.in.h stdint.in.h stdio-write.c \ + stdio.in.h stdlib.in.h stpcpy.c strcasecmp.c strncasecmp.c \ + strchrnul.c strchrnul.valgrind strdup.c streq.h strerror.c \ + string.in.h strings.in.h strndup.c strnlen.c strtoimax.c \ + strtol.c strtoll.c strtoul.c strtoull.c strtoumax.c \ + sys_stat.in.h sys_time.in.h sysexits.in.h tempname.c \ + tempname.h time.in.h time_r.c timespec.h unistd.in.h \ + dup-safer.c fd-safer.c pipe-safer.c unistd--.h unistd-safer.h \ + unitypes.h localcharset.h uniwidth.h uniwidth/cjk.h unlink.c \ + unlinkdir.c unlinkdir.h unlocked-io.h unsetenv.c utimens.c \ + utimens.h asnprintf.c float+.h printf-args.c printf-args.h \ + printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h \ + asprintf.c vasprintf.c vsnprintf.c \ + $(top_srcdir)/build-aux/warn-on-use.h wchar.in.h wcrtomb.c \ + wctype.in.h wcwidth.c write.c xalloc.h xmalloc.c xgetcwd.c \ + xgetcwd.h xstrtol-error.c xstrtol.c xstrtol.h xstrtoul.c \ + xalloc.h + +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. + +# The BUILT_SOURCES created by this Makefile snippet are not used via #include +# statements but through direct file reference. Therefore this snippet must be +# present in all Makefile.am that need it. This is ensured by the applicability +# 'all' defined above. +BUILT_SOURCES = $(ALLOCA_H) arg-nonnull.h c++defs.h configmake.h \ + dirent.h $(ERRNO_H) fcntl.h $(FLOAT_H) $(FNMATCH_H) getdate.c \ + $(GETOPT_H) inttypes.h langinfo.h $(STDARG_H) $(STDBOOL_H) \ + $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h strings.h \ + sys/stat.h sys/time.h $(SYSEXITS_H) time.h unistd.h \ + warn-on-use.h wchar.h wctype.h +SUFFIXES = .sed .sin +MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t arg-nonnull.h \ + arg-nonnull.h-t c++defs.h c++defs.h-t dirent.h dirent.h-t \ + errno.h errno.h-t fcntl.h fcntl.h-t float.h float.h-t \ + fnmatch.h fnmatch.h-t getopt.h getopt.h-t inttypes.h \ + inttypes.h-t langinfo.h langinfo.h-t stdarg.h stdarg.h-t \ + stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \ + stdio.h stdio.h-t stdlib.h stdlib.h-t string.h string.h-t \ + strings.h strings.h-t sys/stat.h sys/stat.h-t sys/time.h \ + sys/time.h-t sysexits.h sysexits.h-t time.h time.h-t unistd.h \ + unistd.h-t warn-on-use.h warn-on-use.h-t wchar.h wchar.h-t \ + wctype.h wctype.h-t +MOSTLYCLEANDIRS = sys +CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ + ref-del.sed +DISTCLEANFILES = +MAINTAINERCLEANFILES = getdate.c +AM_CPPFLAGS = +AM_CFLAGS = +libgnu_a_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 argp-version-etc.h argp-version-etc.c bitrotate.h \ + c-ctype.h c-ctype.c close-hook.c exitfail.c file-set.c \ + full-write.h full-write.c getdate.y gettext.h hash-pjw.h \ + hash-pjw.c hash-triple.c localcharset.h localcharset.c \ + malloca.c mbchar.c mbscasecmp.c mbuiter.h openat-die.c \ + priv-set.c progname.h progname.c size_max.h strnlen1.h \ + strnlen1.c uniwidth/width.c verify.h version-etc.h \ + version-etc.c version-etc-fsf.c xalloc-die.c xsize.h \ + xstrndup.h xstrndup.c xstrtoumax.c xvasprintf.h xvasprintf.c \ + xasprintf.c +libgnu_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ +libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ +EXTRA_libgnu_a_SOURCES = alloca.c argmatch.c backupfile.c btowc.c \ + canonicalize.c chdir-long.c chown.c fchown-stub.c close.c \ + close-stream.c closeout.c opendir-safer.c dirfd.c basename.c \ + dirname.c stripslash.c basename-lgpl.c dirname-lgpl.c \ + stripslash.c dup2.c error.c exclude.c fchdir.c fclose.c \ + fcntl.c fdopendir.c openat-proc.c fileblocks.c fnmatch.c \ + fnmatch_loop.c fpending.c fseeko.c ftruncate.c getcwd.c \ + getdelim.c getdtablesize.c getline.c getopt.c getopt1.c \ + getpagesize.c gettime.c gettimeofday.c hash.c human.c \ + imaxtostr.c inttostr.c offtostr.c uinttostr.c umaxtostr.c \ + lchown.c lseek.c lstat.c malloc.c malloc.c mbrtowc.c mbsinit.c \ + mbsrtowcs-state.c mbsrtowcs.c memchr.c mempcpy.c memrchr.c \ + mkdir.c mkdtemp.c mktime.c modechange.c nl_langinfo.c \ + obstack.c open.c at-func.c fchmodat.c fchownat.c fstatat.c \ + mkdirat.c openat-proc.c openat.c unlinkat.c quote.c quotearg.c \ + rawmemchr.c readlink.c realloc.c regcomp.c regex.c \ + regex_internal.c regexec.c rmdir.c rpmatch.c safe-read.c \ + safe-write.c same.c save-cwd.c savedir.c setenv.c sleep.c \ + snprintf.c stat.c stdio-write.c stpcpy.c strcasecmp.c \ + strncasecmp.c strchrnul.c strdup.c strerror.c strndup.c \ + strnlen.c strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \ + strtoumax.c tempname.c time_r.c dup-safer.c fd-safer.c \ + pipe-safer.c unlink.c unlinkdir.c unsetenv.c utimens.c \ + asnprintf.c printf-args.c printf-parse.c vasnprintf.c \ + asprintf.c vasprintf.c vsnprintf.c wcrtomb.c wcwidth.c write.c \ + xmalloc.c xgetcwd.c xstrtol-error.c xstrtol.c xstrtoul.c +ARG_NONNULL_H = arg-nonnull.h +CXXDEFS_H = c++defs.h +charset_alias = $(DESTDIR)$(libdir)/charset.alias +charset_tmp = $(DESTDIR)$(libdir)/charset.tmp +WARN_ON_USE_H = warn-on-use.h +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .sed .sin .c .o .obj .y +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits gnu/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits gnu/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +uniwidth/$(am__dirstamp): + @$(MKDIR_P) uniwidth + @: > uniwidth/$(am__dirstamp) +uniwidth/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) uniwidth/$(DEPDIR) + @: > uniwidth/$(DEPDIR)/$(am__dirstamp) +uniwidth/width.$(OBJEXT): uniwidth/$(am__dirstamp) \ + uniwidth/$(DEPDIR)/$(am__dirstamp) +libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) + $(AM_V_at)-rm -f libgnu.a + $(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD) + $(AM_V_at)$(RANLIB) libgnu.a + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f uniwidth/width.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/areadlink-with-size.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-ba.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-eexst.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-fmtstream.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-fs-xinl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-help.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-parse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-pin.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-pv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-pvh.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-version-etc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-xinl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/at-func.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backupfile.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename-lgpl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chdir-long.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-hook.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-stream.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeout.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirfd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-safer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown-stub.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclose.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopendir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-set.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileblocks.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch_loop.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpending.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftruncate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdelim.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpagesize.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-triple.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/human.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imaxtostr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inttostr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lseek.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbscasecmp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs-state.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempcpy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdirat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdtemp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modechange.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obstack.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-die.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opendir-safer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe-safer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/priv-set.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quote.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rawmemchr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmdir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmatch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-write.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/same.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/savedir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdio-write.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strchrnul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoimax.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoll.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoull.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoumax.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempname.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uinttostr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umaxtostr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlink.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlinkat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlinkdir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utimens.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc-fsf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xasprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetcwd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol-error.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoumax.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xvasprintf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/width.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.y.c: + $(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local +installdirs: installdirs-recursive +installdirs-am: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f uniwidth/$(DEPDIR)/$(am__dirstamp) + -rm -f uniwidth/$(am__dirstamp) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -rm -f getdate.c + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-recursive + -rm -rf $(DEPDIR) ./$(DEPDIR) uniwidth/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-exec-local + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf $(DEPDIR) ./$(DEPDIR) uniwidth/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-local + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + ctags-recursive install install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am all-local check check-am clean clean-generic \ + clean-noinstLIBRARIES clean-noinstLTLIBRARIES ctags \ + ctags-recursive distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-local \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am uninstall-local + + +# We need the following in order to create <alloca.h> when the system +# doesn't have one that works with the given compiler. +alloca.h: alloca.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + cat $(srcdir)/alloca.in.h; \ + } > $@-t && \ + mv -f $@-t $@ +# The arg-nonnull.h that gets inserted into generated .h files is the same as +# build-aux/arg-nonnull.h, except that it has the copyright header cut off. +arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/GL_ARG_NONNULL/,$$p' \ + < $(top_srcdir)/build-aux/arg-nonnull.h \ + > $@-t && \ + mv $@-t $@ +# The c++defs.h that gets inserted into generated .h files is the same as +# build-aux/c++defs.h, except that it has the copyright header cut off. +c++defs.h: $(top_srcdir)/build-aux/c++defs.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/_GL_CXXDEFS/,$$p' \ + < $(top_srcdir)/build-aux/c++defs.h \ + > $@-t && \ + mv $@-t $@ + +# Retrieve values of the variables through 'configure' followed by +# 'make', not directly through 'configure', so that a user who +# sets some of these variables consistently on the 'make' command +# line gets correct results. +# +# One advantage of this approach, compared to the classical +# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS, +# is that it protects against the use of undefined variables. +# If, say, $(libdir) is not set in the Makefile, LIBDIR is not +# defined by this module, and code using LIBDIR gives a +# compilation error. +# +# Another advantage is that 'make' output is shorter. +# +# Listed in the same order as the GNU makefile conventions. +# The Automake-defined pkg* macros are appended, in the order +# listed in the Automake 1.10a+ documentation. +configmake.h: Makefile + $(AM_V_GEN)rm -f $@-t && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + echo '#define PREFIX "$(prefix)"'; \ + echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ + echo '#define BINDIR "$(bindir)"'; \ + echo '#define SBINDIR "$(sbindir)"'; \ + echo '#define LIBEXECDIR "$(libexecdir)"'; \ + echo '#define DATAROOTDIR "$(datarootdir)"'; \ + echo '#define DATADIR "$(datadir)"'; \ + echo '#define SYSCONFDIR "$(sysconfdir)"'; \ + echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ + echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ + echo '#define INCLUDEDIR "$(includedir)"'; \ + echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ + echo '#define DOCDIR "$(docdir)"'; \ + echo '#define INFODIR "$(infodir)"'; \ + echo '#define HTMLDIR "$(htmldir)"'; \ + echo '#define DVIDIR "$(dvidir)"'; \ + echo '#define PDFDIR "$(pdfdir)"'; \ + echo '#define PSDIR "$(psdir)"'; \ + echo '#define LIBDIR "$(libdir)"'; \ + echo '#define LISPDIR "$(lispdir)"'; \ + echo '#define LOCALEDIR "$(localedir)"'; \ + echo '#define MANDIR "$(mandir)"'; \ + echo '#define MANEXT "$(manext)"'; \ + echo '#define PKGDATADIR "$(pkgdatadir)"'; \ + echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ + echo '#define PKGLIBDIR "$(pkglibdir)"'; \ + echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ + } | sed '/""/d' > $@-t && \ + if test -f $@ && cmp $@-t $@ > /dev/null; then \ + rm -f $@-t; \ + else \ + rm -f $@; mv $@-t $@; \ + fi + +# We need the following in order to create <dirent.h> when the system +# doesn't have one that works with the given compiler. +dirent.h: dirent.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ + -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \ + -e 's|@''GNULIB_FDOPENDIR''@|$(GNULIB_FDOPENDIR)|g' \ + -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \ + -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \ + -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ + -e 's|@''HAVE_FDOPENDIR''@|$(HAVE_FDOPENDIR)|g' \ + -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \ + -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \ + -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \ + -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \ + -e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/dirent.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <errno.h> when the system +# doesn't have one that is POSIX compliant. +errno.h: errno.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ + -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ + -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ + -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ + -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ + -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ + -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ + < $(srcdir)/errno.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <fcntl.h> when the system +# doesn't have one that works with the given compiler. +fcntl.h: fcntl.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ + -e 's|@''GNULIB_FCNTL''@|$(GNULIB_FCNTL)|g' \ + -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \ + -e 's|@''GNULIB_OPENAT''@|$(GNULIB_OPENAT)|g' \ + -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ + -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ + -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ + -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ + -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/fcntl.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <float.h> when the system +# doesn't have one that works with the given compiler. +float.h: float.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ + < $(srcdir)/float.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <fnmatch.h> when the system +# doesn't have one that supports the required API. +fnmatch.h: fnmatch.in.h $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + < $(srcdir)/fnmatch.in.h; \ + } > $@-t && \ + mv -f $@-t $@ + +# We need the following in order to create <getopt.h> when the system +# doesn't have one that works with the given compiler. +getopt.h: getopt.in.h $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + < $(srcdir)/getopt.in.h; \ + } > $@-t && \ + mv -f $@-t $@ + +# We need the following in order to create <inttypes.h> when the system +# doesn't have one that works with the given compiler. +inttypes.h: inttypes.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ + -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ + -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ + -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ + -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ + -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ + -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ + -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ + -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ + -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ + -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ + -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ + -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ + -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ + -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ + -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ + -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ + -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/inttypes.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create an empty placeholder for +# <langinfo.h> when the system doesn't have one. +langinfo.h: langinfo.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''HAVE_LANGINFO_H''@|$(HAVE_LANGINFO_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \ + -e 's|@''GNULIB_NL_LANGINFO''@|$(GNULIB_NL_LANGINFO)|g' \ + -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \ + -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \ + -e 's|@''HAVE_NL_LANGINFO''@|$(HAVE_NL_LANGINFO)|g' \ + -e 's|@''REPLACE_NL_LANGINFO''@|$(REPLACE_NL_LANGINFO)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/langinfo.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to install a simple file in $(libdir) +# which is shared with other installed packages. We use a list of referencing +# packages so that "make uninstall" will remove the file if and only if it +# is not used by another installed package. +# On systems with glibc-2.1 or newer, the file is redundant, therefore we +# avoid installing it. + +all-local: charset.alias ref-add.sed ref-del.sed +install-exec-local: install-exec-localcharset +install-exec-localcharset: all-local + if test $(GLIBC21) = no; then \ + case '$(host_os)' in \ + darwin[56]*) \ + need_charset_alias=true ;; \ + darwin* | cygwin* | mingw* | pw32* | cegcc*) \ + need_charset_alias=false ;; \ + *) \ + need_charset_alias=true ;; \ + esac ; \ + else \ + need_charset_alias=false ; \ + fi ; \ + if $$need_charset_alias; then \ + $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ + fi ; \ + if test -f $(charset_alias); then \ + sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + else \ + if $$need_charset_alias; then \ + sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ + rm -f $(charset_tmp) ; \ + fi ; \ + fi + +uninstall-local: uninstall-localcharset +uninstall-localcharset: all-local + if test -f $(charset_alias); then \ + sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ + if grep '^# Packages using this file: $$' $(charset_tmp) \ + > /dev/null; then \ + rm -f $(charset_alias); \ + else \ + $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ + fi; \ + rm -f $(charset_tmp); \ + fi + +charset.alias: config.charset + $(AM_V_GEN)rm -f t-$@ $@ && \ + $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ && \ + mv t-$@ $@ +.sin.sed: + $(AM_V_GEN)rm -f t-$@ $@ && \ + sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ && \ + mv t-$@ $@ + +# We need the following in order to create <stdarg.h> when the system +# doesn't have one that works with the given compiler. +stdarg.h: stdarg.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ + < $(srcdir)/stdarg.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <stdbool.h> when the system +# doesn't have one that works. +stdbool.h: stdbool.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <stddef.h> when the system +# doesn't have one that works with the given compiler. +stddef.h: stddef.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ + -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ + -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ + < $(srcdir)/stddef.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <stdint.h> when the system +# doesn't have one that works with the given compiler. +stdint.h: stdint.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ + -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ + -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ + -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ + -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ + -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ + -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ + -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ + -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ + -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ + -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ + -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ + -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ + -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ + -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ + -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ + -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ + -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ + < $(srcdir)/stdint.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <stdio.h> when the system +# doesn't have one that works with the given compiler. +stdio.h: stdio.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ + -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \ + -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \ + -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ + -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ + -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \ + -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_FPURGE''@|$(GNULIB_FPURGE)|g' \ + -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \ + -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \ + -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ + -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ + -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ + -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ + -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ + -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \ + -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ + -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ + -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \ + -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \ + -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \ + -e 's|@''GNULIB_POPEN''@|$(GNULIB_POPEN)|g' \ + -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \ + -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ + -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \ + -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \ + -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \ + -e 's|@''GNULIB_REMOVE''@|$(GNULIB_REMOVE)|g' \ + -e 's|@''GNULIB_RENAME''@|$(GNULIB_RENAME)|g' \ + -e 's|@''GNULIB_RENAMEAT''@|$(GNULIB_RENAMEAT)|g' \ + -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ + -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \ + -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ + -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \ + -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \ + -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \ + -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ + -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ + -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ + < $(srcdir)/stdio.in.h | \ + sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ + -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ + -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ + -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ + -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ + -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ + -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ + -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ + -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ + -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ + -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ + -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ + -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ + -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ + -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ + -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ + -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ + -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ + -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ + -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ + -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ + -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ + -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ + -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ + -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ + -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ + -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ + -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ + -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ + -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ + -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ + -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ + -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ + -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ + -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ + -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ + -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ + -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ + -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <stdlib.h> when the system +# doesn't have one that works with the given compiler. +stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ + -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \ + -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ + -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \ + -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \ + -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ + -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \ + -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \ + -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \ + -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \ + -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \ + -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \ + -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \ + -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ + -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \ + -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \ + -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \ + -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \ + -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \ + -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \ + -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \ + -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ + -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \ + -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ + -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ + -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \ + -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ + -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ + -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ + -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ + -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ + -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ + -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \ + -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ + -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ + -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \ + -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ + -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ + -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ + -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ + -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ + -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \ + -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ + -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ + -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ + -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ + -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ + -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ + -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/stdlib.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <string.h> when the system +# doesn't have one that works with the given compiler. +string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ + -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \ + -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \ + -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \ + -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \ + -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \ + -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \ + -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \ + -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \ + -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \ + -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \ + -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \ + -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \ + -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \ + -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \ + -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \ + -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \ + -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \ + -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \ + -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \ + -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \ + -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \ + -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \ + -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \ + -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \ + -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \ + -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \ + -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \ + -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \ + -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \ + -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \ + -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \ + -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \ + -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \ + < $(srcdir)/string.in.h | \ + sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ + -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ + -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ + -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ + -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ + -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ + -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ + -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ + -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ + -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ + -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ + -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ + -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ + -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ + -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \ + -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ + -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ + -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ + -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ + -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ + -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ + -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ + -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ + -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + < $(srcdir)/string.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <strings.h> when the system +# doesn't have one that works with the given compiler. +strings.h: strings.in.h $(WARN_ON_USE_H) $(ARG_NONNULL_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ + -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ + -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/strings.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <sys/stat.h> when the system +# has one that is incomplete. +sys/stat.h: sys_stat.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ + -e 's|@''GNULIB_FCHMODAT''@|$(GNULIB_FCHMODAT)|g' \ + -e 's|@''GNULIB_FSTATAT''@|$(GNULIB_FSTATAT)|g' \ + -e 's|@''GNULIB_FUTIMENS''@|$(GNULIB_FUTIMENS)|g' \ + -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \ + -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \ + -e 's|@''GNULIB_MKDIRAT''@|$(GNULIB_MKDIRAT)|g' \ + -e 's|@''GNULIB_MKFIFO''@|$(GNULIB_MKFIFO)|g' \ + -e 's|@''GNULIB_MKFIFOAT''@|$(GNULIB_MKFIFOAT)|g' \ + -e 's|@''GNULIB_MKNOD''@|$(GNULIB_MKNOD)|g' \ + -e 's|@''GNULIB_MKNODAT''@|$(GNULIB_MKNODAT)|g' \ + -e 's|@''GNULIB_STAT''@|$(GNULIB_STAT)|g' \ + -e 's|@''GNULIB_UTIMENSAT''@|$(GNULIB_UTIMENSAT)|g' \ + -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ + -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ + -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ + -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ + -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ + -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ + -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ + -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ + -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ + -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ + -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ + -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ + -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ + -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ + -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ + -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ + -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ + -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ + -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ + -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/sys_stat.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <sys/time.h> when the system +# doesn't have one that works with the given compiler. +sys/time.h: sys_time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_at)$(MKDIR_P) sys + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ + -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ + -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ + -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ + -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/sys_time.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <sysexits.h> when the system +# doesn't have one that works with the given compiler. +sysexits.h: sysexits.in.h + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \ + < $(srcdir)/sysexits.in.h; \ + } > $@-t && \ + mv -f $@-t $@ + +# We need the following in order to create <time.h> when the system +# doesn't have one that works with the given compiler. +time.h: time.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ + -e 's|@''GNULIB_MKTIME''@|$(GNULIB_MKTIME)|g' \ + -e 's|@''GNULIB_NANOSLEEP''@|$(GNULIB_NANOSLEEP)|g' \ + -e 's|@''GNULIB_STRPTIME''@|$(GNULIB_STRPTIME)|g' \ + -e 's|@''GNULIB_TIMEGM''@|$(GNULIB_TIMEGM)|g' \ + -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ + -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ + -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ + -e 's|@''REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \ + -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ + -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/time.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create an empty placeholder for +# <unistd.h> when the system doesn't have one. +unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ + -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \ + -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \ + -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \ + -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \ + -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \ + -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \ + -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \ + -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \ + -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \ + -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \ + -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \ + -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \ + -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \ + -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \ + -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \ + -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \ + -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \ + -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \ + -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \ + -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \ + -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \ + -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \ + -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \ + -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \ + -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \ + -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \ + -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ + -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \ + -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \ + -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ + -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \ + -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \ + -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \ + -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \ + -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \ + -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \ + -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \ + -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \ + < $(srcdir)/unistd.in.h | \ + sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ + -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ + -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ + -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ + -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ + -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ + -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ + -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ + -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \ + -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ + -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ + -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ + -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ + -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GETUSERSHELL''@|$(HAVE_GETUSERSHELL)|g' \ + -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ + -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ + -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ + -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ + -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ + -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ + -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ + -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ + -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ + -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ + -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ + -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ + -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ + -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ + -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ + -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ + -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ + -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ + -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ + -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ + -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \ + -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ + -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ + -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ + -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ + -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ + -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ + -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ + -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ + -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ + -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ + -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ + -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ + -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ + -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ + -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ + -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ + -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ + -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ + } > $@-t && \ + mv $@-t $@ +# The warn-on-use.h that gets inserted into generated .h files is the same as +# build-aux/warn-on-use.h, except that it has the copyright header cut off. +warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/^.ifndef/,$$p' \ + < $(top_srcdir)/build-aux/warn-on-use.h \ + > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <wchar.h> when the system +# version does not work standalone. +wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ + -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ + -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \ + -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \ + -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \ + -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \ + -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \ + -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \ + -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \ + -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \ + -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \ + -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \ + -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \ + -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ + -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ + -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ + -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ + -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ + -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ + -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ + -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ + -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ + -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ + -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ + -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ + -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ + -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ + -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ + -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ + -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ + -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ + -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ + -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ + -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ + -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ + -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ + -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/wchar.in.h; \ + } > $@-t && \ + mv $@-t $@ + +# We need the following in order to create <wctype.h> when the system +# doesn't have one that works with the given compiler. +wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) + $(AM_V_GEN)rm -f $@-t $@ && \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ + -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ + -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ + -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ + < $(srcdir)/wctype.in.h; \ + } > $@-t && \ + mv $@-t $@ + +mostlyclean-local: mostlyclean-generic + @for dir in '' $(MOSTLYCLEANDIRS); do \ + if test -n "$$dir" && test -d $$dir; then \ + echo "rmdir $$dir"; rmdir $$dir; \ + fi; \ + done; \ + : + +# 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. +.NOEXPORT: diff --git a/lib/alloca.c b/gnu/alloca.c similarity index 69% rename from lib/alloca.c rename to gnu/alloca.c index 0af84673355579d86736a1f0df2ea8f4e0ecd671..8d98020ea5ac08b15137998eed14acfbb89c7e37 100644 --- a/lib/alloca.c +++ b/gnu/alloca.c @@ -83,37 +83,37 @@ long i00afunc (); STACK_DIRECTION = 0 => direction of growth unknown */ # ifndef STACK_DIRECTION -# define STACK_DIRECTION 0 /* Direction unknown. */ +# define STACK_DIRECTION 0 /* Direction unknown. */ # endif # if STACK_DIRECTION != 0 -# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ +# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ # else /* STACK_DIRECTION == 0; need run-time code. */ -static int stack_dir; /* 1 or -1 once known. */ -# define STACK_DIR stack_dir +static int stack_dir; /* 1 or -1 once known. */ +# define STACK_DIR stack_dir static void find_stack_direction (void) { - static char *addr = NULL; /* Address of first `dummy', once known. */ - auto char dummy; /* To get stack address. */ + static char *addr = NULL; /* Address of first `dummy', once known. */ + auto char dummy; /* To get stack address. */ if (addr == NULL) - { /* Initial entry. */ + { /* Initial entry. */ addr = ADDRESS_FUNCTION (dummy); - find_stack_direction (); /* Recurse once. */ + find_stack_direction (); /* Recurse once. */ } else { /* Second entry. */ if (ADDRESS_FUNCTION (dummy) > addr) - stack_dir = 1; /* Stack grew upward. */ + stack_dir = 1; /* Stack grew upward. */ else - stack_dir = -1; /* Stack grew downward. */ + stack_dir = -1; /* Stack grew downward. */ } } @@ -126,21 +126,21 @@ find_stack_direction (void) It is very important that sizeof(header) agree with malloc alignment chunk size. The following default should work okay. */ -# ifndef ALIGN_SIZE -# define ALIGN_SIZE sizeof(double) +# ifndef ALIGN_SIZE +# define ALIGN_SIZE sizeof(double) # endif typedef union hdr { - char align[ALIGN_SIZE]; /* To force sizeof(header). */ + char align[ALIGN_SIZE]; /* To force sizeof(header). */ struct { - union hdr *next; /* For chaining headers. */ - char *deep; /* For stack depth measure. */ + union hdr *next; /* For chaining headers. */ + char *deep; /* For stack depth measure. */ } h; } header; -static header *last_alloca_header = NULL; /* -> last alloca header. */ +static header *last_alloca_header = NULL; /* -> last alloca header. */ /* Return a pointer to at least SIZE bytes of storage, which will be automatically reclaimed upon exit from @@ -152,11 +152,11 @@ static header *last_alloca_header = NULL; /* -> last alloca header. */ void * alloca (size_t size) { - auto char probe; /* Probes stack depth: */ + auto char probe; /* Probes stack depth: */ register char *depth = ADDRESS_FUNCTION (probe); # if STACK_DIRECTION == 0 - if (STACK_DIR == 0) /* Unknown growth direction. */ + if (STACK_DIR == 0) /* Unknown growth direction. */ find_stack_direction (); # endif @@ -164,7 +164,7 @@ alloca (size_t size) was allocated from deeper in the stack than currently. */ { - register header *hp; /* Traverses linked list. */ + register header *hp; /* Traverses linked list. */ # ifdef emacs BLOCK_INPUT; @@ -172,18 +172,18 @@ alloca (size_t size) for (hp = last_alloca_header; hp != NULL;) if ((STACK_DIR > 0 && hp->h.deep > depth) - || (STACK_DIR < 0 && hp->h.deep < depth)) - { - register header *np = hp->h.next; + || (STACK_DIR < 0 && hp->h.deep < depth)) + { + register header *np = hp->h.next; - free (hp); /* Collect garbage. */ + free (hp); /* Collect garbage. */ - hp = np; /* -> next header. */ - } + hp = np; /* -> next header. */ + } else - break; /* Rest are not deeper. */ + break; /* Rest are not deeper. */ - last_alloca_header = hp; /* -> last valid storage. */ + last_alloca_header = hp; /* -> last valid storage. */ # ifdef emacs UNBLOCK_INPUT; @@ -191,7 +191,7 @@ alloca (size_t size) } if (size == 0) - return NULL; /* No allocation required. */ + return NULL; /* No allocation required. */ /* Allocate combined header + user data storage. */ @@ -231,10 +231,10 @@ alloca (size_t size) /* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ struct stack_control_header { - long shgrow:32; /* Number of times stack has grown. */ - long shaseg:32; /* Size of increments to stack. */ - long shhwm:32; /* High water mark of stack. */ - long shsize:32; /* Current size of stack (all segments). */ + long shgrow:32; /* Number of times stack has grown. */ + long shaseg:32; /* Size of increments to stack. */ + long shhwm:32; /* High water mark of stack. */ + long shsize:32; /* Current size of stack (all segments). */ }; /* The stack segment linkage control information occurs at @@ -246,21 +246,21 @@ struct stack_control_header struct stack_segment_linkage { - long ss[0200]; /* 0200 overflow words. */ - long sssize:32; /* Number of words in this segment. */ - long ssbase:32; /* Offset to stack base. */ + long ss[0200]; /* 0200 overflow words. */ + long sssize:32; /* Number of words in this segment. */ + long ssbase:32; /* Offset to stack base. */ long:32; - long sspseg:32; /* Offset to linkage control of previous - segment of stack. */ + long sspseg:32; /* Offset to linkage control of previous + segment of stack. */ long:32; - long sstcpt:32; /* Pointer to task common address block. */ - long sscsnm; /* Private control structure number for - microtasking. */ - long ssusr1; /* Reserved for user. */ - long ssusr2; /* Reserved for user. */ - long sstpid; /* Process ID for pid based multi-tasking. */ - long ssgvup; /* Pointer to multitasking thread giveup. */ - long sscray[7]; /* Reserved for Cray Research. */ + long sstcpt:32; /* Pointer to task common address block. */ + long sscsnm; /* Private control structure number for + microtasking. */ + long ssusr1; /* Reserved for user. */ + long ssusr2; /* Reserved for user. */ + long sstpid; /* Process ID for pid based multi-tasking. */ + long ssgvup; /* Pointer to multitasking thread giveup. */ + long sscray[7]; /* Reserved for Cray Research. */ long ssa0; long ssa1; long ssa2; @@ -284,27 +284,27 @@ struct stack_segment_linkage returned by the STKSTAT library routine. */ struct stk_stat { - long now; /* Current total stack size. */ - long maxc; /* Amount of contiguous space which would - be required to satisfy the maximum - stack demand to date. */ - long high_water; /* Stack high-water mark. */ - long overflows; /* Number of stack overflow ($STKOFEN) calls. */ - long hits; /* Number of internal buffer hits. */ - long extends; /* Number of block extensions. */ - long stko_mallocs; /* Block allocations by $STKOFEN. */ - long underflows; /* Number of stack underflow calls ($STKRETN). */ - long stko_free; /* Number of deallocations by $STKRETN. */ - long stkm_free; /* Number of deallocations by $STKMRET. */ - long segments; /* Current number of stack segments. */ - long maxs; /* Maximum number of stack segments so far. */ - long pad_size; /* Stack pad size. */ - long current_address; /* Current stack segment address. */ - long current_size; /* Current stack segment size. This - number is actually corrupted by STKSTAT to - include the fifteen word trailer area. */ - long initial_address; /* Address of initial segment. */ - long initial_size; /* Size of initial segment. */ + long now; /* Current total stack size. */ + long maxc; /* Amount of contiguous space which would + be required to satisfy the maximum + stack demand to date. */ + long high_water; /* Stack high-water mark. */ + long overflows; /* Number of stack overflow ($STKOFEN) calls. */ + long hits; /* Number of internal buffer hits. */ + long extends; /* Number of block extensions. */ + long stko_mallocs; /* Block allocations by $STKOFEN. */ + long underflows; /* Number of stack underflow calls ($STKRETN). */ + long stko_free; /* Number of deallocations by $STKRETN. */ + long stkm_free; /* Number of deallocations by $STKMRET. */ + long segments; /* Current number of stack segments. */ + long maxs; /* Maximum number of stack segments so far. */ + long pad_size; /* Stack pad size. */ + long current_address; /* Current stack segment address. */ + long current_size; /* Current stack segment size. This + number is actually corrupted by STKSTAT to + include the fifteen word trailer area. */ + long initial_address; /* Address of initial segment. */ + long initial_size; /* Size of initial segment. */ }; /* The following structure describes the data structure which trails @@ -313,13 +313,13 @@ struct stk_stat struct stk_trailer { - long this_address; /* Address of this block. */ - long this_size; /* Size of this block (does not include - this trailer). */ + long this_address; /* Address of this block. */ + long this_size; /* Size of this block (does not include + this trailer). */ long unknown2; long unknown3; - long link; /* Address of trailer block of previous - segment. */ + long link; /* Address of trailer block of previous + segment. */ long unknown5; long unknown6; long unknown7; @@ -357,8 +357,8 @@ i00afunc (long *address) /* Set up the iteration. */ trailer = (struct stk_trailer *) (status.current_address - + status.current_size - - 15); + + status.current_size + - 15); /* There must be at least one stack segment. Therefore it is a fatal error if "trailer" is null. */ @@ -373,10 +373,10 @@ i00afunc (long *address) block = (long *) trailer->this_address; size = trailer->this_size; if (block == 0 || size == 0) - abort (); + abort (); trailer = (struct stk_trailer *) trailer->link; if ((block <= address) && (address < (block + size))) - break; + break; } /* Set the result to the offset in this segment and add the sizes @@ -392,7 +392,7 @@ i00afunc (long *address) do { if (trailer->this_size <= 0) - abort (); + abort (); result += trailer->this_size; trailer = (struct stk_trailer *) trailer->link; } @@ -455,7 +455,7 @@ i00afunc (long address) fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); # endif if (pseg == 0) - break; + break; stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; diff --git a/lib/alloca.in.h b/gnu/alloca.in.h similarity index 95% rename from lib/alloca.in.h rename to gnu/alloca.in.h index c65b4de95d3fb5598616242bb920020187b7fab5..34f8fe5ef221e31e13e43eedd8029905f919c624 100644 --- a/lib/alloca.in.h +++ b/gnu/alloca.in.h @@ -2,8 +2,8 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001-2004, 2006-2008 Free Software - Foundation, Inc. + Copyright (C) 1995, 1999, 2001-2004, 2006-2010 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 diff --git a/gnu/areadlink-with-size.c b/gnu/areadlink-with-size.c new file mode 100644 index 0000000000000000000000000000000000000000..8370184cd533b8c3512b5f11ee7c9c1e6a6def78 --- /dev/null +++ b/gnu/areadlink-with-size.c @@ -0,0 +1,106 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* readlink wrapper to return the link name in malloc'd storage. + Unlike xreadlink and xreadlink_with_size, don't ever call exit. + + Copyright (C) 2001, 2003-2007, 2009-2010 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 Jim Meyering <jim@meyering.net> */ + +#include <config.h> + +#include "areadlink.h" + +#include <errno.h> +#include <limits.h> +#include <stdint.h> +#include <stdlib.h> +#include <unistd.h> + +#ifndef SSIZE_MAX +# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) +#endif + +/* SYMLINK_MAX is used only for an initial memory-allocation sanity + check, so it's OK to guess too small on hosts where there is no + arbitrary limit to symbolic link length. */ +#ifndef SYMLINK_MAX +# define SYMLINK_MAX 1024 +#endif + +#define MAXSIZE (SIZE_MAX < SSIZE_MAX ? SIZE_MAX : SSIZE_MAX) + +/* Call readlink to get the symbolic link value of FILE. + SIZE is a hint as to how long the link is expected to be; + typically it is taken from st_size. It need not be correct. + Return a pointer to that NUL-terminated string in malloc'd storage. + If readlink fails, malloc fails, or if the link value is longer + than SSIZE_MAX, return NULL (caller may use errno to diagnose). */ + +char * +areadlink_with_size (char const *file, size_t size) +{ + /* Some buggy file systems report garbage in st_size. Defend + against them by ignoring outlandish st_size values in the initial + memory allocation. */ + size_t symlink_max = SYMLINK_MAX; + size_t INITIAL_LIMIT_BOUND = 8 * 1024; + size_t initial_limit = (symlink_max < INITIAL_LIMIT_BOUND + ? symlink_max + 1 + : INITIAL_LIMIT_BOUND); + + /* The initial buffer size for the link value. */ + size_t buf_size = size < initial_limit ? size + 1 : initial_limit; + + while (1) + { + ssize_t r; + size_t link_length; + char *buffer = malloc (buf_size); + + if (buffer == NULL) + return NULL; + r = readlink (file, buffer, buf_size); + link_length = r; + + /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1 + with errno == ERANGE if the buffer is too small. */ + if (r < 0 && errno != ERANGE) + { + int saved_errno = errno; + free (buffer); + errno = saved_errno; + return NULL; + } + + if (link_length < buf_size) + { + buffer[link_length] = 0; + return buffer; + } + + free (buffer); + if (buf_size <= MAXSIZE / 2) + buf_size *= 2; + else if (buf_size < MAXSIZE) + buf_size = MAXSIZE; + else + { + errno = ENOMEM; + return NULL; + } + } +} diff --git a/gnu/areadlink.h b/gnu/areadlink.h new file mode 100644 index 0000000000000000000000000000000000000000..d17b4c3155dbc744165137e2dc81d8ac7cffb23d --- /dev/null +++ b/gnu/areadlink.h @@ -0,0 +1,35 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Read symbolic links without size limitation. + + Copyright (C) 2001, 2003-2004, 2007, 2009-2010 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 Jim Meyering <jim@meyering.net> */ + +#include <stddef.h> + +extern char *areadlink (char const *filename); +extern char *areadlink_with_size (char const *filename, size_t size_hint); + +#if GNULIB_AREADLINKAT +extern char *areadlinkat (int fd, char const *filename); +#endif + +#if GNULIB_AREADLINKAT_WITH_SIZE +extern char *areadlinkat_with_size (int fd, char const *filename, + size_t size_hint); +#endif diff --git a/lib/argmatch.c b/gnu/argmatch.c similarity index 74% rename from lib/argmatch.c rename to gnu/argmatch.c index 925449bfd4f3bb4c79216ca85326ecd27bcd0faf..5a176f84f62ececc6f47a8d895f882746fe5eb74 100644 --- a/lib/argmatch.c +++ b/gnu/argmatch.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* argmatch.c -- find a match for a string in an array - Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007 - Free Software Foundation, Inc. + Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, + 2009, 2010 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 @@ -81,12 +83,12 @@ argmatch_exit_fn argmatch_die = __argmatch_die; ptrdiff_t argmatch (const char *arg, const char *const *arglist, - const char *vallist, size_t valsize) + const char *vallist, size_t valsize) { - size_t i; /* Temporary index in ARGLIST. */ - size_t arglen; /* Length of ARG. */ - ptrdiff_t matchind = -1; /* Index of first nonexact match. */ - bool ambiguous = false; /* If true, multiple nonexact match(es). */ + size_t i; /* Temporary index in ARGLIST. */ + size_t arglen; /* Length of ARG. */ + ptrdiff_t matchind = -1; /* Index of first nonexact match. */ + bool ambiguous = false; /* If true, multiple nonexact match(es). */ arglen = strlen (arg); @@ -94,26 +96,26 @@ argmatch (const char *arg, const char *const *arglist, for (i = 0; arglist[i]; i++) { if (!strncmp (arglist[i], arg, arglen)) - { - if (strlen (arglist[i]) == arglen) - /* Exact match found. */ - return i; - else if (matchind == -1) - /* First nonexact match found. */ - matchind = i; - else - { - /* Second nonexact match found. */ - if (vallist == NULL - || memcmp (vallist + valsize * matchind, - vallist + valsize * i, valsize)) - { - /* There is a real ambiguity, or we could not - disambiguate. */ - ambiguous = true; - } - } - } + { + if (strlen (arglist[i]) == arglen) + /* Exact match found. */ + return i; + else if (matchind == -1) + /* First nonexact match found. */ + matchind = i; + else + { + /* Second nonexact match found. */ + if (vallist == NULL + || memcmp (vallist + valsize * matchind, + vallist + valsize * i, valsize)) + { + /* There is a real ambiguity, or we could not + disambiguate. */ + ambiguous = true; + } + } + } } if (ambiguous) return -2; @@ -130,11 +132,11 @@ void argmatch_invalid (const char *context, const char *value, ptrdiff_t problem) { char const *format = (problem == -1 - ? _("invalid argument %s for %s") - : _("ambiguous argument %s for %s")); + ? _("invalid argument %s for %s") + : _("ambiguous argument %s for %s")); error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value), - quote_n (1, context)); + quote_n (1, context)); } /* List the valid arguments for argmatch. @@ -143,7 +145,7 @@ argmatch_invalid (const char *context, const char *value, ptrdiff_t problem) VALSIZE is the size of the elements of VALLIST */ void argmatch_valid (const char *const *arglist, - const char *vallist, size_t valsize) + const char *vallist, size_t valsize) { size_t i; const char *last_val = NULL; @@ -153,14 +155,14 @@ argmatch_valid (const char *const *arglist, fprintf (stderr, _("Valid arguments are:")); for (i = 0; arglist[i]; i++) if ((i == 0) - || memcmp (last_val, vallist + valsize * i, valsize)) + || memcmp (last_val, vallist + valsize * i, valsize)) { - fprintf (stderr, "\n - `%s'", arglist[i]); - last_val = vallist + valsize * i; + fprintf (stderr, "\n - `%s'", arglist[i]); + last_val = vallist + valsize * i; } else { - fprintf (stderr, ", `%s'", arglist[i]); + fprintf (stderr, ", `%s'", arglist[i]); } putc ('\n', stderr); } @@ -173,9 +175,9 @@ argmatch_valid (const char *const *arglist, ptrdiff_t __xargmatch_internal (const char *context, - const char *arg, const char *const *arglist, - const char *vallist, size_t valsize, - argmatch_exit_fn exit_fn) + const char *arg, const char *const *arglist, + const char *vallist, size_t valsize, + argmatch_exit_fn exit_fn) { ptrdiff_t res = argmatch (arg, arglist, vallist, valsize); if (res >= 0) @@ -194,8 +196,8 @@ __xargmatch_internal (const char *context, return the first corresponding argument in ARGLIST */ const char * argmatch_to_argument (const char *value, - const char *const *arglist, - const char *vallist, size_t valsize) + const char *const *arglist, + const char *vallist, size_t valsize) { size_t i; @@ -263,14 +265,14 @@ main (int argc, const char *const *argv) if ((cp = getenv ("VERSION_CONTROL"))) backup_type = XARGMATCH ("$VERSION_CONTROL", cp, - backup_args, backup_vals); + backup_args, backup_vals); if (argc == 2) backup_type = XARGMATCH (program_name, argv[1], - backup_args, backup_vals); + backup_args, backup_vals); printf ("The version control is `%s'\n", - ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals)); + ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals)); return 0; } diff --git a/lib/argmatch.h b/gnu/argmatch.h similarity index 69% rename from lib/argmatch.h rename to gnu/argmatch.h index cc403145acf13457d64bc5663cc42616b5c8e040..15eb04d8a2a6ac6bd7be5653561c0748838b0481 100644 --- a/lib/argmatch.h +++ b/gnu/argmatch.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* argmatch.h -- definitions and prototypes for argmatch.c - Copyright (C) 1990, 1998, 1999, 2001, 2002, 2004, 2005 Free Software - Foundation, Inc. + Copyright (C) 1990, 1998, 1999, 2001, 2002, 2004, 2005, 2009, 2010 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 @@ -40,7 +42,7 @@ to the same values in VALLIST). */ ptrdiff_t argmatch (char const *arg, char const *const *arglist, - char const *vallist, size_t valsize); + char const *vallist, size_t valsize); # define ARGMATCH(Arg, Arglist, Vallist) \ argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist)) @@ -54,7 +56,7 @@ extern argmatch_exit_fn argmatch_die; /* Report on stderr why argmatch failed. Report correct values. */ void argmatch_invalid (char const *context, char const *value, - ptrdiff_t problem); + ptrdiff_t problem); /* Left for compatibility with the old name invalid_arg */ @@ -66,7 +68,7 @@ void argmatch_invalid (char const *context, char const *value, /* Report on stderr the list of possible arguments. */ void argmatch_valid (char const *const *arglist, - char const *vallist, size_t valsize); + char const *vallist, size_t valsize); # define ARGMATCH_VALID(Arglist, Vallist) \ argmatch_valid (Arglist, (char const *) (Vallist), sizeof *(Vallist)) @@ -77,26 +79,26 @@ void argmatch_valid (char const *const *arglist, failure, and exits using the function EXIT_FN. */ ptrdiff_t __xargmatch_internal (char const *context, - char const *arg, char const *const *arglist, - char const *vallist, size_t valsize, - argmatch_exit_fn exit_fn); + char const *arg, char const *const *arglist, + char const *vallist, size_t valsize, + argmatch_exit_fn exit_fn); /* Programmer friendly interface to __xargmatch_internal. */ -# define XARGMATCH(Context, Arg, Arglist, Vallist) \ - ((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \ - (char const *) (Vallist), \ - sizeof *(Vallist), \ - argmatch_die)]) +# define XARGMATCH(Context, Arg, Arglist, Vallist) \ + ((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \ + (char const *) (Vallist), \ + sizeof *(Vallist), \ + argmatch_die)]) /* Convert a value into a corresponding argument. */ char const *argmatch_to_argument (char const *value, - char const *const *arglist, - char const *vallist, size_t valsize); + char const *const *arglist, + char const *vallist, size_t valsize); -# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \ - argmatch_to_argument (Value, Arglist, \ - (char const *) (Vallist), sizeof *(Vallist)) +# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \ + argmatch_to_argument (Value, Arglist, \ + (char const *) (Vallist), sizeof *(Vallist)) #endif /* ARGMATCH_H_ */ diff --git a/lib/argp-ba.c b/gnu/argp-ba.c similarity index 64% rename from lib/argp-ba.c rename to gnu/argp-ba.c index 3e8bb962201d1d8efc3565bf76c81efdc2011f0e..d8ae7dd576e74ac9f87caaa15ad25aedf07af130 100644 --- a/lib/argp-ba.c +++ b/gnu/argp-ba.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Default definition for ARGP_PROGRAM_BUG_ADDRESS. - Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -21,4 +23,14 @@ the ARGP_HELP_BUG_ADDR flag is set (as it is by various standard help messages), embedded in a sentence that says something like `Report bugs to ADDR.'. */ -const char *argp_program_bug_address; +const char *argp_program_bug_address +/* This variable should be zero-initialized. On most systems, putting it into + BSS is sufficient. Not so on MacOS X 10.3 and 10.4, see + <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html> + <http://lists.gnu.org/archive/html/bug-gnulib/2009-08/msg00096.html>. */ +#if defined __ELF__ + /* On ELF systems, variables in BSS behave well. */ +#else + = (const char *) 0 +#endif + ; diff --git a/lib/argp-eexst.c b/gnu/argp-eexst.c similarity index 87% rename from lib/argp-eexst.c rename to gnu/argp-eexst.c index 0a81c2791de7feefbdecb019f954a1d5769da432..cf809aa7518a18739ebc25032d689559934abce5 100644 --- a/lib/argp-eexst.c +++ b/gnu/argp-eexst.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Default definition for ARGP_ERR_EXIT_STATUS - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-fmtstream.c b/gnu/argp-fmtstream.c new file mode 100644 index 0000000000000000000000000000000000000000..1cda30794085eba6f58df61650ea9a2ef00df177 --- /dev/null +++ b/gnu/argp-fmtstream.c @@ -0,0 +1,437 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Word-wrapping and line-truncating streams + Copyright (C) 1997-1999, 2001-2003, 2005, 2009-2010 Free Software + Foundation, Inc. + This file is part of the GNU C Library. + Written by Miles Bader <miles@gnu.ai.mit.edu>. + + 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/>. */ + +/* This package emulates glibc `line_wrap_stream' semantics for systems that + don't have that. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include <stdarg.h> +#include <ctype.h> + +#include "argp-fmtstream.h" +#include "argp-namefrob.h" + +#ifndef ARGP_FMTSTREAM_USE_LINEWRAP + +#ifndef isblank +#define isblank(ch) ((ch)==' ' || (ch)=='\t') +#endif + +#if defined _LIBC && defined USE_IN_LIBIO +# include <wchar.h> +# include <libio/libioP.h> +# define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a) +#endif + +#define INIT_BUF_SIZE 200 +#define PRINTF_SIZE_GUESS 150 + +/* Return an argp_fmtstream that outputs to STREAM, and which prefixes lines + written on it with LMARGIN spaces and limits them to RMARGIN columns + total. If WMARGIN >= 0, words that extend past RMARGIN are wrapped by + replacing the whitespace before them with a newline and WMARGIN spaces. + Otherwise, chars beyond RMARGIN are simply dropped until a newline. + Returns NULL if there was an error. */ +argp_fmtstream_t +__argp_make_fmtstream (FILE *stream, + size_t lmargin, size_t rmargin, ssize_t wmargin) +{ + argp_fmtstream_t fs; + + fs = (struct argp_fmtstream *) malloc (sizeof (struct argp_fmtstream)); + if (fs != NULL) + { + fs->stream = stream; + + fs->lmargin = lmargin; + fs->rmargin = rmargin; + fs->wmargin = wmargin; + fs->point_col = 0; + fs->point_offs = 0; + + fs->buf = (char *) malloc (INIT_BUF_SIZE); + if (! fs->buf) + { + free (fs); + fs = 0; + } + else + { + fs->p = fs->buf; + fs->end = fs->buf + INIT_BUF_SIZE; + } + } + + return fs; +} +#if 0 +/* Not exported. */ +#ifdef weak_alias +weak_alias (__argp_make_fmtstream, argp_make_fmtstream) +#endif +#endif + +/* Flush FS to its stream, and free it (but don't close the stream). */ +void +__argp_fmtstream_free (argp_fmtstream_t fs) +{ + __argp_fmtstream_update (fs); + if (fs->p > fs->buf) + { +#ifdef USE_IN_LIBIO + __fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf); +#else + fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream); +#endif + } + free (fs->buf); + free (fs); +} +#if 0 +/* Not exported. */ +#ifdef weak_alias +weak_alias (__argp_fmtstream_free, argp_fmtstream_free) +#endif +#endif + +/* Process FS's buffer so that line wrapping is done from POINT_OFFS to the + end of its buffer. This code is mostly from glibc stdio/linewrap.c. */ +void +__argp_fmtstream_update (argp_fmtstream_t fs) +{ + char *buf, *nl; + size_t len; + + /* Scan the buffer for newlines. */ + buf = fs->buf + fs->point_offs; + while (buf < fs->p) + { + size_t r; + + if (fs->point_col == 0 && fs->lmargin != 0) + { + /* We are starting a new line. Print spaces to the left margin. */ + const size_t pad = fs->lmargin; + if (fs->p + pad < fs->end) + { + /* We can fit in them in the buffer by moving the + buffer text up and filling in the beginning. */ + memmove (buf + pad, buf, fs->p - buf); + fs->p += pad; /* Compensate for bigger buffer. */ + memset (buf, ' ', pad); /* Fill in the spaces. */ + buf += pad; /* Don't bother searching them. */ + } + else + { + /* No buffer space for spaces. Must flush. */ + size_t i; + for (i = 0; i < pad; i++) + { +#ifdef USE_IN_LIBIO + if (_IO_fwide (fs->stream, 0) > 0) + putwc_unlocked (L' ', fs->stream); + else +#endif + putc_unlocked (' ', fs->stream); + } + } + fs->point_col = pad; + } + + len = fs->p - buf; + nl = memchr (buf, '\n', len); + + if (fs->point_col < 0) + fs->point_col = 0; + + if (!nl) + { + /* The buffer ends in a partial line. */ + + if (fs->point_col + len < fs->rmargin) + { + /* The remaining buffer text is a partial line and fits + within the maximum line width. Advance point for the + characters to be written and stop scanning. */ + fs->point_col += len; + break; + } + else + /* Set the end-of-line pointer for the code below to + the end of the buffer. */ + nl = fs->p; + } + else if (fs->point_col + (nl - buf) < (ssize_t) fs->rmargin) + { + /* The buffer contains a full line that fits within the maximum + line width. Reset point and scan the next line. */ + fs->point_col = 0; + buf = nl + 1; + continue; + } + + /* This line is too long. */ + r = fs->rmargin - 1; + + if (fs->wmargin < 0) + { + /* Truncate the line by overwriting the excess with the + newline and anything after it in the buffer. */ + if (nl < fs->p) + { + memmove (buf + (r - fs->point_col), nl, fs->p - nl); + fs->p -= buf + (r - fs->point_col) - nl; + /* Reset point for the next line and start scanning it. */ + fs->point_col = 0; + buf += r + 1; /* Skip full line plus \n. */ + } + else + { + /* The buffer ends with a partial line that is beyond the + maximum line width. Advance point for the characters + written, and discard those past the max from the buffer. */ + fs->point_col += len; + fs->p -= fs->point_col - r; + break; + } + } + else + { + /* Do word wrap. Go to the column just past the maximum line + width and scan back for the beginning of the word there. + Then insert a line break. */ + + char *p, *nextline; + int i; + + p = buf + (r + 1 - fs->point_col); + while (p >= buf && !isblank ((unsigned char) *p)) + --p; + nextline = p + 1; /* This will begin the next line. */ + + if (nextline > buf) + { + /* Swallow separating blanks. */ + if (p >= buf) + do + --p; + while (p >= buf && isblank ((unsigned char) *p)); + nl = p + 1; /* The newline will replace the first blank. */ + } + else + { + /* A single word that is greater than the maximum line width. + Oh well. Put it on an overlong line by itself. */ + p = buf + (r + 1 - fs->point_col); + /* Find the end of the long word. */ + if (p < nl) + do + ++p; + while (p < nl && !isblank ((unsigned char) *p)); + if (p == nl) + { + /* It already ends a line. No fussing required. */ + fs->point_col = 0; + buf = nl + 1; + continue; + } + /* We will move the newline to replace the first blank. */ + nl = p; + /* Swallow separating blanks. */ + do + ++p; + while (isblank ((unsigned char) *p)); + /* The next line will start here. */ + nextline = p; + } + + /* Note: There are a bunch of tests below for + NEXTLINE == BUF + LEN + 1; this case is where NL happens to fall + at the end of the buffer, and NEXTLINE is in fact empty (and so + we need not be careful to maintain its contents). */ + + if ((nextline == buf + len + 1 + ? fs->end - nl < fs->wmargin + 1 + : nextline - (nl + 1) < fs->wmargin) + && fs->p > nextline) + { + /* The margin needs more blanks than we removed. */ + if (fs->end - fs->p > fs->wmargin + 1) + /* Make some space for them. */ + { + size_t mv = fs->p - nextline; + memmove (nl + 1 + fs->wmargin, nextline, mv); + nextline = nl + 1 + fs->wmargin; + len = nextline + mv - buf; + *nl++ = '\n'; + } + else + /* Output the first line so we can use the space. */ + { +#ifdef _LIBC + __fxprintf (fs->stream, "%.*s\n", + (int) (nl - fs->buf), fs->buf); +#else + if (nl > fs->buf) + fwrite_unlocked (fs->buf, 1, nl - fs->buf, fs->stream); + putc_unlocked ('\n', fs->stream); +#endif + + len += buf - fs->buf; + nl = buf = fs->buf; + } + } + else + /* We can fit the newline and blanks in before + the next word. */ + *nl++ = '\n'; + + if (nextline - nl >= fs->wmargin + || (nextline == buf + len + 1 && fs->end - nextline >= fs->wmargin)) + /* Add blanks up to the wrap margin column. */ + for (i = 0; i < fs->wmargin; ++i) + *nl++ = ' '; + else + for (i = 0; i < fs->wmargin; ++i) +#ifdef USE_IN_LIBIO + if (_IO_fwide (fs->stream, 0) > 0) + putwc_unlocked (L' ', fs->stream); + else +#endif + putc_unlocked (' ', fs->stream); + + /* Copy the tail of the original buffer into the current buffer + position. */ + if (nl < nextline) + memmove (nl, nextline, buf + len - nextline); + len -= nextline - buf; + + /* Continue the scan on the remaining lines in the buffer. */ + buf = nl; + + /* Restore bufp to include all the remaining text. */ + fs->p = nl + len; + + /* Reset the counter of what has been output this line. If wmargin + is 0, we want to avoid the lmargin getting added, so we set + point_col to a magic value of -1 in that case. */ + fs->point_col = fs->wmargin ? fs->wmargin : -1; + } + } + + /* Remember that we've scanned as far as the end of the buffer. */ + fs->point_offs = fs->p - fs->buf; +} + +/* Ensure that FS has space for AMOUNT more bytes in its buffer, either by + growing the buffer, or by flushing it. True is returned iff we succeed. */ +int +__argp_fmtstream_ensure (struct argp_fmtstream *fs, size_t amount) +{ + if ((size_t) (fs->end - fs->p) < amount) + { + ssize_t wrote; + + /* Flush FS's buffer. */ + __argp_fmtstream_update (fs); + +#ifdef _LIBC + __fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf); + wrote = fs->p - fs->buf; +#else + wrote = fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream); +#endif + if (wrote == fs->p - fs->buf) + { + fs->p = fs->buf; + fs->point_offs = 0; + } + else + { + fs->p -= wrote; + fs->point_offs -= wrote; + memmove (fs->buf, fs->buf + wrote, fs->p - fs->buf); + return 0; + } + + if ((size_t) (fs->end - fs->buf) < amount) + /* Gotta grow the buffer. */ + { + size_t old_size = fs->end - fs->buf; + size_t new_size = old_size + amount; + char *new_buf; + + if (new_size < old_size || ! (new_buf = realloc (fs->buf, new_size))) + { + __set_errno (ENOMEM); + return 0; + } + + fs->buf = new_buf; + fs->end = new_buf + new_size; + fs->p = fs->buf; + } + } + + return 1; +} + +ssize_t +__argp_fmtstream_printf (struct argp_fmtstream *fs, const char *fmt, ...) +{ + int out; + size_t avail; + size_t size_guess = PRINTF_SIZE_GUESS; /* How much space to reserve. */ + + do + { + va_list args; + + if (! __argp_fmtstream_ensure (fs, size_guess)) + return -1; + + va_start (args, fmt); + avail = fs->end - fs->p; + out = __vsnprintf (fs->p, avail, fmt, args); + va_end (args); + if ((size_t) out >= avail) + size_guess = out + 1; + } + while ((size_t) out >= avail); + + fs->p += out; + + return out; +} +#if 0 +/* Not exported. */ +#ifdef weak_alias +weak_alias (__argp_fmtstream_printf, argp_fmtstream_printf) +#endif +#endif + +#endif /* !ARGP_FMTSTREAM_USE_LINEWRAP */ diff --git a/lib/argp-fmtstream.h b/gnu/argp-fmtstream.h similarity index 85% rename from lib/argp-fmtstream.h rename to gnu/argp-fmtstream.h index 73157e0c5623ba6aee08e0c0853928a3d52b2f99..f50f4e73c3bb6eea6235e4e97c172832b2e89596 100644 --- a/lib/argp-fmtstream.h +++ b/gnu/argp-fmtstream.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Word-wrapping and line-truncating streams. - Copyright (C) 1997, 2006-2008 Free Software Foundation, Inc. + Copyright (C) 1997, 2006-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -29,15 +31,14 @@ #include <unistd.h> #ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || __STRICT_ANSI__ -# define __format__ format -# define __printf__ printf +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable __attribute__ only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +# define __attribute__(Spec) /* empty */ # endif #endif @@ -91,19 +92,19 @@ typedef FILE *argp_fmtstream_t; struct argp_fmtstream { - FILE *stream; /* The stream we're outputting to. */ + FILE *stream; /* The stream we're outputting to. */ - size_t lmargin, rmargin; /* Left and right margins. */ - ssize_t wmargin; /* Margin to wrap to, or -1 to truncate. */ + size_t lmargin, rmargin; /* Left and right margins. */ + ssize_t wmargin; /* Margin to wrap to, or -1 to truncate. */ /* Point in buffer to which we've processed for wrapping, but not output. */ size_t point_offs; /* Output column at POINT_OFFS, or -1 meaning 0 but don't add lmargin. */ ssize_t point_col; - char *buf; /* Output buffer. */ - char *p; /* Current end of text in BUF. */ - char *end; /* Absolute end of BUF. */ + char *buf; /* Output buffer. */ + char *p; /* Current end of text in BUF. */ + char *end; /* Absolute end of BUF. */ }; typedef struct argp_fmtstream *argp_fmtstream_t; @@ -115,23 +116,23 @@ typedef struct argp_fmtstream *argp_fmtstream_t; Otherwise, chars beyond RMARGIN are simply dropped until a newline. Returns NULL if there was an error. */ extern argp_fmtstream_t __argp_make_fmtstream (FILE *__stream, - size_t __lmargin, - size_t __rmargin, - ssize_t __wmargin); + size_t __lmargin, + size_t __rmargin, + ssize_t __wmargin); extern argp_fmtstream_t argp_make_fmtstream (FILE *__stream, - size_t __lmargin, - size_t __rmargin, - ssize_t __wmargin); + size_t __lmargin, + size_t __rmargin, + ssize_t __wmargin); /* Flush __FS to its stream, and free it (but don't close the stream). */ extern void __argp_fmtstream_free (argp_fmtstream_t __fs); extern void argp_fmtstream_free (argp_fmtstream_t __fs); extern ssize_t __argp_fmtstream_printf (argp_fmtstream_t __fs, - const char *__fmt, ...) + const char *__fmt, ...) __attribute__ ((__format__ (printf, 2, 3))); extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs, - const char *__fmt, ...) + const char *__fmt, ...) __attribute__ ((__format__ (printf, 2, 3))); #if _LIBC || !defined __OPTIMIZE__ @@ -142,9 +143,9 @@ extern int __argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str); extern int argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str); extern size_t __argp_fmtstream_write (argp_fmtstream_t __fs, - const char *__str, size_t __len); + const char *__str, size_t __len); extern size_t argp_fmtstream_write (argp_fmtstream_t __fs, - const char *__str, size_t __len); + const char *__str, size_t __len); #endif /* Access macros for various bits of state. */ @@ -158,21 +159,21 @@ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs, #if _LIBC || !defined __OPTIMIZE__ /* Set __FS's left margin to LMARGIN and return the old value. */ extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, - size_t __lmargin); + size_t __lmargin); extern size_t __argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, - size_t __lmargin); + size_t __lmargin); /* Set __FS's right margin to __RMARGIN and return the old value. */ extern size_t argp_fmtstream_set_rmargin (argp_fmtstream_t __fs, - size_t __rmargin); + size_t __rmargin); extern size_t __argp_fmtstream_set_rmargin (argp_fmtstream_t __fs, - size_t __rmargin); + size_t __rmargin); /* Set __FS's wrap margin to __WMARGIN and return the old value. */ extern size_t argp_fmtstream_set_wmargin (argp_fmtstream_t __fs, - size_t __wmargin); + size_t __wmargin); extern size_t __argp_fmtstream_set_wmargin (argp_fmtstream_t __fs, - size_t __wmargin); + size_t __wmargin); /* Return the column number of the current output point in __FS. */ extern size_t argp_fmtstream_point (argp_fmtstream_t __fs); @@ -257,7 +258,7 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount); ARGP_FS_EI size_t __argp_fmtstream_write (argp_fmtstream_t __fs, - const char *__str, size_t __len) + const char *__str, size_t __len) { if (__fs->p + __len <= __fs->end || __argp_fmtstream_ensure (__fs, __len)) { diff --git a/lib/argp-fs-xinl.c b/gnu/argp-fs-xinl.c similarity index 90% rename from lib/argp-fs-xinl.c rename to gnu/argp-fs-xinl.c index af4f0850a7d64a9bf46efd498160b44bdc3988eb..ad8ee7678431c7ebeb30930254da43b5e859bbee 100644 --- a/lib/argp-fs-xinl.c +++ b/gnu/argp-fs-xinl.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Real definitions for extern inline functions in argp-fmtstream.h - Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1997, 2003, 2004, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/lib/argp-help.c b/gnu/argp-help.c similarity index 59% rename from lib/argp-help.c rename to gnu/argp-help.c index a9843c0aa3b158c2477da8a1498863c432fd0e79..09bec84683f401d70607d43d08a0f6e688cc609c 100644 --- a/lib/argp-help.c +++ b/gnu/argp-help.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Hierarchial argument parsing help output - Copyright (C) 1995-2005, 2007 Free Software Foundation, Inc. + Copyright (C) 1995-2005, 2007, 2009-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -17,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 +# define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H @@ -62,15 +64,15 @@ UPARAM_NAMES vector, below. */ /* Default parameters. */ -#define DUP_ARGS 0 /* True if option argument can be duplicated. */ -#define DUP_ARGS_NOTE 1 /* True to print a note about duplicate args. */ -#define SHORT_OPT_COL 2 /* column in which short options start */ -#define LONG_OPT_COL 6 /* column in which long options start */ -#define DOC_OPT_COL 2 /* column in which doc options start */ -#define OPT_DOC_COL 29 /* column in which option text starts */ -#define HEADER_COL 1 /* column in which group headers are printed */ -#define USAGE_INDENT 12 /* indentation of wrapped usage lines */ -#define RMARGIN 79 /* right margin used for wrapping */ +#define DUP_ARGS 0 /* True if option argument can be duplicated. */ +#define DUP_ARGS_NOTE 1 /* True to print a note about duplicate args. */ +#define SHORT_OPT_COL 2 /* column in which short options start */ +#define LONG_OPT_COL 6 /* column in which long options start */ +#define DOC_OPT_COL 2 /* column in which doc options start */ +#define OPT_DOC_COL 29 /* column in which option text starts */ +#define HEADER_COL 1 /* column in which group headers are printed */ +#define USAGE_INDENT 12 /* indentation of wrapped usage lines */ +#define RMARGIN 79 /* right margin used for wrapping */ /* User-selectable (using an environment variable) formatting parameters. They must all be of type `int' for the parsing code to work. */ @@ -96,7 +98,7 @@ struct uparams int usage_indent; /* indentation of wrapped usage lines */ int rmargin; /* right margin used for wrapping */ - int valid; /* True when the values in here are valid. */ + int valid; /* True when the values in here are valid. */ }; /* This is a global variable, as user options are only ever read once. */ @@ -110,9 +112,9 @@ static struct uparams uparams = { /* A particular uparam, and what the user name is. */ struct uparam_name { - const char *name; /* User name. */ - int is_bool; /* Whether it's `boolean'. */ - size_t uparams_offs; /* Location of the (int) field in UPARAMS. */ + const char *name; /* User name. */ + int is_bool; /* Whether it's `boolean'. */ + size_t uparams_offs; /* Location of the (int) field in UPARAMS. */ }; /* The name-field mappings we know about. */ @@ -138,17 +140,17 @@ validate_uparams (const struct argp_state *state, struct uparams *upptr) for (up = uparam_names; up->name; up++) { if (up->is_bool - || up->uparams_offs == offsetof (struct uparams, rmargin)) - continue; + || up->uparams_offs == offsetof (struct uparams, rmargin)) + continue; if (*(int *)((char *)upptr + up->uparams_offs) >= upptr->rmargin) - { - __argp_failure (state, 0, 0, - dgettext (state->root_argp->argp_domain, - "\ + { + __argp_failure (state, 0, 0, + dgettext (state->root_argp->argp_domain, + "\ ARGP_HELP_FMT: %s value is less than or equal to %s"), - "rmargin", up->name); - return; - } + "rmargin", up->name); + return; + } } uparams = *upptr; uparams.valid = 1; @@ -167,87 +169,87 @@ fill_in_uparams (const struct argp_state *state) { /* Parse var. */ while (*var) - { - SKIPWS (var); - - if (isalpha ((unsigned char) *var)) - { - size_t var_len; - const struct uparam_name *un; - int unspec = 0, val = 0; - const char *arg = var; - - while (isalnum ((unsigned char) *arg) || *arg == '-' || *arg == '_') - arg++; - var_len = arg - var; - - SKIPWS (arg); - - if (*arg == '\0' || *arg == ',') - unspec = 1; - else if (*arg == '=') - { - arg++; - SKIPWS (arg); - } - - if (unspec) - { - if (var[0] == 'n' && var[1] == 'o' && var[2] == '-') - { - val = 0; - var += 3; - var_len -= 3; - } - else - val = 1; - } - else if (isdigit ((unsigned char) *arg)) - { - val = atoi (arg); - while (isdigit ((unsigned char) *arg)) - arg++; - SKIPWS (arg); - } - - for (un = uparam_names; un->name; un++) - if (strlen (un->name) == var_len - && strncmp (var, un->name, var_len) == 0) - { - if (unspec && !un->is_bool) - __argp_failure (state, 0, 0, - dgettext (state->root_argp->argp_domain, - "\ + { + SKIPWS (var); + + if (isalpha ((unsigned char) *var)) + { + size_t var_len; + const struct uparam_name *un; + int unspec = 0, val = 0; + const char *arg = var; + + while (isalnum ((unsigned char) *arg) || *arg == '-' || *arg == '_') + arg++; + var_len = arg - var; + + SKIPWS (arg); + + if (*arg == '\0' || *arg == ',') + unspec = 1; + else if (*arg == '=') + { + arg++; + SKIPWS (arg); + } + + if (unspec) + { + if (var[0] == 'n' && var[1] == 'o' && var[2] == '-') + { + val = 0; + var += 3; + var_len -= 3; + } + else + val = 1; + } + else if (isdigit ((unsigned char) *arg)) + { + val = atoi (arg); + while (isdigit ((unsigned char) *arg)) + arg++; + SKIPWS (arg); + } + + for (un = uparam_names; un->name; un++) + if (strlen (un->name) == var_len + && strncmp (var, un->name, var_len) == 0) + { + if (unspec && !un->is_bool) + __argp_failure (state, 0, 0, + dgettext (state->root_argp->argp_domain, + "\ %.*s: ARGP_HELP_FMT parameter requires a value"), - (int) var_len, var); - else if (val < 0) - __argp_failure (state, 0, 0, - dgettext (state->root_argp->argp_domain, - "\ + (int) var_len, var); + else if (val < 0) + __argp_failure (state, 0, 0, + dgettext (state->root_argp->argp_domain, + "\ %.*s: ARGP_HELP_FMT parameter must be positive"), - (int) var_len, var); - else - *(int *)((char *)&new_params + un->uparams_offs) = val; - break; - } - if (! un->name) - __argp_failure (state, 0, 0, - dgettext (state->root_argp->argp_domain, "\ + (int) var_len, var); + else + *(int *)((char *)&new_params + un->uparams_offs) = val; + break; + } + if (! un->name) + __argp_failure (state, 0, 0, + dgettext (state->root_argp->argp_domain, "\ %.*s: Unknown ARGP_HELP_FMT parameter"), - (int) var_len, var); - - var = arg; - if (*var == ',') - var++; - } - else if (*var) - { - __argp_failure (state, 0, 0, - dgettext (state->root_argp->argp_domain, - "Garbage in ARGP_HELP_FMT: %s"), var); - break; - } - } + (int) var_len, var); + + var = arg; + if (*var == ',') + var++; + } + else if (*var) + { + __argp_failure (state, 0, 0, + dgettext (state->root_argp->argp_domain, + "Garbage in ARGP_HELP_FMT: %s"), var); + break; + } + } validate_uparams (state, &new_params); } } @@ -287,22 +289,22 @@ fill_in_uparams (const struct argp_state *state) For example, the following output (from ps): -p PID, --pid=PID List the process PID - --pgrp=PGRP List processes in the process group PGRP + --pgrp=PGRP List processes in the process group PGRP -P, -x, --no-parent Include processes without parents -Q, --all-fields Don't elide unusable fields (normally if there's - some reason ps can't print a field for any - process, it's removed from the output entirely) + some reason ps can't print a field for any + process, it's removed from the output entirely) -r, --reverse, --gratuitously-long-reverse-option - Reverse the order of any sort - --session[=SID] Add the processes from the session SID (which - defaults to the sid of the current process) + Reverse the order of any sort + --session[=SID] Add the processes from the session SID (which + defaults to the sid of the current process) Here are some more options: -f ZOT, --foonly=ZOT Glork a foonly -z, --zaza Snit a zar -?, --help Give this help list - --usage Give a short usage message + --usage Give a short usage message -V, --version Print program version The struct argp_option array for the above could look like: @@ -310,18 +312,18 @@ fill_in_uparams (const struct argp_state *state) { {"pid", 'p', "PID", 0, "List the process PID"}, {"pgrp", OPT_PGRP, "PGRP", 0, "List processes in the process group PGRP"}, - {"no-parent", 'P', 0, 0, "Include processes without parents"}, + {"no-parent", 'P', 0, 0, "Include processes without parents"}, {0, 'x', 0, OPTION_ALIAS}, {"all-fields",'Q', 0, 0, "Don't elide unusable fields (normally" " if there's some reason ps can't" - " print a field for any process, it's" + " print a field for any process, it's" " removed from the output entirely)" }, {"reverse", 'r', 0, 0, "Reverse the order of any sort"}, {"gratuitously-long-reverse-option", 0, 0, OPTION_ALIAS}, {"session", OPT_SESS, "SID", OPTION_ARG_OPTIONAL, "Add the processes from the session" - " SID (which defaults to the sid of" - " the current process)" }, + " SID (which defaults to the sid of" + " the current process)" }, {0,0,0,0, "Here are some more options:"}, {"foonly", 'f', "ZOT", 0, "Glork a foonly"}, @@ -347,7 +349,7 @@ find_char (char ch, char *beg, char *end) return 0; } -struct hol_cluster; /* fwd decl */ +struct hol_cluster; /* fwd decl */ struct hol_entry { @@ -452,47 +454,47 @@ make_hol (const struct argp *argp, struct hol_cluster *cluster) /* Calculate the space needed. */ for (o = opts; ! oend (o); o++) - { - if (! oalias (o)) - hol->num_entries++; - if (oshort (o)) - num_short_options++; /* This is an upper bound. */ - } + { + if (! oalias (o)) + hol->num_entries++; + if (oshort (o)) + num_short_options++; /* This is an upper bound. */ + } hol->entries = malloc (sizeof (struct hol_entry) * hol->num_entries); hol->short_options = malloc (num_short_options + 1); assert (hol->entries && hol->short_options); if (SIZE_MAX <= UINT_MAX) - assert (hol->num_entries <= SIZE_MAX / sizeof (struct hol_entry)); + assert (hol->num_entries <= SIZE_MAX / sizeof (struct hol_entry)); /* Fill in the entries. */ so = hol->short_options; for (o = opts, entry = hol->entries; ! oend (o); entry++) - { - entry->opt = o; - entry->num = 0; - entry->short_options = so; - entry->group = cur_group = - o->group - ? o->group - : ((!o->name && !o->key) - ? cur_group + 1 - : cur_group); - entry->cluster = cluster; - entry->argp = argp; - - do - { - entry->num++; - if (oshort (o) && ! find_char (o->key, hol->short_options, so)) - /* O has a valid short option which hasn't already been used.*/ - *so++ = o->key; - o++; - } - while (! oend (o) && oalias (o)); - } - *so = '\0'; /* null terminated so we can find the length */ + { + entry->opt = o; + entry->num = 0; + entry->short_options = so; + entry->group = cur_group = + o->group + ? o->group + : ((!o->name && !o->key) + ? cur_group + 1 + : cur_group); + entry->cluster = cluster; + entry->argp = argp; + + do + { + entry->num++; + if (oshort (o) && ! find_char (o->key, hol->short_options, so)) + /* O has a valid short option which hasn't already been used.*/ + *so++ = o->key; + o++; + } + while (! oend (o) && oalias (o)); + } + *so = '\0'; /* null terminated so we can find the length */ } return hol; @@ -503,7 +505,7 @@ make_hol (const struct argp *argp, struct hol_cluster *cluster) to it. ARGP is the argp that this cluster results from. */ static struct hol_cluster * hol_add_cluster (struct hol *hol, int group, const char *header, int index, - struct hol_cluster *parent, const struct argp *argp) + struct hol_cluster *parent, const struct argp *argp) { struct hol_cluster *cl = malloc (sizeof (struct hol_cluster)); if (cl) @@ -546,10 +548,10 @@ hol_free (struct hol *hol) static int hol_entry_short_iterate (const struct hol_entry *entry, - int (*func)(const struct argp_option *opt, - const struct argp_option *real, - const char *domain, void *cookie), - const char *domain, void *cookie) + int (*func)(const struct argp_option *opt, + const struct argp_option *real, + const char *domain, void *cookie), + const char *domain, void *cookie) { unsigned nopts; int val = 0; @@ -559,11 +561,11 @@ hol_entry_short_iterate (const struct hol_entry *entry, for (opt = real, nopts = entry->num; nopts > 0 && !val; opt++, nopts--) if (oshort (opt) && *so == opt->key) { - if (!oalias (opt)) - real = opt; - if (ovisible (opt)) - val = (*func)(opt, real, domain, cookie); - so++; + if (!oalias (opt)) + real = opt; + if (ovisible (opt)) + val = (*func)(opt, real, domain, cookie); + so++; } return val; @@ -572,10 +574,10 @@ hol_entry_short_iterate (const struct hol_entry *entry, static inline int __attribute__ ((always_inline)) hol_entry_long_iterate (const struct hol_entry *entry, - int (*func)(const struct argp_option *opt, - const struct argp_option *real, - const char *domain, void *cookie), - const char *domain, void *cookie) + int (*func)(const struct argp_option *opt, + const struct argp_option *real, + const char *domain, void *cookie), + const char *domain, void *cookie) { unsigned nopts; int val = 0; @@ -584,10 +586,10 @@ hol_entry_long_iterate (const struct hol_entry *entry, for (opt = real, nopts = entry->num; nopts > 0 && !val; opt++, nopts--) if (opt->name) { - if (!oalias (opt)) - real = opt; - if (ovisible (opt)) - val = (*func)(opt, real, domain, cookie); + if (!oalias (opt)) + real = opt; + if (ovisible (opt)) + val = (*func)(opt, real, domain, cookie); } return val; @@ -596,7 +598,7 @@ hol_entry_long_iterate (const struct hol_entry *entry, /* Iterator that returns true for the first short option. */ static int until_short (const struct argp_option *opt, const struct argp_option *real, - const char *domain, void *cookie) + const char *domain, void *cookie) { return oshort (opt) ? opt->key : 0; } @@ -606,7 +608,7 @@ static char hol_entry_first_short (const struct hol_entry *entry) { return hol_entry_short_iterate (entry, until_short, - entry->argp->argp_domain, 0); + entry->argp->argp_domain, 0); } /* Returns the first valid long option in ENTRY, or 0 if there is none. */ @@ -635,10 +637,10 @@ hol_find_entry (struct hol *hol, const char *name) unsigned num_opts = entry->num; while (num_opts-- > 0) - if (opt->name && ovisible (opt) && strcmp (opt->name, name) == 0) - return entry; - else - opt++; + if (opt->name && ovisible (opt) && strcmp (opt->name, name) == 0) + return entry; + else + opt++; entry++; } @@ -704,7 +706,7 @@ hol_cluster_base (struct hol_cluster *cl) /* Return true if CL1 is a child of CL2. */ static int hol_cluster_is_child (const struct hol_cluster *cl1, - const struct hol_cluster *cl2) + const struct hol_cluster *cl2) { while (cl1 && cl1 != cl2) cl1 = cl1->parent; @@ -725,12 +727,12 @@ canon_doc_option (const char **name) { /* Skip initial whitespace. */ while (isspace ((unsigned char) **name)) - (*name)++; + (*name)++; /* Decide whether this looks like an option (leading `-') or not. */ non_opt = (**name != '-'); /* Skip until part of name used for sorting. */ while (**name && !isalnum ((unsigned char) **name)) - (*name)++; + (*name)++; } return non_opt; } @@ -741,7 +743,7 @@ canon_doc_option (const char **name) listing. */ static int hol_entry_cmp (const struct hol_entry *entry1, - const struct hol_entry *entry2) + const struct hol_entry *entry2) { /* The group numbers by which the entries should be ordered; if either is in a cluster, then this is just the group within the cluster. */ @@ -751,20 +753,20 @@ hol_entry_cmp (const struct hol_entry *entry1, if (entry1->cluster != entry2->cluster) { /* The entries are not within the same cluster, so we can't compare them - directly, we have to use the appropiate clustering level too. */ + directly, we have to use the appropiate clustering level too. */ if (! entry1->cluster) - /* ENTRY1 is at the `base level', not in a cluster, so we have to - compare it's group number with that of the base cluster in which - ENTRY2 resides. Note that if they're in the same group, the - clustered option always comes laster. */ - return group_cmp (group1, hol_cluster_base (entry2->cluster)->group, -1); + /* ENTRY1 is at the `base level', not in a cluster, so we have to + compare it's group number with that of the base cluster in which + ENTRY2 resides. Note that if they're in the same group, the + clustered option always comes laster. */ + return group_cmp (group1, hol_cluster_base (entry2->cluster)->group, -1); else if (! entry2->cluster) - /* Likewise, but ENTRY2's not in a cluster. */ - return group_cmp (hol_cluster_base (entry1->cluster)->group, group2, 1); + /* Likewise, but ENTRY2's not in a cluster. */ + return group_cmp (hol_cluster_base (entry1->cluster)->group, group2, 1); else - /* Both entries are in clusters, we can just compare the clusters. */ - return (rc = hol_cluster_cmp (entry1->cluster, entry2->cluster)) ? - rc : HOL_ENTRY_PTRCMP(entry1, entry2); + /* Both entries are in clusters, we can just compare the clusters. */ + return (rc = hol_cluster_cmp (entry1->cluster, entry2->cluster)) ? + rc : HOL_ENTRY_PTRCMP(entry1, entry2); } else if (group1 == group2) /* The entries are both in the same cluster and group, so compare them @@ -778,38 +780,36 @@ hol_entry_cmp (const struct hol_entry *entry1, const char *long2 = hol_entry_first_long (entry2); if (doc1) - doc1 = canon_doc_option (&long1); + doc1 = canon_doc_option (&long1); if (doc2) - doc2 = canon_doc_option (&long2); + doc2 = canon_doc_option (&long2); if (doc1 != doc2) - /* `documentation' options always follow normal options (or - documentation options that *look* like normal options). */ - return doc1 - doc2; + /* `documentation' options always follow normal options (or + documentation options that *look* like normal options). */ + return doc1 - doc2; else if (!short1 && !short2 && long1 && long2) - /* Only long options. */ - return (rc = __strcasecmp (long1, long2)) ? + /* Only long options. */ + return (rc = __strcasecmp (long1, long2)) ? rc : HOL_ENTRY_PTRCMP(entry1, entry2); else - /* Compare short/short, long/short, short/long, using the first - character of long options. Entries without *any* valid - options (such as options with OPTION_HIDDEN set) will be put - first, but as they're not displayed, it doesn't matter where - they are. */ - { - char first1 = short1 ? short1 : long1 ? *long1 : 0; - char first2 = short2 ? short2 : long2 ? *long2 : 0; -#ifdef _tolower - int lower_cmp = _tolower (first1) - _tolower (first2); -#else - int lower_cmp = tolower (first1) - tolower (first2); -#endif - /* Compare ignoring case, except when the options are both the - same letter, in which case lower-case always comes first. */ - return lower_cmp ? lower_cmp : + /* Compare short/short, long/short, short/long, using the first + character of long options. Entries without *any* valid + options (such as options with OPTION_HIDDEN set) will be put + first, but as they're not displayed, it doesn't matter where + they are. */ + { + unsigned char first1 = short1 ? short1 : long1 ? *long1 : 0; + unsigned char first2 = short2 ? short2 : long2 ? *long2 : 0; + /* Use tolower, not _tolower, since only the former is + guaranteed to work on something already lower case. */ + int lower_cmp = tolower (first1) - tolower (first2); + /* Compare ignoring case, except when the options are both the + same letter, in which case lower-case always comes first. */ + return lower_cmp ? lower_cmp : (rc = first2 - first1) ? - rc : HOL_ENTRY_PTRCMP(entry1, entry2); - } + rc : HOL_ENTRY_PTRCMP(entry1, entry2); + } } else /* Within the same cluster, but not the same group, so just compare @@ -835,9 +835,9 @@ hol_sort (struct hol *hol) unsigned i; struct hol_entry *e; for (i = 0, e = hol->entries; i < hol->num_entries; i++, e++) - e->ord = i; + e->ord = i; qsort (hol->entries, hol->num_entries, sizeof (struct hol_entry), - hol_entry_qcmp); + hol_entry_qcmp); } } @@ -858,77 +858,77 @@ hol_append (struct hol *hol, struct hol *more) if (more->num_entries > 0) { if (hol->num_entries == 0) - { - hol->num_entries = more->num_entries; - hol->entries = more->entries; - hol->short_options = more->short_options; - more->num_entries = 0; /* Mark MORE's fields as invalid. */ - } + { + hol->num_entries = more->num_entries; + hol->entries = more->entries; + hol->short_options = more->short_options; + more->num_entries = 0; /* Mark MORE's fields as invalid. */ + } else - /* Append the entries in MORE to those in HOL, taking care to only add - non-shadowed SHORT_OPTIONS values. */ - { - unsigned left; - char *so, *more_so; - struct hol_entry *e; - unsigned num_entries = hol->num_entries + more->num_entries; - struct hol_entry *entries = - malloc (num_entries * sizeof (struct hol_entry)); - unsigned hol_so_len = strlen (hol->short_options); - char *short_options = - malloc (hol_so_len + strlen (more->short_options) + 1); - - assert (entries && short_options); - if (SIZE_MAX <= UINT_MAX) - assert (num_entries <= SIZE_MAX / sizeof (struct hol_entry)); - - __mempcpy (__mempcpy (entries, hol->entries, - hol->num_entries * sizeof (struct hol_entry)), - more->entries, - more->num_entries * sizeof (struct hol_entry)); - - __mempcpy (short_options, hol->short_options, hol_so_len); - - /* Fix up the short options pointers from HOL. */ - for (e = entries, left = hol->num_entries; left > 0; e++, left--) - e->short_options += (short_options - hol->short_options); - - /* Now add the short options from MORE, fixing up its entries - too. */ - so = short_options + hol_so_len; - more_so = more->short_options; - for (left = more->num_entries; left > 0; e++, left--) - { - int opts_left; - const struct argp_option *opt; - - e->short_options = so; - - for (opts_left = e->num, opt = e->opt; opts_left; opt++, opts_left--) - { - int ch = *more_so; - if (oshort (opt) && ch == opt->key) - /* The next short option in MORE_SO, CH, is from OPT. */ - { - if (! find_char (ch, short_options, - short_options + hol_so_len)) - /* The short option CH isn't shadowed by HOL's options, - so add it to the sum. */ - *so++ = ch; - more_so++; - } - } - } - - *so = '\0'; - - free (hol->entries); - free (hol->short_options); - - hol->entries = entries; - hol->num_entries = num_entries; - hol->short_options = short_options; - } + /* Append the entries in MORE to those in HOL, taking care to only add + non-shadowed SHORT_OPTIONS values. */ + { + unsigned left; + char *so, *more_so; + struct hol_entry *e; + unsigned num_entries = hol->num_entries + more->num_entries; + struct hol_entry *entries = + malloc (num_entries * sizeof (struct hol_entry)); + unsigned hol_so_len = strlen (hol->short_options); + char *short_options = + malloc (hol_so_len + strlen (more->short_options) + 1); + + assert (entries && short_options); + if (SIZE_MAX <= UINT_MAX) + assert (num_entries <= SIZE_MAX / sizeof (struct hol_entry)); + + __mempcpy (__mempcpy (entries, hol->entries, + hol->num_entries * sizeof (struct hol_entry)), + more->entries, + more->num_entries * sizeof (struct hol_entry)); + + __mempcpy (short_options, hol->short_options, hol_so_len); + + /* Fix up the short options pointers from HOL. */ + for (e = entries, left = hol->num_entries; left > 0; e++, left--) + e->short_options += (short_options - hol->short_options); + + /* Now add the short options from MORE, fixing up its entries + too. */ + so = short_options + hol_so_len; + more_so = more->short_options; + for (left = more->num_entries; left > 0; e++, left--) + { + int opts_left; + const struct argp_option *opt; + + e->short_options = so; + + for (opts_left = e->num, opt = e->opt; opts_left; opt++, opts_left--) + { + int ch = *more_so; + if (oshort (opt) && ch == opt->key) + /* The next short option in MORE_SO, CH, is from OPT. */ + { + if (! find_char (ch, short_options, + short_options + hol_so_len)) + /* The short option CH isn't shadowed by HOL's options, + so add it to the sum. */ + *so++ = ch; + more_so++; + } + } + } + + *so = '\0'; + + free (hol->entries); + free (hol->short_options); + + hol->entries = entries; + hol->num_entries = num_entries; + hol->short_options = short_options; + } } hol_free (more); @@ -965,11 +965,11 @@ arg (const struct argp_option *real, const char *req_fmt, const char *opt_fmt, if (real->arg) { if (real->flags & OPTION_ARG_OPTIONAL) - __argp_fmtstream_printf (stream, opt_fmt, - dgettext (domain, real->arg)); + __argp_fmtstream_printf (stream, opt_fmt, + dgettext (domain, real->arg)); else - __argp_fmtstream_printf (stream, req_fmt, - dgettext (domain, real->arg)); + __argp_fmtstream_printf (stream, req_fmt, + dgettext (domain, real->arg)); } } @@ -1009,7 +1009,7 @@ struct pentry_state /* If a user doc filter should be applied to DOC, do so. */ static const char * filter_doc (const char *doc, int key, const struct argp *argp, - const struct argp_state *state) + const struct argp_state *state) { if (argp->help_filter) /* We must apply a user filter to this output. */ @@ -1029,7 +1029,7 @@ filter_doc (const char *doc, int key, const struct argp *argp, to 0. */ static void print_header (const char *str, const struct argp *argp, - struct pentry_state *pest) + struct pentry_state *pest) { const char *tstr = dgettext (argp->argp_domain, str); const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_HEADER, argp, pest->state); @@ -1037,17 +1037,17 @@ print_header (const char *str, const struct argp *argp, if (fstr) { if (*fstr) - { - if (pest->hhstate->prev_entry) - /* Precede with a blank line. */ - __argp_fmtstream_putc (pest->stream, '\n'); - indent_to (pest->stream, uparams.header_col); - __argp_fmtstream_set_lmargin (pest->stream, uparams.header_col); - __argp_fmtstream_set_wmargin (pest->stream, uparams.header_col); - __argp_fmtstream_puts (pest->stream, fstr); - __argp_fmtstream_set_lmargin (pest->stream, 0); - __argp_fmtstream_putc (pest->stream, '\n'); - } + { + if (pest->hhstate->prev_entry) + /* Precede with a blank line. */ + __argp_fmtstream_putc (pest->stream, '\n'); + indent_to (pest->stream, uparams.header_col); + __argp_fmtstream_set_lmargin (pest->stream, uparams.header_col); + __argp_fmtstream_set_wmargin (pest->stream, uparams.header_col); + __argp_fmtstream_puts (pest->stream, fstr); + __argp_fmtstream_set_lmargin (pest->stream, 0); + __argp_fmtstream_putc (pest->stream, '\n'); + } pest->hhstate->sep_groups = 1; /* Separate subsequent groups. */ } @@ -1069,21 +1069,21 @@ comma (unsigned col, struct pentry_state *pest) const struct hol_cluster *cl = pest->entry->cluster; if (pest->hhstate->sep_groups && pe && pest->entry->group != pe->group) - __argp_fmtstream_putc (pest->stream, '\n'); + __argp_fmtstream_putc (pest->stream, '\n'); if (cl && cl->header && *cl->header - && (!pe - || (pe->cluster != cl - && !hol_cluster_is_child (pe->cluster, cl)))) - /* If we're changing clusters, then this must be the start of the - ENTRY's cluster unless that is an ancestor of the previous one - (in which case we had just popped into a sub-cluster for a bit). - If so, then print the cluster's header line. */ - { - int old_wm = __argp_fmtstream_wmargin (pest->stream); - print_header (cl->header, cl->argp, pest); - __argp_fmtstream_set_wmargin (pest->stream, old_wm); - } + && (!pe + || (pe->cluster != cl + && !hol_cluster_is_child (pe->cluster, cl)))) + /* If we're changing clusters, then this must be the start of the + ENTRY's cluster unless that is an ancestor of the previous one + (in which case we had just popped into a sub-cluster for a bit). + If so, then print the cluster's header line. */ + { + int old_wm = __argp_fmtstream_wmargin (pest->stream); + print_header (cl->header, cl->argp, pest); + __argp_fmtstream_set_wmargin (pest->stream, old_wm); + } pest->first = 0; } @@ -1096,12 +1096,12 @@ comma (unsigned col, struct pentry_state *pest) /* Print help for ENTRY to STREAM. */ static void hol_entry_help (struct hol_entry *entry, const struct argp_state *state, - argp_fmtstream_t stream, struct hol_help_state *hhstate) + argp_fmtstream_t stream, struct hol_help_state *hhstate) { unsigned num; const struct argp_option *real = entry->opt, *opt; char *so = entry->short_options; - int have_long_opt = 0; /* We have any long options. */ + int have_long_opt = 0; /* We have any long options. */ /* Saved margins. */ int old_lm = __argp_fmtstream_set_lmargin (stream, 0); int old_wm = __argp_fmtstream_wmargin (stream); @@ -1118,10 +1118,10 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state, if (! odoc (real)) for (opt = real, num = entry->num; num > 0; opt++, num--) if (opt->name && ovisible (opt)) - { - have_long_opt = 1; - break; - } + { + have_long_opt = 1; + break; + } /* First emit short options. */ __argp_fmtstream_set_wmargin (stream, uparams.short_opt_col); /* For truly bizarre cases. */ @@ -1129,17 +1129,17 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state, if (oshort (opt) && opt->key == *so) /* OPT has a valid (non shadowed) short option. */ { - if (ovisible (opt)) - { - comma (uparams.short_opt_col, &pest); - __argp_fmtstream_putc (stream, '-'); - __argp_fmtstream_putc (stream, *so); - if (!have_long_opt || uparams.dup_args) - arg (real, " %s", "[%s]", state->root_argp->argp_domain, stream); - else if (real->arg) - hhstate->suppressed_dup_arg = 1; - } - so++; + if (ovisible (opt)) + { + comma (uparams.short_opt_col, &pest); + __argp_fmtstream_putc (stream, '-'); + __argp_fmtstream_putc (stream, *so); + if (!have_long_opt || uparams.dup_args) + arg (real, " %s", "[%s]", state->root_argp->argp_domain, stream); + else if (real->arg) + hhstate->suppressed_dup_arg = 1; + } + so++; } /* Now, long options. */ @@ -1148,18 +1148,18 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state, { __argp_fmtstream_set_wmargin (stream, uparams.doc_opt_col); for (opt = real, num = entry->num; num > 0; opt++, num--) - if (opt->name && *opt->name && ovisible (opt)) - { - comma (uparams.doc_opt_col, &pest); - /* Calling dgettext here isn't quite right, since sorting will - have been done on the original; but documentation options - should be pretty rare anyway... */ - __argp_fmtstream_puts (stream, - onotrans (opt) ? - opt->name : - dgettext (state->root_argp->argp_domain, - opt->name)); - } + if (opt->name && *opt->name && ovisible (opt)) + { + comma (uparams.doc_opt_col, &pest); + /* Calling dgettext here isn't quite right, since sorting will + have been done on the original; but documentation options + should be pretty rare anyway... */ + __argp_fmtstream_puts (stream, + onotrans (opt) ? + opt->name : + dgettext (state->root_argp->argp_domain, + opt->name)); + } } else /* A real long option. */ @@ -1168,16 +1168,16 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state, __argp_fmtstream_set_wmargin (stream, uparams.long_opt_col); for (opt = real, num = entry->num; num > 0; opt++, num--) - if (opt->name && ovisible (opt)) - { - comma (uparams.long_opt_col, &pest); - __argp_fmtstream_printf (stream, "--%s", opt->name); - if (first_long_opt || uparams.dup_args) - arg (real, "=%s", "[=%s]", state->root_argp->argp_domain, - stream); - else if (real->arg) - hhstate->suppressed_dup_arg = 1; - } + if (opt->name && ovisible (opt)) + { + comma (uparams.long_opt_col, &pest); + __argp_fmtstream_printf (stream, "--%s", opt->name); + if (first_long_opt || uparams.dup_args) + arg (real, "=%s", "[=%s]", state->root_argp->argp_domain, + stream); + else if (real->arg) + hhstate->suppressed_dup_arg = 1; + } } /* Next, documentation strings. */ @@ -1187,35 +1187,35 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state, { /* Didn't print any switches, what's up? */ if (!oshort (real) && !real->name) - /* This is a group header, print it nicely. */ - print_header (real->doc, entry->argp, &pest); + /* This is a group header, print it nicely. */ + print_header (real->doc, entry->argp, &pest); else - /* Just a totally shadowed option or null header; print nothing. */ - goto cleanup; /* Just return, after cleaning up. */ + /* Just a totally shadowed option or null header; print nothing. */ + goto cleanup; /* Just return, after cleaning up. */ } else { const char *tstr = real->doc ? dgettext (state->root_argp->argp_domain, - real->doc) : 0; + real->doc) : 0; const char *fstr = filter_doc (tstr, real->key, entry->argp, state); if (fstr && *fstr) - { - unsigned int col = __argp_fmtstream_point (stream); + { + unsigned int col = __argp_fmtstream_point (stream); - __argp_fmtstream_set_lmargin (stream, uparams.opt_doc_col); - __argp_fmtstream_set_wmargin (stream, uparams.opt_doc_col); + __argp_fmtstream_set_lmargin (stream, uparams.opt_doc_col); + __argp_fmtstream_set_wmargin (stream, uparams.opt_doc_col); - if (col > (unsigned int) (uparams.opt_doc_col + 3)) - __argp_fmtstream_putc (stream, '\n'); - else if (col >= (unsigned int) uparams.opt_doc_col) - __argp_fmtstream_puts (stream, " "); - else - indent_to (stream, uparams.opt_doc_col); + if (col > (unsigned int) (uparams.opt_doc_col + 3)) + __argp_fmtstream_putc (stream, '\n'); + else if (col >= (unsigned int) uparams.opt_doc_col) + __argp_fmtstream_puts (stream, " "); + else + indent_to (stream, uparams.opt_doc_col); - __argp_fmtstream_puts (stream, fstr); - } + __argp_fmtstream_puts (stream, fstr); + } if (fstr && fstr != tstr) - free ((char *) fstr); + free ((char *) fstr); /* Reset the left margin. */ __argp_fmtstream_set_lmargin (stream, 0); @@ -1232,7 +1232,7 @@ cleanup: /* Output a long help message about the options in HOL to STREAM. */ static void hol_help (struct hol *hol, const struct argp_state *state, - argp_fmtstream_t stream) + argp_fmtstream_t stream) { unsigned num; struct hol_entry *entry; @@ -1247,15 +1247,15 @@ hol_help (struct hol *hol, const struct argp_state *state, Mandatory or optional arguments to long options are also mandatory or \ optional for any corresponding short options."); const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_DUP_ARGS_NOTE, - state ? state->root_argp : 0, state); + state ? state->root_argp : 0, state); if (fstr && *fstr) - { - __argp_fmtstream_putc (stream, '\n'); - __argp_fmtstream_puts (stream, fstr); - __argp_fmtstream_putc (stream, '\n'); - } + { + __argp_fmtstream_putc (stream, '\n'); + __argp_fmtstream_puts (stream, fstr); + __argp_fmtstream_putc (stream, '\n'); + } if (fstr && fstr != tstr) - free ((char *) fstr); + free ((char *) fstr); } } @@ -1265,8 +1265,8 @@ optional for any corresponding short options."); pointer pointer to by COOKIE, and advance the pointer. */ static int add_argless_short_opt (const struct argp_option *opt, - const struct argp_option *real, - const char *domain, void *cookie) + const struct argp_option *real, + const char *domain, void *cookie) { char **snao_end = cookie; if (!(opt->arg || real->arg) @@ -1279,8 +1279,8 @@ add_argless_short_opt (const struct argp_option *opt, stream pointed at by COOKIE. */ static int usage_argful_short_opt (const struct argp_option *opt, - const struct argp_option *real, - const char *domain, void *cookie) + const struct argp_option *real, + const char *domain, void *cookie) { argp_fmtstream_t stream = cookie; const char *arg = opt->arg; @@ -1294,14 +1294,14 @@ usage_argful_short_opt (const struct argp_option *opt, arg = dgettext (domain, arg); if (flags & OPTION_ARG_OPTIONAL) - __argp_fmtstream_printf (stream, " [-%c[%s]]", opt->key, arg); + __argp_fmtstream_printf (stream, " [-%c[%s]]", opt->key, arg); else - { - /* Manually do line wrapping so that it (probably) won't - get wrapped at the embedded space. */ - space (stream, 6 + strlen (arg)); - __argp_fmtstream_printf (stream, "[-%c %s]", opt->key, arg); - } + { + /* Manually do line wrapping so that it (probably) won't + get wrapped at the embedded space. */ + space (stream, 6 + strlen (arg)); + __argp_fmtstream_printf (stream, "[-%c %s]", opt->key, arg); + } } return 0; @@ -1311,8 +1311,8 @@ usage_argful_short_opt (const struct argp_option *opt, COOKIE. */ static int usage_long_opt (const struct argp_option *opt, - const struct argp_option *real, - const char *domain, void *cookie) + const struct argp_option *real, + const char *domain, void *cookie) { argp_fmtstream_t stream = cookie; const char *arg = opt->arg; @@ -1324,15 +1324,15 @@ usage_long_opt (const struct argp_option *opt, if (! (flags & OPTION_NO_USAGE) && !odoc (opt)) { if (arg) - { - arg = dgettext (domain, arg); - if (flags & OPTION_ARG_OPTIONAL) - __argp_fmtstream_printf (stream, " [--%s[=%s]]", opt->name, arg); - else - __argp_fmtstream_printf (stream, " [--%s=%s]", opt->name, arg); - } + { + arg = dgettext (domain, arg); + if (flags & OPTION_ARG_OPTIONAL) + __argp_fmtstream_printf (stream, " [--%s[=%s]]", opt->name, arg); + else + __argp_fmtstream_printf (stream, " [--%s=%s]", opt->name, arg); + } else - __argp_fmtstream_printf (stream, " [--%s]", opt->name); + __argp_fmtstream_printf (stream, " [--%s]", opt->name); } return 0; @@ -1351,29 +1351,29 @@ hol_usage (struct hol *hol, argp_fmtstream_t stream) /* First we put a list of short options without arguments. */ for (entry = hol->entries, nentries = hol->num_entries - ; nentries > 0 - ; entry++, nentries--) - hol_entry_short_iterate (entry, add_argless_short_opt, - entry->argp->argp_domain, &snao_end); + ; nentries > 0 + ; entry++, nentries--) + hol_entry_short_iterate (entry, add_argless_short_opt, + entry->argp->argp_domain, &snao_end); if (snao_end > short_no_arg_opts) - { - *snao_end++ = 0; - __argp_fmtstream_printf (stream, " [-%s]", short_no_arg_opts); - } + { + *snao_end++ = 0; + __argp_fmtstream_printf (stream, " [-%s]", short_no_arg_opts); + } /* Now a list of short options *with* arguments. */ for (entry = hol->entries, nentries = hol->num_entries - ; nentries > 0 - ; entry++, nentries--) - hol_entry_short_iterate (entry, usage_argful_short_opt, - entry->argp->argp_domain, stream); + ; nentries > 0 + ; entry++, nentries--) + hol_entry_short_iterate (entry, usage_argful_short_opt, + entry->argp->argp_domain, stream); /* Finally, a list of long options (whew!). */ for (entry = hol->entries, nentries = hol->num_entries - ; nentries > 0 - ; entry++, nentries--) - hol_entry_long_iterate (entry, usage_long_opt, - entry->argp->argp_domain, stream); + ; nentries > 0 + ; entry++, nentries--) + hol_entry_long_iterate (entry, usage_long_opt, + entry->argp->argp_domain, stream); } } @@ -1387,15 +1387,15 @@ argp_hol (const struct argp *argp, struct hol_cluster *cluster) if (child) while (child->argp) { - struct hol_cluster *child_cluster = - ((child->group || child->header) - /* Put CHILD->argp within its own cluster. */ - ? hol_add_cluster (hol, child->group, child->header, - child - argp->children, cluster, argp) - /* Just merge it into the parent's cluster. */ - : cluster); - hol_append (hol, argp_hol (child->argp, child_cluster)) ; - child++; + struct hol_cluster *child_cluster = + ((child->group || child->header) + /* Put CHILD->argp within its own cluster. */ + ? hol_add_cluster (hol, child->group, child->header, + child - argp->children, cluster, argp) + /* Just merge it into the parent's cluster. */ + : cluster); + hol_append (hol, argp_hol (child->argp, child_cluster)) ; + child++; } return hol; } @@ -1425,7 +1425,7 @@ argp_args_levels (const struct argp *argp) returned as long as there are more patterns to output. */ static int argp_args_usage (const struct argp *argp, const struct argp_state *state, - char **levels, int advance, argp_fmtstream_t stream) + char **levels, int advance, argp_fmtstream_t stream) { char *our_level = *levels; int multiple = 0; @@ -1438,24 +1438,24 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state, const char *cp = fdoc; nl = __strchrnul (cp, '\n'); if (*nl != '\0') - /* This is a `multi-level' args doc; advance to the correct position - as determined by our state in LEVELS, and update LEVELS. */ - { - int i; - multiple = 1; - for (i = 0; i < *our_level; i++) - cp = nl + 1, nl = __strchrnul (cp, '\n'); - (*levels)++; - } + /* This is a `multi-level' args doc; advance to the correct position + as determined by our state in LEVELS, and update LEVELS. */ + { + int i; + multiple = 1; + for (i = 0; i < *our_level; i++) + cp = nl + 1, nl = __strchrnul (cp, '\n'); + (*levels)++; + } /* Manually do line wrapping so that it (probably) won't get wrapped at - any embedded spaces. */ + any embedded spaces. */ space (stream, 1 + nl - cp); __argp_fmtstream_write (stream, cp, nl - cp); } if (fdoc && fdoc != tdoc) - free ((char *)fdoc); /* Free user's modified doc string. */ + free ((char *)fdoc); /* Free user's modified doc string. */ if (child) while (child->argp) @@ -1465,14 +1465,14 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state, { /* Need to increment our level. */ if (*nl) - /* There's more we can do here. */ - { - (*our_level)++; - advance = 0; /* Our parent shouldn't advance also. */ - } + /* There's more we can do here. */ + { + (*our_level)++; + advance = 0; /* Our parent shouldn't advance also. */ + } else if (*our_level > 0) - /* We had multiple levels, but used them up; reset to zero. */ - *our_level = 0; + /* We had multiple levels, but used them up; reset to zero. */ + *our_level = 0; } return !advance; @@ -1487,8 +1487,8 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state, occurrence is output. Returns true if anything was output. */ static int argp_doc (const struct argp *argp, const struct argp_state *state, - int post, int pre_blank, int first_only, - argp_fmtstream_t stream) + int post, int pre_blank, int first_only, + argp_fmtstream_t stream) { const char *text; const char *inp_text; @@ -1502,17 +1502,17 @@ argp_doc (const struct argp *argp, const struct argp_state *state, { char *vt = strchr (argp->doc, '\v'); if (vt) - { - if (post) - inp_text = vt + 1; - else - { - inp_text_len = vt - argp->doc; - inp_text = __strndup (argp->doc, inp_text_len); - } - } + { + if (post) + inp_text = vt + 1; + else + { + inp_text_len = vt - argp->doc; + inp_text = __strndup (argp->doc, inp_text_len); + } + } else - inp_text = post ? 0 : argp->doc; + inp_text = post ? 0 : argp->doc; trans_text = inp_text ? dgettext (argp->argp_domain, inp_text) : NULL; } else @@ -1523,10 +1523,10 @@ argp_doc (const struct argp *argp, const struct argp_state *state, { input = __argp_input (argp, state); text = - (*argp->help_filter) (post - ? ARGP_KEY_HELP_POST_DOC - : ARGP_KEY_HELP_PRE_DOC, - trans_text, input); + (*argp->help_filter) (post + ? ARGP_KEY_HELP_POST_DOC + : ARGP_KEY_HELP_PRE_DOC, + trans_text, input); } else text = (const char *) trans_text; @@ -1534,45 +1534,45 @@ argp_doc (const struct argp *argp, const struct argp_state *state, if (text) { if (pre_blank) - __argp_fmtstream_putc (stream, '\n'); + __argp_fmtstream_putc (stream, '\n'); __argp_fmtstream_puts (stream, text); if (__argp_fmtstream_point (stream) > __argp_fmtstream_lmargin (stream)) - __argp_fmtstream_putc (stream, '\n'); + __argp_fmtstream_putc (stream, '\n'); anything = 1; } if (text && text != trans_text) - free ((char *) text); /* Free TEXT returned from the help filter. */ + free ((char *) text); /* Free TEXT returned from the help filter. */ if (inp_text && inp_text_len) - free ((char *) inp_text); /* We copied INP_TEXT, so free it now. */ + free ((char *) inp_text); /* We copied INP_TEXT, so free it now. */ if (post && argp->help_filter) /* Now see if we have to output a ARGP_KEY_HELP_EXTRA text. */ { text = (*argp->help_filter) (ARGP_KEY_HELP_EXTRA, 0, input); if (text) - { - if (anything || pre_blank) - __argp_fmtstream_putc (stream, '\n'); - __argp_fmtstream_puts (stream, text); - free ((char *) text); - if (__argp_fmtstream_point (stream) - > __argp_fmtstream_lmargin (stream)) - __argp_fmtstream_putc (stream, '\n'); - anything = 1; - } + { + if (anything || pre_blank) + __argp_fmtstream_putc (stream, '\n'); + __argp_fmtstream_puts (stream, text); + free ((char *) text); + if (__argp_fmtstream_point (stream) + > __argp_fmtstream_lmargin (stream)) + __argp_fmtstream_putc (stream, '\n'); + anything = 1; + } } if (child) while (child->argp && !(first_only && anything)) anything |= - argp_doc ((child++)->argp, state, - post, anything || pre_blank, first_only, - stream); + argp_doc ((child++)->argp, state, + post, anything || pre_blank, first_only, + stream); return anything; } @@ -1585,7 +1585,7 @@ static void _help (const struct argp *argp, const struct argp_state *state, FILE *stream, unsigned flags, char *name) { - int anything = 0; /* Whether we've output anything. */ + int anything = 0; /* Whether we've output anything. */ struct hol *hol = 0; argp_fmtstream_t fs; @@ -1629,48 +1629,48 @@ _help (const struct argp *argp, const struct argp_state *state, FILE *stream, memset (pattern_levels, 0, num_pattern_levels); do - { - int old_lm; - int old_wm = __argp_fmtstream_set_wmargin (fs, uparams.usage_indent); - char *levels = pattern_levels; - - if (first_pattern) - __argp_fmtstream_printf (fs, "%s %s", - dgettext (argp->argp_domain, "Usage:"), - name); - else - __argp_fmtstream_printf (fs, "%s %s", - dgettext (argp->argp_domain, " or: "), - name); - - /* We set the lmargin as well as the wmargin, because hol_usage - manually wraps options with newline to avoid annoying breaks. */ - old_lm = __argp_fmtstream_set_lmargin (fs, uparams.usage_indent); - - if (flags & ARGP_HELP_SHORT_USAGE) - /* Just show where the options go. */ - { - if (hol->num_entries > 0) - __argp_fmtstream_puts (fs, dgettext (argp->argp_domain, - " [OPTION...]")); - } - else - /* Actually print the options. */ - { - hol_usage (hol, fs); - flags |= ARGP_HELP_SHORT_USAGE; /* But only do so once. */ - } - - more_patterns = argp_args_usage (argp, state, &levels, 1, fs); - - __argp_fmtstream_set_wmargin (fs, old_wm); - __argp_fmtstream_set_lmargin (fs, old_lm); - - __argp_fmtstream_putc (fs, '\n'); - anything = 1; - - first_pattern = 0; - } + { + int old_lm; + int old_wm = __argp_fmtstream_set_wmargin (fs, uparams.usage_indent); + char *levels = pattern_levels; + + if (first_pattern) + __argp_fmtstream_printf (fs, "%s %s", + dgettext (argp->argp_domain, "Usage:"), + name); + else + __argp_fmtstream_printf (fs, "%s %s", + dgettext (argp->argp_domain, " or: "), + name); + + /* We set the lmargin as well as the wmargin, because hol_usage + manually wraps options with newline to avoid annoying breaks. */ + old_lm = __argp_fmtstream_set_lmargin (fs, uparams.usage_indent); + + if (flags & ARGP_HELP_SHORT_USAGE) + /* Just show where the options go. */ + { + if (hol->num_entries > 0) + __argp_fmtstream_puts (fs, dgettext (argp->argp_domain, + " [OPTION...]")); + } + else + /* Actually print the options. */ + { + hol_usage (hol, fs); + flags |= ARGP_HELP_SHORT_USAGE; /* But only do so once. */ + } + + more_patterns = argp_args_usage (argp, state, &levels, 1, fs); + + __argp_fmtstream_set_wmargin (fs, old_wm); + __argp_fmtstream_set_lmargin (fs, old_lm); + + __argp_fmtstream_putc (fs, '\n'); + anything = 1; + + first_pattern = 0; + } while (more_patterns); } @@ -1681,7 +1681,7 @@ _help (const struct argp *argp, const struct argp_state *state, FILE *stream, { __argp_fmtstream_printf (fs, dgettext (argp->argp_domain, "\ Try `%s --help' or `%s --usage' for more information.\n"), - name, name); + name, name); anything = 1; } @@ -1690,12 +1690,12 @@ Try `%s --help' or `%s --usage' for more information.\n"), { /* Print info about all the options. */ if (hol->num_entries > 0) - { - if (anything) - __argp_fmtstream_putc (fs, '\n'); - hol_help (hol, state, fs); - anything = 1; - } + { + if (anything) + __argp_fmtstream_putc (fs, '\n'); + hol_help (hol, state, fs); + anything = 1; + } } if (flags & ARGP_HELP_POST_DOC) @@ -1705,10 +1705,10 @@ Try `%s --help' or `%s --usage' for more information.\n"), if ((flags & ARGP_HELP_BUG_ADDR) && argp_program_bug_address) { if (anything) - __argp_fmtstream_putc (fs, '\n'); + __argp_fmtstream_putc (fs, '\n'); __argp_fmtstream_printf (fs, dgettext (argp->argp_domain, - "Report bugs to %s.\n"), - argp_program_bug_address); + "Report bugs to %s.\n"), + argp_program_bug_address); anything = 1; } @@ -1725,7 +1725,7 @@ Try `%s --help' or `%s --usage' for more information.\n"), /* Output a usage message for ARGP to STREAM. FLAGS are from the set ARGP_HELP_*. NAME is what to use wherever a `program name' is needed. */ void __argp_help (const struct argp *argp, FILE *stream, - unsigned flags, char *name) + unsigned flags, char *name) { struct argp_state state; memset (&state, 0, sizeof state); @@ -1762,18 +1762,18 @@ __argp_state_help (const struct argp_state *state, FILE *stream, unsigned flags) if ((!state || ! (state->flags & ARGP_NO_ERRS)) && stream) { if (state && (state->flags & ARGP_LONG_ONLY)) - flags |= ARGP_HELP_LONG_ONLY; + flags |= ARGP_HELP_LONG_ONLY; _help (state ? state->root_argp : 0, state, stream, flags, - state ? state->name : __argp_short_program_name ()); + state ? state->name : __argp_short_program_name ()); if (!state || ! (state->flags & ARGP_NO_EXIT)) - { - if (flags & ARGP_HELP_EXIT_ERR) - exit (argp_err_exit_status); - if (flags & ARGP_HELP_EXIT_OK) - exit (0); - } + { + if (flags & ARGP_HELP_EXIT_ERR) + exit (argp_err_exit_status); + if (flags & ARGP_HELP_EXIT_OK) + exit (0); + } } } #ifdef weak_alias @@ -1791,51 +1791,51 @@ __argp_error (const struct argp_state *state, const char *fmt, ...) FILE *stream = state ? state->err_stream : stderr; if (stream) - { - va_list ap; + { + va_list ap; #if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE) - __flockfile (stream); + __flockfile (stream); #endif - va_start (ap, fmt); + va_start (ap, fmt); #ifdef USE_IN_LIBIO - if (_IO_fwide (stream, 0) > 0) - { - char *buf; + if (_IO_fwide (stream, 0) > 0) + { + char *buf; - if (__asprintf (&buf, fmt, ap) < 0) - buf = NULL; + if (__asprintf (&buf, fmt, ap) < 0) + buf = NULL; - __fwprintf (stream, L"%s: %s\n", - state ? state->name : __argp_short_program_name (), - buf); + __fwprintf (stream, L"%s: %s\n", + state ? state->name : __argp_short_program_name (), + buf); - free (buf); - } - else + free (buf); + } + else #endif - { - fputs_unlocked (state - ? state->name : __argp_short_program_name (), - stream); - putc_unlocked (':', stream); - putc_unlocked (' ', stream); + { + fputs_unlocked (state + ? state->name : __argp_short_program_name (), + stream); + putc_unlocked (':', stream); + putc_unlocked (' ', stream); - vfprintf (stream, fmt, ap); + vfprintf (stream, fmt, ap); - putc_unlocked ('\n', stream); - } + putc_unlocked ('\n', stream); + } - __argp_state_help (state, stream, ARGP_HELP_STD_ERR); + __argp_state_help (state, stream, ARGP_HELP_STD_ERR); - va_end (ap); + va_end (ap); #if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE) - __funlockfile (stream); + __funlockfile (stream); #endif - } + } } } #ifdef weak_alias @@ -1852,100 +1852,100 @@ weak_alias (__argp_error, argp_error) parsing but don't reflect a (syntactic) problem with the input. */ void __argp_failure (const struct argp_state *state, int status, int errnum, - const char *fmt, ...) + const char *fmt, ...) { if (!state || !(state->flags & ARGP_NO_ERRS)) { FILE *stream = state ? state->err_stream : stderr; if (stream) - { + { #if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE) - __flockfile (stream); + __flockfile (stream); #endif #ifdef USE_IN_LIBIO - if (_IO_fwide (stream, 0) > 0) - __fwprintf (stream, L"%s", - state ? state->name : __argp_short_program_name ()); - else + if (_IO_fwide (stream, 0) > 0) + __fwprintf (stream, L"%s", + state ? state->name : __argp_short_program_name ()); + else #endif - fputs_unlocked (state - ? state->name : __argp_short_program_name (), - stream); + fputs_unlocked (state + ? state->name : __argp_short_program_name (), + stream); - if (fmt) - { - va_list ap; + if (fmt) + { + va_list ap; - va_start (ap, fmt); + va_start (ap, fmt); #ifdef USE_IN_LIBIO - if (_IO_fwide (stream, 0) > 0) - { - char *buf; + if (_IO_fwide (stream, 0) > 0) + { + char *buf; - if (__asprintf (&buf, fmt, ap) < 0) - buf = NULL; + if (__asprintf (&buf, fmt, ap) < 0) + buf = NULL; - __fwprintf (stream, L": %s", buf); + __fwprintf (stream, L": %s", buf); - free (buf); - } - else + free (buf); + } + else #endif - { - putc_unlocked (':', stream); - putc_unlocked (' ', stream); + { + putc_unlocked (':', stream); + putc_unlocked (' ', stream); - vfprintf (stream, fmt, ap); - } + vfprintf (stream, fmt, ap); + } - va_end (ap); - } + va_end (ap); + } - if (errnum) - { - char buf[200]; + if (errnum) + { + char buf[200]; #ifdef USE_IN_LIBIO - if (_IO_fwide (stream, 0) > 0) - __fwprintf (stream, L": %s", - __strerror_r (errnum, buf, sizeof (buf))); - else + if (_IO_fwide (stream, 0) > 0) + __fwprintf (stream, L": %s", + __strerror_r (errnum, buf, sizeof (buf))); + else #endif - { - char const *s = NULL; - putc_unlocked (':', stream); - putc_unlocked (' ', stream); + { + char const *s = NULL; + putc_unlocked (':', stream); + putc_unlocked (' ', stream); #if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P) - s = __strerror_r (errnum, buf, sizeof buf); + s = __strerror_r (errnum, buf, sizeof buf); #elif HAVE_DECL_STRERROR_R - if (__strerror_r (errnum, buf, sizeof buf) == 0) - s = buf; + if (__strerror_r (errnum, buf, sizeof buf) == 0) + s = buf; #endif #if !_LIBC - if (! s && ! (s = strerror (errnum))) - s = dgettext (state->root_argp->argp_domain, - "Unknown system error"); + if (! s && ! (s = strerror (errnum))) + s = dgettext (state->root_argp->argp_domain, + "Unknown system error"); #endif - fputs (s, stream); - } - } + fputs (s, stream); + } + } #ifdef USE_IN_LIBIO - if (_IO_fwide (stream, 0) > 0) - putwc_unlocked (L'\n', stream); - else + if (_IO_fwide (stream, 0) > 0) + putwc_unlocked (L'\n', stream); + else #endif - putc_unlocked ('\n', stream); + putc_unlocked ('\n', stream); #if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE) - __funlockfile (stream); + __funlockfile (stream); #endif - if (status && (!state || !(state->flags & ARGP_NO_EXIT))) - exit (status); - } + if (status && (!state || !(state->flags & ARGP_NO_EXIT))) + exit (status); + } } } #ifdef weak_alias diff --git a/lib/argp-namefrob.h b/gnu/argp-namefrob.h similarity index 94% rename from lib/argp-namefrob.h rename to gnu/argp-namefrob.h index fcb082ad2e11bc774df07c8c2de675deab135343..67d36b9c96477cf21eb8019a52e1102f524719c0 100644 --- a/lib/argp-namefrob.h +++ b/gnu/argp-namefrob.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Name frobnication for compiling argp outside of glibc - Copyright (C) 1997, 2003, 2007 Free Software Foundation, Inc. + Copyright (C) 1997, 2003, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -147,11 +149,11 @@ extern char *__argp_base_name(const char *arg); #else # include "dirname.h" -# define __argp_base_name base_name +# define __argp_base_name last_component #endif #if defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME -# define __argp_short_program_name() (program_invocation_short_name) +# define __argp_short_program_name() (program_invocation_short_name) #else extern char *__argp_short_program_name (void); #endif diff --git a/lib/argp-parse.c b/gnu/argp-parse.c similarity index 63% rename from lib/argp-parse.c rename to gnu/argp-parse.c index 317ce21b36b4a0b82008c11a58d90bda7d1c20d4..eaaad73e91c25182263bd645d8cd8859f0d2b50c 100644 --- a/lib/argp-parse.c +++ b/gnu/argp-parse.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Hierarchial argument parsing, layered over getopt - Copyright (C) 1995-2000, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1995-2000, 2002-2004, 2009-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -46,9 +48,9 @@ #define alignto(n, d) ((((n) + (d) - 1) / (d)) * (d)) /* Getopt return values. */ -#define KEY_END (-1) /* The end of the options. */ -#define KEY_ARG 1 /* A non-option argument. */ -#define KEY_ERR '?' /* An error parsing the options. */ +#define KEY_END (-1) /* The end of the options. */ +#define KEY_ARG 1 /* A non-option argument. */ +#define KEY_ERR '?' /* An error parsing the options. */ /* The meta-argument used to prevent any further arguments being interpreted as options. */ @@ -72,16 +74,16 @@ it to 0 yourself. */ static volatile int _argp_hang; -#define OPT_PROGNAME -2 -#define OPT_USAGE -3 -#define OPT_HANG -4 +#define OPT_PROGNAME -2 +#define OPT_USAGE -3 +#define OPT_HANG -4 static const struct argp_option argp_default_options[] = { - {"help", '?', 0, 0, N_("give this help list"), -1}, - {"usage", OPT_USAGE, 0, 0, N_("give a short usage message"), 0}, + {"help", '?', 0, 0, N_("give this help list"), -1}, + {"usage", OPT_USAGE, 0, 0, N_("give a short usage message"), 0}, {"program-name",OPT_PROGNAME,N_("NAME"), OPTION_HIDDEN, N_("set the program name"), 0}, - {"HANG", OPT_HANG, N_("SECS"), OPTION_ARG_OPTIONAL | OPTION_HIDDEN, + {"HANG", OPT_HANG, N_("SECS"), OPTION_ARG_OPTIONAL | OPTION_HIDDEN, N_("hang for SECS seconds (default 3600)"), 0}, {NULL, 0, 0, 0, NULL, 0} }; @@ -96,16 +98,16 @@ argp_default_parser (int key, char *arg, struct argp_state *state) break; case OPT_USAGE: __argp_state_help (state, state->out_stream, - ARGP_HELP_USAGE | ARGP_HELP_EXIT_OK); + ARGP_HELP_USAGE | ARGP_HELP_EXIT_OK); break; - case OPT_PROGNAME: /* Set the program name. */ + case OPT_PROGNAME: /* Set the program name. */ #if defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_NAME program_invocation_name = arg; #endif /* [Note that some systems only have PROGRAM_INVOCATION_SHORT_NAME (aka - __PROGNAME), in which case, PROGRAM_INVOCATION_NAME is just defined - to be that, so we have to be a bit careful here.] */ + __PROGNAME), in which case, PROGRAM_INVOCATION_NAME is just defined + to be that, so we have to be a bit careful here.] */ /* Update what we use for messages. */ state->name = __argp_base_name (arg); @@ -115,16 +117,16 @@ argp_default_parser (int key, char *arg, struct argp_state *state) #endif if ((state->flags & (ARGP_PARSE_ARGV0 | ARGP_NO_ERRS)) - == ARGP_PARSE_ARGV0) - /* Update what getopt uses too. */ - state->argv[0] = arg; + == ARGP_PARSE_ARGV0) + /* Update what getopt uses too. */ + state->argv[0] = arg; break; case OPT_HANG: _argp_hang = atoi (arg ? arg : "3600"); while (_argp_hang-- > 0) - __sleep (1); + __sleep (1); break; default: @@ -139,7 +141,7 @@ static const struct argp argp_default_argp = static const struct argp_option argp_version_options[] = { - {"version", 'V', 0, 0, N_("print program version"), -1}, + {"version", 'V', 0, 0, N_("print program version"), -1}, {NULL, 0, 0, 0, NULL, 0} }; @@ -150,14 +152,14 @@ argp_version_parser (int key, char *arg, struct argp_state *state) { case 'V': if (argp_program_version_hook) - (*argp_program_version_hook) (state->out_stream, state); + (*argp_program_version_hook) (state->out_stream, state); else if (argp_program_version) - fprintf (state->out_stream, "%s\n", argp_program_version); + fprintf (state->out_stream, "%s\n", argp_program_version); else - __argp_error (state, dgettext (state->root_argp->argp_domain, - "(PROGRAM ERROR) No version known!?")); + __argp_error (state, dgettext (state->root_argp->argp_domain, + "(PROGRAM ERROR) No version known!?")); if (! (state->flags & ARGP_NO_EXIT)) - exit (0); + exit (0); break; default: return EBADKEY; @@ -208,7 +210,7 @@ struct group /* This group's parser's parent's group. */ struct group *parent; - unsigned parent_index; /* And the our position in the parent. */ + unsigned parent_index; /* And the our position in the parent. */ /* These fields are swapped into and out of the state structure when calling this group's parser. */ @@ -286,8 +288,8 @@ struct parser_convert_state next unused group entry. CVT holds state used during the conversion. */ static struct group * convert_options (const struct argp *argp, - struct group *parent, unsigned parent_index, - struct group *group, struct parser_convert_state *cvt) + struct group *parent, unsigned parent_index, + struct group *group, struct parser_convert_state *cvt) { /* REAL is the most recent non-alias value of OPT. */ const struct argp_option *real = argp->options; @@ -298,55 +300,55 @@ convert_options (const struct argp *argp, const struct argp_option *opt; if (real) - for (opt = real; !__option_is_end (opt); opt++) - { - if (! (opt->flags & OPTION_ALIAS)) - /* OPT isn't an alias, so we can use values from it. */ - real = opt; - - if (! (real->flags & OPTION_DOC)) - /* A real option (not just documentation). */ - { - if (__option_is_short (opt)) - /* OPT can be used as a short option. */ - { - *cvt->short_end++ = opt->key; - if (real->arg) - { - *cvt->short_end++ = ':'; - if (real->flags & OPTION_ARG_OPTIONAL) - *cvt->short_end++ = ':'; - } - *cvt->short_end = '\0'; /* keep 0 terminated */ - } - - if (opt->name - && find_long_option (cvt->parser->long_opts, opt->name) < 0) - /* OPT can be used as a long option. */ - { - cvt->long_end->name = opt->name; - cvt->long_end->has_arg = - (real->arg - ? (real->flags & OPTION_ARG_OPTIONAL - ? optional_argument - : required_argument) - : no_argument); - cvt->long_end->flag = 0; - /* we add a disambiguating code to all the user's - values (which is removed before we actually call - the function to parse the value); this means that - the user loses use of the high 8 bits in all his - values (the sign of the lower bits is preserved - however)... */ - cvt->long_end->val = - ((opt->key | real->key) & USER_MASK) - + (((group - cvt->parser->groups) + 1) << USER_BITS); - - /* Keep the LONG_OPTS list terminated. */ - (++cvt->long_end)->name = NULL; - } - } - } + for (opt = real; !__option_is_end (opt); opt++) + { + if (! (opt->flags & OPTION_ALIAS)) + /* OPT isn't an alias, so we can use values from it. */ + real = opt; + + if (! (real->flags & OPTION_DOC)) + /* A real option (not just documentation). */ + { + if (__option_is_short (opt)) + /* OPT can be used as a short option. */ + { + *cvt->short_end++ = opt->key; + if (real->arg) + { + *cvt->short_end++ = ':'; + if (real->flags & OPTION_ARG_OPTIONAL) + *cvt->short_end++ = ':'; + } + *cvt->short_end = '\0'; /* keep 0 terminated */ + } + + if (opt->name + && find_long_option (cvt->parser->long_opts, opt->name) < 0) + /* OPT can be used as a long option. */ + { + cvt->long_end->name = opt->name; + cvt->long_end->has_arg = + (real->arg + ? (real->flags & OPTION_ARG_OPTIONAL + ? optional_argument + : required_argument) + : no_argument); + cvt->long_end->flag = 0; + /* we add a disambiguating code to all the user's + values (which is removed before we actually call + the function to parse the value); this means that + the user loses use of the high 8 bits in all his + values (the sign of the lower bits is preserved + however)... */ + cvt->long_end->val = + ((opt->key ? opt->key : real->key) & USER_MASK) + + (((group - cvt->parser->groups) + 1) << USER_BITS); + + /* Keep the LONG_OPTS list terminated. */ + (++cvt->long_end)->name = NULL; + } + } + } group->parser = argp->parser; group->argp = argp; @@ -359,15 +361,15 @@ convert_options (const struct argp *argp, group->child_inputs = 0; if (children) - /* Assign GROUP's CHILD_INPUTS field some space from + /* Assign GROUP's CHILD_INPUTS field some space from CVT->child_inputs_end.*/ - { - unsigned num_children = 0; - while (children[num_children].argp) - num_children++; - group->child_inputs = cvt->child_inputs_end; - cvt->child_inputs_end += num_children; - } + { + unsigned num_children = 0; + while (children[num_children].argp) + num_children++; + group->child_inputs = cvt->child_inputs_end; + cvt->child_inputs_end += num_children; + } parent = group++; } @@ -378,8 +380,8 @@ convert_options (const struct argp *argp, { unsigned index = 0; while (children->argp) - group = - convert_options (children++->argp, parent, index++, group, cvt); + group = + convert_options (children++->argp, parent, index++, group, cvt); } return group; @@ -415,10 +417,10 @@ parser_convert (struct parser *parser, const struct argp *argp, int flags) /* Lengths of various parser fields which we will allocated. */ struct parser_sizes { - size_t short_len; /* Getopt short options string. */ - size_t long_len; /* Getopt long options vector. */ - size_t num_groups; /* Group structures we allocate. */ - size_t num_child_inputs; /* Child input slots. */ + size_t short_len; /* Getopt short options string. */ + size_t long_len; /* Getopt long options vector. */ + size_t num_groups; /* Group structures we allocate. */ + size_t num_child_inputs; /* Child input slots. */ }; /* For ARGP, increments the NUM_GROUPS field in SZS by the total number of @@ -435,27 +437,27 @@ calc_sizes (const struct argp *argp, struct parser_sizes *szs) { szs->num_groups++; if (opt) - { - int num_opts = 0; - while (!__option_is_end (opt++)) - num_opts++; - szs->short_len += num_opts * 3; /* opt + up to 2 `:'s */ - szs->long_len += num_opts; - } + { + int num_opts = 0; + while (!__option_is_end (opt++)) + num_opts++; + szs->short_len += num_opts * 3; /* opt + up to 2 `:'s */ + szs->long_len += num_opts; + } } if (child) while (child->argp) { - calc_sizes ((child++)->argp, szs); - szs->num_child_inputs++; + calc_sizes ((child++)->argp, szs); + szs->num_child_inputs++; } } /* Initializes PARSER to parse ARGP in a manner described by FLAGS. */ static error_t parser_init (struct parser *parser, const struct argp *argp, - int argc, char **argv, int flags, void *input) + int argc, char **argv, int flags, void *input) { error_t err = 0; struct group *group; @@ -512,7 +514,7 @@ parser_init (struct parser *parser, const struct argp *argp, parser->state.flags = flags; parser->state.err_stream = stderr; parser->state.out_stream = stdout; - parser->state.next = 0; /* Tell getopt to initialize. */ + parser->state.next = 0; /* Tell getopt to initialize. */ parser->state.pstate = parser; parser->try_getopt = 1; @@ -526,20 +528,20 @@ parser_init (struct parser *parser, const struct argp *argp, group++) { if (group->parent) - /* If a child parser, get the initial input value from the parent. */ - group->input = group->parent->child_inputs[group->parent_index]; + /* If a child parser, get the initial input value from the parent. */ + group->input = group->parent->child_inputs[group->parent_index]; if (!group->parser - && group->argp->children && group->argp->children->argp) - /* For the special case where no parsing function is supplied for an - argp, propagate its input to its first child, if any (this just - makes very simple wrapper argps more convenient). */ - group->child_inputs[0] = group->input; + && group->argp->children && group->argp->children->argp) + /* For the special case where no parsing function is supplied for an + argp, propagate its input to its first child, if any (this just + makes very simple wrapper argps more convenient). */ + group->child_inputs[0] = group->input; err = group_parse (group, &parser->state, ARGP_KEY_INIT, 0); } if (err == EBADKEY) - err = 0; /* Some parser didn't understand. */ + err = 0; /* Some parser didn't understand. */ if (err) return err; @@ -548,12 +550,12 @@ parser_init (struct parser *parser, const struct argp *argp, { parser->opt_data.opterr = 0; if (parser->state.flags & ARGP_PARSE_ARGV0) - /* getopt always skips ARGV[0], so we have to fake it out. As long - as OPTERR is 0, then it shouldn't actually try to access it. */ - parser->state.argv--, parser->state.argc++; + /* getopt always skips ARGV[0], so we have to fake it out. As long + as OPTERR is 0, then it shouldn't actually try to access it. */ + parser->state.argv--, parser->state.argc++; } else - parser->opt_data.opterr = 1; /* Print error messages. */ + parser->opt_data.opterr = 1; /* Print error messages. */ if (parser->state.argv == argv && argv[0]) /* There's an argv[0]; use it for messages. */ @@ -567,7 +569,7 @@ parser_init (struct parser *parser, const struct argp *argp, /* Free any storage consumed by PARSER (but not PARSER itself). */ static error_t parser_finalize (struct parser *parser, - error_t err, int arg_ebadkey, int *end_index) + error_t err, int arg_ebadkey, int *end_index) { struct group *group; @@ -578,40 +580,40 @@ parser_finalize (struct parser *parser, if (! err) { if (parser->state.next == parser->state.argc) - /* We successfully parsed all arguments! Call all the parsers again, - just a few more times... */ - { - for (group = parser->groups; - group < parser->egroup && (!err || err==EBADKEY); - group++) - if (group->args_processed == 0) - err = group_parse (group, &parser->state, ARGP_KEY_NO_ARGS, 0); - for (group = parser->egroup - 1; - group >= parser->groups && (!err || err==EBADKEY); - group--) - err = group_parse (group, &parser->state, ARGP_KEY_END, 0); - - if (err == EBADKEY) - err = 0; /* Some parser didn't understand. */ - - /* Tell the user that all arguments are parsed. */ - if (end_index) - *end_index = parser->state.next; - } + /* We successfully parsed all arguments! Call all the parsers again, + just a few more times... */ + { + for (group = parser->groups; + group < parser->egroup && (!err || err==EBADKEY); + group++) + if (group->args_processed == 0) + err = group_parse (group, &parser->state, ARGP_KEY_NO_ARGS, 0); + for (group = parser->egroup - 1; + group >= parser->groups && (!err || err==EBADKEY); + group--) + err = group_parse (group, &parser->state, ARGP_KEY_END, 0); + + if (err == EBADKEY) + err = 0; /* Some parser didn't understand. */ + + /* Tell the user that all arguments are parsed. */ + if (end_index) + *end_index = parser->state.next; + } else if (end_index) - /* Return any remaining arguments to the user. */ - *end_index = parser->state.next; + /* Return any remaining arguments to the user. */ + *end_index = parser->state.next; else - /* No way to return the remaining arguments, they must be bogus. */ - { - if (!(parser->state.flags & ARGP_NO_ERRS) - && parser->state.err_stream) - fprintf (parser->state.err_stream, - dgettext (parser->argp->argp_domain, - "%s: Too many arguments\n"), - parser->state.name); - err = EBADKEY; - } + /* No way to return the remaining arguments, they must be bogus. */ + { + if (!(parser->state.flags & ARGP_NO_ERRS) + && parser->state.err_stream) + fprintf (parser->state.err_stream, + dgettext (parser->argp->argp_domain, + "%s: Too many arguments\n"), + parser->state.name); + err = EBADKEY; + } } /* Okay, we're all done, with either an error or success; call the parsers @@ -621,27 +623,27 @@ parser_finalize (struct parser *parser, { /* Maybe print an error message. */ if (err == EBADKEY) - /* An appropriate message describing what the error was should have - been printed earlier. */ - __argp_state_help (&parser->state, parser->state.err_stream, - ARGP_HELP_STD_ERR); + /* An appropriate message describing what the error was should have + been printed earlier. */ + __argp_state_help (&parser->state, parser->state.err_stream, + ARGP_HELP_STD_ERR); /* Since we didn't exit, give each parser an error indication. */ for (group = parser->groups; group < parser->egroup; group++) - group_parse (group, &parser->state, ARGP_KEY_ERROR, 0); + group_parse (group, &parser->state, ARGP_KEY_ERROR, 0); } else /* Notify parsers of success, and propagate back values from parsers. */ { /* We pass over the groups in reverse order so that child groups are - given a chance to do there processing before passing back a value to - the parent. */ + given a chance to do there processing before passing back a value to + the parent. */ for (group = parser->egroup - 1 - ; group >= parser->groups && (!err || err == EBADKEY) - ; group--) - err = group_parse (group, &parser->state, ARGP_KEY_SUCCESS, 0); + ; group >= parser->groups && (!err || err == EBADKEY) + ; group--) + err = group_parse (group, &parser->state, ARGP_KEY_SUCCESS, 0); if (err == EBADKEY) - err = 0; /* Some parser didn't understand. */ + err = 0; /* Some parser didn't understand. */ } /* Call parsers once more, to do any final cleanup. Errors are ignored. */ @@ -669,42 +671,42 @@ parser_parse_arg (struct parser *parser, char *val) int index = --parser->state.next; error_t err = EBADKEY; struct group *group; - int key = 0; /* Which of ARGP_KEY_ARG[S] we used. */ + int key = 0; /* Which of ARGP_KEY_ARG[S] we used. */ /* Try to parse the argument in each parser. */ for (group = parser->groups ; group < parser->egroup && err == EBADKEY ; group++) { - parser->state.next++; /* For ARGP_KEY_ARG, consume the arg. */ + parser->state.next++; /* For ARGP_KEY_ARG, consume the arg. */ key = ARGP_KEY_ARG; err = group_parse (group, &parser->state, key, val); if (err == EBADKEY) - /* This parser doesn't like ARGP_KEY_ARG; try ARGP_KEY_ARGS instead. */ - { - parser->state.next--; /* For ARGP_KEY_ARGS, put back the arg. */ - key = ARGP_KEY_ARGS; - err = group_parse (group, &parser->state, key, 0); - } + /* This parser doesn't like ARGP_KEY_ARG; try ARGP_KEY_ARGS instead. */ + { + parser->state.next--; /* For ARGP_KEY_ARGS, put back the arg. */ + key = ARGP_KEY_ARGS; + err = group_parse (group, &parser->state, key, 0); + } } if (! err) { if (key == ARGP_KEY_ARGS) - /* The default for ARGP_KEY_ARGS is to assume that if NEXT isn't - changed by the user, *all* arguments should be considered - consumed. */ - parser->state.next = parser->state.argc; + /* The default for ARGP_KEY_ARGS is to assume that if NEXT isn't + changed by the user, *all* arguments should be considered + consumed. */ + parser->state.next = parser->state.argc; if (parser->state.next > index) - /* Remember that we successfully processed a non-option - argument -- but only if the user hasn't gotten tricky and set - the clock back. */ - (--group)->args_processed += (parser->state.next - index); + /* Remember that we successfully processed a non-option + argument -- but only if the user hasn't gotten tricky and set + the clock back. */ + (--group)->args_processed += (parser->state.next - index); else - /* The user wants to reparse some args, give getopt another try. */ - parser->try_getopt = 1; + /* The user wants to reparse some args, give getopt another try. */ + parser->try_getopt = 1; } return err; @@ -729,21 +731,21 @@ parser_parse_opt (struct parser *parser, int opt, char *val) char *short_index = strchr (parser->short_opts, opt); if (short_index) - for (group = parser->groups; group < parser->egroup; group++) - if (group->short_end > short_index) - { - err = group_parse (group, &parser->state, opt, - parser->opt_data.optarg); - break; - } + for (group = parser->groups; group < parser->egroup; group++) + if (group->short_end > short_index) + { + err = group_parse (group, &parser->state, opt, + parser->opt_data.optarg); + break; + } } else /* A long option. We use shifts instead of masking for extracting the user value in order to preserve the sign. */ err = group_parse (&parser->groups[group_key - 1], &parser->state, - (opt << GROUP_BITS) >> GROUP_BITS, - parser->opt_data.optarg); + (opt << GROUP_BITS) >> GROUP_BITS, + parser->opt_data.optarg); if (err == EBADKEY) /* At least currently, an option not recognized is an error in the @@ -751,19 +753,19 @@ parser_parse_opt (struct parser *parser, int opt, char *val) with each option. */ { static const char bad_key_err[] = - N_("(PROGRAM ERROR) Option should have been recognized!?"); + N_("(PROGRAM ERROR) Option should have been recognized!?"); if (group_key == 0) - __argp_error (&parser->state, "-%c: %s", opt, - dgettext (parser->argp->argp_domain, bad_key_err)); + __argp_error (&parser->state, "-%c: %s", opt, + dgettext (parser->argp->argp_domain, bad_key_err)); else - { - struct option *long_opt = parser->long_opts; - while (long_opt->val != opt && long_opt->name) - long_opt++; - __argp_error (&parser->state, "--%s: %s", - long_opt->name ? long_opt->name : "???", - dgettext (parser->argp->argp_domain, bad_key_err)); - } + { + struct option *long_opt = parser->long_opts; + while (long_opt->val != opt && long_opt->name) + long_opt++; + __argp_error (&parser->state, "--%s: %s", + long_opt->name ? long_opt->name : "???", + dgettext (parser->argp->argp_domain, bad_key_err)); + } } return err; @@ -794,38 +796,38 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey) /* Distinguish KEY_ERR from a real option. */ parser->opt_data.optopt = KEY_END; if (parser->state.flags & ARGP_LONG_ONLY) - opt = _getopt_long_only_r (parser->state.argc, parser->state.argv, - parser->short_opts, parser->long_opts, 0, - &parser->opt_data); + opt = _getopt_long_only_r (parser->state.argc, parser->state.argv, + parser->short_opts, parser->long_opts, 0, + &parser->opt_data); else - opt = _getopt_long_r (parser->state.argc, parser->state.argv, - parser->short_opts, parser->long_opts, 0, - &parser->opt_data); + opt = _getopt_long_r (parser->state.argc, parser->state.argv, + parser->short_opts, parser->long_opts, 0, + &parser->opt_data); /* And see what getopt did. */ parser->state.next = parser->opt_data.optind; if (opt == KEY_END) - /* Getopt says there are no more options, so stop using - getopt; we'll continue if necessary on our own. */ - { - parser->try_getopt = 0; - if (parser->state.next > 1 - && strcmp (parser->state.argv[parser->state.next - 1], QUOTE) - == 0) - /* Not only is this the end of the options, but it's a - `quoted' region, which may have args that *look* like - options, so we definitely shouldn't try to use getopt past - here, whatever happens. */ - parser->state.quoted = parser->state.next; - } + /* Getopt says there are no more options, so stop using + getopt; we'll continue if necessary on our own. */ + { + parser->try_getopt = 0; + if (parser->state.next > 1 + && strcmp (parser->state.argv[parser->state.next - 1], QUOTE) + == 0) + /* Not only is this the end of the options, but it's a + `quoted' region, which may have args that *look* like + options, so we definitely shouldn't try to use getopt past + here, whatever happens. */ + parser->state.quoted = parser->state.next; + } else if (opt == KEY_ERR && parser->opt_data.optopt != KEY_END) - /* KEY_ERR can have the same value as a valid user short - option, but in the case of a real error, getopt sets OPTOPT - to the offending character, which can never be KEY_END. */ - { - *arg_ebadkey = 0; - return EBADKEY; - } + /* KEY_ERR can have the same value as a valid user short + option, but in the case of a real error, getopt sets OPTOPT + to the offending character, which can never be KEY_END. */ + { + *arg_ebadkey = 0; + return EBADKEY; + } } else opt = KEY_END; @@ -834,18 +836,18 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey) { /* We're past what getopt considers the options. */ if (parser->state.next >= parser->state.argc - || (parser->state.flags & ARGP_NO_ARGS)) - /* Indicate that we're done. */ - { - *arg_ebadkey = 1; - return EBADKEY; - } + || (parser->state.flags & ARGP_NO_ARGS)) + /* Indicate that we're done. */ + { + *arg_ebadkey = 1; + return EBADKEY; + } else - /* A non-option arg; simulate what getopt might have done. */ - { - opt = KEY_ARG; - parser->opt_data.optarg = parser->state.argv[parser->state.next++]; - } + /* A non-option arg; simulate what getopt might have done. */ + { + opt = KEY_ARG; + parser->opt_data.optarg = parser->state.argv[parser->state.next++]; + } } if (opt == KEY_ARG) @@ -867,7 +869,7 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey) returned a non-zero value, it is returned; otherwise 0 is returned. */ error_t __argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags, - int *end_index, void *input) + int *end_index, void *input) { error_t err; struct parser parser; @@ -881,11 +883,11 @@ __argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags, { #ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME if (!program_invocation_name) - program_invocation_name = argv[0]; + program_invocation_name = argv[0]; #endif #ifdef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME if (!program_invocation_short_name) - program_invocation_short_name = __argp_base_name (argv[0]); + program_invocation_short_name = __argp_base_name (argv[0]); #endif } #endif @@ -897,17 +899,17 @@ __argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags, struct argp *top_argp = alloca (sizeof (struct argp)); /* TOP_ARGP has no options, it just serves to group the user & default - argps. */ + argps. */ memset (top_argp, 0, sizeof (*top_argp)); top_argp->children = child; memset (child, 0, 4 * sizeof (struct argp_child)); if (argp) - (child++)->argp = argp; + (child++)->argp = argp; (child++)->argp = &argp_default_argp; if (argp_program_version || argp_program_version_hook) - (child++)->argp = &argp_version_argp; + (child++)->argp = &argp_version_argp; child->argp = 0; argp = top_argp; @@ -920,7 +922,7 @@ __argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags, /* Parse! */ { while (! err) - err = parser_parse_next (&parser, &arg_ebadkey); + err = parser_parse_next (&parser, &arg_ebadkey); err = parser_finalize (&parser, err, arg_ebadkey, end_index); } @@ -941,8 +943,8 @@ __argp_input (const struct argp *argp, const struct argp_state *state) struct parser *parser = state->pstate; for (group = parser->groups; group < parser->egroup; group++) - if (group->argp == argp) - return group->input; + if (group->argp == argp) + return group->input; } return 0; diff --git a/lib/argp-pin.c b/gnu/argp-pin.c similarity index 85% rename from lib/argp-pin.c rename to gnu/argp-pin.c index 6707b0dc284d58089c688296d39e64fcbcfa8814..500f9201fc9ab712b8a16a2da8bc8efac20e5bc2 100644 --- a/lib/argp-pin.c +++ b/gnu/argp-pin.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Full and short program names for argp module - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2009, 2010 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 diff --git a/lib/argp-pv.c b/gnu/argp-pv.c similarity index 63% rename from lib/argp-pv.c rename to gnu/argp-pv.c index 411f6ede70025c456c36d4ff1ac5b5e96b730d99..5a8d45d43eeffdb73a74d73d0aa4d2f91dbccb42 100644 --- a/lib/argp-pv.c +++ b/gnu/argp-pv.c @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Default definition for ARGP_PROGRAM_VERSION. - Copyright (C) 1996, 1997, 1999, 2006 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2006, 2009, 2010 Free Software Foundation, + Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -20,4 +23,14 @@ --version is added (unless the ARGP_NO_HELP flag is used), which will print this string followed by a newline and exit (unless the ARGP_NO_EXIT flag is used). Overridden by ARGP_PROGRAM_VERSION_HOOK. */ -const char *argp_program_version; +const char *argp_program_version +/* This variable should be zero-initialized. On most systems, putting it into + BSS is sufficient. Not so on MacOS X 10.3 and 10.4, see + <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html> + <http://lists.gnu.org/archive/html/bug-gnulib/2009-08/msg00096.html>. */ +#if defined __ELF__ + /* On ELF systems, variables in BSS behave well. */ +#else + = (const char *) 0 +#endif + ; diff --git a/lib/argp-pvh.c b/gnu/argp-pvh.c similarity index 88% rename from lib/argp-pvh.c rename to gnu/argp-pvh.c index 2ba037b98e701a273be08d70b66ef5f27909780a..aa7510a176f9b248df6e8897ed6de54b7f52ed23 100644 --- a/lib/argp-pvh.c +++ b/gnu/argp-pvh.c @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Default definition for ARGP_PROGRAM_VERSION_HOOK. - Copyright (C) 1996, 1997, 1999, 2004 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2004, 2009, 2010 Free Software Foundation, + Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-version-etc.c b/gnu/argp-version-etc.c new file mode 100644 index 0000000000000000000000000000000000000000..4913bf516b557428da4dd8e8ec630ae83a12e438 --- /dev/null +++ b/gnu/argp-version-etc.c @@ -0,0 +1,40 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Version hook for Argp. + Copyright (C) 2009, 2010 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/>. */ + +#include <config.h> +#include <version-etc.h> +#include <argp.h> +#include <argp-version-etc.h> + +static const char *program_canonical_name; +static const char * const *program_authors; + +static void +version_etc_hook (FILE *stream, struct argp_state *state) +{ + version_etc_ar (stream, program_canonical_name, PACKAGE_NAME, VERSION, + program_authors); +} + +void +argp_version_setup (const char *name, const char * const *authors) +{ + argp_program_version_hook = version_etc_hook; + program_canonical_name = name; + program_authors = authors; +} diff --git a/gnu/argp-version-etc.h b/gnu/argp-version-etc.h new file mode 100644 index 0000000000000000000000000000000000000000..23b6e7a9a08a9b71a63f8f7e64d0d54de2b9c789 --- /dev/null +++ b/gnu/argp-version-etc.h @@ -0,0 +1,42 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Version hook for Argp. + Copyright (C) 2009, 2010 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/>. */ + +#ifndef _ARGP_VERSION_ETC_H +#define _ARGP_VERSION_ETC_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Setup standard display of the version information for the `--version' + option. NAME is the canonical program name, and AUTHORS is a NULL- + terminated array of author names. At least one author name must be + given. + + If NAME is NULL, the package name (as given by the PACKAGE macro) + is asumed to be the name of the program. + + This function is intended to be called before argp_parse(). +*/ +extern void argp_version_setup (const char *name, const char * const *authors); + +#ifdef __cplusplus +} +#endif + +#endif /* _ARGP_VERSION_ETC_H */ diff --git a/lib/argp-xinl.c b/gnu/argp-xinl.c similarity index 86% rename from lib/argp-xinl.c rename to gnu/argp-xinl.c index 0904e9dc61874bbb85f3a5ba377fd137a9bc0213..909e1af5288afdec99e280f66ac8155230f93357 100644 --- a/lib/argp-xinl.c +++ b/gnu/argp-xinl.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Real definitions for extern inline functions in argp.h - Copyright (C) 1997, 1998, 2004 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 2004, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -25,7 +27,7 @@ #endif #ifndef __USE_EXTERN_INLINES -# define __USE_EXTERN_INLINES 1 +# define __USE_EXTERN_INLINES 1 #endif #define ARGP_EI #undef __OPTIMIZE__ diff --git a/lib/argp.h b/gnu/argp.h similarity index 84% rename from lib/argp.h rename to gnu/argp.h index 90c4528315270e84103074aa79372d04da9282f8..04e2081047d446738d6c0040ca80eed9d50d27c8 100644 --- a/lib/argp.h +++ b/gnu/argp.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Hierarchial argument parsing, layered over getopt. - Copyright (C) 1995-1999,2003-2008 Free Software Foundation, Inc. + Copyright (C) 1995-1999, 2003-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -35,15 +37,14 @@ #endif #ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || __STRICT_ANSI__ -# define __format__ format -# define __printf__ printf +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable __attribute__ only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +# define __attribute__(Spec) /* empty */ # endif #endif @@ -112,15 +113,15 @@ struct argp_option }; /* The argument associated with this option is optional. */ -#define OPTION_ARG_OPTIONAL 0x1 +#define OPTION_ARG_OPTIONAL 0x1 /* This option isn't displayed in any help messages. */ -#define OPTION_HIDDEN 0x2 +#define OPTION_HIDDEN 0x2 /* This option is an alias for the closest previous non-alias option. This means that it will be displayed in the same help entry, and will inherit fields other than NAME and KEY from the aliased option. */ -#define OPTION_ALIAS 0x4 +#define OPTION_ALIAS 0x4 /* This option isn't actually an option (and so should be ignored by the actual option parser), but rather an arbitrary piece of documentation that @@ -133,7 +134,7 @@ struct argp_option ignored, except that if the first non-whitespace character is not `-', this entry is displayed after all options (and OPTION_DOC entries with a leading `-') in the same group. */ -#define OPTION_DOC 0x8 +#define OPTION_DOC 0x8 /* This option shouldn't be included in `long' usage messages (but is still included in help messages). This is mainly intended for options that are @@ -142,27 +143,27 @@ struct argp_option if ARGS_DOC is "FOO BAR\n-x BLAH", and the `-x' option's purpose is to distinguish these two cases, -x should probably be marked OPTION_NO_USAGE. */ -#define OPTION_NO_USAGE 0x10 +#define OPTION_NO_USAGE 0x10 /* Valid only in conjunction with OPTION_DOC. This option disables translation of option name. */ #define OPTION_NO_TRANS 0x20 -struct argp; /* fwd declare this type */ -struct argp_state; /* " */ -struct argp_child; /* " */ +struct argp; /* fwd declare this type */ +struct argp_state; /* " */ +struct argp_child; /* " */ /* The type of a pointer to an argp parsing function. */ typedef error_t (*argp_parser_t) (int key, char *arg, - struct argp_state *state); + struct argp_state *state); /* What to return for unrecognized keys. For special ARGP_KEY_ keys, such returns will simply be ignored. For user keys, this error will be turned into EINVAL (if the call to argp_parse is such that errors are propagated back to the user instead of exiting); returning EINVAL itself would result in an immediate stop to parsing in *all* cases. */ -#define ARGP_ERR_UNKNOWN E2BIG /* Hurd should never need E2BIG. XXX */ +#define ARGP_ERR_UNKNOWN E2BIG /* Hurd should never need E2BIG. XXX */ /* Special values for the KEY argument to an argument parsing function. ARGP_ERR_UNKNOWN should be returned if they aren't understood. @@ -190,32 +191,32 @@ typedef error_t (*argp_parser_t) (int key, char *arg, passed, the option won't be considered processed; this is to allow you to actually modify the argument (perhaps into an option), and have it processed again. */ -#define ARGP_KEY_ARG 0 +#define ARGP_KEY_ARG 0 /* There are remaining arguments not parsed by any parser, which may be found starting at (STATE->argv + STATE->next). If success is returned, but STATE->next left untouched, it's assumed that all arguments were consume, otherwise, the parser should adjust STATE->next to reflect any arguments consumed. */ -#define ARGP_KEY_ARGS 0x1000006 +#define ARGP_KEY_ARGS 0x1000006 /* There are no more command line arguments at all. */ -#define ARGP_KEY_END 0x1000001 +#define ARGP_KEY_END 0x1000001 /* Because it's common to want to do some special processing if there aren't any non-option args, user parsers are called with this key if they didn't successfully process any non-option arguments. Called just before ARGP_KEY_END (where more general validity checks on previously parsed arguments can take place). */ -#define ARGP_KEY_NO_ARGS 0x1000002 +#define ARGP_KEY_NO_ARGS 0x1000002 /* Passed in before any parsing is done. Afterwards, the values of each element of the CHILD_INPUT field, if any, in the state structure is copied to each child's state to be the initial value of the INPUT field. */ -#define ARGP_KEY_INIT 0x1000003 +#define ARGP_KEY_INIT 0x1000003 /* Use after all other keys, including SUCCESS & END. */ -#define ARGP_KEY_FINI 0x1000007 +#define ARGP_KEY_FINI 0x1000007 /* Passed in when parsing has successfully been completed (even if there are still arguments remaining). */ -#define ARGP_KEY_SUCCESS 0x1000004 +#define ARGP_KEY_SUCCESS 0x1000004 /* Passed in if an error occurs. */ -#define ARGP_KEY_ERROR 0x1000005 +#define ARGP_KEY_ERROR 0x1000005 /* An argp structure contains a set of options declarations, a function to deal with parsing one, documentation string, a possible vector of child @@ -279,15 +280,15 @@ struct argp }; /* Possible KEY arguments to a help filter function. */ -#define ARGP_KEY_HELP_PRE_DOC 0x2000001 /* Help text preceeding options. */ -#define ARGP_KEY_HELP_POST_DOC 0x2000002 /* Help text following options. */ -#define ARGP_KEY_HELP_HEADER 0x2000003 /* Option header string. */ -#define ARGP_KEY_HELP_EXTRA 0x2000004 /* After all other documentation; - TEXT is NULL for this key. */ +#define ARGP_KEY_HELP_PRE_DOC 0x2000001 /* Help text preceeding options. */ +#define ARGP_KEY_HELP_POST_DOC 0x2000002 /* Help text following options. */ +#define ARGP_KEY_HELP_HEADER 0x2000003 /* Option header string. */ +#define ARGP_KEY_HELP_EXTRA 0x2000004 /* After all other documentation; + TEXT is NULL for this key. */ /* Explanatory note emitted when duplicate option arguments have been suppressed. */ #define ARGP_KEY_HELP_DUP_ARGS_NOTE 0x2000005 -#define ARGP_KEY_HELP_ARGS_DOC 0x2000006 /* Argument doc string. */ +#define ARGP_KEY_HELP_ARGS_DOC 0x2000006 /* Argument doc string. */ /* When an argp has a non-zero CHILDREN field, it should point to a vector of argp_child structures, each of which describes a subsidiary argp. */ @@ -356,10 +357,10 @@ struct argp_state char *name; /* Streams used when argp prints something. */ - FILE *err_stream; /* For errors; initialized to stderr. */ - FILE *out_stream; /* For information; initialized to stdout. */ + FILE *err_stream; /* For errors; initialized to stderr. */ + FILE *out_stream; /* For information; initialized to stdout. */ - void *pstate; /* Private, for use by argp. */ + void *pstate; /* Private, for use by argp. */ }; /* Flags for argp_parse (note that the defaults are those that are @@ -375,7 +376,7 @@ struct argp_state is set, ARGP_PARSE_ARGV0 is ignored, as ARGV[0] is used as the program name in the error messages. This flag implies ARGP_NO_EXIT (on the assumption that silent exiting upon errors is bad behaviour). */ -#define ARGP_NO_ERRS 0x02 +#define ARGP_NO_ERRS 0x02 /* Don't parse any non-option args. Normally non-option args are parsed by calling the parse functions with a key of ARGP_KEY_ARG, and the actual arg @@ -387,21 +388,21 @@ struct argp_state last time with a key of ARGP_KEY_END. This flag needn't normally be set, as the normal behavior is to stop parsing as soon as some argument can't be handled. */ -#define ARGP_NO_ARGS 0x04 +#define ARGP_NO_ARGS 0x04 /* Parse options and arguments in the same order they occur on the command line -- normally they're rearranged so that all options come first. */ -#define ARGP_IN_ORDER 0x08 +#define ARGP_IN_ORDER 0x08 /* Don't provide the standard long option --help, which causes usage and option help information to be output to stdout, and exit (0) called. */ -#define ARGP_NO_HELP 0x10 +#define ARGP_NO_HELP 0x10 /* Don't exit on errors (they may still result in error messages). */ -#define ARGP_NO_EXIT 0x20 +#define ARGP_NO_EXIT 0x20 /* Use the gnu getopt `long-only' rules for parsing arguments. */ -#define ARGP_LONG_ONLY 0x40 +#define ARGP_LONG_ONLY 0x40 /* Turns off any message-printing/exiting options. */ #define ARGP_SILENT (ARGP_NO_EXIT | ARGP_NO_ERRS | ARGP_NO_HELP) @@ -414,13 +415,13 @@ struct argp_state returned. This function may also call exit unless the ARGP_NO_HELP flag is set. INPUT is a pointer to a value to be passed in to the parser. */ extern error_t argp_parse (const struct argp *__restrict __argp, - int /*argc*/, char **__restrict /*argv*/, - unsigned __flags, int *__restrict __arg_index, - void *__restrict __input); + int /*argc*/, char **__restrict /*argv*/, + unsigned __flags, int *__restrict __arg_index, + void *__restrict __input); extern error_t __argp_parse (const struct argp *__restrict __argp, - int /*argc*/, char **__restrict /*argv*/, - unsigned __flags, int *__restrict __arg_index, - void *__restrict __input); + int /*argc*/, char **__restrict /*argv*/, + unsigned __flags, int *__restrict __arg_index, + void *__restrict __input); /* Global variables. */ @@ -450,8 +451,8 @@ extern const char *argp_program_version; the current parsing state, and then exits (unless the ARGP_NO_EXIT flag is used). This variable takes precedent over ARGP_PROGRAM_VERSION. */ extern void (*argp_program_version_hook) (FILE *__restrict __stream, - struct argp_state *__restrict - __state); + struct argp_state *__restrict + __state); /* If defined or set by the user program, it should point to string that is the bug-reporting address for the program. It will be printed by @@ -466,20 +467,20 @@ extern const char *argp_program_bug_address; extern error_t argp_err_exit_status; /* Flags for argp_help. */ -#define ARGP_HELP_USAGE 0x01 /* a Usage: message. */ -#define ARGP_HELP_SHORT_USAGE 0x02 /* " but don't actually print options. */ -#define ARGP_HELP_SEE 0x04 /* a `Try ... for more help' message. */ -#define ARGP_HELP_LONG 0x08 /* a long help message. */ -#define ARGP_HELP_PRE_DOC 0x10 /* doc string preceding long help. */ -#define ARGP_HELP_POST_DOC 0x20 /* doc string following long help. */ -#define ARGP_HELP_DOC (ARGP_HELP_PRE_DOC | ARGP_HELP_POST_DOC) -#define ARGP_HELP_BUG_ADDR 0x40 /* bug report address */ -#define ARGP_HELP_LONG_ONLY 0x80 /* modify output appropriately to - reflect ARGP_LONG_ONLY mode. */ +#define ARGP_HELP_USAGE 0x01 /* a Usage: message. */ +#define ARGP_HELP_SHORT_USAGE 0x02 /* " but don't actually print options. */ +#define ARGP_HELP_SEE 0x04 /* a `Try ... for more help' message. */ +#define ARGP_HELP_LONG 0x08 /* a long help message. */ +#define ARGP_HELP_PRE_DOC 0x10 /* doc string preceding long help. */ +#define ARGP_HELP_POST_DOC 0x20 /* doc string following long help. */ +#define ARGP_HELP_DOC (ARGP_HELP_PRE_DOC | ARGP_HELP_POST_DOC) +#define ARGP_HELP_BUG_ADDR 0x40 /* bug report address */ +#define ARGP_HELP_LONG_ONLY 0x80 /* modify output appropriately to + reflect ARGP_LONG_ONLY mode. */ /* These ARGP_HELP flags are only understood by argp_state_help. */ -#define ARGP_HELP_EXIT_ERR 0x100 /* Call exit(1) instead of returning. */ -#define ARGP_HELP_EXIT_OK 0x200 /* Call exit(0) instead of returning. */ +#define ARGP_HELP_EXIT_ERR 0x100 /* Call exit(1) instead of returning. */ +#define ARGP_HELP_EXIT_OK 0x200 /* Call exit(0) instead of returning. */ /* The standard thing to do after a program command line parsing error, if an error message has already been printed. */ @@ -497,11 +498,11 @@ extern error_t argp_err_exit_status; /* Output a usage message for ARGP to STREAM. FLAGS are from the set ARGP_HELP_*. */ extern void argp_help (const struct argp *__restrict __argp, - FILE *__restrict __stream, - unsigned __flags, char *__restrict __name); + FILE *__restrict __stream, + unsigned __flags, char *__restrict __name); extern void __argp_help (const struct argp *__restrict __argp, - FILE *__restrict __stream, unsigned __flags, - char *__name); + FILE *__restrict __stream, unsigned __flags, + char *__name); /* The following routines are intended to be called from within an argp parsing routine (thus taking an argp_state structure as the first @@ -514,11 +515,11 @@ extern void __argp_help (const struct argp *__restrict __argp, /* Output, if appropriate, a usage message for STATE to STREAM. FLAGS are from the set ARGP_HELP_*. */ extern void argp_state_help (const struct argp_state *__restrict __state, - FILE *__restrict __stream, - unsigned int __flags); + FILE *__restrict __stream, + unsigned int __flags); extern void __argp_state_help (const struct argp_state *__restrict __state, - FILE *__restrict __stream, - unsigned int __flags); + FILE *__restrict __stream, + unsigned int __flags); #if _LIBC || !defined __USE_EXTERN_INLINES /* Possibly output the standard usage message for ARGP to stderr and exit. */ @@ -530,10 +531,10 @@ extern void __argp_usage (const struct argp_state *__state); by the program name and `:', to stderr, and followed by a `Try ... --help' message, then exit (1). */ extern void argp_error (const struct argp_state *__restrict __state, - const char *__restrict __fmt, ...) + const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern void __argp_error (const struct argp_state *__restrict __state, - const char *__restrict __fmt, ...) + const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); /* Similar to the standard gnu error-reporting function error(), but will @@ -545,12 +546,12 @@ extern void __argp_error (const struct argp_state *__restrict __state, *parsing errors*, and the former is for other problems that occur during parsing but don't reflect a (syntactic) problem with the input. */ extern void argp_failure (const struct argp_state *__restrict __state, - int __status, int __errnum, - const char *__restrict __fmt, ...) + int __status, int __errnum, + const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 4, 5))); extern void __argp_failure (const struct argp_state *__restrict __state, - int __status, int __errnum, - const char *__restrict __fmt, ...) + int __status, int __errnum, + const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 4, 5))); #if _LIBC || !defined __USE_EXTERN_INLINES @@ -567,10 +568,10 @@ extern int __option_is_end (const struct argp_option *__opt) __THROW; /* Return the input field for ARGP in the parser corresponding to STATE; used by the help routines. */ extern void *_argp_input (const struct argp *__restrict __argp, - const struct argp_state *__restrict __state) + const struct argp_state *__restrict __state) __THROW; extern void *__argp_input (const struct argp *__restrict __argp, - const struct argp_state *__restrict __state) + const struct argp_state *__restrict __state) __THROW; #ifdef __USE_EXTERN_INLINES diff --git a/lib/asnprintf.c b/gnu/asnprintf.c similarity index 93% rename from lib/asnprintf.c rename to gnu/asnprintf.c index 754a27134c4e180aa193f431fc8db39dc2254c34..dc3dc1d447ea727ca3b27eb549703c9ab072678f 100644 --- a/lib/asnprintf.c +++ b/gnu/asnprintf.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006, 2009, 2010 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 diff --git a/gnu/asprintf.c b/gnu/asprintf.c new file mode 100644 index 0000000000000000000000000000000000000000..c507a821e61372a7f4a8e53cca30f9c921fdcd64 --- /dev/null +++ b/gnu/asprintf.c @@ -0,0 +1,42 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Formatted output to strings. + Copyright (C) 1999, 2002, 2006-2007, 2009-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#include <config.h> + +/* Specification. */ +#ifdef IN_LIBASPRINTF +# include "vasprintf.h" +#else +# include <stdio.h> +#endif + +#include <stdarg.h> + +int +asprintf (char **resultp, const char *format, ...) +{ + va_list args; + int result; + + va_start (args, format); + result = vasprintf (resultp, format, args); + va_end (args); + return result; +} diff --git a/gnu/at-func.c b/gnu/at-func.c new file mode 100644 index 0000000000000000000000000000000000000000..999c0600501c49726bdc6f03cc4ba8b96b154fd8 --- /dev/null +++ b/gnu/at-func.c @@ -0,0 +1,133 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Define an at-style functions like fstatat, unlinkat, fchownat, etc. + Copyright (C) 2006, 2009-2010 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 Jim Meyering */ + +#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ +#include "openat.h" +#include "openat-priv.h" +#include "save-cwd.h" + +#ifdef AT_FUNC_USE_F1_COND +# define CALL_FUNC(F) \ + (flag == AT_FUNC_USE_F1_COND \ + ? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS) \ + : AT_FUNC_F2 (F AT_FUNC_POST_FILE_ARGS)) +# define VALIDATE_FLAG(F) \ + if (flag & ~AT_FUNC_USE_F1_COND) \ + { \ + errno = EINVAL; \ + return FUNC_FAIL; \ + } +#else +# define CALL_FUNC(F) (AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS)) +# define VALIDATE_FLAG(F) /* empty */ +#endif + +#ifdef AT_FUNC_RESULT +# define FUNC_RESULT AT_FUNC_RESULT +#else +# define FUNC_RESULT int +#endif + +#ifdef AT_FUNC_FAIL +# define FUNC_FAIL AT_FUNC_FAIL +#else +# define FUNC_FAIL -1 +#endif + +/* Call AT_FUNC_F1 to operate on FILE, which is in the directory + open on descriptor FD. If AT_FUNC_USE_F1_COND is defined to a value, + AT_FUNC_POST_FILE_PARAM_DECLS must inlude a parameter named flag; + call AT_FUNC_F2 if FLAG is 0 or fail if FLAG contains more bits than + AT_FUNC_USE_F1_COND. Return int and fail with -1 unless AT_FUNC_RESULT + or AT_FUNC_FAIL are defined. If possible, do it without changing the + working directory. Otherwise, resort to using save_cwd/fchdir, + then AT_FUNC_F?/restore_cwd. If either the save_cwd or the restore_cwd + fails, then give a diagnostic and exit nonzero. */ +FUNC_RESULT +AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS) +{ + /* Be careful to choose names unlikely to conflict with + AT_FUNC_POST_FILE_PARAM_DECLS. */ + struct saved_cwd saved_cwd; + int saved_errno; + FUNC_RESULT err; + + VALIDATE_FLAG (flag); + + if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) + return CALL_FUNC (file); + + { + char proc_buf[OPENAT_BUFFER_SIZE]; + char *proc_file = openat_proc_name (proc_buf, fd, file); + if (proc_file) + { + FUNC_RESULT proc_result = CALL_FUNC (proc_file); + int proc_errno = errno; + if (proc_file != proc_buf) + free (proc_file); + /* If the syscall succeeds, or if it fails with an unexpected + errno value, then return right away. Otherwise, fall through + and resort to using save_cwd/restore_cwd. */ + if (FUNC_FAIL != proc_result) + return proc_result; + if (! EXPECTED_ERRNO (proc_errno)) + { + errno = proc_errno; + return proc_result; + } + } + } + + if (save_cwd (&saved_cwd) != 0) + openat_save_fail (errno); + if (0 <= fd && fd == saved_cwd.desc) + { + /* If saving the working directory collides with the user's + requested fd, then the user's fd must have been closed to + begin with. */ + free_cwd (&saved_cwd); + errno = EBADF; + return FUNC_FAIL; + } + + if (fchdir (fd) != 0) + { + saved_errno = errno; + free_cwd (&saved_cwd); + errno = saved_errno; + return FUNC_FAIL; + } + + err = CALL_FUNC (file); + saved_errno = (err == FUNC_FAIL ? errno : 0); + + if (restore_cwd (&saved_cwd) != 0) + openat_restore_fail (errno); + + free_cwd (&saved_cwd); + + if (saved_errno) + errno = saved_errno; + return err; +} +#undef CALL_FUNC +#undef FUNC_RESULT +#undef FUNC_FAIL diff --git a/lib/backupfile.c b/gnu/backupfile.c similarity index 86% rename from lib/backupfile.c rename to gnu/backupfile.c index 1420edd8cd59288839099c5de448d188b73e05cd..fc9d74bf71377667fb8b8ca7675bf5e28355c2bf 100644 --- a/lib/backupfile.c +++ b/gnu/backupfile.c @@ -1,8 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* backupfile.c -- make Emacs style backup file names - Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software - Foundation, Inc. + Copyright (C) 1990-2006, 2009-2010 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 @@ -37,7 +37,7 @@ #include <unistd.h> -#include <dirent.h> +#include "dirent--.h" #ifndef _D_EXACT_NAMLEN # define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name) #endif @@ -80,11 +80,6 @@ of `digit' even when the host does not conform to POSIX. */ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) -/* The results of opendir() in this file are not used with dirfd and fchdir, - therefore save some unnecessary work in fchdir.c. */ -#undef opendir -#undef closedir - /* The extension added to file names to produce a simple (as opposed to numbered) backup file name. */ char const *simple_backup_suffix = "~"; @@ -108,18 +103,18 @@ check_extension (char *file, size_t filelen, char e) long name_max; /* Temporarily modify the buffer into its parent directory name, - invoke pathconf on the directory, and then restore the buffer. */ + invoke pathconf on the directory, and then restore the buffer. */ char tmp[sizeof "."]; memcpy (tmp, base, sizeof "."); strcpy (base, "."); errno = 0; name_max = pathconf (file, _PC_NAME_MAX); if (0 <= name_max || errno == 0) - { - long size = baselen_max = name_max; - if (name_max != size) - baselen_max = SIZE_MAX; - } + { + long size = baselen_max = name_max; + if (name_max != size) + baselen_max = SIZE_MAX; + } memcpy (base, tmp, sizeof "."); } @@ -128,21 +123,21 @@ check_extension (char *file, size_t filelen, char e) /* Live within DOS's 8.3 limit. */ char *dot = strchr (base, '.'); if (!dot) - baselen_max = 8; + baselen_max = 8; else - { - char const *second_dot = strchr (dot + 1, '.'); - baselen_max = (second_dot - ? second_dot - base - : dot + 1 - base + 3); - } + { + char const *second_dot = strchr (dot + 1, '.'); + baselen_max = (second_dot + ? second_dot - base + : dot + 1 - base + 3); + } } if (baselen_max < baselen) { baselen = file + filelen - base; if (baselen_max <= baselen) - baselen = baselen_max - 1; + baselen = baselen_max - 1; base[baselen] = e; base[baselen + 1] = '\0'; } @@ -208,41 +203,41 @@ numbered_backup (char **buffer, size_t buffer_size, size_t filelen) size_t new_buflen; if (! REAL_DIR_ENTRY (dp) || _D_EXACT_NAMLEN (dp) < baselen + 4) - continue; + continue; if (memcmp (buf + base_offset, dp->d_name, baselen + 2) != 0) - continue; + continue; p = dp->d_name + baselen + 2; /* Check whether this file has a version number and if so, - whether it is larger. Use string operations rather than - integer arithmetic, to avoid problems with integer overflow. */ + whether it is larger. Use string operations rather than + integer arithmetic, to avoid problems with integer overflow. */ if (! ('1' <= *p && *p <= '9')) - continue; + continue; all_9s = (*p == '9'); for (versionlen = 1; ISDIGIT (p[versionlen]); versionlen++) - all_9s &= (p[versionlen] == '9'); + all_9s &= (p[versionlen] == '9'); if (! (p[versionlen] == '~' && !p[versionlen + 1] - && (versionlenmax < versionlen - || (versionlenmax == versionlen - && memcmp (buf + filelen + 2, p, versionlen) <= 0)))) - continue; + && (versionlenmax < versionlen + || (versionlenmax == versionlen + && memcmp (buf + filelen + 2, p, versionlen) <= 0)))) + continue; /* This directory has the largest version number seen so far. - Append this highest numbered extension to the file name, - prepending '0' to the number if it is all 9s. */ + Append this highest numbered extension to the file name, + prepending '0' to the number if it is all 9s. */ versionlenmax = all_9s + versionlen; result = (all_9s ? BACKUP_IS_LONGER : BACKUP_IS_SAME_LENGTH); new_buflen = filelen + 2 + versionlenmax + 1; if (buffer_size <= new_buflen) - { - buf = xnrealloc (buf, 2, new_buflen); - buffer_size = new_buflen * 2; - } + { + buf = xnrealloc (buf, 2, new_buflen); + buffer_size = new_buflen * 2; + } q = buf + filelen; *q++ = '.'; *q++ = '~'; @@ -254,7 +249,7 @@ numbered_backup (char **buffer, size_t buffer_size, size_t filelen) q += versionlen; while (*--q == '9') - *q = '0'; + *q = '0'; ++*q; } @@ -291,15 +286,15 @@ find_backup_file_name (char const *file, enum backup_type backup_type) switch (numbered_backup (&s, ssize, filelen)) { case BACKUP_IS_SAME_LENGTH: - return s; + return s; case BACKUP_IS_LONGER: - simple = false; - break; + simple = false; + break; case BACKUP_IS_NEW: - simple = (backup_type == numbered_existing_backups); - break; + simple = (backup_type == numbered_existing_backups); + break; } if (simple) diff --git a/lib/backupfile.h b/gnu/backupfile.h similarity index 87% rename from lib/backupfile.h rename to gnu/backupfile.h index 3cfdd8c687fc451eb4e3b121402756d68fc3e397..999eed2bab5218f1e557b5dfd6eb8718aa31af0b 100644 --- a/lib/backupfile.h +++ b/gnu/backupfile.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* backupfile.h -- declarations for making Emacs style backup file names - Copyright (C) 1990, 1991, 1992, 1997, 1998, 1999, 2003, 2004 Free - Software Foundation, Inc. + Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2010 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 @@ -41,7 +43,7 @@ enum backup_type numbered_backups }; -# define VALID_BACKUP_TYPE(Type) \ +# define VALID_BACKUP_TYPE(Type) \ ((unsigned int) (Type) <= numbered_backups) extern char const *simple_backup_suffix; diff --git a/gnu/basename-lgpl.c b/gnu/basename-lgpl.c new file mode 100644 index 0000000000000000000000000000000000000000..b2f273f95d6046f93e97e29c299acda2dd3441dc --- /dev/null +++ b/gnu/basename-lgpl.c @@ -0,0 +1,77 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* basename.c -- return the last element in a file name + + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2010 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/>. */ + +#include <config.h> + +#include "dirname.h" + +#include <string.h> + +/* Return the address of the last file name component of NAME. If + NAME has no relative file name components because it is a file + system root, return the empty string. */ + +char * +last_component (char const *name) +{ + char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); + char const *p; + bool saw_slash = false; + + while (ISSLASH (*base)) + base++; + + for (p = base; *p; p++) + { + if (ISSLASH (*p)) + saw_slash = true; + else if (saw_slash) + { + base = p; + saw_slash = false; + } + } + + return (char *) base; +} + +/* Return the length of the basename NAME. Typically NAME is the + value returned by base_name or last_component. Act like strlen + (NAME), except omit all trailing slashes. */ + +size_t +base_len (char const *name) +{ + size_t len; + size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); + + for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) + continue; + + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1 + && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2]) + return 2; + + if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len + && len == prefix_len && ISSLASH (name[prefix_len])) + return prefix_len + 1; + + return len; +} diff --git a/gnu/basename.c b/gnu/basename.c new file mode 100644 index 0000000000000000000000000000000000000000..a7e8cb44c549637414e549e2ab8157353750d3d0 --- /dev/null +++ b/gnu/basename.c @@ -0,0 +1,60 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* basename.c -- return the last element in a file name + + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2010 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/>. */ + +#include <config.h> + +#include "dirname.h" + +#include <string.h> +#include "xalloc.h" +#include "xstrndup.h" + +char * +base_name (char const *name) +{ + char const *base = last_component (name); + size_t length; + + /* If there is no last component, then name is a file system root or the + empty string. */ + if (! *base) + return xstrndup (name, base_len (name)); + + /* Collapse a sequence of trailing slashes into one. */ + length = base_len (base); + if (ISSLASH (base[length])) + length++; + + /* On systems with drive letters, `a/b:c' must return `./b:c' rather + than `b:c' to avoid confusion with a drive letter. On systems + with pure POSIX semantics, this is not an issue. */ + if (FILE_SYSTEM_PREFIX_LEN (base)) + { + char *p = xmalloc (length + 3); + p[0] = '.'; + p[1] = '/'; + memcpy (p + 2, base, length); + p[length + 2] = '\0'; + return p; + } + + /* Finally, copy the basename. */ + return xstrndup (base, length); +} diff --git a/gnu/bitrotate.h b/gnu/bitrotate.h new file mode 100644 index 0000000000000000000000000000000000000000..9adefe3a91b08ee9bb47ef8a63f78c500ce17518 --- /dev/null +++ b/gnu/bitrotate.h @@ -0,0 +1,128 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* bitrotate.h - Rotate bits in integers + Copyright (C) 2008, 2009, 2010 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 Simon Josefsson <simon@josefsson.org>, 2008. */ + +#ifndef _GL_BITROTATE_H +#define _GL_BITROTATE_H + +#include <limits.h> +#include <stdint.h> +#include <sys/types.h> + +#ifdef UINT64_MAX +/* Given an unsigned 64-bit argument X, return the value corresponding + to rotating the bits N steps to the left. N must be between 1 and + 63 inclusive. */ +static inline uint64_t +rotl64 (uint64_t x, int n) +{ + return ((x << n) | (x >> (64 - n))) & UINT64_MAX; +} + +/* Given an unsigned 64-bit argument X, return the value corresponding + to rotating the bits N steps to the right. N must be between 1 to + 63 inclusive.*/ +static inline uint64_t +rotr64 (uint64_t x, int n) +{ + return ((x >> n) | (x << (64 - n))) & UINT64_MAX; +} +#endif + +/* Given an unsigned 32-bit argument X, return the value corresponding + to rotating the bits N steps to the left. N must be between 1 and + 31 inclusive. */ +static inline uint32_t +rotl32 (uint32_t x, int n) +{ + return ((x << n) | (x >> (32 - n))) & UINT32_MAX; +} + +/* Given an unsigned 32-bit argument X, return the value corresponding + to rotating the bits N steps to the right. N must be between 1 to + 31 inclusive.*/ +static inline uint32_t +rotr32 (uint32_t x, int n) +{ + return ((x >> n) | (x << (32 - n))) & UINT32_MAX; +} + +/* Given a size_t argument X, return the value corresponding + to rotating the bits N steps to the left. N must be between 1 and + (CHAR_BIT * sizeof (size_t) - 1) inclusive. */ +static inline size_t +rotl_sz (size_t x, int n) +{ + return ((x << n) | (x >> ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX; +} + +/* Given a size_t argument X, return the value corresponding + to rotating the bits N steps to the right. N must be between 1 to + (CHAR_BIT * sizeof (size_t) - 1) inclusive. */ +static inline size_t +rotr_sz (size_t x, int n) +{ + return ((x >> n) | (x << ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX; +} + +/* Given an unsigned 16-bit argument X, return the value corresponding + to rotating the bits N steps to the left. N must be between 1 to + 15 inclusive, but on most relevant targets N can also be 0 and 16 + because 'int' is at least 32 bits and the arguments must widen + before shifting. */ +static inline uint16_t +rotl16 (uint16_t x, int n) +{ + return ((x << n) | (x >> (16 - n))) & UINT16_MAX; +} + +/* Given an unsigned 16-bit argument X, return the value corresponding + to rotating the bits N steps to the right. N must be in 1 to 15 + inclusive, but on most relevant targets N can also be 0 and 16 + because 'int' is at least 32 bits and the arguments must widen + before shifting. */ +static inline uint16_t +rotr16 (uint16_t x, int n) +{ + return ((x >> n) | (x << (16 - n))) & UINT16_MAX; +} + +/* Given an unsigned 8-bit argument X, return the value corresponding + to rotating the bits N steps to the left. N must be between 1 to 7 + inclusive, but on most relevant targets N can also be 0 and 8 + because 'int' is at least 32 bits and the arguments must widen + before shifting. */ +static inline uint8_t +rotl8 (uint8_t x, int n) +{ + return ((x << n) | (x >> (8 - n))) & UINT8_MAX; +} + +/* Given an unsigned 8-bit argument X, return the value corresponding + to rotating the bits N steps to the right. N must be in 1 to 7 + inclusive, but on most relevant targets N can also be 0 and 8 + because 'int' is at least 32 bits and the arguments must widen + before shifting. */ +static inline uint8_t +rotr8 (uint8_t x, int n) +{ + return ((x >> n) | (x << (8 - n))) & UINT8_MAX; +} + +#endif /* _GL_BITROTATE_H */ diff --git a/lib/btowc.c b/gnu/btowc.c similarity index 85% rename from lib/btowc.c rename to gnu/btowc.c index 7f3b9663c4f261ece2ce3ff4db8bd3a6d7a99876..1ff29eea9fc72cf689aa53102266e64aade4fac7 100644 --- a/lib/btowc.c +++ b/gnu/btowc.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert unibyte character to wide character. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -32,7 +34,7 @@ btowc (int c) buf[0] = c; if (mbtowc (&wc, buf, 1) >= 0) - return wc; + return wc; } return WEOF; } diff --git a/lib/c-ctype.c b/gnu/c-ctype.c similarity index 99% rename from lib/c-ctype.c rename to gnu/c-ctype.c index a669d7a335bc53e360e587ec32e1ae2e251ad48a..48baa72e19e27123161589bba00ce2c6f045ef3a 100644 --- a/lib/c-ctype.c +++ b/gnu/c-ctype.c @@ -2,7 +2,7 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Character handling in C locale. - Copyright 2000-2003, 2006 Free Software Foundation, Inc. + Copyright 2000-2003, 2006, 2009-2010 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 diff --git a/lib/c-ctype.h b/gnu/c-ctype.h similarity index 99% rename from lib/c-ctype.h rename to gnu/c-ctype.h index a0ab0837318e029e8ba45082bb4c1a93567a5126..26c89b8153ed4836fc9185133a71a86bb97bd878 100644 --- a/lib/c-ctype.h +++ b/gnu/c-ctype.h @@ -7,7 +7,7 @@ <ctype.h> functions' behaviour depends on the current locale set via setlocale. - Copyright (C) 2000-2003, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2006, 2008-2010 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 diff --git a/gnu/canonicalize.c b/gnu/canonicalize.c new file mode 100644 index 0000000000000000000000000000000000000000..82a819ef532571db3b85f60d82c1eae8c84ff22a --- /dev/null +++ b/gnu/canonicalize.c @@ -0,0 +1,292 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Return the canonical absolute name of a given file. + Copyright (C) 1996-2010 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/>. */ + +#include <config.h> + +#include "canonicalize.h" + +#include <errno.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "areadlink.h" +#include "file-set.h" +#include "hash-triple.h" +#include "pathmax.h" +#include "xalloc.h" +#include "xgetcwd.h" + +#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT +# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 +#endif + +#if !((HAVE_CANONICALIZE_FILE_NAME && FUNC_REALPATH_WORKS) \ + || GNULIB_CANONICALIZE_LGPL) +/* Return the canonical absolute name of file NAME. A canonical name + does not contain any `.', `..' components nor any repeated file name + separators ('/') or symlinks. All components must exist. + The result is malloc'd. */ + +char * +canonicalize_file_name (const char *name) +{ + return canonicalize_filename_mode (name, CAN_EXISTING); +} +#endif /* !HAVE_CANONICALIZE_FILE_NAME */ + +/* Return true if we've already seen the triple, <FILENAME, dev, ino>. + If *HT is not initialized, initialize it. */ +static bool +seen_triple (Hash_table **ht, char const *filename, struct stat const *st) +{ + if (*ht == NULL) + { + size_t initial_capacity = 7; + *ht = hash_initialize (initial_capacity, + NULL, + triple_hash, + triple_compare_ino_str, + triple_free); + if (*ht == NULL) + xalloc_die (); + } + + if (seen_file (*ht, filename, st)) + return true; + + record_file (*ht, filename, st); + return false; +} + +/* Return the canonical absolute name of file NAME, while treating + missing elements according to CAN_MODE. A canonical name + does not contain any `.', `..' components nor any repeated file name + separators ('/') or symlinks. Whether components must exist + or not depends on canonicalize mode. The result is malloc'd. */ + +char * +canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode) +{ + char *rname, *dest, *extra_buf = NULL; + char const *start; + char const *end; + char const *rname_limit; + size_t extra_len = 0; + Hash_table *ht = NULL; + int saved_errno; + + if (name == NULL) + { + errno = EINVAL; + return NULL; + } + + if (name[0] == '\0') + { + errno = ENOENT; + return NULL; + } + + if (name[0] != '/') + { + rname = xgetcwd (); + if (!rname) + return NULL; + dest = strchr (rname, '\0'); + if (dest - rname < PATH_MAX) + { + char *p = xrealloc (rname, PATH_MAX); + dest = p + (dest - rname); + rname = p; + rname_limit = rname + PATH_MAX; + } + else + { + rname_limit = dest; + } + } + else + { + rname = xmalloc (PATH_MAX); + rname_limit = rname + PATH_MAX; + rname[0] = '/'; + dest = rname + 1; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && name[1] == '/') + *dest++ = '/'; + } + + for (start = name; *start; start = end) + { + /* Skip sequence of multiple file name separators. */ + while (*start == '/') + ++start; + + /* Find end of component. */ + for (end = start; *end && *end != '/'; ++end) + /* Nothing. */; + + if (end - start == 0) + break; + else if (end - start == 1 && start[0] == '.') + /* nothing */; + else if (end - start == 2 && start[0] == '.' && start[1] == '.') + { + /* Back up to previous component, ignore if at root already. */ + if (dest > rname + 1) + while ((--dest)[-1] != '/'); + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 + && *dest == '/') + dest++; + } + else + { + struct stat st; + + if (dest[-1] != '/') + *dest++ = '/'; + + if (dest + (end - start) >= rname_limit) + { + ptrdiff_t dest_offset = dest - rname; + size_t new_size = rname_limit - rname; + + if (end - start + 1 > PATH_MAX) + new_size += end - start + 1; + else + new_size += PATH_MAX; + rname = xrealloc (rname, new_size); + rname_limit = rname + new_size; + + dest = rname + dest_offset; + } + + dest = memcpy (dest, start, end - start); + dest += end - start; + *dest = '\0'; + + if (lstat (rname, &st) != 0) + { + saved_errno = errno; + if (can_mode == CAN_EXISTING) + goto error; + if (can_mode == CAN_ALL_BUT_LAST) + { + if (end[strspn (end, "/")] || saved_errno != ENOENT) + goto error; + continue; + } + st.st_mode = 0; + } + + if (S_ISLNK (st.st_mode)) + { + char *buf; + size_t n, len; + + /* Detect loops. We cannot use the cycle-check module here, + since it's actually possible to encounter the same symlink + more than once in a given traversal. However, encountering + the same symlink,NAME pair twice does indicate a loop. */ + if (seen_triple (&ht, name, &st)) + { + if (can_mode == CAN_MISSING) + continue; + saved_errno = ELOOP; + goto error; + } + + buf = areadlink_with_size (rname, st.st_size); + if (!buf) + { + if (can_mode == CAN_MISSING && errno != ENOMEM) + continue; + saved_errno = errno; + goto error; + } + + n = strlen (buf); + len = strlen (end); + + if (!extra_len) + { + extra_len = + ((n + len + 1) > PATH_MAX) ? (n + len + 1) : PATH_MAX; + extra_buf = xmalloc (extra_len); + } + else if ((n + len + 1) > extra_len) + { + extra_len = n + len + 1; + extra_buf = xrealloc (extra_buf, extra_len); + } + + /* Careful here, end may be a pointer into extra_buf... */ + memmove (&extra_buf[n], end, len + 1); + name = end = memcpy (extra_buf, buf, n); + + if (buf[0] == '/') + { + dest = rname + 1; /* It's an absolute symlink */ + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && buf[1] == '/') + *dest++ = '/'; + } + else + { + /* Back up to previous component, ignore if at root + already: */ + if (dest > rname + 1) + while ((--dest)[-1] != '/'); + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 + && *dest == '/') + dest++; + } + + free (buf); + } + else + { + if (!S_ISDIR (st.st_mode) && *end && (can_mode != CAN_MISSING)) + { + saved_errno = ENOTDIR; + goto error; + } + } + } + } + if (dest > rname + 1 && dest[-1] == '/') + --dest; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && *dest == '/') + dest++; + *dest = '\0'; + if (rname_limit != dest + 1) + rname = xrealloc (rname, dest - rname + 1); + + free (extra_buf); + if (ht) + hash_free (ht); + return rname; + +error: + free (extra_buf); + free (rname); + if (ht) + hash_free (ht); + errno = saved_errno; + return NULL; +} diff --git a/lib/canonicalize.h b/gnu/canonicalize.h similarity index 72% rename from lib/canonicalize.h rename to gnu/canonicalize.h index 8ca4fb42266885ec9891209a46615c7b83bc5000..06bf3c963de91865548184bce47046c15c80c666 100644 --- a/lib/canonicalize.h +++ b/gnu/canonicalize.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Return the canonical absolute name of a given file. - Copyright (C) 1996-2007 Free Software Foundation, Inc. + Copyright (C) 1996-2007, 2009-2010 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 @@ -17,7 +19,8 @@ #ifndef CANONICALIZE_H_ # define CANONICALIZE_H_ -# if GNULIB_CANONICALIZE +#include <stdlib.h> /* for canonicalize_file_name */ + enum canonicalize_mode_t { /* All components must exist. */ @@ -36,17 +39,5 @@ typedef enum canonicalize_mode_t canonicalize_mode_t; whether components must exist depends on the canonicalize_mode_t argument. */ char *canonicalize_filename_mode (const char *, canonicalize_mode_t); -# endif - -# if HAVE_DECL_CANONICALIZE_FILE_NAME -# include <stdlib.h> -# else -/* Return a malloc'd string containing the canonical absolute name of - the named file. If any file name component does not exist or is a - symlink to a nonexistent file, return NULL. A canonical name does - not contain any `.', `..' components nor any repeated file name - separators ('/') or symlinks. */ -char *canonicalize_file_name (const char *); -# endif #endif /* !CANONICALIZE_H_ */ diff --git a/lib/chdir-long.c b/gnu/chdir-long.c similarity index 73% rename from lib/chdir-long.c rename to gnu/chdir-long.c index 291b58c2894723f114b7a5d2e9c35b7d15c239df..5050b1f30ed14907846bedbc57b8eebffde04d53 100644 --- a/lib/chdir-long.c +++ b/gnu/chdir-long.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* provide a chdir function that tries not to fail due to ENAMETOOLONG - Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2004-2010 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 @@ -20,20 +22,23 @@ #include "chdir-long.h" +#include <assert.h> +#include <errno.h> #include <fcntl.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> -#include <errno.h> #include <stdio.h> -#include <assert.h> - -#include "openat.h" #ifndef PATH_MAX # error "compile this file only if your system defines PATH_MAX" #endif +/* The results of openat() in this file are not leaked to any + single-threaded code that could use stdio. + FIXME - if the kernel ever adds support for multi-thread safety for + avoiding standard fds, then we should use openat_safer. */ + struct cd_buf { int fd; @@ -69,7 +74,7 @@ static int cdb_advance_fd (struct cd_buf *cdb, char const *dir) { int new_fd = openat (cdb->fd, dir, - O_RDONLY | O_DIRECTORY | O_NOCTTY | O_NONBLOCK); + O_RDONLY | O_DIRECTORY | O_NOCTTY | O_NONBLOCK); if (new_fd < 0) return -1; @@ -132,27 +137,27 @@ chdir_long (char *dir) code in the following loop cleaner. */ if (n_leading_slash == 2) { - int err; - /* Find next slash. - We already know that dir[2] is neither a slash nor '\0'. */ - char *slash = memchr (dir + 3, '/', dir_end - (dir + 3)); - if (slash == NULL) - { - errno = ENAMETOOLONG; - return -1; - } - *slash = '\0'; - err = cdb_advance_fd (&cdb, dir); - *slash = '/'; - if (err != 0) - goto Fail; - dir = find_non_slash (slash + 1); + int err; + /* Find next slash. + We already know that dir[2] is neither a slash nor '\0'. */ + char *slash = memchr (dir + 3, '/', dir_end - (dir + 3)); + if (slash == NULL) + { + errno = ENAMETOOLONG; + return -1; + } + *slash = '\0'; + err = cdb_advance_fd (&cdb, dir); + *slash = '/'; + if (err != 0) + goto Fail; + dir = find_non_slash (slash + 1); } else if (n_leading_slash) { - if (cdb_advance_fd (&cdb, "/") != 0) - goto Fail; - dir += n_leading_slash; + if (cdb_advance_fd (&cdb, "/") != 0) + goto Fail; + dir += n_leading_slash; } assert (*dir != '/'); @@ -160,31 +165,31 @@ chdir_long (char *dir) while (PATH_MAX <= dir_end - dir) { - int err; - /* Find a slash that is PATH_MAX or fewer bytes away from dir. - I.e. see if there is a slash that will give us a name of - length PATH_MAX-1 or less. */ - char *slash = memrchr (dir, '/', PATH_MAX); - if (slash == NULL) - { - errno = ENAMETOOLONG; - return -1; - } - - *slash = '\0'; - assert (slash - dir < PATH_MAX); - err = cdb_advance_fd (&cdb, dir); - *slash = '/'; - if (err != 0) - goto Fail; - - dir = find_non_slash (slash + 1); + int err; + /* Find a slash that is PATH_MAX or fewer bytes away from dir. + I.e. see if there is a slash that will give us a name of + length PATH_MAX-1 or less. */ + char *slash = memrchr (dir, '/', PATH_MAX); + if (slash == NULL) + { + errno = ENAMETOOLONG; + return -1; + } + + *slash = '\0'; + assert (slash - dir < PATH_MAX); + err = cdb_advance_fd (&cdb, dir); + *slash = '/'; + if (err != 0) + goto Fail; + + dir = find_non_slash (slash + 1); } if (dir < dir_end) { - if (cdb_advance_fd (&cdb, dir) != 0) - goto Fail; + if (cdb_advance_fd (&cdb, dir) != 0) + goto Fail; } if (cdb_fchdir (&cdb) != 0) @@ -225,10 +230,10 @@ main (int argc, char *argv[]) { int saved_errno = errno; if (feof (stdin)) - exit (0); + exit (0); error (EXIT_FAILURE, saved_errno, - "reading standard input"); + "reading standard input"); } else if (len == 0) exit (0); @@ -238,12 +243,12 @@ main (int argc, char *argv[]) if (chdir_long (line) != 0) error (EXIT_FAILURE, errno, - "chdir_long failed: %s", line); + "chdir_long failed: %s", line); if (argc <= 1) { /* Using `pwd' here makes sense only if it is a robust implementation, - like the one in coreutils after the 2004-04-19 changes. */ + like the one in coreutils after the 2004-04-19 changes. */ char const *cmd = "pwd"; execlp (cmd, (char *) NULL); error (EXIT_FAILURE, errno, "%s", cmd); diff --git a/lib/chdir-long.h b/gnu/chdir-long.h similarity index 85% rename from lib/chdir-long.h rename to gnu/chdir-long.h index 5bf0bbc25cc4b85426dacfe61e02302ffb508b66..286b04ce50fedf1beab4675320fa93dae43d4c39 100644 --- a/lib/chdir-long.h +++ b/gnu/chdir-long.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* provide a chdir function that tries not to fail due to ENAMETOOLONG - Copyright (C) 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2004-2005, 2009-2010 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 @@ -20,7 +22,7 @@ #include <limits.h> #ifndef PATH_MAX -# ifdef MAXPATHLEN +# ifdef MAXPATHLEN # define PATH_MAX MAXPATHLEN # endif #endif diff --git a/gnu/chown.c b/gnu/chown.c new file mode 100644 index 0000000000000000000000000000000000000000..678e0f753f1c1890ad6b2da0d99badbb2236b7fa --- /dev/null +++ b/gnu/chown.c @@ -0,0 +1,158 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* 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-2010 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 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 + +/* The results of open() in this file are not used with fchdir, + therefore save some unnecessary work in fchdir.c. */ +# undef open +# undef close + +/* 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/gnu/close-hook.c b/gnu/close-hook.c new file mode 100644 index 0000000000000000000000000000000000000000..1d569c09c3c9abcd54571d0b4f439ffc8f735ecc --- /dev/null +++ b/gnu/close-hook.c @@ -0,0 +1,93 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Hook for making the close() function extensible. + Copyright (C) 2009, 2010 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 + Lesser 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/>. */ + +#include <config.h> + +/* Specification. */ +#include "close-hook.h" + +#include <stdlib.h> +#include <unistd.h> + +#undef close + + +/* Currently, this entire code is only needed for the handling of sockets + on native Windows platforms. */ +#if WINDOWS_SOCKETS + +/* The first and last link in the doubly linked list. + Initially the list is empty. */ +static struct close_hook anchor = { &anchor, &anchor, NULL }; + +int +execute_close_hooks (int fd, const struct close_hook *remaining_list) +{ + if (remaining_list == &anchor) + /* End of list reached. */ + return close (fd); + else + return remaining_list->private_fn (fd, remaining_list->private_next); +} + +int +execute_all_close_hooks (int fd) +{ + return execute_close_hooks (fd, anchor.private_next); +} + +void +register_close_hook (close_hook_fn hook, struct close_hook *link) +{ + if (link->private_next == NULL && link->private_prev == NULL) + { + /* Add the link to the doubly linked list. */ + link->private_next = anchor.private_next; + link->private_prev = &anchor; + link->private_fn = hook; + anchor.private_next->private_prev = link; + anchor.private_next = link; + } + else + { + /* The link is already in use. */ + if (link->private_fn != hook) + abort (); + } +} + +void +unregister_close_hook (struct close_hook *link) +{ + struct close_hook *next = link->private_next; + struct close_hook *prev = link->private_prev; + + if (next != NULL && prev != NULL) + { + /* The link is in use. Remove it from the doubly linked list. */ + prev->private_next = next; + next->private_prev = prev; + /* Clear the link, to mark it unused. */ + link->private_next = NULL; + link->private_prev = NULL; + link->private_fn = NULL; + } +} + +#endif diff --git a/gnu/close-hook.h b/gnu/close-hook.h new file mode 100644 index 0000000000000000000000000000000000000000..acc4c6a013f5d40ee1b904c85654bf3cefa88063 --- /dev/null +++ b/gnu/close-hook.h @@ -0,0 +1,74 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Hook for making the close() function extensible. + Copyright (C) 2009, 2010 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 + Lesser 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/>. */ + + +#ifndef CLOSE_HOOK_H +#define CLOSE_HOOK_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Currently, this entire code is only needed for the handling of sockets + on native Windows platforms. */ +#if WINDOWS_SOCKETS + + +/* An element of the list of close hooks. + The fields of this structure are considered private. */ +struct close_hook +{ + /* Doubly linked list. */ + struct close_hook *private_next; + struct close_hook *private_prev; + /* Function that treats the types of FD that it knows about and calls + execute_close_hooks (FD, REMAINING_LIST) as a fallback. */ + int (*private_fn) (int fd, const struct close_hook *remaining_list); +}; + +/* This type of function closes FD, applying special knowledge for the FD + types it knows about, and calls execute_close_hooks (FD, REMAINING_LIST) + for the other FD types. */ +typedef int (*close_hook_fn) (int fd, const struct close_hook *remaining_list); + +/* Execute the close hooks in REMAINING_LIST. + Return 0 or -1, like close() would do. */ +extern int execute_close_hooks (int fd, const struct close_hook *remaining_list); + +/* Execute all close hooks. + Return 0 or -1, like close() would do. */ +extern int execute_all_close_hooks (int fd); + +/* Add a function to the list of close hooks. + The LINK variable points to a piece of memory which is guaranteed to be + accessible until the corresponding call to unregister_close_hook. */ +extern void register_close_hook (close_hook_fn hook, struct close_hook *link); + +/* Removes a function from the list of close hooks. */ +extern void unregister_close_hook (struct close_hook *link); + + +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* CLOSE_HOOK_H */ diff --git a/lib/close-stream.c b/gnu/close-stream.c similarity index 94% rename from lib/close-stream.c rename to gnu/close-stream.c index 59ab616b1ea43eb3ccef77aed89d13175bec4607..306d9015983232a0f4ee8853e54fd57493fa8885 100644 --- a/lib/close-stream.c +++ b/gnu/close-stream.c @@ -1,7 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Close a stream, with nicer error checking than fclose's. - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2007, 2008 Free - Software Foundation, Inc. + Copyright (C) 1998-2002, 2004, 2006-2010 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 @@ -71,7 +72,7 @@ close_stream (FILE *stream) if (prev_fail || (fclose_fail && (some_pending || errno != EBADF))) { if (! fclose_fail) - errno = 0; + errno = 0; return EOF; } diff --git a/gnu/close-stream.h b/gnu/close-stream.h new file mode 100644 index 0000000000000000000000000000000000000000..d8cad1798e5460f1ad4edefb0cea120e1dea07e3 --- /dev/null +++ b/gnu/close-stream.h @@ -0,0 +1,4 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#include <stdio.h> +int close_stream (FILE *stream); diff --git a/gnu/close.c b/gnu/close.c new file mode 100644 index 0000000000000000000000000000000000000000..be9b9650cd561de9d23357e93a4bf37e8b46a161 --- /dev/null +++ b/gnu/close.c @@ -0,0 +1,44 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* close replacement. + Copyright (C) 2008-2010 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/>. */ + +#include <config.h> + +/* Specification. */ +#include <unistd.h> + +#include "close-hook.h" + +/* Override close() to call into other gnulib modules. */ + +int +rpl_close (int fd) +#undef close +{ +#if WINDOWS_SOCKETS + int retval = execute_all_close_hooks (fd); +#else + int retval = close (fd); +#endif + +#if REPLACE_FCHDIR + if (retval >= 0) + _gl_unregister_fd (fd); +#endif + + return retval; +} diff --git a/lib/closeout.c b/gnu/closeout.c similarity index 93% rename from lib/closeout.c rename to gnu/closeout.c index 6a0b82ffafd8c4ac7f6192e698227dde11da3296..1915c79d21fcbb067c9467d33ddf9a947f3b77c3 100644 --- a/lib/closeout.c +++ b/gnu/closeout.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Close standard output and standard error, exiting with a diagnostic on error. - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2008 Free - Software Foundation, Inc. + Copyright (C) 1998-2002, 2004, 2006, 2008-2010 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 @@ -111,10 +113,10 @@ close_stdout (void) { char const *write_error = _("write error"); if (file_name) - error (0, errno, "%s: %s", quotearg_colon (file_name), - write_error); + error (0, errno, "%s: %s", quotearg_colon (file_name), + write_error); else - error (0, errno, "%s", write_error); + error (0, errno, "%s", write_error); _exit (exit_failure); } diff --git a/lib/closeout.h b/gnu/closeout.h similarity index 84% rename from lib/closeout.h rename to gnu/closeout.h index 34e61effbfd7c729ebc1f25edb01162d525e9034..1216ba44d8685bfcbd166b1aa52c289f414c70f4 100644 --- a/lib/closeout.h +++ b/gnu/closeout.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Close standard output and standard error. - Copyright (C) 1998, 2000, 2003, 2004, 2006, 2008 Free Software Foundation, - Inc. + Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2010 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 diff --git a/gnu/config.charset b/gnu/config.charset new file mode 100644 index 0000000000000000000000000000000000000000..2959df89bfce5019fb343199ac630d7695886a3e --- /dev/null +++ b/gnu/config.charset @@ -0,0 +1,683 @@ +#! /bin/sh +# Output a system dependent table of character encoding aliases. +# +# Copyright (C) 2000-2004, 2006-2010 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, 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, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# The table consists of lines of the form +# ALIAS CANONICAL +# +# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". +# ALIAS is compared in a case sensitive way. +# +# CANONICAL is the GNU canonical name for this character encoding. +# It must be an encoding supported by libiconv. Support by GNU libc is +# also desirable. CANONICAL is case insensitive. Usually an upper case +# MIME charset name is preferred. +# The current list of GNU canonical charset names is as follows. +# +# name MIME? used by which systems +# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin +# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin +# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin +# ISO-8859-3 Y glibc solaris +# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin +# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin +# ISO-8859-6 Y glibc aix hpux solaris +# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin +# ISO-8859-8 Y glibc aix hpux osf solaris +# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin +# ISO-8859-13 glibc netbsd openbsd darwin +# ISO-8859-14 glibc +# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin +# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin +# KOI8-U Y glibc freebsd netbsd openbsd darwin +# KOI8-T glibc +# CP437 dos +# CP775 dos +# CP850 aix osf dos +# CP852 dos +# CP855 dos +# CP856 aix +# CP857 dos +# CP861 dos +# CP862 dos +# CP864 dos +# CP865 dos +# CP866 freebsd netbsd openbsd darwin dos +# CP869 dos +# CP874 woe32 dos +# CP922 aix +# CP932 aix woe32 dos +# CP943 aix +# CP949 osf darwin woe32 dos +# CP950 woe32 dos +# CP1046 aix +# CP1124 aix +# CP1125 dos +# CP1129 aix +# CP1131 darwin +# CP1250 woe32 +# CP1251 glibc solaris netbsd openbsd darwin woe32 +# CP1252 aix woe32 +# CP1253 woe32 +# CP1254 woe32 +# CP1255 glibc woe32 +# CP1256 woe32 +# CP1257 woe32 +# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin +# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin +# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin +# EUC-TW glibc aix hpux irix osf solaris netbsd +# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin +# BIG5-HKSCS glibc solaris darwin +# GBK glibc aix osf solaris darwin woe32 dos +# GB18030 glibc solaris netbsd darwin +# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin +# JOHAB glibc solaris woe32 +# TIS-620 glibc aix hpux osf solaris +# VISCII Y glibc +# TCVN5712-1 glibc +# ARMSCII-8 glibc darwin +# GEORGIAN-PS glibc +# PT154 glibc +# HP-ROMAN8 hpux +# HP-ARABIC8 hpux +# HP-GREEK8 hpux +# HP-HEBREW8 hpux +# HP-TURKISH8 hpux +# HP-KANA8 hpux +# DEC-KANJI osf +# DEC-HANYU osf +# UTF-8 Y glibc aix hpux osf solaris netbsd darwin +# +# Note: Names which are not marked as being a MIME name should not be used in +# Internet protocols for information interchange (mail, news, etc.). +# +# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications +# must understand both names and treat them as equivalent. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + +host="$1" +os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` +echo "# This file contains a table of character encoding aliases," +echo "# suitable for operating system '${os}'." +echo "# It was automatically generated from config.charset." +# List of references, updated during installation: +echo "# Packages using this file: " +case "$os" in + linux-gnulibc1*) + # Linux libc5 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "C ASCII" + echo "POSIX ASCII" + for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ + en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ + en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ + es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ + et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ + fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ + it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ + sv_FI sv_SE; do + echo "$l ISO-8859-1" + echo "$l.iso-8859-1 ISO-8859-1" + echo "$l.iso-8859-15 ISO-8859-15" + echo "$l.iso-8859-15@euro ISO-8859-15" + echo "$l@euro ISO-8859-15" + echo "$l.cp-437 CP437" + echo "$l.cp-850 CP850" + echo "$l.cp-1252 CP1252" + echo "$l.cp-1252@euro CP1252" + #echo "$l.atari-st ATARI-ST" # not a commonly used encoding + echo "$l.utf-8 UTF-8" + echo "$l.utf-8@euro UTF-8" + done + for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ + sl_SI sr sr_CS sr_YU; do + echo "$l ISO-8859-2" + echo "$l.iso-8859-2 ISO-8859-2" + echo "$l.cp-852 CP852" + echo "$l.cp-1250 CP1250" + echo "$l.utf-8 UTF-8" + done + for l in mk mk_MK ru ru_RU; do + echo "$l ISO-8859-5" + echo "$l.iso-8859-5 ISO-8859-5" + echo "$l.koi8-r KOI8-R" + echo "$l.cp-866 CP866" + echo "$l.cp-1251 CP1251" + echo "$l.utf-8 UTF-8" + done + for l in ar ar_SA; do + echo "$l ISO-8859-6" + echo "$l.iso-8859-6 ISO-8859-6" + echo "$l.cp-864 CP864" + #echo "$l.cp-868 CP868" # not a commonly used encoding + echo "$l.cp-1256 CP1256" + echo "$l.utf-8 UTF-8" + done + for l in el el_GR gr gr_GR; do + echo "$l ISO-8859-7" + echo "$l.iso-8859-7 ISO-8859-7" + echo "$l.cp-869 CP869" + echo "$l.cp-1253 CP1253" + echo "$l.cp-1253@euro CP1253" + echo "$l.utf-8 UTF-8" + echo "$l.utf-8@euro UTF-8" + done + for l in he he_IL iw iw_IL; do + echo "$l ISO-8859-8" + echo "$l.iso-8859-8 ISO-8859-8" + echo "$l.cp-862 CP862" + echo "$l.cp-1255 CP1255" + echo "$l.utf-8 UTF-8" + done + for l in tr tr_TR; do + echo "$l ISO-8859-9" + echo "$l.iso-8859-9 ISO-8859-9" + echo "$l.cp-857 CP857" + echo "$l.cp-1254 CP1254" + echo "$l.utf-8 UTF-8" + done + for l in lt lt_LT lv lv_LV; do + #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name + echo "$l ISO-8859-13" + done + for l in ru_UA uk uk_UA; do + echo "$l KOI8-U" + done + for l in zh zh_CN; do + #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name + echo "$l GB2312" + done + for l in ja ja_JP ja_JP.EUC; do + echo "$l EUC-JP" + done + for l in ko ko_KR; do + echo "$l EUC-KR" + done + for l in th th_TH; do + echo "$l TIS-620" + done + for l in fa fa_IR; do + #echo "$l ISIRI-3342" # a broken encoding + echo "$l.utf-8 UTF-8" + done + ;; + linux* | *-gnu*) + # With glibc-2.1 or newer, we don't need any canonicalization, + # because glibc has iconv and both glibc and libiconv support all + # GNU canonical names directly. Therefore, the Makefile does not + # need to install the alias file at all. + # The following applies only to glibc-2.0.x and older libcs. + echo "ISO_646.IRV:1983 ASCII" + ;; + aix*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-6 ISO-8859-6" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "IBM-850 CP850" + echo "IBM-856 CP856" + echo "IBM-921 ISO-8859-13" + echo "IBM-922 CP922" + echo "IBM-932 CP932" + echo "IBM-943 CP943" + echo "IBM-1046 CP1046" + echo "IBM-1124 CP1124" + echo "IBM-1129 CP1129" + echo "IBM-1252 CP1252" + echo "IBM-eucCN GB2312" + echo "IBM-eucJP EUC-JP" + echo "IBM-eucKR EUC-KR" + echo "IBM-eucTW EUC-TW" + echo "big5 BIG5" + echo "GBK GBK" + echo "TIS-620 TIS-620" + echo "UTF-8 UTF-8" + ;; + hpux*) + echo "iso88591 ISO-8859-1" + echo "iso88592 ISO-8859-2" + echo "iso88595 ISO-8859-5" + echo "iso88596 ISO-8859-6" + echo "iso88597 ISO-8859-7" + echo "iso88598 ISO-8859-8" + echo "iso88599 ISO-8859-9" + echo "iso885915 ISO-8859-15" + echo "roman8 HP-ROMAN8" + echo "arabic8 HP-ARABIC8" + echo "greek8 HP-GREEK8" + echo "hebrew8 HP-HEBREW8" + echo "turkish8 HP-TURKISH8" + echo "kana8 HP-KANA8" + echo "tis620 TIS-620" + echo "big5 BIG5" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "hp15CN GB2312" + #echo "ccdc ?" # what is this? + echo "SJIS SHIFT_JIS" + echo "utf8 UTF-8" + ;; + irix*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-9 ISO-8859-9" + echo "eucCN GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + ;; + osf*) + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "cp850 CP850" + echo "big5 BIG5" + echo "dechanyu DEC-HANYU" + echo "dechanzi GB2312" + echo "deckanji DEC-KANJI" + echo "deckorean EUC-KR" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "GBK GBK" + echo "KSC5601 CP949" + echo "sdeckanji EUC-JP" + echo "SJIS SHIFT_JIS" + echo "TACTIS TIS-620" + echo "UTF-8 UTF-8" + ;; + solaris*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-3 ISO-8859-3" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-6 ISO-8859-6" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-8 ISO-8859-8" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-15 ISO-8859-15" + echo "koi8-r KOI8-R" + echo "ansi-1251 CP1251" + echo "BIG5 BIG5" + echo "Big5-HKSCS BIG5-HKSCS" + echo "gb2312 GB2312" + echo "GBK GBK" + echo "GB18030 GB18030" + echo "cns11643 EUC-TW" + echo "5601 EUC-KR" + echo "ko_KR.johap92 JOHAB" + echo "eucJP EUC-JP" + echo "PCK SHIFT_JIS" + echo "TIS620.2533 TIS-620" + #echo "sun_eu_greek ?" # what is this? + echo "UTF-8 UTF-8" + ;; + freebsd* | os2*) + # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just + # reuse FreeBSD's locale data for OS/2. + echo "C ASCII" + echo "US-ASCII ASCII" + for l in la_LN lt_LN; do + echo "$l.ASCII ASCII" + done + for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ + fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ + lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do + echo "$l.ISO_8859-1 ISO-8859-1" + echo "$l.DIS_8859-15 ISO-8859-15" + done + for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do + echo "$l.ISO_8859-2 ISO-8859-2" + done + for l in la_LN lt_LT; do + echo "$l.ISO_8859-4 ISO-8859-4" + done + for l in ru_RU ru_SU; do + echo "$l.KOI8-R KOI8-R" + echo "$l.ISO_8859-5 ISO-8859-5" + echo "$l.CP866 CP866" + done + echo "uk_UA.KOI8-U KOI8-U" + echo "zh_TW.BIG5 BIG5" + echo "zh_TW.Big5 BIG5" + echo "zh_CN.EUC GB2312" + echo "ja_JP.EUC EUC-JP" + echo "ja_JP.SJIS SHIFT_JIS" + echo "ja_JP.Shift_JIS SHIFT_JIS" + echo "ko_KR.EUC EUC-KR" + ;; + netbsd*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + echo "eucCN GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "eucTW EUC-TW" + echo "BIG5 BIG5" + echo "SJIS SHIFT_JIS" + ;; + openbsd*) + echo "646 ASCII" + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + ;; + darwin[56]*) + # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "C ASCII" + for l in en_AU en_CA en_GB en_US la_LN; do + echo "$l.US-ASCII ASCII" + done + for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ + fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ + nl_NL no_NO pt_PT sv_SE; do + echo "$l ISO-8859-1" + echo "$l.ISO8859-1 ISO-8859-1" + echo "$l.ISO8859-15 ISO-8859-15" + done + for l in la_LN; do + echo "$l.ISO8859-1 ISO-8859-1" + echo "$l.ISO8859-15 ISO-8859-15" + done + for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do + echo "$l.ISO8859-2 ISO-8859-2" + done + for l in la_LN lt_LT; do + echo "$l.ISO8859-4 ISO-8859-4" + done + for l in ru_RU; do + echo "$l.KOI8-R KOI8-R" + echo "$l.ISO8859-5 ISO-8859-5" + echo "$l.CP866 CP866" + done + for l in bg_BG; do + echo "$l.CP1251 CP1251" + done + echo "uk_UA.KOI8-U KOI8-U" + echo "zh_TW.BIG5 BIG5" + echo "zh_TW.Big5 BIG5" + echo "zh_CN.EUC GB2312" + echo "ja_JP.EUC EUC-JP" + echo "ja_JP.SJIS SHIFT_JIS" + echo "ko_KR.EUC EUC-KR" + ;; + darwin*) + # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is + # useless: + # - It returns the empty string when LANG is set to a locale of the + # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 + # LC_CTYPE file. + # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by + # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. + # - The documentation says: + # "... all code that calls BSD system routines should ensure + # that the const *char parameters of these routines are in UTF-8 + # encoding. All BSD system functions expect their string + # parameters to be in UTF-8 encoding and nothing else." + # It also says + # "An additional caveat is that string parameters for files, + # paths, and other file-system entities must be in canonical + # UTF-8. In a canonical UTF-8 Unicode string, all decomposable + # characters are decomposed ..." + # but this is not true: You can pass non-decomposed UTF-8 strings + # to file system functions, and it is the OS which will convert + # them to decomposed UTF-8 before accessing the file system. + # - The Apple Terminal application displays UTF-8 by default. + # - However, other applications are free to use different encodings: + # - xterm uses ISO-8859-1 by default. + # - TextEdit uses MacRoman by default. + # We prefer UTF-8 over decomposed UTF-8-MAC because one should + # minimize the use of decomposed Unicode. Unfortunately, through the + # Darwin file system, decomposed UTF-8 strings are leaked into user + # space nevertheless. + # Then there are also the locales with encodings other than US-ASCII + # and UTF-8. These locales can be occasionally useful to users (e.g. + # when grepping through ISO-8859-1 encoded text files), when all their + # file names are in US-ASCII. + echo "ISO8859-1 ISO-8859-1" + echo "ISO8859-2 ISO-8859-2" + echo "ISO8859-4 ISO-8859-4" + echo "ISO8859-5 ISO-8859-5" + echo "ISO8859-7 ISO-8859-7" + echo "ISO8859-9 ISO-8859-9" + echo "ISO8859-13 ISO-8859-13" + echo "ISO8859-15 ISO-8859-15" + echo "KOI8-R KOI8-R" + echo "KOI8-U KOI8-U" + echo "CP866 CP866" + echo "CP949 CP949" + echo "CP1131 CP1131" + echo "CP1251 CP1251" + echo "eucCN GB2312" + echo "GB2312 GB2312" + echo "eucJP EUC-JP" + echo "eucKR EUC-KR" + echo "Big5 BIG5" + echo "Big5HKSCS BIG5-HKSCS" + echo "GBK GBK" + echo "GB18030 GB18030" + echo "SJIS SHIFT_JIS" + echo "ARMSCII-8 ARMSCII-8" + echo "PT154 PT154" + #echo "ISCII-DEV ?" + echo "* UTF-8" + ;; + beos* | haiku*) + # BeOS and Haiku have a single locale, and it has UTF-8 encoding. + echo "* UTF-8" + ;; + msdosdjgpp*) + # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore + # localcharset.c falls back to using the full locale name + # from the environment variables. + echo "#" + echo "# The encodings given here may not all be correct." + echo "# If you find that the encoding given for your language and" + echo "# country is not the one your DOS machine actually uses, just" + echo "# correct it in this file, and send a mail to" + echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>" + echo "# and Bruno Haible <bruno@clisp.org>." + echo "#" + echo "C ASCII" + # ISO-8859-1 languages + echo "ca CP850" + echo "ca_ES CP850" + echo "da CP865" # not CP850 ?? + echo "da_DK CP865" # not CP850 ?? + echo "de CP850" + echo "de_AT CP850" + echo "de_CH CP850" + echo "de_DE CP850" + echo "en CP850" + echo "en_AU CP850" # not CP437 ?? + echo "en_CA CP850" + echo "en_GB CP850" + echo "en_NZ CP437" + echo "en_US CP437" + echo "en_ZA CP850" # not CP437 ?? + echo "es CP850" + echo "es_AR CP850" + echo "es_BO CP850" + echo "es_CL CP850" + echo "es_CO CP850" + echo "es_CR CP850" + echo "es_CU CP850" + echo "es_DO CP850" + echo "es_EC CP850" + echo "es_ES CP850" + echo "es_GT CP850" + echo "es_HN CP850" + echo "es_MX CP850" + echo "es_NI CP850" + echo "es_PA CP850" + echo "es_PY CP850" + echo "es_PE CP850" + echo "es_SV CP850" + echo "es_UY CP850" + echo "es_VE CP850" + echo "et CP850" + echo "et_EE CP850" + echo "eu CP850" + echo "eu_ES CP850" + echo "fi CP850" + echo "fi_FI CP850" + echo "fr CP850" + echo "fr_BE CP850" + echo "fr_CA CP850" + echo "fr_CH CP850" + echo "fr_FR CP850" + echo "ga CP850" + echo "ga_IE CP850" + echo "gd CP850" + echo "gd_GB CP850" + echo "gl CP850" + echo "gl_ES CP850" + echo "id CP850" # not CP437 ?? + echo "id_ID CP850" # not CP437 ?? + echo "is CP861" # not CP850 ?? + echo "is_IS CP861" # not CP850 ?? + echo "it CP850" + echo "it_CH CP850" + echo "it_IT CP850" + echo "lt CP775" + echo "lt_LT CP775" + echo "lv CP775" + echo "lv_LV CP775" + echo "nb CP865" # not CP850 ?? + echo "nb_NO CP865" # not CP850 ?? + echo "nl CP850" + echo "nl_BE CP850" + echo "nl_NL CP850" + echo "nn CP865" # not CP850 ?? + echo "nn_NO CP865" # not CP850 ?? + echo "no CP865" # not CP850 ?? + echo "no_NO CP865" # not CP850 ?? + echo "pt CP850" + echo "pt_BR CP850" + echo "pt_PT CP850" + echo "sv CP850" + echo "sv_SE CP850" + # ISO-8859-2 languages + echo "cs CP852" + echo "cs_CZ CP852" + echo "hr CP852" + echo "hr_HR CP852" + echo "hu CP852" + echo "hu_HU CP852" + echo "pl CP852" + echo "pl_PL CP852" + echo "ro CP852" + echo "ro_RO CP852" + echo "sk CP852" + echo "sk_SK CP852" + echo "sl CP852" + echo "sl_SI CP852" + echo "sq CP852" + echo "sq_AL CP852" + echo "sr CP852" # CP852 or CP866 or CP855 ?? + echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? + echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? + # ISO-8859-3 languages + echo "mt CP850" + echo "mt_MT CP850" + # ISO-8859-5 languages + echo "be CP866" + echo "be_BE CP866" + echo "bg CP866" # not CP855 ?? + echo "bg_BG CP866" # not CP855 ?? + echo "mk CP866" # not CP855 ?? + echo "mk_MK CP866" # not CP855 ?? + echo "ru CP866" + echo "ru_RU CP866" + echo "uk CP1125" + echo "uk_UA CP1125" + # ISO-8859-6 languages + echo "ar CP864" + echo "ar_AE CP864" + echo "ar_DZ CP864" + echo "ar_EG CP864" + echo "ar_IQ CP864" + echo "ar_IR CP864" + echo "ar_JO CP864" + echo "ar_KW CP864" + echo "ar_MA CP864" + echo "ar_OM CP864" + echo "ar_QA CP864" + echo "ar_SA CP864" + echo "ar_SY CP864" + # ISO-8859-7 languages + echo "el CP869" + echo "el_GR CP869" + # ISO-8859-8 languages + echo "he CP862" + echo "he_IL CP862" + # ISO-8859-9 languages + echo "tr CP857" + echo "tr_TR CP857" + # Japanese + echo "ja CP932" + echo "ja_JP CP932" + # Chinese + echo "zh_CN GBK" + echo "zh_TW CP950" # not CP938 ?? + # Korean + echo "kr CP949" # not CP934 ?? + echo "kr_KR CP949" # not CP934 ?? + # Thai + echo "th CP874" + echo "th_TH CP874" + # Other + echo "eo CP850" + echo "eo_EO CP850" + ;; +esac diff --git a/lib/fcntl--.h b/gnu/dirent--.h similarity index 67% rename from lib/fcntl--.h rename to gnu/dirent--.h index 5a6a8792d04c5ff600c83debd70a17e253cdd9c6..f537fac3a8255d81ef949ed00e52f9175682d989 100644 --- a/lib/fcntl--.h +++ b/gnu/dirent--.h @@ -1,6 +1,8 @@ -/* Like fcntl.h, but redefine some names to avoid glitches. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Like dirent.h, but redefine some names to avoid glitches. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2009, 2010 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 @@ -15,13 +17,9 @@ 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. */ +/* Written by Eric Blake. */ -#include <fcntl.h> -#include "fcntl-safer.h" +#include "dirent-safer.h" -#undef open -#define open open_safer - -#undef creat -#define creat creat_safer +#undef opendir +#define opendir opendir_safer diff --git a/lib/fcntl-safer.h b/gnu/dirent-safer.h similarity index 68% rename from lib/fcntl-safer.h rename to gnu/dirent-safer.h index 99f38656d06d9f1ee8066bc46d92ffbcde66da8c..d442ba0345df6d8be8c61ef295574a7a68c4e95c 100644 --- a/lib/fcntl-safer.h +++ b/gnu/dirent-safer.h @@ -1,6 +1,8 @@ -/* Invoke fcntl-like functions, but avoid some glitches. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Invoke dirent-like functions, but avoid some glitches. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2009, 2010 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 @@ -15,9 +17,8 @@ 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. */ +/* Written by Eric Blake. */ -#include <sys/types.h> +#include <dirent.h> -int open_safer (char const *, int, ...); -int creat_safer (char const *, mode_t); +DIR *opendir_safer (const char *name); diff --git a/gnu/dirent.in.h b/gnu/dirent.in.h new file mode 100644 index 0000000000000000000000000000000000000000..ddb78d8385898f040f0fe2aa226b520868b98ba4 --- /dev/null +++ b/gnu/dirent.in.h @@ -0,0 +1,156 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A GNU-like <dirent.h>. + Copyright (C) 2006-2010 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/>. */ + +#ifndef _GL_DIRENT_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_DIRENT_H@ + +#ifndef _GL_DIRENT_H +#define _GL_DIRENT_H + +/* Get ino_t. Needed on some systems, including glibc 2.8. */ +#include <sys/types.h> + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Declare overridden functions. */ + +#if @REPLACE_CLOSEDIR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define closedir rpl_closedir +# endif +_GL_FUNCDECL_RPL (closedir, int, (DIR *) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (closedir, int, (DIR *)); +#else +_GL_CXXALIAS_SYS (closedir, int, (DIR *)); +#endif +_GL_CXXALIASWARN (closedir); + +#if @GNULIB_DIRFD@ +# if !@HAVE_DECL_DIRFD@ && !defined dirfd +/* Return the file descriptor associated with the given directory stream, + or -1 if none exists. */ +_GL_EXTERN_C int dirfd (DIR *dir) _GL_ARG_NONNULL ((1)); +# endif +#elif defined GNULIB_POSIXCHECK +# undef dirfd +# if HAVE_RAW_DECL_DIRFD +_GL_WARN_ON_USE (dirfd, "dirfd is unportable - " + "use gnulib module dirfd for portability"); +# endif +#endif + +#if @GNULIB_FDOPENDIR@ +/* Open a directory stream visiting the given directory file + descriptor. Return NULL and set errno if fd is not visiting a + directory. On success, this function consumes fd (it will be + implicitly closed either by this function or by a subsequent + closedir). */ +# if @REPLACE_FDOPENDIR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fdopendir +# define fdopendir rpl_fdopendir +# endif +_GL_FUNCDECL_RPL (fdopendir, DIR *, (int fd)); +_GL_CXXALIAS_RPL (fdopendir, DIR *, (int fd)); +# else +# if !@HAVE_FDOPENDIR@ +_GL_FUNCDECL_SYS (fdopendir, DIR *, (int fd)); +# endif +_GL_CXXALIAS_SYS (fdopendir, DIR *, (int fd)); +# endif +_GL_CXXALIASWARN (fdopendir); +#elif defined GNULIB_POSIXCHECK +# undef fdopendir +# if HAVE_RAW_DECL_FDOPENDIR +_GL_WARN_ON_USE (fdopendir, "fdopendir is unportable - " + "use gnulib module fdopendir for portability"); +# endif +#endif + +#if @REPLACE_OPENDIR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define opendir rpl_opendir +# endif +_GL_FUNCDECL_RPL (opendir, DIR *, (const char *) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (opendir, DIR *, (const char *)); +#else +_GL_CXXALIAS_SYS (opendir, DIR *, (const char *)); +#endif +_GL_CXXALIASWARN (opendir); + +#if @GNULIB_SCANDIR@ +/* Scan the directory DIR, calling FILTER on each directory entry. + Entries for which FILTER returns nonzero are individually malloc'd, + sorted using qsort with CMP, and collected in a malloc'd array in + *NAMELIST. Returns the number of entries selected, or -1 on error. */ +# if !@HAVE_SCANDIR@ +_GL_FUNCDECL_SYS (scandir, int, + (const char *dir, struct dirent ***namelist, + int (*filter) (const struct dirent *), + int (*cmp) (const struct dirent **, const struct dirent **)) + _GL_ARG_NONNULL ((1, 2, 4))); +# endif +/* Need to cast, because on glibc systems, the fourth parameter is + int (*cmp) (const void *, const void *). */ +_GL_CXXALIAS_SYS_CAST (scandir, int, + (const char *dir, struct dirent ***namelist, + int (*filter) (const struct dirent *), + int (*cmp) (const struct dirent **, const struct dirent **))); +_GL_CXXALIASWARN (scandir); +#elif defined GNULIB_POSIXCHECK +# undef scandir +# if HAVE_RAW_DECL_SCANDIR +_GL_WARN_ON_USE (scandir, "scandir is unportable - " + "use gnulib module scandir for portability"); +# endif +#endif + +#if @GNULIB_ALPHASORT@ +/* Compare two 'struct dirent' entries alphabetically. */ +# if !@HAVE_ALPHASORT@ +_GL_FUNCDECL_SYS (alphasort, int, + (const struct dirent **, const struct dirent **) + _GL_ARG_NONNULL ((1, 2))); +# endif +/* Need to cast, because on glibc systems, the parameters are + (const void *, const void *). */ +_GL_CXXALIAS_SYS_CAST (alphasort, int, + (const struct dirent **, const struct dirent **)); +_GL_CXXALIASWARN (alphasort); +#elif defined GNULIB_POSIXCHECK +# undef alphasort +# if HAVE_RAW_DECL_ALPHASORT +_GL_WARN_ON_USE (alphasort, "alphasort is unportable - " + "use gnulib module alphasort for portability"); +# endif +#endif + + +#endif /* _GL_DIRENT_H */ +#endif /* _GL_DIRENT_H */ diff --git a/lib/dirfd.c b/gnu/dirfd.c similarity index 83% rename from lib/dirfd.c rename to gnu/dirfd.c index 81993c502c1f89c71304d7390c9df8240a86d782..f0afda84dfe08186209758fde1d9b46b19e57b28 100644 --- a/lib/dirfd.c +++ b/gnu/dirfd.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* dirfd.c -- return the file descriptor associated with an open DIR* - Copyright (C) 2001, 2006, 2008-2009 Free Software Foundation, Inc. + Copyright (C) 2001, 2006, 2008-2010 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 @@ -23,7 +25,7 @@ #include <errno.h> int -dirfd (DIR const *dir_p) +dirfd (DIR *dir_p) { int fd = DIR_TO_FD (dir_p); if (fd == -1) diff --git a/lib/dirname.c b/gnu/dirname-lgpl.c similarity index 70% rename from lib/dirname.c rename to gnu/dirname-lgpl.c index c27e5b5d8b3bf42dc5dc050ee3f029f421949235..969b465e83056241a4de73f7af621fcc3592e77f 100644 --- a/lib/dirname.c +++ b/gnu/dirname-lgpl.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* dirname.c -- return all but the last element in a file name - Copyright (C) 1990, 1998, 2000, 2001, 2003, 2004, 2005, 2006 Free Software + Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -20,8 +22,8 @@ #include "dirname.h" +#include <stdlib.h> #include <string.h> -#include "xalloc.h" /* Return the length of the prefix of FILE that will be used by dir_name. If FILE is in the working directory, this returns zero @@ -36,13 +38,13 @@ dir_len (char const *file) /* Advance prefix_length beyond important leading slashes. */ prefix_length += (prefix_length != 0 - ? (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - && ISSLASH (file[prefix_length])) - : (ISSLASH (file[0]) - ? ((DOUBLE_SLASH_IS_DISTINCT_ROOT - && ISSLASH (file[1]) && ! ISSLASH (file[2]) - ? 2 : 1)) - : 0)); + ? (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE + && ISSLASH (file[prefix_length])) + : (ISSLASH (file[0]) + ? ((DOUBLE_SLASH_IS_DISTINCT_ROOT + && ISSLASH (file[1]) && ! ISSLASH (file[2]) + ? 2 : 1)) + : 0)); /* Strip the basename and any redundant slashes before it. */ for (length = last_component (file) - file; @@ -57,9 +59,9 @@ dir_len (char const *file) since it has different meanings in different environments. In some environments the builtin `dirname' modifies its argument. - Return the leading directories part of FILE, allocated with xmalloc. + Return the leading directories part of FILE, allocated with malloc. Works properly even if there are trailing slashes (by effectively - ignoring them). Unlike POSIX dirname(), FILE cannot be NULL. + ignoring them). Return NULL on failure. If lstat (FILE) would succeed, then { chdir (dir_name (FILE)); lstat (base_name (FILE)); } will access the same file. Likewise, @@ -68,14 +70,16 @@ dir_len (char const *file) to "foo" in the same directory FILE was in. */ char * -dir_name (char const *file) +mdir_name (char const *file) { size_t length = dir_len (file); bool append_dot = (length == 0 - || (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - && length == FILE_SYSTEM_PREFIX_LEN (file) - && file[2] != '\0' && ! ISSLASH (file[2]))); - char *dir = xmalloc (length + append_dot + 1); + || (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE + && length == FILE_SYSTEM_PREFIX_LEN (file) + && file[2] != '\0' && ! ISSLASH (file[2]))); + char *dir = malloc (length + append_dot + 1); + if (!dir) + return NULL; memcpy (dir, file, length); if (append_dot) dir[length++] = '.'; diff --git a/gnu/dirname.c b/gnu/dirname.c new file mode 100644 index 0000000000000000000000000000000000000000..8b3d28dce4892e5f8bce6c66d305dff46152241a --- /dev/null +++ b/gnu/dirname.c @@ -0,0 +1,40 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* dirname.c -- return all but the last element in a file name + + Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2010 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/>. */ + +#include <config.h> + +#include "dirname.h" + +#include <stdlib.h> +#include <string.h> +#include "xalloc.h" + +/* Just like mdir_name (dirname-lgpl.c), except, rather than + returning NULL upon malloc failure, here, we report the + "memory exhausted" condition and exit. */ + +char * +dir_name (char const *file) +{ + char *result = mdir_name (file); + if (!result) + xalloc_die (); + return result; +} diff --git a/lib/dirname.h b/gnu/dirname.h similarity index 82% rename from lib/dirname.h rename to gnu/dirname.h index f592350b81eb2f94ae1548aef85300ddb22e9c6b..ede162d40d3f5003f72fad76fcc64aac6d307692 100644 --- a/lib/dirname.h +++ b/gnu/dirname.h @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Take file names apart into directory and base names. - Copyright (C) 1998, 2001, 2003-2006 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2003-2006, 2009-2010 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 @@ -34,9 +37,9 @@ /* This internal macro assumes ASCII, but all hosts that support drive letters use ASCII. */ # define _IS_DRIVE_LETTER(c) (((unsigned int) (c) | ('a' - 'A')) - 'a' \ - <= 'z' - 'a') + <= 'z' - 'a') # define FILE_SYSTEM_PREFIX_LEN(Filename) \ - (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) + (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) # else # define FILE_SYSTEM_PREFIX_LEN(Filename) 0 # endif @@ -54,12 +57,16 @@ # define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) # else # define IS_ABSOLUTE_FILE_NAME(F) \ - (ISSLASH ((F)[0]) || 0 < FILE_SYSTEM_PREFIX_LEN (F)) + (ISSLASH ((F)[0]) || 0 < FILE_SYSTEM_PREFIX_LEN (F)) # endif # define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) +# if GNULIB_DIRNAME char *base_name (char const *file); char *dir_name (char const *file); +# endif + +char *mdir_name (char const *file); size_t base_len (char const *file); size_t dir_len (char const *file); char *last_component (char const *file); diff --git a/lib/dup-safer.c b/gnu/dup-safer.c similarity index 77% rename from lib/dup-safer.c rename to gnu/dup-safer.c index 7d9b2be349035c40b2277dd2367b07e37b9bb37e..3b75ab7d79011e99273bb43cb90b36d0423c265a 100644 --- a/lib/dup-safer.c +++ b/gnu/dup-safer.c @@ -1,7 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Invoke dup, but avoid some glitches. - Copyright (C) 2001, 2004, 2005, 2006, 2009 Free Software - Foundation, Inc. + Copyright (C) 2001, 2004-2006, 2009-2010 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 @@ -23,7 +24,6 @@ #include "unistd-safer.h" #include <fcntl.h> - #include <unistd.h> /* Like dup, but do not return STDIN_FILENO, STDOUT_FILENO, or @@ -32,11 +32,5 @@ int dup_safer (int fd) { -#if defined F_DUPFD && !defined FCHDIR_REPLACEMENT return fcntl (fd, F_DUPFD, STDERR_FILENO + 1); -#else - /* fd_safer calls us back, but eventually the recursion unwinds and - does the right thing. */ - return fd_safer (dup (fd)); -#endif } diff --git a/gnu/dup2.c b/gnu/dup2.c new file mode 100644 index 0000000000000000000000000000000000000000..002aa84bcad599d25a54325a5184eccd1c9ff183 --- /dev/null +++ b/gnu/dup2.c @@ -0,0 +1,130 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Duplicate an open file descriptor to a specified file descriptor. + + Copyright (C) 1999, 2004-2007, 2009-2010 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 */ + +#include <config.h> + +/* Specification. */ +#include <unistd.h> + +#include <errno.h> +#include <fcntl.h> + +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +/* Get declarations of the Win32 API functions. */ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +#endif + +#if HAVE_DUP2 + +# undef dup2 + +int +rpl_dup2 (int fd, int desired_fd) +{ + int result; +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, + dup2 (fd, fd) returns 0, but all further attempts to use fd in + future dup2 calls will hang. */ + if (fd == desired_fd) + { + if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) + { + errno = EBADF; + return -1; + } + return fd; + } + /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: + http://bugs.winehq.org/show_bug.cgi?id=21289 */ + if (desired_fd < 0) + { + errno = EBADF; + return -1; + } +# endif + result = dup2 (fd, desired_fd); +# ifdef __linux__ + /* Correct a Linux return value. + <http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.30.y.git;a=commitdiff;h=2b79bc4f7ebbd5af3c8b867968f9f15602d5f802> + */ + if (fd == desired_fd && result == (unsigned int) -EBADF) + { + errno = EBADF; + result = -1; + } +# endif + if (result == 0) + result = desired_fd; + /* Correct a cygwin 1.5.x errno value. */ + else if (result == -1 && errno == EMFILE) + errno = EBADF; +# if REPLACE_FCHDIR + if (fd != desired_fd && result != -1) + result = _gl_register_dup (fd, result); +# endif + return result; +} + +#else /* !HAVE_DUP2 */ + +/* On older platforms, dup2 did not exist. */ + +# ifndef F_DUPFD +static int +dupfd (int fd, int desired_fd) +{ + int duplicated_fd = dup (fd); + if (duplicated_fd < 0 || duplicated_fd == desired_fd) + return duplicated_fd; + else + { + int r = dupfd (fd, desired_fd); + int e = errno; + close (duplicated_fd); + errno = e; + return r; + } +} +# endif + +int +dup2 (int fd, int desired_fd) +{ + int result = fcntl (fd, F_GETFL) < 0 ? -1 : fd; + if (result == -1 || fd == desired_fd) + return result; + close (desired_fd); +# ifdef F_DUPFD + result = fcntl (fd, F_DUPFD, desired_fd); +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (fd, result); +# endif +# else + result = dupfd (fd, desired_fd); +# endif + if (result == -1 && (errno == EMFILE || errno == EINVAL)) + errno = EBADF; + return result; +} +#endif /* !HAVE_DUP2 */ diff --git a/lib/errno.in.h b/gnu/errno.in.h similarity index 96% rename from lib/errno.in.h rename to gnu/errno.in.h index f8730395f9275b1bf874689de451eca075056b7f..f613d26a373fbea0211668b46dc1c74f0e44acc7 100644 --- a/lib/errno.in.h +++ b/gnu/errno.in.h @@ -2,7 +2,7 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A POSIX-like <errno.h>. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-2010 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 @@ -147,6 +147,11 @@ # define GNULIB_defined_ENOTSUP 1 # endif +# ifndef ESTALE +# define ESTALE 2009 +# define GNULIB_defined_ESTALE 1 +# endif + # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 diff --git a/lib/error.c b/gnu/error.c similarity index 69% rename from lib/error.c rename to gnu/error.c index 3177bd5d2cbc3802e3590e40732ca6c376762a31..b6e9c3350d205bd19900d89aacaee6f5620d0f45 100644 --- a/lib/error.c +++ b/gnu/error.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc. + Copyright (C) 1990-1998, 2000-2007, 2009-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -70,8 +72,8 @@ unsigned int error_message_count; extern void __error (int status, int errnum, const char *message, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void __error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, - ...) + unsigned int line_number, const char *message, + ...) __attribute__ ((__format__ (__printf__, 5, 6)));; # define error __error # define error_at_line __error_at_line @@ -85,6 +87,9 @@ extern void __error_at_line (int status, int errnum, const char *file_name, #else /* not _LIBC */ +# include <fcntl.h> +# include <unistd.h> + # if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" @@ -98,8 +103,33 @@ extern char *program_name; # if HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r -# endif /* HAVE_STRERROR_R || defined strerror_r */ -#endif /* not _LIBC */ +# endif /* HAVE_STRERROR_R || defined strerror_r */ +#endif /* not _LIBC */ + +static inline void +flush_stdout (void) +{ +#if !_LIBC && defined F_GETFL + int stdout_fd; + +# if GNULIB_FREOPEN_SAFER + /* Use of gnulib's freopen-safer module normally ensures that + fileno (stdout) == 1 + whenever stdout is open. */ + stdout_fd = STDOUT_FILENO; +# else + /* POSIX states that fileno (stdout) after fclose is unspecified. But in + practice it is not a problem, because stdout is statically allocated and + the fd of a FILE stream is stored as a field in its allocated memory. */ + stdout_fd = fileno (stdout); +# endif + /* POSIX states that fflush (stdout) after fclose is unspecified; it + is safe in glibc, but not on all other platforms. fflush (NULL) + is always defined, but too draconian. */ + if (0 <= stdout_fd && 0 <= fcntl (stdout_fd, F_GETFL)) +#endif + fflush (stdout); +} static void print_errno_message (int errnum) @@ -147,58 +177,58 @@ error_tail (int status, int errnum, const char *message, va_list args) bool use_malloc = false; while (1) - { - if (__libc_use_alloca (len * sizeof (wchar_t))) - wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); - else - { - if (!use_malloc) - wmessage = NULL; - - wchar_t *p = (wchar_t *) realloc (wmessage, - len * sizeof (wchar_t)); - if (p == NULL) - { - free (wmessage); - fputws_unlocked (L"out of memory\n", stderr); - return; - } - wmessage = p; - use_malloc = true; - } - - memset (&st, '\0', sizeof (st)); - tmp = message; - - res = mbsrtowcs (wmessage, &tmp, len, &st); - if (res != len) - break; - - if (__builtin_expect (len >= SIZE_MAX / 2, 0)) - { - /* This really should not happen if everything is fine. */ - res = (size_t) -1; - break; - } - - len *= 2; - } + { + if (__libc_use_alloca (len * sizeof (wchar_t))) + wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); + else + { + if (!use_malloc) + wmessage = NULL; + + wchar_t *p = (wchar_t *) realloc (wmessage, + len * sizeof (wchar_t)); + if (p == NULL) + { + free (wmessage); + fputws_unlocked (L"out of memory\n", stderr); + return; + } + wmessage = p; + use_malloc = true; + } + + memset (&st, '\0', sizeof (st)); + tmp = message; + + res = mbsrtowcs (wmessage, &tmp, len, &st); + if (res != len) + break; + + if (__builtin_expect (len >= SIZE_MAX / 2, 0)) + { + /* This really should not happen if everything is fine. */ + res = (size_t) -1; + break; + } + + len *= 2; + } if (res == (size_t) -1) - { - /* The string cannot be converted. */ - if (use_malloc) - { - free (wmessage); - use_malloc = false; - } - wmessage = (wchar_t *) L"???"; - } + { + /* The string cannot be converted. */ + if (use_malloc) + { + free (wmessage); + use_malloc = false; + } + wmessage = (wchar_t *) L"???"; + } __vfwprintf (stderr, wmessage, args); if (use_malloc) - free (wmessage); + free (wmessage); } else #endif @@ -233,10 +263,10 @@ error (int status, int errnum, const char *message, ...) cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), - 0); + 0); #endif - fflush (stdout); + flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif @@ -268,7 +298,7 @@ int error_one_per_line; void error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, ...) + unsigned int line_number, const char *message, ...) { va_list args; @@ -278,10 +308,10 @@ error_at_line (int status, int errnum, const char *file_name, static unsigned int old_line_number; if (old_line_number == line_number - && (file_name == old_file_name - || strcmp (old_file_name, file_name) == 0)) - /* Simply return and print nothing. */ - return; + && (file_name == old_file_name + || strcmp (old_file_name, file_name) == 0)) + /* Simply return and print nothing. */ + return; old_file_name = file_name; old_line_number = line_number; @@ -292,10 +322,10 @@ error_at_line (int status, int errnum, const char *file_name, cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), - 0); + 0); #endif - fflush (stdout); + flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif @@ -312,10 +342,10 @@ error_at_line (int status, int errnum, const char *file_name, #if _LIBC __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ", - file_name, line_number); + file_name, line_number); #else fprintf (stderr, file_name != NULL ? "%s:%d: " : " ", - file_name, line_number); + file_name, line_number); #endif va_start (args, message); diff --git a/lib/error.h b/gnu/error.h similarity index 72% rename from lib/error.h rename to gnu/error.h index 6d49681146d5067a4a9664342047f70b42e20d71..5e5d35a07ea31902f31f15b05635f0a2882a375e 100644 --- a/lib/error.h +++ b/gnu/error.h @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Declaration for error-reporting function - Copyright (C) 1995, 1996, 1997, 2003, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 2003, 2006, 2008, 2009, 2010 Free Software + Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -19,19 +22,18 @@ #define _ERROR_H 1 #ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable __attribute__ only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf +# define __attribute__(Spec) /* empty */ # endif #endif -#ifdef __cplusplus +#ifdef __cplusplus extern "C" { #endif @@ -43,7 +45,7 @@ extern void error (int __status, int __errnum, const char *__format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void error_at_line (int __status, int __errnum, const char *__fname, - unsigned int __lineno, const char *__format, ...) + unsigned int __lineno, const char *__format, ...) __attribute__ ((__format__ (__printf__, 5, 6))); /* If NULL, error will flush stdout, then print on stderr the program @@ -58,7 +60,7 @@ extern unsigned int error_message_count; variable controls whether this mode is selected or not. */ extern int error_one_per_line; -#ifdef __cplusplus +#ifdef __cplusplus } #endif diff --git a/gnu/exclude.c b/gnu/exclude.c new file mode 100644 index 0000000000000000000000000000000000000000..00a053fc70a022ebb5fc4b3ce64be0848085c251 --- /dev/null +++ b/gnu/exclude.c @@ -0,0 +1,558 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* exclude.c -- exclude file names + + Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007, 2009, 2010 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 <eggert@twinsun.com> + and Sergey Poznyakoff <gray@gnu.org>. + Thanks to Phil Proudman <phil@proudman51.freeserve.co.uk> + for improvement suggestions. */ + +#include <config.h> + +#include <stdbool.h> + +#include <ctype.h> +#include <errno.h> +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <wctype.h> + +#include "exclude.h" +#include "hash.h" +#include "mbuiter.h" +#include "fnmatch.h" +#include "xalloc.h" +#include "verify.h" + +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +#endif + +/* Non-GNU systems lack these options, so we don't need to check them. */ +#ifndef FNM_CASEFOLD +# define FNM_CASEFOLD 0 +#endif +#ifndef FNM_EXTMATCH +# define FNM_EXTMATCH 0 +#endif +#ifndef FNM_LEADING_DIR +# define FNM_LEADING_DIR 0 +#endif + +verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) + & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR + | FNM_CASEFOLD | FNM_EXTMATCH)) + == 0); + + +/* Exclusion patterns are grouped into a singly-linked list of + "exclusion segments". Each segment represents a set of patterns + that can be matches using the same algorithm. Non-wildcard + patterns are kept in hash tables, to speed up searches. Wildcard + patterns are stored as arrays of patterns. */ + + +/* An exclude pattern-options pair. The options are fnmatch options + ORed with EXCLUDE_* options. */ + +struct patopts + { + char const *pattern; + int options; + }; + +/* An array of pattern-options pairs. */ + +struct exclude_pattern + { + struct patopts *exclude; + size_t exclude_alloc; + size_t exclude_count; + }; + +enum exclude_type + { + exclude_hash, /* a hash table of excluded names */ + exclude_pattern /* an array of exclude patterns */ + }; + +struct exclude_segment + { + struct exclude_segment *next; /* next segment in list */ + enum exclude_type type; /* type of this segment */ + int options; /* common options for this segment */ + union + { + Hash_table *table; /* for type == exclude_hash */ + struct exclude_pattern pat; /* for type == exclude_pattern */ + } v; + }; + +/* The exclude structure keeps a singly-linked list of exclude segments */ +struct exclude + { + struct exclude_segment *head, *tail; + }; + +/* Return true if str has wildcard characters */ +bool +fnmatch_pattern_has_wildcards (const char *str, int options) +{ + const char *cset = "\\?*[]"; + if (options & FNM_NOESCAPE) + cset++; + while (*str) + { + size_t n = strcspn (str, cset); + if (str[n] == 0) + break; + else if (str[n] == '\\') + { + str += n + 1; + if (*str) + str++; + } + else + return true; + } + return false; +} + +/* Return a newly allocated and empty exclude list. */ + +struct exclude * +new_exclude (void) +{ + return xzalloc (sizeof *new_exclude ()); +} + +/* Calculate the hash of string. */ +static size_t +string_hasher (void const *data, size_t n_buckets) +{ + char const *p = data; + return hash_string (p, n_buckets); +} + +/* Ditto, for case-insensitive hashes */ +static size_t +string_hasher_ci (void const *data, size_t n_buckets) +{ + char const *p = data; + mbui_iterator_t iter; + size_t value = 0; + + for (mbui_init (iter, p); mbui_avail (iter); mbui_advance (iter)) + { + mbchar_t m = mbui_cur (iter); + wchar_t wc; + + if (m.wc_valid) + wc = towlower (m.wc); + else + wc = *m.ptr; + + value = (value * 31 + wc) % n_buckets; + } + + return value; +} + +/* compare two strings for equality */ +static bool +string_compare (void const *data1, void const *data2) +{ + char const *p1 = data1; + char const *p2 = data2; + return strcmp (p1, p2) == 0; +} + +/* compare two strings for equality, case-insensitive */ +static bool +string_compare_ci (void const *data1, void const *data2) +{ + char const *p1 = data1; + char const *p2 = data2; + return mbscasecmp (p1, p2) == 0; +} + +static void +string_free (void *data) +{ + free (data); +} + +/* Create new exclude segment of given TYPE and OPTIONS, and attach it + to the tail of list in EX */ +static struct exclude_segment * +new_exclude_segment (struct exclude *ex, enum exclude_type type, int options) +{ + struct exclude_segment *sp = xzalloc (sizeof (struct exclude_segment)); + sp->type = type; + sp->options = options; + switch (type) + { + case exclude_pattern: + break; + + case exclude_hash: + sp->v.table = hash_initialize (0, NULL, + (options & FNM_CASEFOLD) ? + string_hasher_ci + : string_hasher, + (options & FNM_CASEFOLD) ? + string_compare_ci + : string_compare, + string_free); + break; + } + if (ex->tail) + ex->tail->next = sp; + else + ex->head = sp; + ex->tail = sp; + return sp; +} + +/* Free a single exclude segment */ +static void +free_exclude_segment (struct exclude_segment *seg) +{ + switch (seg->type) + { + case exclude_pattern: + free (seg->v.pat.exclude); + break; + + case exclude_hash: + hash_free (seg->v.table); + break; + } + free (seg); +} + +/* Free the storage associated with an exclude list. */ +void +free_exclude (struct exclude *ex) +{ + struct exclude_segment *seg; + for (seg = ex->head; seg; ) + { + struct exclude_segment *next = seg->next; + free_exclude_segment (seg); + seg = next; + } + free (ex); +} + +/* Return zero if PATTERN matches F, obeying OPTIONS, except that + (unlike fnmatch) wildcards are disabled in PATTERN. */ + +static int +fnmatch_no_wildcards (char const *pattern, char const *f, int options) +{ + if (! (options & FNM_LEADING_DIR)) + return ((options & FNM_CASEFOLD) + ? mbscasecmp (pattern, f) + : strcmp (pattern, f)); + else if (! (options & FNM_CASEFOLD)) + { + size_t patlen = strlen (pattern); + int r = strncmp (pattern, f, patlen); + if (! r) + { + r = f[patlen]; + if (r == '/') + r = 0; + } + return r; + } + else + { + /* Walk through a copy of F, seeing whether P matches any prefix + of F. + + FIXME: This is an O(N**2) algorithm; it should be O(N). + Also, the copy should not be necessary. However, fixing this + will probably involve a change to the mbs* API. */ + + char *fcopy = xstrdup (f); + char *p; + int r; + for (p = fcopy; ; *p++ = '/') + { + p = strchr (p, '/'); + if (p) + *p = '\0'; + r = mbscasecmp (pattern, fcopy); + if (!p || r <= 0) + break; + } + free (fcopy); + return r; + } +} + +bool +exclude_fnmatch (char const *pattern, char const *f, int options) +{ + int (*matcher) (char const *, char const *, int) = + (options & EXCLUDE_WILDCARDS + ? fnmatch + : fnmatch_no_wildcards); + bool matched = ((*matcher) (pattern, f, options) == 0); + char const *p; + + if (! (options & EXCLUDE_ANCHORED)) + for (p = f; *p && ! matched; p++) + if (*p == '/' && p[1] != '/') + matched = ((*matcher) (pattern, p + 1, options) == 0); + + return matched; +} + +/* Return true if the exclude_pattern segment SEG excludes F. */ + +static bool +excluded_file_pattern_p (struct exclude_segment const *seg, char const *f) +{ + size_t exclude_count = seg->v.pat.exclude_count; + struct patopts const *exclude = seg->v.pat.exclude; + size_t i; + bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE); + + /* Scan through the options, until they change excluded */ + for (i = 0; i < exclude_count; i++) + { + char const *pattern = exclude[i].pattern; + int options = exclude[i].options; + if (excluded != exclude_fnmatch (pattern, f, options)) + return !excluded; + } + return excluded; +} + +/* Return true if the exclude_hash segment SEG excludes F. + BUFFER is an auxiliary storage of the same length as F (with nul + terminator included) */ +static bool +excluded_file_name_p (struct exclude_segment const *seg, char const *f, + char *buffer) +{ + int options = seg->options; + bool excluded = !! (options & EXCLUDE_INCLUDE); + Hash_table *table = seg->v.table; + + do + { + /* initialize the pattern */ + strcpy (buffer, f); + + while (1) + { + if (hash_lookup (table, buffer)) + return !excluded; + if (options & FNM_LEADING_DIR) + { + char *p = strrchr (buffer, '/'); + if (p) + { + *p = 0; + continue; + } + } + break; + } + + if (!(options & EXCLUDE_ANCHORED)) + { + f = strchr (f, '/'); + if (f) + f++; + } + else + break; + } + while (f); + return excluded; +} + +/* Return true if EX excludes F. */ + +bool +excluded_file_name (struct exclude const *ex, char const *f) +{ + struct exclude_segment *seg; + bool excluded; + char *filename = NULL; + + /* If no patterns are given, the default is to include. */ + if (!ex->head) + return false; + + /* Otherwise, the default is the opposite of the first option. */ + excluded = !! (ex->head->options & EXCLUDE_INCLUDE); + /* Scan through the segments, seeing whether they change status from + excluded to included or vice versa. */ + for (seg = ex->head; seg; seg = seg->next) + { + bool rc; + + switch (seg->type) + { + case exclude_pattern: + rc = excluded_file_pattern_p (seg, f); + break; + + case exclude_hash: + if (!filename) + filename = xmalloc (strlen (f) + 1); + rc = excluded_file_name_p (seg, f, filename); + break; + + default: + abort (); + } + if (rc != excluded) + { + excluded = rc; + break; + } + } + free (filename); + return excluded; +} + +/* Append to EX the exclusion PATTERN with OPTIONS. */ + +void +add_exclude (struct exclude *ex, char const *pattern, int options) +{ + struct exclude_segment *seg; + + if ((options & EXCLUDE_WILDCARDS) + && fnmatch_pattern_has_wildcards (pattern, options)) + { + struct exclude_pattern *pat; + struct patopts *patopts; + + if (ex->tail && ex->tail->type == exclude_pattern + && ((ex->tail->options & EXCLUDE_INCLUDE) == + (options & EXCLUDE_INCLUDE))) + seg = ex->tail; + else + seg = new_exclude_segment (ex, exclude_pattern, options); + + pat = &seg->v.pat; + if (pat->exclude_count == pat->exclude_alloc) + pat->exclude = x2nrealloc (pat->exclude, &pat->exclude_alloc, + sizeof *pat->exclude); + patopts = &pat->exclude[pat->exclude_count++]; + patopts->pattern = pattern; + patopts->options = options; + } + else + { + char *str, *p; +#define EXCLUDE_HASH_FLAGS (EXCLUDE_INCLUDE|EXCLUDE_ANCHORED|\ + FNM_LEADING_DIR|FNM_CASEFOLD) + if (ex->tail && ex->tail->type == exclude_hash + && ((ex->tail->options & EXCLUDE_HASH_FLAGS) == + (options & EXCLUDE_HASH_FLAGS))) + seg = ex->tail; + else + seg = new_exclude_segment (ex, exclude_hash, options); + + str = xstrdup (pattern); + p = hash_insert (seg->v.table, str); + if (p != str) + free (str); + } +} + +/* Use ADD_FUNC to append to EX the patterns in FILE_NAME, each with + OPTIONS. LINE_END terminates each pattern in the file. If + LINE_END is a space character, ignore trailing spaces and empty + lines in FILE. Return -1 on failure, 0 on success. */ + +int +add_exclude_file (void (*add_func) (struct exclude *, char const *, int), + struct exclude *ex, char const *file_name, int options, + char line_end) +{ + bool use_stdin = file_name[0] == '-' && !file_name[1]; + FILE *in; + char *buf = NULL; + char *p; + char const *pattern; + char const *lim; + size_t buf_alloc = 0; + size_t buf_count = 0; + int c; + int e = 0; + + if (use_stdin) + in = stdin; + else if (! (in = fopen (file_name, "r"))) + return -1; + + while ((c = getc (in)) != EOF) + { + if (buf_count == buf_alloc) + buf = x2realloc (buf, &buf_alloc); + buf[buf_count++] = c; + } + + if (ferror (in)) + e = errno; + + if (!use_stdin && fclose (in) != 0) + e = errno; + + buf = xrealloc (buf, buf_count + 1); + buf[buf_count] = line_end; + lim = buf + buf_count + ! (buf_count == 0 || buf[buf_count - 1] == line_end); + pattern = buf; + + for (p = buf; p < lim; p++) + if (*p == line_end) + { + char *pattern_end = p; + + if (isspace ((unsigned char) line_end)) + { + for (; ; pattern_end--) + if (pattern_end == pattern) + goto next_pattern; + else if (! isspace ((unsigned char) pattern_end[-1])) + break; + } + + *pattern_end = '\0'; + (*add_func) (ex, pattern, options); + + next_pattern: + pattern = p + 1; + } + + errno = e; + return e ? -1 : 0; +} diff --git a/lib/exclude.h b/gnu/exclude.h similarity index 77% rename from lib/exclude.h rename to gnu/exclude.h index 7d03bc12ad507c9756d5d09791524667985a0fcc..7b514e4608dec2e766903ac07cce6e39add1b634 100644 --- a/lib/exclude.h +++ b/gnu/exclude.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* exclude.h -- declarations for excluding file names - Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003, 2005, - 2006 Free Software Foundation, Inc. + Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003, 2005, 2006, + 2009, 2010 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 @@ -16,7 +18,13 @@ 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 <eggert@twinsun.com> */ +#ifndef _GL_EXCLUDE_H +#define _GL_EXCLUDE_H 1 + +#include <stdbool.h> + +/* Written by Paul Eggert <eggert@twinsun.com> + and Sergey Poznyakoff <gray@gnu.org> */ /* Exclude options, which can be ORed with fnmatch options. */ @@ -33,10 +41,14 @@ struct exclude; +bool fnmatch_pattern_has_wildcards (const char *, int); + struct exclude *new_exclude (void); void free_exclude (struct exclude *); void add_exclude (struct exclude *, char const *, int); int add_exclude_file (void (*) (struct exclude *, char const *, int), - struct exclude *, char const *, int, char); + struct exclude *, char const *, int, char); bool excluded_file_name (struct exclude const *, char const *); bool exclude_fnmatch (char const *pattern, char const *f, int options); + +#endif /* _GL_EXCLUDE_H */ diff --git a/lib/exitfail.c b/gnu/exitfail.c similarity index 81% rename from lib/exitfail.c rename to gnu/exitfail.c index 6d1fe4aea0fff707c8f62f761c7e684361a260a4..459e184f8d94615c6120a33434d47a9d2293b816 100644 --- a/lib/exitfail.c +++ b/gnu/exitfail.c @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Failure exit status - Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2005, 2006, 2007, 2009, 2010 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 diff --git a/lib/exitfail.h b/gnu/exitfail.h similarity index 81% rename from lib/exitfail.h rename to gnu/exitfail.h index 713f2591a79023659d5328085652049b4e977c8c..bdbbce0b8f0d0f1431115a941b5baac6f3694acd 100644 --- a/lib/exitfail.h +++ b/gnu/exitfail.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Failure exit status - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2009, 2010 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 diff --git a/gnu/fchdir.c b/gnu/fchdir.c new file mode 100644 index 0000000000000000000000000000000000000000..83d3c33967e9cb7d15130e83eaed8fbef8a49a02 --- /dev/null +++ b/gnu/fchdir.c @@ -0,0 +1,289 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* fchdir replacement. + Copyright (C) 2006-2010 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/>. */ + +#include <config.h> + +/* Specification. */ +#include <unistd.h> + +#include <assert.h> +#include <dirent.h> +#include <errno.h> +#include <fcntl.h> +#include <stdbool.h> +#include <stdlib.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> + +#ifndef REPLACE_OPEN_DIRECTORY +# define REPLACE_OPEN_DIRECTORY 0 +#endif + +#ifndef HAVE_CANONICALIZE_FILE_NAME +# if GNULIB_CANONICALIZE || GNULIB_CANONICALIZE_LGPL +# define HAVE_CANONICALIZE_FILE_NAME 1 +# else +# define HAVE_CANONICALIZE_FILE_NAME 0 +# define canonicalize_file_name(name) NULL +# endif +#endif + +/* This replacement assumes that a directory is not renamed while opened + through a file descriptor. + + FIXME: On mingw, this would be possible to enforce if we were to + also open a HANDLE to each directory currently visited by a file + descriptor, since mingw refuses to rename any in-use file system + object. */ + +/* Array of file descriptors opened. If REPLACE_OPEN_DIRECTORY or if it points + to a directory, it stores info about this directory. */ +typedef struct +{ + char *name; /* Absolute name of the directory, or NULL. */ + /* FIXME - add a DIR* member to make dirfd possible on mingw? */ +} dir_info_t; +static dir_info_t *dirs; +static size_t dirs_allocated; + +/* Try to ensure dirs has enough room for a slot at index fd; free any + contents already in that slot. Return false and set errno to + ENOMEM on allocation failure. */ +static bool +ensure_dirs_slot (size_t fd) +{ + if (fd < dirs_allocated) + free (dirs[fd].name); + else + { + size_t new_allocated; + dir_info_t *new_dirs; + + new_allocated = 2 * dirs_allocated + 1; + if (new_allocated <= fd) + new_allocated = fd + 1; + new_dirs = + (dirs != NULL + ? (dir_info_t *) realloc (dirs, new_allocated * sizeof *dirs) + : (dir_info_t *) malloc (new_allocated * sizeof *dirs)); + if (new_dirs == NULL) + return false; + memset (new_dirs + dirs_allocated, 0, + (new_allocated - dirs_allocated) * sizeof *dirs); + dirs = new_dirs; + dirs_allocated = new_allocated; + } + return true; +} + +/* Return the canonical name of DIR in malloc'd storage. */ +static char * +get_name (char const *dir) +{ + char *result; + if (REPLACE_OPEN_DIRECTORY || !HAVE_CANONICALIZE_FILE_NAME) + { + /* The function canonicalize_file_name has not yet been ported + to mingw, with all its drive letter and backslash quirks. + Fortunately, getcwd is reliable in this case, but we ensure + we can get back to where we started before using it. Treat + "." as a special case, as it is frequently encountered. */ + char *cwd = getcwd (NULL, 0); + int saved_errno; + if (dir[0] == '.' && dir[1] == '\0') + return cwd; + if (chdir (cwd)) + return NULL; + result = chdir (dir) ? NULL : getcwd (NULL, 0); + saved_errno = errno; + if (chdir (cwd)) + abort (); + free (cwd); + errno = saved_errno; + } + else + { + /* Avoid changing the directory. */ + result = canonicalize_file_name (dir); + } + return result; +} + +/* Hook into the gnulib replacements for open() and close() to keep track + of the open file descriptors. */ + +/* Close FD, cleaning up any fd to name mapping if fd was visiting a + directory. */ +void +_gl_unregister_fd (int fd) +{ + if (fd >= 0 && fd < dirs_allocated) + { + free (dirs[fd].name); + dirs[fd].name = NULL; + } +} + +/* Mark FD as visiting FILENAME. FD must be non-negative, and refer + to an open file descriptor. If REPLACE_OPEN_DIRECTORY is non-zero, + this should only be called if FD is visiting a directory. Close FD + and return -1 if there is insufficient memory to track the + directory name; otherwise return FD. */ +int +_gl_register_fd (int fd, const char *filename) +{ + struct stat statbuf; + + assert (0 <= fd); + if (REPLACE_OPEN_DIRECTORY + || (fstat (fd, &statbuf) == 0 && S_ISDIR (statbuf.st_mode))) + { + if (!ensure_dirs_slot (fd) + || (dirs[fd].name = get_name (filename)) == NULL) + { + int saved_errno = errno; + close (fd); + errno = saved_errno; + return -1; + } + } + return fd; +} + +/* Mark NEWFD as a duplicate of OLDFD; useful from dup, dup2, dup3, + and fcntl. Both arguments must be valid and distinct file + descriptors. Close NEWFD and return -1 if OLDFD is tracking a + directory, but there is insufficient memory to track the same + directory in NEWFD; otherwise return NEWFD. */ +int +_gl_register_dup (int oldfd, int newfd) +{ + assert (0 <= oldfd && 0 <= newfd && oldfd != newfd); + if (oldfd < dirs_allocated && dirs[oldfd].name) + { + /* Duplicated a directory; must ensure newfd is allocated. */ + if (!ensure_dirs_slot (newfd) + || (dirs[newfd].name = strdup (dirs[oldfd].name)) == NULL) + { + int saved_errno = errno; + close (newfd); + errno = saved_errno; + newfd = -1; + } + } + else if (newfd < dirs_allocated) + { + /* Duplicated a non-directory; ensure newfd is cleared. */ + free (dirs[newfd].name); + dirs[newfd].name = NULL; + } + return newfd; +} + +/* If FD is currently visiting a directory, then return the name of + that directory. Otherwise, return NULL and set errno. */ +const char * +_gl_directory_name (int fd) +{ + if (0 <= fd && fd < dirs_allocated && dirs[fd].name != NULL) + return dirs[fd].name; + /* At this point, fd is either invalid, or open but not a directory. + If dup2 fails, errno is correctly EBADF. */ + if (0 <= fd) + { + if (dup2 (fd, fd) == fd) + errno = ENOTDIR; + } + else + errno = EBADF; + return NULL; +} + +#if REPLACE_OPEN_DIRECTORY +/* Return stat information about FD in STATBUF. Needed when + rpl_open() used a dummy file to work around an open() that can't + normally visit directories. */ +# undef fstat +int +rpl_fstat (int fd, struct stat *statbuf) +{ + if (0 <= fd && fd < dirs_allocated && dirs[fd].name != NULL) + return stat (dirs[fd].name, statbuf); + return fstat (fd, statbuf); +} +#endif + +/* Override opendir() and closedir(), to keep track of the open file + descriptors. Needed because there is a function dirfd(). */ + +int +rpl_closedir (DIR *dp) +#undef closedir +{ + int fd = dirfd (dp); + int retval = closedir (dp); + + if (retval >= 0) + _gl_unregister_fd (fd); + return retval; +} + +DIR * +rpl_opendir (const char *filename) +#undef opendir +{ + DIR *dp; + + dp = opendir (filename); + if (dp != NULL) + { + int fd = dirfd (dp); + if (0 <= fd && _gl_register_fd (fd, filename) != fd) + { + int saved_errno = errno; + closedir (dp); + errno = saved_errno; + return NULL; + } + } + return dp; +} + +/* Override dup(), to keep track of open file descriptors. */ + +int +rpl_dup (int oldfd) +#undef dup +{ + int newfd = dup (oldfd); + + if (0 <= newfd) + newfd = _gl_register_dup (oldfd, newfd); + return newfd; +} + + +/* Implement fchdir() in terms of chdir(). */ + +int +fchdir (int fd) +{ + const char *name = _gl_directory_name (fd); + return name ? chdir (name) : -1; +} diff --git a/lib/fchmodat.c b/gnu/fchmodat.c similarity index 76% rename from lib/fchmodat.c rename to gnu/fchmodat.c index 935bdcbca1680714dd03e8b2d99d030244b495e9..80dcd9db3995860a3fc4f6e0d06ac08a3da2a679 100644 --- a/lib/fchmodat.c +++ b/gnu/fchmodat.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Change the protections of file relative to an open directory. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2010 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 @@ -18,32 +20,36 @@ #include <config.h> -#include "openat.h" -#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ -#include "save-cwd.h" -#include "openat-priv.h" +#include <sys/stat.h> + +#include <errno.h> #ifndef HAVE_LCHMOD /* Use a different name, to avoid conflicting with any system-supplied declaration. */ # undef lchmod # define lchmod lchmod_rpl -static int lchmod (char const *f, mode_t m) { errno = ENOSYS; return -1; } +static int +lchmod (char const *f _GL_UNUSED, mode_t m _GL_UNUSED) +{ + errno = ENOSYS; + return -1; +} #endif /* Solaris 10 has no function like this. Invoke chmod or lchmod on file, FILE, using mode MODE, in the directory open on descriptor FD. If possible, do it without changing the working directory. Otherwise, resort to using save_cwd/fchdir, - then mkdir/restore_cwd. If either the save_cwd or the restore_cwd - fails, then give a diagnostic and exit nonzero. + then (chmod|lchmod)/restore_cwd. If either the save_cwd or the + restore_cwd fails, then give a diagnostic and exit nonzero. Note that an attempt to use a FLAG value of AT_SYMLINK_NOFOLLOW on a system without lchmod support causes this function to fail. */ #define AT_FUNC_NAME fchmodat #define AT_FUNC_F1 lchmod #define AT_FUNC_F2 chmod -#define AT_FUNC_USE_F1_COND flag == AT_SYMLINK_NOFOLLOW +#define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW #define AT_FUNC_POST_FILE_PARAM_DECLS , mode_t mode, int flag #define AT_FUNC_POST_FILE_ARGS , mode #include "at-func.c" diff --git a/lib/fchown-stub.c b/gnu/fchown-stub.c similarity index 77% rename from lib/fchown-stub.c rename to gnu/fchown-stub.c index 6be750b829c5a4cdbc257775d20b202e806102ed..1611b1d95917bf3f029b1851c48332f1dc3b1d78 100644 --- a/lib/fchown-stub.c +++ b/gnu/fchown-stub.c @@ -1,3 +1,5 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ #include <config.h> #include <sys/types.h> diff --git a/gnu/fchownat.c b/gnu/fchownat.c new file mode 100644 index 0000000000000000000000000000000000000000..87c54937a5dd9f96f9657f4033780bc5690355ce --- /dev/null +++ b/gnu/fchownat.c @@ -0,0 +1,109 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* This function serves as replacement for a missing fchownat function, + as well as a work around for the fchownat bug in glibc-2.4: + <http://lists.ubuntu.com/archives/ubuntu-users/2006-September/093218.html> + when the buggy fchownat-with-AT_SYMLINK_NOFOLLOW operates on a symlink, it + mistakenly affects the symlink referent, rather than the symlink itself. + + Copyright (C) 2006-2007, 2009-2010 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 Jim Meyering */ + +#include <config.h> + +#include <unistd.h> + +#include <errno.h> +#include <string.h> + +#include "openat.h" + +#if !HAVE_FCHOWNAT + +/* Replacement for Solaris' function by the same name. + Invoke chown or lchown on file, FILE, using OWNER and GROUP, in the + directory open on descriptor FD. If FLAG is AT_SYMLINK_NOFOLLOW, then + use lchown, otherwise, use chown. If possible, do it without changing + the working directory. Otherwise, resort to using save_cwd/fchdir, + then (chown|lchown)/restore_cwd. If either the save_cwd or the + restore_cwd fails, then give a diagnostic and exit nonzero. */ + +# define AT_FUNC_NAME fchownat +# define AT_FUNC_F1 lchown +# define AT_FUNC_F2 chown +# define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW +# define AT_FUNC_POST_FILE_PARAM_DECLS , uid_t owner, gid_t group, int flag +# define AT_FUNC_POST_FILE_ARGS , owner, group +# include "at-func.c" +# undef AT_FUNC_NAME +# undef AT_FUNC_F1 +# undef AT_FUNC_F2 +# undef AT_FUNC_USE_F1_COND +# undef AT_FUNC_POST_FILE_PARAM_DECLS +# undef AT_FUNC_POST_FILE_ARGS + +#else /* HAVE_FCHOWNAT */ + +# undef fchownat + +# if FCHOWNAT_NOFOLLOW_BUG + +/* Failure to handle AT_SYMLINK_NOFOLLOW requires the /proc/self/fd or + fchdir workaround to call lchown for lchownat, but there is no need + to penalize chownat. */ +static int +local_lchownat (int fd, char const *file, uid_t owner, gid_t group); + +# define AT_FUNC_NAME local_lchownat +# define AT_FUNC_F1 lchown +# define AT_FUNC_POST_FILE_PARAM_DECLS , uid_t owner, gid_t group +# define AT_FUNC_POST_FILE_ARGS , owner, group +# include "at-func.c" +# undef AT_FUNC_NAME +# undef AT_FUNC_F1 +# undef AT_FUNC_POST_FILE_PARAM_DECLS +# undef AT_FUNC_POST_FILE_ARGS + +# endif + +/* Work around bugs with trailing slash, using the same workarounds as + chown and lchown. */ + +int +rpl_fchownat (int fd, char const *file, uid_t owner, gid_t group, int flag) +{ +# if FCHOWNAT_NOFOLLOW_BUG + if (flag == AT_SYMLINK_NOFOLLOW) + return local_lchownat (fd, file, owner, group); +# endif +# if CHOWN_TRAILING_SLASH_BUG + { + size_t len = strlen (file); + struct stat st; + if (len && file[len - 1] == '/') + { + if (statat (fd, file, &st)) + return -1; + if (flag == AT_SYMLINK_NOFOLLOW) + return fchownat (fd, file, owner, group, 0); + } + } +# endif + return fchownat (fd, file, owner, group, flag); +} + +#endif /* HAVE_FCHOWNAT */ diff --git a/lib/fclose.c b/gnu/fclose.c similarity index 88% rename from lib/fclose.c rename to gnu/fclose.c index a0074b77d7b3b73df66d6e0d3a832604f987a671..86757fa0e240063141867dfa84c696d71e9d59f7 100644 --- a/lib/fclose.c +++ b/gnu/fclose.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* fclose replacement. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 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 diff --git a/gnu/fcntl.c b/gnu/fcntl.c new file mode 100644 index 0000000000000000000000000000000000000000..3f4af8a2ae8bb26836a63cfa26e1966264df6919 --- /dev/null +++ b/gnu/fcntl.c @@ -0,0 +1,296 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Provide file descriptor control. + + Copyright (C) 2009, 2010 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 Eric Blake <ebb9@byu.net>. */ + +#include <config.h> + +/* Specification. */ +#include <fcntl.h> + +#include <errno.h> +#include <limits.h> +#include <stdarg.h> +#include <unistd.h> + +#if !HAVE_FCNTL +# define rpl_fcntl fcntl +#endif +#undef fcntl + +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +/* Get declarations of the Win32 API functions. */ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> + +/* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ +# define OPEN_MAX_MAX 0x10000 + +/* Duplicate OLDFD into the first available slot of at least NEWFD, + which must be positive, with FLAGS determining whether the duplicate + will be inheritable. */ +static int +dupfd (int oldfd, int newfd, int flags) +{ + /* Mingw has no way to create an arbitrary fd. Iterate until all + file descriptors less than newfd are filled up. */ + HANDLE curr_process = GetCurrentProcess (); + HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); + unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; + unsigned int fds_to_close_bound = 0; + int result; + BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; + int mode; + + if (newfd < 0 || getdtablesize () <= newfd) + { + errno = EINVAL; + return -1; + } + if (old_handle == INVALID_HANDLE_VALUE + || (mode = setmode (oldfd, O_BINARY)) == -1) + { + /* oldfd is not open, or is an unassigned standard file + descriptor. */ + errno = EBADF; + return -1; + } + setmode (oldfd, mode); + flags |= mode; + + for (;;) + { + HANDLE new_handle; + int duplicated_fd; + unsigned int index; + + if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ + old_handle, /* SourceHandle */ + curr_process, /* TargetProcessHandle */ + (PHANDLE) &new_handle, /* TargetHandle */ + (DWORD) 0, /* DesiredAccess */ + inherit, /* InheritHandle */ + DUPLICATE_SAME_ACCESS)) /* Options */ + { + /* TODO: Translate GetLastError () into errno. */ + errno = EMFILE; + result = -1; + break; + } + duplicated_fd = _open_osfhandle ((long) new_handle, flags); + if (duplicated_fd < 0) + { + CloseHandle (new_handle); + errno = EMFILE; + result = -1; + break; + } + if (newfd <= duplicated_fd) + { + result = duplicated_fd; + break; + } + + /* Set the bit duplicated_fd in fds_to_close[]. */ + index = (unsigned int) duplicated_fd / CHAR_BIT; + if (fds_to_close_bound <= index) + { + if (sizeof fds_to_close <= index) + /* Need to increase OPEN_MAX_MAX. */ + abort (); + memset (fds_to_close + fds_to_close_bound, '\0', + index + 1 - fds_to_close_bound); + fds_to_close_bound = index + 1; + } + fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); + } + + /* Close the previous fds that turned out to be too small. */ + { + int saved_errno = errno; + unsigned int duplicated_fd; + + for (duplicated_fd = 0; + duplicated_fd < fds_to_close_bound * CHAR_BIT; + duplicated_fd++) + if ((fds_to_close[duplicated_fd / CHAR_BIT] + >> (duplicated_fd % CHAR_BIT)) + & 1) + close (duplicated_fd); + + errno = saved_errno; + } + +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (oldfd, result); +# endif + return result; +} +#endif /* W32 */ + +/* Perform the specified ACTION on the file descriptor FD, possibly + using the argument ARG further described below. This replacement + handles the following actions, and forwards all others on to the + native fcntl. An unrecognized ACTION returns -1 with errno set to + EINVAL. + + F_DUPFD - duplicate FD, with int ARG being the minimum target fd. + If successful, return the duplicate, which will be inheritable; + otherwise return -1 and set errno. + + F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum + target fd. If successful, return the duplicate, which will not be + inheritable; otherwise return -1 and set errno. + + F_GETFD - ARG need not be present. If successful, return a + non-negative value containing the descriptor flags of FD (only + FD_CLOEXEC is portable, but other flags may be present); otherwise + return -1 and set errno. */ + +int +rpl_fcntl (int fd, int action, /* arg */...) +{ + va_list arg; + int result = -1; + va_start (arg, action); + switch (action) + { + +#if !HAVE_FCNTL + case F_DUPFD: + { + int target = va_arg (arg, int); + result = dupfd (fd, target, 0); + break; + } +#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR + case F_DUPFD: + { + int target = va_arg (arg, int); + /* Detect invalid target; needed for cygwin 1.5.x. */ + if (target < 0 || getdtablesize () <= target) + errno = EINVAL; + else + { + result = fcntl (fd, action, target); +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (fd, result); +# endif + } + break; + } /* F_DUPFD */ +#endif /* FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR */ + + case F_DUPFD_CLOEXEC: + { + int target = va_arg (arg, int); + +#if !HAVE_FCNTL + result = dupfd (fd, target, O_CLOEXEC); + break; +#else /* HAVE_FCNTL */ + /* Try the system call first, if the headers claim it exists + (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we + may be running with a glibc that has the macro but with an + older kernel that does not support it. Cache the + information on whether the system call really works, but + avoid caching failure if the corresponding F_DUPFD fails + for any reason. 0 = unknown, 1 = yes, -1 = no. */ + static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; + if (0 <= have_dupfd_cloexec) + { + result = fcntl (fd, action, target); + if (0 <= result || errno != EINVAL) + { + have_dupfd_cloexec = 1; +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (fd, result); +# endif + } + else + { + result = rpl_fcntl (fd, F_DUPFD, target); + if (result < 0) + break; + have_dupfd_cloexec = -1; + } + } + else + result = rpl_fcntl (fd, F_DUPFD, target); + if (0 <= result && have_dupfd_cloexec == -1) + { + int flags = fcntl (result, F_GETFD); + if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) + { + int saved_errno = errno; + close (result); + errno = saved_errno; + result = -1; + } + } + break; +#endif /* HAVE_FCNTL */ + } /* F_DUPFD_CLOEXEC */ + +#if !HAVE_FCNTL + case F_GETFD: + { +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + HANDLE handle = (HANDLE) _get_osfhandle (fd); + DWORD flags; + if (handle == INVALID_HANDLE_VALUE + || GetHandleInformation (handle, &flags) == 0) + errno = EBADF; + else + result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; +# else /* !W32 */ + /* Use dup2 to reject invalid file descriptors. No way to + access this information, so punt. */ + if (0 <= dup2 (fd, fd)) + result = 0; +# endif /* !W32 */ + break; + } /* F_GETFD */ +#endif /* !HAVE_FCNTL */ + + /* Implementing F_SETFD on mingw is not trivial - there is no + API for changing the O_NOINHERIT bit on an fd, and merely + changing the HANDLE_FLAG_INHERIT bit on the underlying handle + can lead to odd state. It may be possible by duplicating the + handle, using _open_osfhandle with the right flags, then + using dup2 to move the duplicate onto the original, but that + is not supported for now. */ + + default: + { +#if HAVE_FCNTL + void *p = va_arg (arg, void *); + result = fcntl (fd, action, p); +#else + errno = EINVAL; +#endif + break; + } + } + va_end (arg); + return result; +} diff --git a/gnu/fcntl.in.h b/gnu/fcntl.in.h new file mode 100644 index 0000000000000000000000000000000000000000..95298dea1b63509dc1358af416ee1c82086bc66b --- /dev/null +++ b/gnu/fcntl.in.h @@ -0,0 +1,281 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Like <fcntl.h>, but with non-working flags defined to 0. + + Copyright (C) 2006-2010 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 */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined __need_system_fcntl_h +/* Special invocation convention. */ + +#include <sys/types.h> +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include <sys/stat.h> +#endif +#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _GL_FCNTL_H + +#include <sys/types.h> +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include <sys/stat.h> +#endif +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ + +#ifndef _GL_FCNTL_H +#define _GL_FCNTL_H + +#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ +# include <unistd.h> +#endif + + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Declare overridden functions. */ + +#if @GNULIB_FCNTL@ +# if @REPLACE_FCNTL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fcntl +# define fcntl rpl_fcntl +# endif +_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); +_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); +# else +# if !@HAVE_FCNTL@ +_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); +# endif +_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); +# endif +_GL_CXXALIASWARN (fcntl); +#elif defined GNULIB_POSIXCHECK +# undef fcntl +# if HAVE_RAW_DECL_FCNTL +_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " + "use gnulib module fcntl for portability"); +# endif +#endif + +#if @GNULIB_OPEN@ +# if @REPLACE_OPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef open +# define open rpl_open +# endif +_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); +# else +_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); +# endif +_GL_CXXALIASWARN (open); +#elif defined GNULIB_POSIXCHECK +# undef open +/* Assume open is always declared. */ +_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " + "use gnulib module open for portability"); +#endif + +#if @GNULIB_OPENAT@ +# if @REPLACE_OPENAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef openat +# define openat rpl_openat +# endif +_GL_FUNCDECL_RPL (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...)); +# else +# if !@HAVE_OPENAT@ +_GL_FUNCDECL_SYS (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (openat, int, + (int fd, char const *file, int flags, /* mode_t mode */ ...)); +# endif +_GL_CXXALIASWARN (openat); +#elif defined GNULIB_POSIXCHECK +# undef openat +# if HAVE_RAW_DECL_OPENAT +_GL_WARN_ON_USE (openat, "openat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +/* Fix up the FD_* macros, only known to be missing on mingw. */ + +#ifndef FD_CLOEXEC +# define FD_CLOEXEC 1 +#endif + +/* Fix up the supported F_* macros. Intentionally leave other F_* + macros undefined. Only known to be missing on mingw. */ + +#ifndef F_DUPFD_CLOEXEC +# define F_DUPFD_CLOEXEC 0x40000000 +/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ +# define GNULIB_defined_F_DUPFD_CLOEXEC 1 +#else +# define GNULIB_defined_F_DUPFD_CLOEXEC 0 +#endif + +#ifndef F_DUPFD +# define F_DUPFD 1 +#endif + +#ifndef F_GETFD +# define F_GETFD 2 +#endif + +/* Fix up the O_* macros. */ + +#if !defined O_DIRECT && defined O_DIRECTIO +/* Tru64 spells it `O_DIRECTIO'. */ +# define O_DIRECT O_DIRECTIO +#endif + +#if !defined O_CLOEXEC && defined O_NOINHERIT +/* Mingw spells it `O_NOINHERIT'. Intentionally leave it + undefined if not available. */ +# define O_CLOEXEC O_NOINHERIT +#endif + +#ifndef O_DIRECT +# define O_DIRECT 0 +#endif + +#ifndef O_DIRECTORY +# define O_DIRECTORY 0 +#endif + +#ifndef O_DSYNC +# define O_DSYNC 0 +#endif + +#ifndef O_NDELAY +# define O_NDELAY 0 +#endif + +#ifndef O_NOATIME +# define O_NOATIME 0 +#endif + +#ifndef O_NONBLOCK +# define O_NONBLOCK O_NDELAY +#endif + +#ifndef O_NOCTTY +# define O_NOCTTY 0 +#endif + +#ifndef O_NOFOLLOW +# define O_NOFOLLOW 0 +#endif + +#ifndef O_NOLINKS +# define O_NOLINKS 0 +#endif + +#ifndef O_RSYNC +# define O_RSYNC 0 +#endif + +#ifndef O_SYNC +# define O_SYNC 0 +#endif + +#ifndef O_TTY_INIT +# define O_TTY_INIT 0 +#endif + +/* For systems that distinguish between text and binary I/O. + O_BINARY is usually declared in fcntl.h */ +#if !defined O_BINARY && defined _O_BINARY + /* For MSC-compatible compilers. */ +# define O_BINARY _O_BINARY +# define O_TEXT _O_TEXT +#endif + +#if defined __BEOS__ || defined __HAIKU__ + /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ +# undef O_BINARY +# undef O_TEXT +#endif + +#ifndef O_BINARY +# define O_BINARY 0 +# define O_TEXT 0 +#endif + +/* Fix up the AT_* macros. */ + +/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its + value exceeds INT_MAX, so its use as an int doesn't conform to the + C standard, and GCC and Sun C complain in some cases. If the bug + is present, undef AT_FDCWD here, so it can be redefined below. */ +#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 +# undef AT_FDCWD +#endif + +/* Use the same bit pattern as Solaris 9, but with the proper + signedness. The bit pattern is important, in case this actually is + Solaris with the above workaround. */ +#ifndef AT_FDCWD +# define AT_FDCWD (-3041965) +#endif + +/* Use the same values as Solaris 9. This shouldn't matter, but + there's no real reason to differ. */ +#ifndef AT_SYMLINK_NOFOLLOW +# define AT_SYMLINK_NOFOLLOW 4096 +#endif + +#ifndef AT_REMOVEDIR +# define AT_REMOVEDIR 1 +#endif + +/* Solaris 9 lacks these two, so just pick unique values. */ +#ifndef AT_SYMLINK_FOLLOW +# define AT_SYMLINK_FOLLOW 2 +#endif + +#ifndef AT_EACCESS +# define AT_EACCESS 4 +#endif + + +#endif /* _GL_FCNTL_H */ +#endif /* _GL_FCNTL_H */ +#endif diff --git a/lib/fd-safer.c b/gnu/fd-safer.c similarity index 90% rename from lib/fd-safer.c rename to gnu/fd-safer.c index fb9900180ee1e8e2f14bd83830287df8e1d5ef91..292f7f8fa72d6e520cf36274529c39bbc58e9985 100644 --- a/lib/fd-safer.c +++ b/gnu/fd-safer.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Return a safer copy of a file descriptor. - Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 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 @@ -22,7 +24,6 @@ #include "unistd-safer.h" #include <errno.h> - #include <unistd.h> /* Return FD, unless FD would be a copy of standard input, output, or diff --git a/gnu/fdopendir.c b/gnu/fdopendir.c new file mode 100644 index 0000000000000000000000000000000000000000..7488fbb133bcb434dd8909e5b35aa4a9ab188aec --- /dev/null +++ b/gnu/fdopendir.c @@ -0,0 +1,136 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* provide a replacement fdopendir function + Copyright (C) 2004-2010 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 Jim Meyering */ + +#include <config.h> + +#include <dirent.h> + +#include <stdlib.h> +#include <unistd.h> + +#if !HAVE_FDOPENDIR + +# include "openat.h" +# include "openat-priv.h" +# include "save-cwd.h" + +# if GNULIB_DIRENT_SAFER +# include "dirent--.h" +# endif + +/* Replacement for Solaris' function by the same name. + <http://www.google.com/search?q=fdopendir+site:docs.sun.com> + First, try to simulate it via opendir ("/proc/self/fd/FD"). Failing + that, simulate it by using fchdir metadata, or by doing + save_cwd/fchdir/opendir(".")/restore_cwd. + If either the save_cwd or the restore_cwd fails (relatively unlikely), + then give a diagnostic and exit nonzero. + Otherwise, this function works just like Solaris' fdopendir. + + W A R N I N G: + Unlike other fd-related functions, this one effectively consumes + its FD parameter. The caller should not close or otherwise + manipulate FD if this function returns successfully. Also, this + implementation does not guarantee that dirfd(fdopendir(n))==n; + the open directory stream may use a clone of FD, or have no + associated fd at all. */ +DIR * +fdopendir (int fd) +{ + int saved_errno; + DIR *dir; + + char buf[OPENAT_BUFFER_SIZE]; + char *proc_file = openat_proc_name (buf, fd, "."); + if (proc_file) + { + dir = opendir (proc_file); + saved_errno = errno; + } + else + { + dir = NULL; + saved_errno = EOPNOTSUPP; + } + + /* If the syscall fails with an expected errno value, resort to + save_cwd/restore_cwd. */ + if (! dir && EXPECTED_ERRNO (saved_errno)) + { +# if REPLACE_FCHDIR + const char *name = _gl_directory_name (fd); + if (name) + dir = opendir (name); + saved_errno = errno; +# else /* !REPLACE_FCHDIR */ + struct saved_cwd saved_cwd; + if (save_cwd (&saved_cwd) != 0) + openat_save_fail (errno); + + if (fchdir (fd) != 0) + { + dir = NULL; + saved_errno = errno; + } + else + { + dir = opendir ("."); + saved_errno = errno; + + if (restore_cwd (&saved_cwd) != 0) + openat_restore_fail (errno); + } + + free_cwd (&saved_cwd); +# endif /* !REPLACE_FCHDIR */ + } + + if (dir) + close (fd); + if (proc_file != buf) + free (proc_file); + errno = saved_errno; + return dir; +} + +#else /* HAVE_FDOPENDIR */ + +# include <errno.h> +# include <sys/stat.h> + +# undef fdopendir + +/* Like fdopendir, but work around GNU/Hurd bug by validating FD. */ + +DIR * +rpl_fdopendir (int fd) +{ + struct stat st; + if (fstat (fd, &st)) + return NULL; + if (!S_ISDIR (st.st_mode)) + { + errno = ENOTDIR; + return NULL; + } + return fdopendir (fd); +} + +#endif /* HAVE_FDOPENDIR */ diff --git a/gnu/file-set.c b/gnu/file-set.c new file mode 100644 index 0000000000000000000000000000000000000000..1bcc05a26b9e5274c92a03ee33bdafca35a93f32 --- /dev/null +++ b/gnu/file-set.c @@ -0,0 +1,76 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Specialized functions to manipulate a set of files. + Copyright (C) 2007, 2009-2010 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 Jim Meyering */ + +#include <config.h> +#include "file-set.h" + +#include "hash-triple.h" +#include "xalloc.h" + +/* Record file, FILE, and dev/ino from *STATS, in the hash table, HT. + If HT is NULL, return immediately. + If memory allocation fails, exit immediately. */ +void +record_file (Hash_table *ht, char const *file, struct stat const *stats) +{ + struct F_triple *ent; + + if (ht == NULL) + return; + + ent = xmalloc (sizeof *ent); + ent->name = xstrdup (file); + ent->st_ino = stats->st_ino; + ent->st_dev = stats->st_dev; + + { + struct F_triple *ent_from_table = hash_insert (ht, ent); + if (ent_from_table == NULL) + { + /* Insertion failed due to lack of memory. */ + xalloc_die (); + } + + if (ent_from_table != ent) + { + /* There was alread a matching entry in the table, so ENT was + not inserted. Free it. */ + triple_free (ent); + } + } +} + +/* Return true if there is an entry in hash table, HT, + for the file described by FILE and STATS. */ +bool +seen_file (Hash_table const *ht, char const *file, + struct stat const *stats) +{ + struct F_triple new_ent; + + if (ht == NULL) + return false; + + new_ent.name = (char *) file; + new_ent.st_ino = stats->st_ino; + new_ent.st_dev = stats->st_dev; + + return !!hash_lookup (ht, &new_ent); +} diff --git a/gnu/file-set.h b/gnu/file-set.h new file mode 100644 index 0000000000000000000000000000000000000000..ef854ee6b4b7a427098891ee52cd8cc953e5aa55 --- /dev/null +++ b/gnu/file-set.h @@ -0,0 +1,14 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#include <sys/types.h> +#include <sys/stat.h> +#include <stdbool.h> + +#include "hash.h" + +extern void record_file (Hash_table *ht, char const *file, + struct stat const *stats) + __attribute__((nonnull(2, 3))); + +extern bool seen_file (Hash_table const *ht, char const *file, + struct stat const *stats); diff --git a/lib/fileblocks.c b/gnu/fileblocks.c similarity index 83% rename from lib/fileblocks.c rename to gnu/fileblocks.c index 822935af93030a78d5c2dc44a225b75995da3990..77717c8ccbc2543fb1dab71d1a248bfebaa947b0 100644 --- a/lib/fileblocks.c +++ b/gnu/fileblocks.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert file size to number of blocks on System V-like machines. - Copyright (C) 1990, 1997, 1998, 1999, 2004, 2005, 2006 Free Software + Copyright (C) 1990, 1997-1999, 2004-2006, 2009-2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -42,7 +44,7 @@ typedef long daddr_t; /* for disk address */ # endif /* !NINDIR */ /* Number of direct block addresses in an inode. */ -# define NDIR 10 +# define NDIR 10 /* Return the number of 512-byte blocks in a file of SIZE bytes. */ @@ -57,12 +59,12 @@ st_blocks (off_t size) indrblks = (datablks - NDIR - 1) / NINDIR + 1; if (datablks > NDIR + NINDIR) - { - indrblks += (datablks - NDIR - NINDIR - 1) / (NINDIR * NINDIR) + 1; + { + indrblks += (datablks - NDIR - NINDIR - 1) / (NINDIR * NINDIR) + 1; - if (datablks > NDIR + NINDIR + NINDIR * NINDIR) - indrblks++; - } + if (datablks > NDIR + NINDIR + NINDIR * NINDIR) + indrblks++; + } } return datablks + indrblks; diff --git a/lib/float+.h b/gnu/float+.h similarity index 98% rename from lib/float+.h rename to gnu/float+.h index e78f175a3997d3bb0214b39e56bc5de1f085cb14..4a120b77b401a1d9f56d2fc4a6afc4a0d51bd977 100644 --- a/lib/float+.h +++ b/gnu/float+.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Supplemental information about the floating-point formats. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2007. This program is free software; you can redistribute it and/or modify diff --git a/lib/float.in.h b/gnu/float.in.h similarity index 93% rename from lib/float.in.h rename to gnu/float.in.h index 9ba2bce4b5bdb912ae3b6087a30cad1504ce3421..9ec97ab1169737f89500695ba76cb2e946df0657 100644 --- a/lib/float.in.h +++ b/gnu/float.in.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A correct <float.h>. - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2010 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 diff --git a/lib/fnmatch.c b/gnu/fnmatch.c similarity index 62% rename from lib/fnmatch.c rename to gnu/fnmatch.c index 9ae77ec87c69bf6231878afb6ecb67192aea3d4d..178fdaff45cfc8ad82239f88ba596d94ef501b14 100644 --- a/lib/fnmatch.c +++ b/gnu/fnmatch.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007 - Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2006, 2007, 2009, 2010 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 @@ -23,7 +23,7 @@ /* Enable GNU extensions in fnmatch.h. */ #ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 +# define _GNU_SOURCE 1 #endif #if ! defined __builtin_expect && __GNUC__ < 3 @@ -91,7 +91,7 @@ extern int fnmatch (const char *pattern, const char *string, int flags); # define isblank(c) ((c) == ' ' || (c) == '\t') # endif -# define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) +# define STREQ(s1, s2) (strcmp (s1, s2) == 0) # if defined _LIBC || WIDE_CHAR_SUPPORT /* The GNU C library provides support for user-defined character classes @@ -111,25 +111,25 @@ extern int fnmatch (const char *pattern, const char *string, int flags); # endif # ifdef _LIBC -# define ISWCTYPE(WC, WT) __iswctype (WC, WT) +# define ISWCTYPE(WC, WT) __iswctype (WC, WT) # else -# define ISWCTYPE(WC, WT) iswctype (WC, WT) +# define ISWCTYPE(WC, WT) iswctype (WC, WT) # endif # if (HAVE_MBSTATE_T && HAVE_MBSRTOWCS) || _LIBC /* In this case we are implementing the multibyte character handling. */ -# define HANDLE_MULTIBYTE 1 +# define HANDLE_MULTIBYTE 1 # endif # else # define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ -# define IS_CHAR_CLASS(string) \ - (STREQ (string, "alpha") || STREQ (string, "upper") \ - || STREQ (string, "lower") || STREQ (string, "digit") \ - || STREQ (string, "alnum") || STREQ (string, "xdigit") \ - || STREQ (string, "space") || STREQ (string, "print") \ - || STREQ (string, "punct") || STREQ (string, "graph") \ +# define IS_CHAR_CLASS(string) \ + (STREQ (string, "alpha") || STREQ (string, "upper") \ + || STREQ (string, "lower") || STREQ (string, "digit") \ + || STREQ (string, "alnum") || STREQ (string, "xdigit") \ + || STREQ (string, "space") || STREQ (string, "print") \ + || STREQ (string, "punct") || STREQ (string, "graph") \ || STREQ (string, "cntrl") || STREQ (string, "blank")) # endif @@ -147,17 +147,17 @@ static int posixly_correct; /* Note that this evaluates C many times. */ # define FOLD(c) ((flags & FNM_CASEFOLD) ? tolower (c) : (c)) -# define CHAR char -# define UCHAR unsigned char -# define INT int -# define FCT internal_fnmatch -# define EXT ext_match -# define END end_pattern -# define L_(CS) CS +# define CHAR char +# define UCHAR unsigned char +# define INT int +# define FCT internal_fnmatch +# define EXT ext_match +# define END end_pattern +# define L_(CS) CS # ifdef _LIBC -# define BTOWC(C) __btowc (C) +# define BTOWC(C) __btowc (C) # else -# define BTOWC(C) btowc (C) +# define BTOWC(C) btowc (C) # endif # define STRLEN(S) strlen (S) # define STRCAT(D, S) strcat (D, S) @@ -177,14 +177,14 @@ static int posixly_correct; # if HANDLE_MULTIBYTE # define FOLD(c) ((flags & FNM_CASEFOLD) ? towlower (c) : (c)) -# define CHAR wchar_t -# define UCHAR wint_t -# define INT wint_t -# define FCT internal_fnwmatch -# define EXT ext_wmatch -# define END end_wpattern -# define L_(CS) L##CS -# define BTOWC(C) (C) +# define CHAR wchar_t +# define UCHAR wint_t +# define INT wint_t +# define FCT internal_fnwmatch +# define EXT ext_wmatch +# define END end_wpattern +# define L_(CS) L##CS +# define BTOWC(C) (C) # ifdef _LIBC # define STRLEN(S) __wcslen (S) # define STRCAT(D, S) __wcscat (D, S) @@ -220,40 +220,40 @@ is_char_class (const wchar_t *wcs) /* Test for a printable character from the portable character set. */ # ifdef _LIBC if (*wcs < 0x20 || *wcs > 0x7e - || *wcs == 0x24 || *wcs == 0x40 || *wcs == 0x60) - return (wctype_t) 0; + || *wcs == 0x24 || *wcs == 0x40 || *wcs == 0x60) + return (wctype_t) 0; # else switch (*wcs) - { - case L' ': case L'!': case L'"': case L'#': case L'%': - case L'&': case L'\'': case L'(': case L')': case L'*': - case L'+': case L',': case L'-': case L'.': case L'/': - case L'0': case L'1': case L'2': case L'3': case L'4': - case L'5': case L'6': case L'7': case L'8': case L'9': - case L':': case L';': case L'<': case L'=': case L'>': - case L'?': - case L'A': case L'B': case L'C': case L'D': case L'E': - case L'F': case L'G': case L'H': case L'I': case L'J': - case L'K': case L'L': case L'M': case L'N': case L'O': - case L'P': case L'Q': case L'R': case L'S': case L'T': - case L'U': case L'V': case L'W': case L'X': case L'Y': - case L'Z': - case L'[': case L'\\': case L']': case L'^': case L'_': - case L'a': case L'b': case L'c': case L'd': case L'e': - case L'f': case L'g': case L'h': case L'i': case L'j': - case L'k': case L'l': case L'm': case L'n': case L'o': - case L'p': case L'q': case L'r': case L's': case L't': - case L'u': case L'v': case L'w': case L'x': case L'y': - case L'z': case L'{': case L'|': case L'}': case L'~': - break; - default: - return (wctype_t) 0; - } + { + case L' ': case L'!': case L'"': case L'#': case L'%': + case L'&': case L'\'': case L'(': case L')': case L'*': + case L'+': case L',': case L'-': case L'.': case L'/': + case L'0': case L'1': case L'2': case L'3': case L'4': + case L'5': case L'6': case L'7': case L'8': case L'9': + case L':': case L';': case L'<': case L'=': case L'>': + case L'?': + case L'A': case L'B': case L'C': case L'D': case L'E': + case L'F': case L'G': case L'H': case L'I': case L'J': + case L'K': case L'L': case L'M': case L'N': case L'O': + case L'P': case L'Q': case L'R': case L'S': case L'T': + case L'U': case L'V': case L'W': case L'X': case L'Y': + case L'Z': + case L'[': case L'\\': case L']': case L'^': case L'_': + case L'a': case L'b': case L'c': case L'd': case L'e': + case L'f': case L'g': case L'h': case L'i': case L'j': + case L'k': case L'l': case L'm': case L'n': case L'o': + case L'p': case L'q': case L'r': case L's': case L't': + case L'u': case L'v': case L'w': case L'x': case L'y': + case L'z': case L'{': case L'|': case L'}': case L'~': + break; + default: + return (wctype_t) 0; + } # endif /* Avoid overrunning the buffer. */ if (cp == s + CHAR_CLASS_MAX_LENGTH) - return (wctype_t) 0; + return (wctype_t) 0; *cp++ = (char) *wcs++; } @@ -289,58 +289,58 @@ fnmatch (const char *pattern, const char *string, int flags) int res; /* Calculate the size needed to convert the strings to - wide characters. */ + wide characters. */ memset (&ps, '\0', sizeof (ps)); patsize = mbsrtowcs (NULL, &pattern, 0, &ps) + 1; if (__builtin_expect (patsize != 0, 1)) - { - assert (mbsinit (&ps)); - strsize = mbsrtowcs (NULL, &string, 0, &ps) + 1; - if (__builtin_expect (strsize != 0, 1)) - { - assert (mbsinit (&ps)); - totsize = patsize + strsize; - if (__builtin_expect (! (patsize <= totsize - && totsize <= SIZE_MAX / sizeof (wchar_t)), - 0)) - { - errno = ENOMEM; - return -1; - } - - /* Allocate room for the wide characters. */ - if (__builtin_expect (totsize < ALLOCA_LIMIT, 1)) - wpattern = (wchar_t *) alloca (totsize * sizeof (wchar_t)); - else - { - wpattern = malloc (totsize * sizeof (wchar_t)); - if (__builtin_expect (! wpattern, 0)) - { - errno = ENOMEM; - return -1; - } - } - wstring = wpattern + patsize; - - /* Convert the strings into wide characters. */ - mbsrtowcs (wpattern, &pattern, patsize, &ps); - assert (mbsinit (&ps)); - mbsrtowcs (wstring, &string, strsize, &ps); - - res = internal_fnwmatch (wpattern, wstring, wstring + strsize - 1, - flags & FNM_PERIOD, flags); - - if (__builtin_expect (! (totsize < ALLOCA_LIMIT), 0)) - free (wpattern); - return res; - } - } + { + assert (mbsinit (&ps)); + strsize = mbsrtowcs (NULL, &string, 0, &ps) + 1; + if (__builtin_expect (strsize != 0, 1)) + { + assert (mbsinit (&ps)); + totsize = patsize + strsize; + if (__builtin_expect (! (patsize <= totsize + && totsize <= SIZE_MAX / sizeof (wchar_t)), + 0)) + { + errno = ENOMEM; + return -1; + } + + /* Allocate room for the wide characters. */ + if (__builtin_expect (totsize < ALLOCA_LIMIT, 1)) + wpattern = (wchar_t *) alloca (totsize * sizeof (wchar_t)); + else + { + wpattern = malloc (totsize * sizeof (wchar_t)); + if (__builtin_expect (! wpattern, 0)) + { + errno = ENOMEM; + return -1; + } + } + wstring = wpattern + patsize; + + /* Convert the strings into wide characters. */ + mbsrtowcs (wpattern, &pattern, patsize, &ps); + assert (mbsinit (&ps)); + mbsrtowcs (wstring, &string, strsize, &ps); + + res = internal_fnwmatch (wpattern, wstring, wstring + strsize - 1, + flags & FNM_PERIOD, flags); + + if (__builtin_expect (! (totsize < ALLOCA_LIMIT), 0)) + free (wpattern); + return res; + } + } } # endif /* HANDLE_MULTIBYTE */ return internal_fnmatch (pattern, string, string + strlen (string), - flags & FNM_PERIOD, flags); + flags & FNM_PERIOD, flags); } # ifdef _LIBC @@ -353,4 +353,4 @@ compat_symbol (libc, __fnmatch_old, fnmatch, GLIBC_2_0); libc_hidden_ver (__fnmatch, fnmatch) # endif -#endif /* _LIBC or not __GNU_LIBRARY__. */ +#endif /* _LIBC or not __GNU_LIBRARY__. */ diff --git a/lib/fnmatch.in.h b/gnu/fnmatch.in.h similarity index 67% rename from lib/fnmatch.in.h rename to gnu/fnmatch.in.h index 1f9e44755bb7312b847c81f5490c5a9a489be4a2..54e48bba9180cd2ae0b2584fc8398339b9b710fc 100644 --- a/lib/fnmatch.in.h +++ b/gnu/fnmatch.in.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 2003, - 2005, 2007 Free Software Foundation, Inc. + 2005, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -19,8 +19,10 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifndef _FNMATCH_H -#define _FNMATCH_H 1 +#ifndef _FNMATCH_H +#define _FNMATCH_H 1 + +/* The definition of _GL_ARG_NONNULL is copied here. */ #ifdef __cplusplus extern "C" { @@ -28,37 +30,38 @@ extern "C" { /* We #undef these before defining them because some losing systems (HP-UX A.08.07 for example) define these in <unistd.h>. */ -#undef FNM_PATHNAME -#undef FNM_NOESCAPE -#undef FNM_PERIOD +#undef FNM_PATHNAME +#undef FNM_NOESCAPE +#undef FNM_PERIOD /* Bits set in the FLAGS argument to `fnmatch'. */ -#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ -#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ -#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ +#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ +#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ +#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ #if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE -# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ -# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ -# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ -# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */ +# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ +# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ +# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ +# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */ #endif /* Value returned by `fnmatch' if STRING does not match PATTERN. */ -#define FNM_NOMATCH 1 +#define FNM_NOMATCH 1 /* This value is returned if the implementation does not support `fnmatch'. Since this is not the case here it will never be returned but the conformance test suites still require the symbol to be defined. */ #ifdef _XOPEN_SOURCE -# define FNM_NOSYS (-1) +# define FNM_NOSYS (-1) #endif /* Match NAME against the file name pattern PATTERN, returning zero if it matches, FNM_NOMATCH if not. */ extern int fnmatch (const char *__pattern, const char *__name, - int __flags); + int __flags) + _GL_ARG_NONNULL ((1, 2)); #ifdef __cplusplus } diff --git a/gnu/fnmatch_loop.c b/gnu/fnmatch_loop.c new file mode 100644 index 0000000000000000000000000000000000000000..c46099a8d06267a6ce7cfe5ae3e064e465f601cb --- /dev/null +++ b/gnu/fnmatch_loop.c @@ -0,0 +1,1217 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2006, 2009, 2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Match STRING against the file name pattern PATTERN, returning zero if + it matches, nonzero if not. */ +static int EXT (INT opt, const CHAR *pattern, const CHAR *string, + const CHAR *string_end, bool no_leading_period, int flags) + internal_function; +static const CHAR *END (const CHAR *patternp) internal_function; + +static int +internal_function +FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end, + bool no_leading_period, int flags) +{ + register const CHAR *p = pattern, *n = string; + register UCHAR c; +#ifdef _LIBC +# if WIDE_CHAR_VERSION + const char *collseq = (const char *) + _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC); +# else + const UCHAR *collseq = (const UCHAR *) + _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQMB); +# endif +#endif + + while ((c = *p++) != L_('\0')) + { + bool new_no_leading_period = false; + c = FOLD (c); + + switch (c) + { + case L_('?'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { + int res; + + res = EXT (c, p, n, string_end, no_leading_period, + flags); + if (res != -1) + return res; + } + + if (n == string_end) + return FNM_NOMATCH; + else if (*n == L_('/') && (flags & FNM_FILE_NAME)) + return FNM_NOMATCH; + else if (*n == L_('.') && no_leading_period) + return FNM_NOMATCH; + break; + + case L_('\\'): + if (!(flags & FNM_NOESCAPE)) + { + c = *p++; + if (c == L_('\0')) + /* Trailing \ loses. */ + return FNM_NOMATCH; + c = FOLD (c); + } + if (n == string_end || FOLD ((UCHAR) *n) != c) + return FNM_NOMATCH; + break; + + case L_('*'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { + int res; + + res = EXT (c, p, n, string_end, no_leading_period, + flags); + if (res != -1) + return res; + } + + if (n != string_end && *n == L_('.') && no_leading_period) + return FNM_NOMATCH; + + for (c = *p++; c == L_('?') || c == L_('*'); c = *p++) + { + if (*p == L_('(') && (flags & FNM_EXTMATCH) != 0) + { + const CHAR *endp = END (p); + if (endp != p) + { + /* This is a pattern. Skip over it. */ + p = endp; + continue; + } + } + + if (c == L_('?')) + { + /* A ? needs to match one character. */ + if (n == string_end) + /* There isn't another character; no match. */ + return FNM_NOMATCH; + else if (*n == L_('/') + && __builtin_expect (flags & FNM_FILE_NAME, 0)) + /* A slash does not match a wildcard under + FNM_FILE_NAME. */ + return FNM_NOMATCH; + else + /* One character of the string is consumed in matching + this ? wildcard, so *??? won't match if there are + less than three characters. */ + ++n; + } + } + + if (c == L_('\0')) + /* The wildcard(s) is/are the last element of the pattern. + If the name is a file name and contains another slash + this means it cannot match, unless the FNM_LEADING_DIR + flag is set. */ + { + int result = (flags & FNM_FILE_NAME) == 0 ? 0 : FNM_NOMATCH; + + if (flags & FNM_FILE_NAME) + { + if (flags & FNM_LEADING_DIR) + result = 0; + else + { + if (MEMCHR (n, L_('/'), string_end - n) == NULL) + result = 0; + } + } + + return result; + } + else + { + const CHAR *endp; + + endp = MEMCHR (n, (flags & FNM_FILE_NAME) ? L_('/') : L_('\0'), + string_end - n); + if (endp == NULL) + endp = string_end; + + if (c == L_('[') + || (__builtin_expect (flags & FNM_EXTMATCH, 0) != 0 + && (c == L_('@') || c == L_('+') || c == L_('!')) + && *p == L_('('))) + { + int flags2 = ((flags & FNM_FILE_NAME) + ? flags : (flags & ~FNM_PERIOD)); + bool no_leading_period2 = no_leading_period; + + for (--p; n < endp; ++n, no_leading_period2 = false) + if (FCT (p, n, string_end, no_leading_period2, flags2) + == 0) + return 0; + } + else if (c == L_('/') && (flags & FNM_FILE_NAME)) + { + while (n < string_end && *n != L_('/')) + ++n; + if (n < string_end && *n == L_('/') + && (FCT (p, n + 1, string_end, flags & FNM_PERIOD, flags) + == 0)) + return 0; + } + else + { + int flags2 = ((flags & FNM_FILE_NAME) + ? flags : (flags & ~FNM_PERIOD)); + int no_leading_period2 = no_leading_period; + + if (c == L_('\\') && !(flags & FNM_NOESCAPE)) + c = *p; + c = FOLD (c); + for (--p; n < endp; ++n, no_leading_period2 = false) + if (FOLD ((UCHAR) *n) == c + && (FCT (p, n, string_end, no_leading_period2, flags2) + == 0)) + return 0; + } + } + + /* If we come here no match is possible with the wildcard. */ + return FNM_NOMATCH; + + case L_('['): + { + /* Nonzero if the sense of the character class is inverted. */ + register bool not; + CHAR cold; + UCHAR fn; + + if (posixly_correct == 0) + posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1; + + if (n == string_end) + return FNM_NOMATCH; + + if (*n == L_('.') && no_leading_period) + return FNM_NOMATCH; + + if (*n == L_('/') && (flags & FNM_FILE_NAME)) + /* `/' cannot be matched. */ + return FNM_NOMATCH; + + not = (*p == L_('!') || (posixly_correct < 0 && *p == L_('^'))); + if (not) + ++p; + + fn = FOLD ((UCHAR) *n); + + c = *p++; + for (;;) + { + if (!(flags & FNM_NOESCAPE) && c == L_('\\')) + { + if (*p == L_('\0')) + return FNM_NOMATCH; + c = FOLD ((UCHAR) *p); + ++p; + + goto normal_bracket; + } + else if (c == L_('[') && *p == L_(':')) + { + /* Leave room for the null. */ + CHAR str[CHAR_CLASS_MAX_LENGTH + 1]; + size_t c1 = 0; +#if defined _LIBC || WIDE_CHAR_SUPPORT + wctype_t wt; +#endif + const CHAR *startp = p; + + for (;;) + { + if (c1 == CHAR_CLASS_MAX_LENGTH) + /* The name is too long and therefore the pattern + is ill-formed. */ + return FNM_NOMATCH; + + c = *++p; + if (c == L_(':') && p[1] == L_(']')) + { + p += 2; + break; + } + if (c < L_('a') || c >= L_('z')) + { + /* This cannot possibly be a character class name. + Match it as a normal range. */ + p = startp; + c = L_('['); + goto normal_bracket; + } + str[c1++] = c; + } + str[c1] = L_('\0'); + +#if defined _LIBC || WIDE_CHAR_SUPPORT + wt = IS_CHAR_CLASS (str); + if (wt == 0) + /* Invalid character class name. */ + return FNM_NOMATCH; + +# if defined _LIBC && ! WIDE_CHAR_VERSION + /* The following code is glibc specific but does + there a good job in speeding up the code since + we can avoid the btowc() call. */ + if (_ISCTYPE ((UCHAR) *n, wt)) + goto matched; +# else + if (ISWCTYPE (BTOWC ((UCHAR) *n), wt)) + goto matched; +# endif +#else + if ((STREQ (str, L_("alnum")) && isalnum ((UCHAR) *n)) + || (STREQ (str, L_("alpha")) && isalpha ((UCHAR) *n)) + || (STREQ (str, L_("blank")) && isblank ((UCHAR) *n)) + || (STREQ (str, L_("cntrl")) && iscntrl ((UCHAR) *n)) + || (STREQ (str, L_("digit")) && isdigit ((UCHAR) *n)) + || (STREQ (str, L_("graph")) && isgraph ((UCHAR) *n)) + || (STREQ (str, L_("lower")) && islower ((UCHAR) *n)) + || (STREQ (str, L_("print")) && isprint ((UCHAR) *n)) + || (STREQ (str, L_("punct")) && ispunct ((UCHAR) *n)) + || (STREQ (str, L_("space")) && isspace ((UCHAR) *n)) + || (STREQ (str, L_("upper")) && isupper ((UCHAR) *n)) + || (STREQ (str, L_("xdigit")) && isxdigit ((UCHAR) *n))) + goto matched; +#endif + c = *p++; + } +#ifdef _LIBC + else if (c == L_('[') && *p == L_('=')) + { + UCHAR str[1]; + uint32_t nrules = + _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); + const CHAR *startp = p; + + c = *++p; + if (c == L_('\0')) + { + p = startp; + c = L_('['); + goto normal_bracket; + } + str[0] = c; + + c = *++p; + if (c != L_('=') || p[1] != L_(']')) + { + p = startp; + c = L_('['); + goto normal_bracket; + } + p += 2; + + if (nrules == 0) + { + if ((UCHAR) *n == str[0]) + goto matched; + } + else + { + const int32_t *table; +# if WIDE_CHAR_VERSION + const int32_t *weights; + const int32_t *extra; +# else + const unsigned char *weights; + const unsigned char *extra; +# endif + const int32_t *indirect; + int32_t idx; + const UCHAR *cp = (const UCHAR *) str; + + /* This #include defines a local function! */ +# if WIDE_CHAR_VERSION +# include <locale/weightwc.h> +# else +# include <locale/weight.h> +# endif + +# if WIDE_CHAR_VERSION + table = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEWC); + weights = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTWC); + extra = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAWC); + indirect = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTWC); +# else + table = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); + weights = (const unsigned char *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); + extra = (const unsigned char *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); + indirect = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); +# endif + + idx = findidx (&cp); + if (idx != 0) + { + /* We found a table entry. Now see whether the + character we are currently at has the same + equivalance class value. */ + int len = weights[idx & 0xffffff]; + int32_t idx2; + const UCHAR *np = (const UCHAR *) n; + + idx2 = findidx (&np); + if (idx2 != 0 + && (idx >> 24) == (idx2 >> 24) + && len == weights[idx2 & 0xffffff]) + { + int cnt = 0; + + idx &= 0xffffff; + idx2 &= 0xffffff; + + while (cnt < len + && (weights[idx + 1 + cnt] + == weights[idx2 + 1 + cnt])) + ++cnt; + + if (cnt == len) + goto matched; + } + } + } + + c = *p++; + } +#endif + else if (c == L_('\0')) + /* [ (unterminated) loses. */ + return FNM_NOMATCH; + else + { + bool is_range = false; + +#ifdef _LIBC + bool is_seqval = false; + + if (c == L_('[') && *p == L_('.')) + { + uint32_t nrules = + _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); + const CHAR *startp = p; + size_t c1 = 0; + + while (1) + { + c = *++p; + if (c == L_('.') && p[1] == L_(']')) + { + p += 2; + break; + } + if (c == '\0') + return FNM_NOMATCH; + ++c1; + } + + /* We have to handling the symbols differently in + ranges since then the collation sequence is + important. */ + is_range = *p == L_('-') && p[1] != L_('\0'); + + if (nrules == 0) + { + /* There are no names defined in the collation + data. Therefore we only accept the trivial + names consisting of the character itself. */ + if (c1 != 1) + return FNM_NOMATCH; + + if (!is_range && *n == startp[1]) + goto matched; + + cold = startp[1]; + c = *p++; + } + else + { + int32_t table_size; + const int32_t *symb_table; +# ifdef WIDE_CHAR_VERSION + char str[c1]; + size_t strcnt; +# else +# define str (startp + 1) +# endif + const unsigned char *extra; + int32_t idx; + int32_t elem; + int32_t second; + int32_t hash; + +# ifdef WIDE_CHAR_VERSION + /* We have to convert the name to a single-byte + string. This is possible since the names + consist of ASCII characters and the internal + representation is UCS4. */ + for (strcnt = 0; strcnt < c1; ++strcnt) + str[strcnt] = startp[1 + strcnt]; +# endif + + table_size = + _NL_CURRENT_WORD (LC_COLLATE, + _NL_COLLATE_SYMB_HASH_SIZEMB); + symb_table = (const int32_t *) + _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_SYMB_TABLEMB); + extra = (const unsigned char *) + _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_SYMB_EXTRAMB); + + /* Locate the character in the hashing table. */ + hash = elem_hash (str, c1); + + idx = 0; + elem = hash % table_size; + if (symb_table[2 * elem] != 0) + { + second = hash % (table_size - 2) + 1; + + do + { + /* First compare the hashing value. */ + if (symb_table[2 * elem] == hash + && (c1 + == extra[symb_table[2 * elem + 1]]) + && memcmp (str, + &extra[symb_table[2 * elem + + 1] + + 1], c1) == 0) + { + /* Yep, this is the entry. */ + idx = symb_table[2 * elem + 1]; + idx += 1 + extra[idx]; + break; + } + + /* Next entry. */ + elem += second; + } + while (symb_table[2 * elem] != 0); + } + + if (symb_table[2 * elem] != 0) + { + /* Compare the byte sequence but only if + this is not part of a range. */ +# ifdef WIDE_CHAR_VERSION + int32_t *wextra; + + idx += 1 + extra[idx]; + /* Adjust for the alignment. */ + idx = (idx + 3) & ~3; + + wextra = (int32_t *) &extra[idx + 4]; +# endif + + if (! is_range) + { +# ifdef WIDE_CHAR_VERSION + for (c1 = 0; + (int32_t) c1 < wextra[idx]; + ++c1) + if (n[c1] != wextra[1 + c1]) + break; + + if ((int32_t) c1 == wextra[idx]) + goto matched; +# else + for (c1 = 0; c1 < extra[idx]; ++c1) + if (n[c1] != extra[1 + c1]) + break; + + if (c1 == extra[idx]) + goto matched; +# endif + } + + /* Get the collation sequence value. */ + is_seqval = true; +# ifdef WIDE_CHAR_VERSION + cold = wextra[1 + wextra[idx]]; +# else + /* Adjust for the alignment. */ + idx += 1 + extra[idx]; + idx = (idx + 3) & ~4; + cold = *((int32_t *) &extra[idx]); +# endif + + c = *p++; + } + else if (c1 == 1) + { + /* No valid character. Match it as a + single byte. */ + if (!is_range && *n == str[0]) + goto matched; + + cold = str[0]; + c = *p++; + } + else + return FNM_NOMATCH; + } + } + else +# undef str +#endif + { + c = FOLD (c); + normal_bracket: + + /* We have to handling the symbols differently in + ranges since then the collation sequence is + important. */ + is_range = (*p == L_('-') && p[1] != L_('\0') + && p[1] != L_(']')); + + if (!is_range && c == fn) + goto matched; + +#if _LIBC + /* This is needed if we goto normal_bracket; from + outside of is_seqval's scope. */ + is_seqval = false; +#endif + + cold = c; + c = *p++; + } + + if (c == L_('-') && *p != L_(']')) + { +#if _LIBC + /* We have to find the collation sequence + value for C. Collation sequence is nothing + we can regularly access. The sequence + value is defined by the order in which the + definitions of the collation values for the + various characters appear in the source + file. A strange concept, nowhere + documented. */ + uint32_t fcollseq; + uint32_t lcollseq; + UCHAR cend = *p++; + +# ifdef WIDE_CHAR_VERSION + /* Search in the `names' array for the characters. */ + fcollseq = __collseq_table_lookup (collseq, fn); + if (fcollseq == ~((uint32_t) 0)) + /* XXX We don't know anything about the character + we are supposed to match. This means we are + failing. */ + goto range_not_matched; + + if (is_seqval) + lcollseq = cold; + else + lcollseq = __collseq_table_lookup (collseq, cold); +# else + fcollseq = collseq[fn]; + lcollseq = is_seqval ? cold : collseq[(UCHAR) cold]; +# endif + + is_seqval = false; + if (cend == L_('[') && *p == L_('.')) + { + uint32_t nrules = + _NL_CURRENT_WORD (LC_COLLATE, + _NL_COLLATE_NRULES); + const CHAR *startp = p; + size_t c1 = 0; + + while (1) + { + c = *++p; + if (c == L_('.') && p[1] == L_(']')) + { + p += 2; + break; + } + if (c == '\0') + return FNM_NOMATCH; + ++c1; + } + + if (nrules == 0) + { + /* There are no names defined in the + collation data. Therefore we only + accept the trivial names consisting + of the character itself. */ + if (c1 != 1) + return FNM_NOMATCH; + + cend = startp[1]; + } + else + { + int32_t table_size; + const int32_t *symb_table; +# ifdef WIDE_CHAR_VERSION + char str[c1]; + size_t strcnt; +# else +# define str (startp + 1) +# endif + const unsigned char *extra; + int32_t idx; + int32_t elem; + int32_t second; + int32_t hash; + +# ifdef WIDE_CHAR_VERSION + /* We have to convert the name to a single-byte + string. This is possible since the names + consist of ASCII characters and the internal + representation is UCS4. */ + for (strcnt = 0; strcnt < c1; ++strcnt) + str[strcnt] = startp[1 + strcnt]; +# endif + + table_size = + _NL_CURRENT_WORD (LC_COLLATE, + _NL_COLLATE_SYMB_HASH_SIZEMB); + symb_table = (const int32_t *) + _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_SYMB_TABLEMB); + extra = (const unsigned char *) + _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_SYMB_EXTRAMB); + + /* Locate the character in the hashing + table. */ + hash = elem_hash (str, c1); + + idx = 0; + elem = hash % table_size; + if (symb_table[2 * elem] != 0) + { + second = hash % (table_size - 2) + 1; + + do + { + /* First compare the hashing value. */ + if (symb_table[2 * elem] == hash + && (c1 + == extra[symb_table[2 * elem + 1]]) + && memcmp (str, + &extra[symb_table[2 * elem + 1] + + 1], c1) == 0) + { + /* Yep, this is the entry. */ + idx = symb_table[2 * elem + 1]; + idx += 1 + extra[idx]; + break; + } + + /* Next entry. */ + elem += second; + } + while (symb_table[2 * elem] != 0); + } + + if (symb_table[2 * elem] != 0) + { + /* Compare the byte sequence but only if + this is not part of a range. */ +# ifdef WIDE_CHAR_VERSION + int32_t *wextra; + + idx += 1 + extra[idx]; + /* Adjust for the alignment. */ + idx = (idx + 3) & ~4; + + wextra = (int32_t *) &extra[idx + 4]; +# endif + /* Get the collation sequence value. */ + is_seqval = true; +# ifdef WIDE_CHAR_VERSION + cend = wextra[1 + wextra[idx]]; +# else + /* Adjust for the alignment. */ + idx += 1 + extra[idx]; + idx = (idx + 3) & ~4; + cend = *((int32_t *) &extra[idx]); +# endif + } + else if (symb_table[2 * elem] != 0 && c1 == 1) + { + cend = str[0]; + c = *p++; + } + else + return FNM_NOMATCH; + } +# undef str + } + else + { + if (!(flags & FNM_NOESCAPE) && cend == L_('\\')) + cend = *p++; + if (cend == L_('\0')) + return FNM_NOMATCH; + cend = FOLD (cend); + } + + /* XXX It is not entirely clear to me how to handle + characters which are not mentioned in the + collation specification. */ + if ( +# ifdef WIDE_CHAR_VERSION + lcollseq == 0xffffffff || +# endif + lcollseq <= fcollseq) + { + /* We have to look at the upper bound. */ + uint32_t hcollseq; + + if (is_seqval) + hcollseq = cend; + else + { +# ifdef WIDE_CHAR_VERSION + hcollseq = + __collseq_table_lookup (collseq, cend); + if (hcollseq == ~((uint32_t) 0)) + { + /* Hum, no information about the upper + bound. The matching succeeds if the + lower bound is matched exactly. */ + if (lcollseq != fcollseq) + goto range_not_matched; + + goto matched; + } +# else + hcollseq = collseq[cend]; +# endif + } + + if (lcollseq <= hcollseq && fcollseq <= hcollseq) + goto matched; + } +# ifdef WIDE_CHAR_VERSION + range_not_matched: +# endif +#else + /* We use a boring value comparison of the character + values. This is better than comparing using + `strcoll' since the latter would have surprising + and sometimes fatal consequences. */ + UCHAR cend = *p++; + + if (!(flags & FNM_NOESCAPE) && cend == L_('\\')) + cend = *p++; + if (cend == L_('\0')) + return FNM_NOMATCH; + + /* It is a range. */ + if (cold <= fn && fn <= cend) + goto matched; +#endif + + c = *p++; + } + } + + if (c == L_(']')) + break; + } + + if (!not) + return FNM_NOMATCH; + break; + + matched: + /* Skip the rest of the [...] that already matched. */ + do + { + ignore_next: + c = *p++; + + if (c == L_('\0')) + /* [... (unterminated) loses. */ + return FNM_NOMATCH; + + if (!(flags & FNM_NOESCAPE) && c == L_('\\')) + { + if (*p == L_('\0')) + return FNM_NOMATCH; + /* XXX 1003.2d11 is unclear if this is right. */ + ++p; + } + else if (c == L_('[') && *p == L_(':')) + { + int c1 = 0; + const CHAR *startp = p; + + while (1) + { + c = *++p; + if (++c1 == CHAR_CLASS_MAX_LENGTH) + return FNM_NOMATCH; + + if (*p == L_(':') && p[1] == L_(']')) + break; + + if (c < L_('a') || c >= L_('z')) + { + p = startp; + goto ignore_next; + } + } + p += 2; + c = *p++; + } + else if (c == L_('[') && *p == L_('=')) + { + c = *++p; + if (c == L_('\0')) + return FNM_NOMATCH; + c = *++p; + if (c != L_('=') || p[1] != L_(']')) + return FNM_NOMATCH; + p += 2; + c = *p++; + } + else if (c == L_('[') && *p == L_('.')) + { + ++p; + while (1) + { + c = *++p; + if (c == '\0') + return FNM_NOMATCH; + + if (*p == L_('.') && p[1] == L_(']')) + break; + } + p += 2; + c = *p++; + } + } + while (c != L_(']')); + if (not) + return FNM_NOMATCH; + } + break; + + case L_('+'): + case L_('@'): + case L_('!'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { + int res; + + res = EXT (c, p, n, string_end, no_leading_period, flags); + if (res != -1) + return res; + } + goto normal_match; + + case L_('/'): + if (NO_LEADING_PERIOD (flags)) + { + if (n == string_end || c != (UCHAR) *n) + return FNM_NOMATCH; + + new_no_leading_period = true; + break; + } + /* FALLTHROUGH */ + default: + normal_match: + if (n == string_end || c != FOLD ((UCHAR) *n)) + return FNM_NOMATCH; + } + + no_leading_period = new_no_leading_period; + ++n; + } + + if (n == string_end) + return 0; + + if ((flags & FNM_LEADING_DIR) && n != string_end && *n == L_('/')) + /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */ + return 0; + + return FNM_NOMATCH; +} + + +static const CHAR * +internal_function +END (const CHAR *pattern) +{ + const CHAR *p = pattern; + + while (1) + if (*++p == L_('\0')) + /* This is an invalid pattern. */ + return pattern; + else if (*p == L_('[')) + { + /* Handle brackets special. */ + if (posixly_correct == 0) + posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1; + + /* Skip the not sign. We have to recognize it because of a possibly + following ']'. */ + if (*++p == L_('!') || (posixly_correct < 0 && *p == L_('^'))) + ++p; + /* A leading ']' is recognized as such. */ + if (*p == L_(']')) + ++p; + /* Skip over all characters of the list. */ + while (*p != L_(']')) + if (*p++ == L_('\0')) + /* This is no valid pattern. */ + return pattern; + } + else if ((*p == L_('?') || *p == L_('*') || *p == L_('+') || *p == L_('@') + || *p == L_('!')) && p[1] == L_('(')) + p = END (p + 1); + else if (*p == L_(')')) + break; + + return p + 1; +} + + +static int +internal_function +EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end, + bool no_leading_period, int flags) +{ + const CHAR *startp; + size_t level; + struct patternlist + { + struct patternlist *next; + CHAR str[1]; + } *list = NULL; + struct patternlist **lastp = &list; + size_t pattern_len = STRLEN (pattern); + const CHAR *p; + const CHAR *rs; + enum { ALLOCA_LIMIT = 8000 }; + + /* Parse the pattern. Store the individual parts in the list. */ + level = 0; + for (startp = p = pattern + 1; ; ++p) + if (*p == L_('\0')) + /* This is an invalid pattern. */ + return -1; + else if (*p == L_('[')) + { + /* Handle brackets special. */ + if (posixly_correct == 0) + posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1; + + /* Skip the not sign. We have to recognize it because of a possibly + following ']'. */ + if (*++p == L_('!') || (posixly_correct < 0 && *p == L_('^'))) + ++p; + /* A leading ']' is recognized as such. */ + if (*p == L_(']')) + ++p; + /* Skip over all characters of the list. */ + while (*p != L_(']')) + if (*p++ == L_('\0')) + /* This is no valid pattern. */ + return -1; + } + else if ((*p == L_('?') || *p == L_('*') || *p == L_('+') || *p == L_('@') + || *p == L_('!')) && p[1] == L_('(')) + /* Remember the nesting level. */ + ++level; + else if (*p == L_(')')) + { + if (level-- == 0) + { + /* This means we found the end of the pattern. */ +#define NEW_PATTERN \ + struct patternlist *newp; \ + size_t plen; \ + size_t plensize; \ + size_t newpsize; \ + \ + plen = (opt == L_('?') || opt == L_('@') \ + ? pattern_len \ + : p - startp + 1UL); \ + plensize = plen * sizeof (CHAR); \ + newpsize = offsetof (struct patternlist, str) + plensize; \ + if ((size_t) -1 / sizeof (CHAR) < plen \ + || newpsize < offsetof (struct patternlist, str) \ + || ALLOCA_LIMIT <= newpsize) \ + return -1; \ + newp = (struct patternlist *) alloca (newpsize); \ + *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L_('\0'); \ + newp->next = NULL; \ + *lastp = newp; \ + lastp = &newp->next + NEW_PATTERN; + break; + } + } + else if (*p == L_('|')) + { + if (level == 0) + { + NEW_PATTERN; + startp = p + 1; + } + } + assert (list != NULL); + assert (p[-1] == L_(')')); +#undef NEW_PATTERN + + switch (opt) + { + case L_('*'): + if (FCT (p, string, string_end, no_leading_period, flags) == 0) + return 0; + /* FALLTHROUGH */ + + case L_('+'): + do + { + for (rs = string; rs <= string_end; ++rs) + /* First match the prefix with the current pattern with the + current pattern. */ + if (FCT (list->str, string, rs, no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) == 0 + /* This was successful. Now match the rest with the rest + of the pattern. */ + && (FCT (p, rs, string_end, + rs == string + ? no_leading_period + : rs[-1] == '/' && NO_LEADING_PERIOD (flags), + flags & FNM_FILE_NAME + ? flags : flags & ~FNM_PERIOD) == 0 + /* This didn't work. Try the whole pattern. */ + || (rs != string + && FCT (pattern - 1, rs, string_end, + rs == string + ? no_leading_period + : rs[-1] == '/' && NO_LEADING_PERIOD (flags), + flags & FNM_FILE_NAME + ? flags : flags & ~FNM_PERIOD) == 0))) + /* It worked. Signal success. */ + return 0; + } + while ((list = list->next) != NULL); + + /* None of the patterns lead to a match. */ + return FNM_NOMATCH; + + case L_('?'): + if (FCT (p, string, string_end, no_leading_period, flags) == 0) + return 0; + /* FALLTHROUGH */ + + case L_('@'): + do + /* I cannot believe it but `strcat' is actually acceptable + here. Match the entire string with the prefix from the + pattern list and the rest of the pattern following the + pattern list. */ + if (FCT (STRCAT (list->str, p), string, string_end, + no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) == 0) + /* It worked. Signal success. */ + return 0; + while ((list = list->next) != NULL); + + /* None of the patterns lead to a match. */ + return FNM_NOMATCH; + + case L_('!'): + for (rs = string; rs <= string_end; ++rs) + { + struct patternlist *runp; + + for (runp = list; runp != NULL; runp = runp->next) + if (FCT (runp->str, string, rs, no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) == 0) + break; + + /* If none of the patterns matched see whether the rest does. */ + if (runp == NULL + && (FCT (p, rs, string_end, + rs == string + ? no_leading_period + : rs[-1] == '/' && NO_LEADING_PERIOD (flags), + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) + == 0)) + /* This is successful. */ + return 0; + } + + /* None of the patterns together with the rest of the pattern + lead to a match. */ + return FNM_NOMATCH; + + default: + assert (! "Invalid extended matching operator"); + break; + } + + return -1; +} + + +#undef FOLD +#undef CHAR +#undef UCHAR +#undef INT +#undef FCT +#undef EXT +#undef END +#undef MEMPCPY +#undef MEMCHR +#undef STRCOLL +#undef STRLEN +#undef STRCAT +#undef L_ +#undef BTOWC diff --git a/lib/fpending.c b/gnu/fpending.c similarity index 84% rename from lib/fpending.c rename to gnu/fpending.c index 9250d6af9d43a0ef70b33bb55f5e2bd4a167074e..f0ca18c5ca28b95dd2b48f515b474ca795468fb4 100644 --- a/lib/fpending.c +++ b/gnu/fpending.c @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* fpending.c -- return the number of pending output bytes on a stream - Copyright (C) 2000, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2000, 2004, 2006-2007, 2009-2010 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 diff --git a/lib/fpending.h b/gnu/fpending.h similarity index 84% rename from lib/fpending.h rename to gnu/fpending.h index c6a493ddf4ee694fe0850f0508c045113ad4676c..5ffebc87d37066f82a7efb94b2b87a9af63397cb 100644 --- a/lib/fpending.h +++ b/gnu/fpending.h @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Declare __fpending. - Copyright (C) 2000, 2003, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2000, 2003, 2005-2006, 2009-2010 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 diff --git a/lib/fseeko.c b/gnu/fseeko.c similarity index 72% rename from lib/fseeko.c rename to gnu/fseeko.c index 1e34a5d03154d0511c482d5d83412164836b0e3a..03a4d996b34327ecd4d1108dd39108f8dbd9e5c7 100644 --- a/lib/fseeko.c +++ b/gnu/fseeko.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An fseeko() function that, together with fflush(), is POSIX compliant. - Copyright (C) 2007-2009 Free Software Foundation, Inc. + Copyright (C) 2007-2010 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 @@ -52,10 +52,10 @@ rpl_fseeko (FILE *fp, off_t offset, int whence) if ((fp->_flags & __SL64) == 0) { /* Cygwin 1.5.0 through 1.5.24 failed to open stdin in 64-bit - mode; but has an fseeko that requires 64-bit mode. */ + mode; but has an fseeko that requires 64-bit mode. */ FILE *tmp = fopen ("/dev/null", "r"); if (!tmp) - return -1; + return -1; fp->_flags |= __SL64; fp->_seek64 = tmp->_seek64; fclose (tmp); @@ -64,8 +64,8 @@ rpl_fseeko (FILE *fp, off_t offset, int whence) if (fp_->_p == fp_->_bf._base && fp_->_r == 0 && fp_->_w == ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ - ? fp_->_bf._size - : 0) + ? fp_->_bf._size + : 0) && fp_ub._base == NULL) #elif defined __EMX__ /* emx+gcc */ if (fp->_ptr == fp->_buffer @@ -79,46 +79,71 @@ rpl_fseeko (FILE *fp, off_t offset, int whence) if (((fp->__modeflags & __FLAG_WRITING) == 0 || fp->__bufpos == fp->__bufstart) && ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0 - || fp->__bufpos == fp->__bufread)) + || fp->__bufpos == fp->__bufread)) #elif defined __QNX__ /* QNX */ - if ((fp->_Mode & _MWRITE ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend) + if ((fp->_Mode & 0x2000 /* _MWRITE */ ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend) && fp->_Rback == fp->_Back + sizeof (fp->_Back) && fp->_Rsave == NULL) +#elif defined __MINT__ /* Atari FreeMiNT */ + if (fp->__bufp == fp->__buffer + && fp->__get_limit == fp->__bufp + && fp->__put_limit == fp->__bufp + && !fp->__pushed_back) #else #error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.c, then report this to bug-gnulib." #endif { /* We get here when an fflush() call immediately preceded this one. We - know there are no buffers. - POSIX requires us to modify the file descriptor's position. - But we cannot position beyond end of file here. */ + know there are no buffers. + POSIX requires us to modify the file descriptor's position. + But we cannot position beyond end of file here. */ off_t pos = - lseek (fileno (fp), - whence == SEEK_END && offset > 0 ? 0 : offset, - whence); + lseek (fileno (fp), + whence == SEEK_END && offset > 0 ? 0 : offset, + whence); if (pos == -1) - { + { #if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ - fp_->_flags &= ~__SOFF; + fp_->_flags &= ~__SOFF; #endif - return -1; - } + return -1; + } #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_flags &= ~_IO_EOF_SEEN; #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */ +# if defined __CYGWIN__ + /* fp_->_offset is typed as an integer. */ fp_->_offset = pos; +# else + /* fp_->_offset is an fpos_t. */ + { + /* Use a union, since on NetBSD, the compilation flags + determine whether fpos_t is typedef'd to off_t or a struct + containing a single off_t member. */ + union + { + fpos_t f; + off_t o; + } u; + u.o = pos; + fp_->_offset = u.f; + } +# endif fp_->_flags |= __SOFF; fp_->_flags &= ~__SEOF; #elif defined __EMX__ /* emx+gcc */ fp->_flags &= ~_IOEOF; #elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ fp->_flag &= ~_IOEOF; +#elif defined __MINT__ /* Atari FreeMiNT */ + fp->__offset = pos; + fp->__eof = 0; #endif /* If we were not requested to position beyond end of file, we're - done. */ + done. */ if (!(whence == SEEK_END && offset > 0)) - return 0; + return 0; } return fseeko (fp, offset, whence); } diff --git a/gnu/fstatat.c b/gnu/fstatat.c new file mode 100644 index 0000000000000000000000000000000000000000..cc8a635a4147c52ca2807674cd5da2dc618594ad --- /dev/null +++ b/gnu/fstatat.c @@ -0,0 +1,112 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Work around an fstatat bug on Solaris 9. + + Copyright (C) 2006, 2009-2010 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 <sys/stat.h> + +#include <errno.h> +#include <fcntl.h> +#include <string.h> + +#if HAVE_FSTATAT + +# undef fstatat + +/* fstatat should always follow symbolic links that end in /, but on + Solaris 9 it doesn't if AT_SYMLINK_NOFOLLOW is specified. + Likewise, trailing slash on a non-directory should be an error. + These are the same problems that lstat.c and stat.c address, so + solve it in a similar way. */ + +int +rpl_fstatat (int fd, char const *file, struct stat *st, int flag) +{ + int result = fstatat (fd, file, st, flag); + size_t len; + + if (result != 0) + return result; + len = strlen (file); + if (flag & AT_SYMLINK_NOFOLLOW) + { + /* Fix lstat behavior. */ + if (file[len - 1] != '/' || S_ISDIR (st->st_mode)) + return 0; + if (!S_ISLNK (st->st_mode)) + { + errno = ENOTDIR; + return -1; + } + result = fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW); + } + /* Fix stat behavior. */ + if (result == 0 && !S_ISDIR (st->st_mode) && file[len - 1] == '/') + { + errno = ENOTDIR; + return -1; + } + return result; +} + +#else /* !HAVE_FSTATAT */ + +/* On mingw, the gnulib <sys/stat.h> defines `stat' as a function-like + macro; but using it in AT_FUNC_F2 causes compilation failure + because the preprocessor sees a use of a macro that requires two + arguments but is only given one. Hence, we need an inline + forwarder to get past the preprocessor. */ +static inline int +stat_func (char const *name, struct stat *st) +{ + return stat (name, st); +} + +/* Likewise, if there is no native `lstat', then the gnulib + <sys/stat.h> defined it as stat, which also needs adjustment. */ +# if !HAVE_LSTAT +# undef lstat +# define lstat stat_func +# endif + +/* Replacement for Solaris' function by the same name. + <http://www.google.com/search?q=fstatat+site:docs.sun.com> + First, try to simulate it via l?stat ("/proc/self/fd/FD/FILE"). + Failing that, simulate it via save_cwd/fchdir/(stat|lstat)/restore_cwd. + If either the save_cwd or the restore_cwd fails (relatively unlikely), + then give a diagnostic and exit nonzero. + Otherwise, this function works just like Solaris' fstatat. */ + +# define AT_FUNC_NAME fstatat +# define AT_FUNC_F1 lstat +# define AT_FUNC_F2 stat_func +# define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW +# define AT_FUNC_POST_FILE_PARAM_DECLS , struct stat *st, int flag +# define AT_FUNC_POST_FILE_ARGS , st +# include "at-func.c" +# undef AT_FUNC_NAME +# undef AT_FUNC_F1 +# undef AT_FUNC_F2 +# undef AT_FUNC_USE_F1_COND +# undef AT_FUNC_POST_FILE_PARAM_DECLS +# undef AT_FUNC_POST_FILE_ARGS + +#endif /* !HAVE_FSTATAT */ diff --git a/lib/ftruncate.c b/gnu/ftruncate.c similarity index 80% rename from lib/ftruncate.c rename to gnu/ftruncate.c index ff7d11b090a4f41760885dd15cbbd00e344c80fe..39b4bda3dca748a514317ff6cc27073068f35ff0 100644 --- a/lib/ftruncate.c +++ b/gnu/ftruncate.c @@ -1,3 +1,5 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* ftruncate emulations that work on some System V's. This file is in the public domain. */ @@ -38,11 +40,11 @@ ftruncate (int fd, off_t length) { /* Extend file length. */ if (lseek (fd, (length - 1), SEEK_SET) < 0) - return -1; + return -1; /* Write a "0" byte. */ if (write (fd, "", 1) != 1) - return -1; + return -1; } else { @@ -52,14 +54,14 @@ ftruncate (int fd, off_t length) fl.l_whence = 0; fl.l_len = 0; fl.l_start = length; - fl.l_type = F_WRLCK; /* write lock on file space */ + fl.l_type = F_WRLCK; /* write lock on file space */ /* This relies on the *undocumented* F_FREESP argument to fcntl, - which truncates the file so that it ends at the position - indicated by fl.l_start. Will minor miracles never cease? */ + which truncates the file so that it ends at the position + indicated by fl.l_start. Will minor miracles never cease? */ if (fcntl (fd, F_FREESP, &fl) < 0) - return -1; + return -1; } return 0; diff --git a/lib/full-write.c b/gnu/full-write.c similarity index 88% rename from lib/full-write.c rename to gnu/full-write.c index 51f2d3819bf59909cb757d726160a08c1136c7d1..9b5ad2ec88942215070c4e753a9a10f1acdca476 100644 --- a/lib/full-write.c +++ b/gnu/full-write.c @@ -1,7 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An interface to read and write that retries (if necessary) until complete. - Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1993-1994, 1997-2006, 2009-2010 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 @@ -65,12 +66,12 @@ full_rw (int fd, const void *buf, size_t count) { size_t n_rw = safe_rw (fd, ptr, count); if (n_rw == (size_t) -1) - break; + break; if (n_rw == 0) - { - errno = ZERO_BYTE_TRANSFER_ERRNO; - break; - } + { + errno = ZERO_BYTE_TRANSFER_ERRNO; + break; + } total += n_rw; ptr += n_rw; count -= n_rw; diff --git a/lib/full-write.h b/gnu/full-write.h similarity index 87% rename from lib/full-write.h rename to gnu/full-write.h index 9a8014644547aa39739fb63291148e1bbfa2c016..1b858158988524e7cf09d3a5e57c578e44057862 100644 --- a/lib/full-write.h +++ b/gnu/full-write.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An interface to write() that writes all it is asked to write. - Copyright (C) 2002-2003 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2009-2010 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 diff --git a/lib/getcwd.c b/gnu/getcwd.c similarity index 58% rename from lib/getcwd.c rename to gnu/getcwd.c index b9e57d31a9a0c12fb569b7a3d765bf220d9667e0..504448fce245fa58b1a829e98b93ee4c4c3ca724 100644 --- a/lib/getcwd.c +++ b/gnu/getcwd.c @@ -1,4 +1,6 @@ -/* Copyright (C) 1991-1999, 2004-2008 Free Software Foundation, Inc. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 1991-1999, 2004-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -59,20 +61,6 @@ #include <limits.h> -/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its - value exceeds INT_MAX, so its use as an int doesn't conform to the - C standard, and GCC and Sun C complain in some cases. */ -#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 -# undef AT_FDCWD -# define AT_FDCWD (-3041965) -#endif - -#ifdef ENAMETOOLONG -# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG) -#else -# define is_ENAMETOOLONG(x) 0 -#endif - #ifndef MAX # define MAX(a, b) ((a) < (b) ? (b) : (a)) #endif @@ -81,7 +69,7 @@ #endif #ifndef PATH_MAX -# ifdef MAXPATHLEN +# ifdef MAXPATHLEN # define PATH_MAX MAXPATHLEN # else # define PATH_MAX 1024 @@ -103,7 +91,11 @@ #endif /* The results of opendir() in this file are not used with dirfd and fchdir, - therefore save some unnecessary recursion in fchdir.c. */ + and we do not leak fds to any single-threaded code that could use stdio, + therefore save some unnecessary recursion in fchdir.c. + FIXME - if the kernel ever adds support for multi-thread safety for + avoiding standard fds, then we should use opendir_safer and + openat_safer. */ #undef opendir #undef closedir @@ -160,17 +152,17 @@ __getcwd (char *buf, size_t size) # undef getcwd dir = getcwd (buf, size); - if (dir || (errno != ERANGE && !is_ENAMETOOLONG (errno) && errno != ENOENT)) + if (dir || (errno != ERANGE && errno != ENAMETOOLONG && errno != ENOENT)) return dir; #endif if (size == 0) { if (buf != NULL) - { - __set_errno (EINVAL); - return NULL; - } + { + __set_errno (EINVAL); + return NULL; + } allocated = BIG_FILE_NAME_LENGTH + 1; } @@ -179,7 +171,7 @@ __getcwd (char *buf, size_t size) { dir = malloc (allocated); if (dir == NULL) - return NULL; + return NULL; } else dir = buf; @@ -212,7 +204,7 @@ __getcwd (char *buf, size_t size) #if HAVE_OPENAT_SUPPORT fd = openat (fd, "..", O_RDONLY); if (fd < 0) - goto lose; + goto lose; fd_needs_closing = true; parent_status = fstat (fd, &st); #else @@ -222,13 +214,13 @@ __getcwd (char *buf, size_t size) parent_status = __lstat (dotlist, &st); #endif if (parent_status != 0) - goto lose; + goto lose; if (dirstream && __closedir (dirstream) != 0) - { - dirstream = NULL; - goto lose; - } + { + dirstream = NULL; + goto lose; + } /* Figure out if this directory is a mount point. */ dotdev = st.st_dev; @@ -239,138 +231,138 @@ __getcwd (char *buf, size_t size) #if HAVE_OPENAT_SUPPORT dirstream = fdopendir (fd); if (dirstream == NULL) - goto lose; + goto lose; /* Reset fd. It may have been closed by fdopendir. */ fd = dirfd (dirstream); fd_needs_closing = false; #else dirstream = __opendir (dotlist); if (dirstream == NULL) - goto lose; + goto lose; dotlist[dotlen++] = '/'; #endif for (;;) - { - /* Clear errno to distinguish EOF from error if readdir returns - NULL. */ - __set_errno (0); - d = __readdir (dirstream); - - /* When we've iterated through all directory entries without finding - one with a matching d_ino, rewind the stream and consider each - name again, but this time, using lstat. This is necessary in a - chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where - .., ../.., ../../.., etc. all had the same device number, yet the - d_ino values for entries in / did not match those obtained - via lstat. */ - if (d == NULL && errno == 0 && use_d_ino) - { - use_d_ino = false; - rewinddir (dirstream); - d = __readdir (dirstream); - } - - if (d == NULL) - { - if (errno == 0) - /* EOF on dirstream, which can mean e.g., that the current - directory has been removed. */ - __set_errno (ENOENT); - goto lose; - } - if (d->d_name[0] == '.' && - (d->d_name[1] == '\0' || - (d->d_name[1] == '.' && d->d_name[2] == '\0'))) - continue; - - if (use_d_ino) - { - bool match = (MATCHING_INO (d, thisino) || mount_point); - if (! match) - continue; - } - - { - int entry_status; + { + /* Clear errno to distinguish EOF from error if readdir returns + NULL. */ + __set_errno (0); + d = __readdir (dirstream); + + /* When we've iterated through all directory entries without finding + one with a matching d_ino, rewind the stream and consider each + name again, but this time, using lstat. This is necessary in a + chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where + .., ../.., ../../.., etc. all had the same device number, yet the + d_ino values for entries in / did not match those obtained + via lstat. */ + if (d == NULL && errno == 0 && use_d_ino) + { + use_d_ino = false; + rewinddir (dirstream); + d = __readdir (dirstream); + } + + if (d == NULL) + { + if (errno == 0) + /* EOF on dirstream, which can mean e.g., that the current + directory has been removed. */ + __set_errno (ENOENT); + goto lose; + } + if (d->d_name[0] == '.' && + (d->d_name[1] == '\0' || + (d->d_name[1] == '.' && d->d_name[2] == '\0'))) + continue; + + if (use_d_ino) + { + bool match = (MATCHING_INO (d, thisino) || mount_point); + if (! match) + continue; + } + + { + int entry_status; #if HAVE_OPENAT_SUPPORT - entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); + entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); #else - /* Compute size needed for this file name, or for the file - name ".." in the same directory, whichever is larger. - Room for ".." might be needed the next time through - the outer loop. */ - size_t name_alloc = _D_ALLOC_NAMLEN (d); - size_t filesize = dotlen + MAX (sizeof "..", name_alloc); - - if (filesize < dotlen) - goto memory_exhausted; - - if (dotsize < filesize) - { - /* My, what a deep directory tree you have, Grandma. */ - size_t newsize = MAX (filesize, dotsize * 2); - size_t i; - if (newsize < dotsize) - goto memory_exhausted; - if (dotlist != dots) - free (dotlist); - dotlist = malloc (newsize); - if (dotlist == NULL) - goto lose; - dotsize = newsize; - - i = 0; - do - { - dotlist[i++] = '.'; - dotlist[i++] = '.'; - dotlist[i++] = '/'; - } - while (i < dotlen); - } - - memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d)); - entry_status = __lstat (dotlist, &st); + /* Compute size needed for this file name, or for the file + name ".." in the same directory, whichever is larger. + Room for ".." might be needed the next time through + the outer loop. */ + size_t name_alloc = _D_ALLOC_NAMLEN (d); + size_t filesize = dotlen + MAX (sizeof "..", name_alloc); + + if (filesize < dotlen) + goto memory_exhausted; + + if (dotsize < filesize) + { + /* My, what a deep directory tree you have, Grandma. */ + size_t newsize = MAX (filesize, dotsize * 2); + size_t i; + if (newsize < dotsize) + goto memory_exhausted; + if (dotlist != dots) + free (dotlist); + dotlist = malloc (newsize); + if (dotlist == NULL) + goto lose; + dotsize = newsize; + + i = 0; + do + { + dotlist[i++] = '.'; + dotlist[i++] = '.'; + dotlist[i++] = '/'; + } + while (i < dotlen); + } + + memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d)); + entry_status = __lstat (dotlist, &st); #endif - /* We don't fail here if we cannot stat() a directory entry. - This can happen when (network) file systems fail. If this - entry is in fact the one we are looking for we will find - out soon as we reach the end of the directory without - having found anything. */ - if (entry_status == 0 && S_ISDIR (st.st_mode) - && st.st_dev == thisdev && st.st_ino == thisino) - break; - } - } + /* We don't fail here if we cannot stat() a directory entry. + This can happen when (network) file systems fail. If this + entry is in fact the one we are looking for we will find + out soon as we reach the end of the directory without + having found anything. */ + if (entry_status == 0 && S_ISDIR (st.st_mode) + && st.st_dev == thisdev && st.st_ino == thisino) + break; + } + } dirroom = dirp - dir; namlen = _D_EXACT_NAMLEN (d); if (dirroom <= namlen) - { - if (size != 0) - { - __set_errno (ERANGE); - goto lose; - } - else - { - char *tmp; - size_t oldsize = allocated; - - allocated += MAX (allocated, namlen); - if (allocated < oldsize - || ! (tmp = realloc (dir, allocated))) - goto memory_exhausted; - - /* Move current contents up to the end of the buffer. - This is guaranteed to be non-overlapping. */ - dirp = memcpy (tmp + allocated - (oldsize - dirroom), - tmp + dirroom, - oldsize - dirroom); - dir = tmp; - } - } + { + if (size != 0) + { + __set_errno (ERANGE); + goto lose; + } + else + { + char *tmp; + size_t oldsize = allocated; + + allocated += MAX (allocated, namlen); + if (allocated < oldsize + || ! (tmp = realloc (dir, allocated))) + goto memory_exhausted; + + /* Move current contents up to the end of the buffer. + This is guaranteed to be non-overlapping. */ + dirp = memcpy (tmp + allocated - (oldsize - dirroom), + tmp + dirroom, + oldsize - dirroom); + dir = tmp; + } + } dirp -= namlen; memcpy (dirp, d->d_name, namlen); *--dirp = '/'; diff --git a/lib/getdate.c b/gnu/getdate.c similarity index 74% rename from lib/getdate.c rename to gnu/getdate.c index 2e5f210ca39bf7e664aa9335b8e0e2e728a9c498..c45ce3d1018278323b4e9f7df001d13d9effb558 100644 --- a/lib/getdate.c +++ b/gnu/getdate.c @@ -118,8 +118,8 @@ /* Parse a string into an internal time stamp. - Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008 - Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010 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 @@ -195,16 +195,6 @@ of `digit' even when the host does not conform to POSIX. */ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) -#ifndef __attribute__ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ -# define __attribute__(x) -# endif -#endif - -#ifndef ATTRIBUTE_UNUSED -# define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#endif - /* Shift A right by B bits portably, by dividing A by 2**B and truncating towards minus infinity. A and B should be free of side effects, and B should be in the range 0 <= B <= INT_BITS - 2, where @@ -215,9 +205,9 @@ implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift right in the usual way when A < 0, so SHR falls back on division if ordinary A >> B doesn't seem to be the usual signed shift. */ -#define SHR(a, b) \ - (-1 >> 1 == -1 \ - ? (a) >> (b) \ +#define SHR(a, b) \ + (-1 >> 1 == -1 \ + ? (a) >> (b) \ : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0)) #define EPOCH_YEAR 1970 @@ -225,12 +215,21 @@ #define HOUR(x) ((x) * 60) -/* Lots of this code assumes time_t and time_t-like values fit into - long int. It also assumes that signed integer overflow silently - wraps around, but there's no portable way to check for that at - compile-time. */ +/* long_time_t is a signed integer type that contains all time_t values. */ verify (TYPE_IS_INTEGER (time_t)); -verify (LONG_MIN <= TYPE_MINIMUM (time_t) && TYPE_MAXIMUM (time_t) <= LONG_MAX); +#if TIME_T_FITS_IN_LONG_INT +typedef long int long_time_t; +#else +typedef time_t long_time_t; +#endif + +/* Lots of this code assumes time_t and time_t-like values fit into + long_time_t. */ +verify (TYPE_MINIMUM (long_time_t) <= TYPE_MINIMUM (time_t) + && TYPE_MAXIMUM (time_t) <= TYPE_MAXIMUM (long_time_t)); + +/* FIXME: It also assumes that signed integer overflow silently wraps around, + but this is not true any more with recent versions of GCC 4. */ /* An integer value, and the number of digits in its textual representation. */ @@ -263,7 +262,7 @@ typedef struct long int day; long int hour; long int minutes; - long int seconds; + long_time_t seconds; long int ns; } relative_time; @@ -336,30 +335,30 @@ digits_to_date_time (parser_control *pc, textint text_int) else { if (4 < text_int.digits) - { - pc->dates_seen++; - pc->day = text_int.value % 100; - pc->month = (text_int.value / 100) % 100; - pc->year.value = text_int.value / 10000; - pc->year.digits = text_int.digits - 4; - } + { + pc->dates_seen++; + pc->day = text_int.value % 100; + pc->month = (text_int.value / 100) % 100; + pc->year.value = text_int.value / 10000; + pc->year.digits = text_int.digits - 4; + } else - { - pc->times_seen++; - if (text_int.digits <= 2) - { - pc->hour = text_int.value; - pc->minutes = 0; - } - else - { - pc->hour = text_int.value / 100; - pc->minutes = text_int.value % 100; - } - pc->seconds.tv_sec = 0; - pc->seconds.tv_nsec = 0; - pc->meridian = MER24; - } + { + pc->times_seen++; + if (text_int.digits <= 2) + { + pc->hour = text_int.value; + pc->minutes = 0; + } + else + { + pc->hour = text_int.value / 100; + pc->minutes = text_int.value % 100; + } + pc->seconds.tv_sec = 0; + pc->seconds.tv_nsec = 0; + pc->meridian = MER24; + } } } @@ -380,7 +379,7 @@ apply_relative_time (parser_control *pc, relative_time rel, int factor) /* Set PC-> hour, minutes, seconds and nanoseconds members from arguments. */ static void set_hhmmss (parser_control *pc, long int hour, long int minutes, - time_t sec, long int nsec) + time_t sec, long int nsec) { pc->hour = hour; pc->minutes = minutes; @@ -410,7 +409,7 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes, #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 286 "getdate.y" +#line 285 "getdate.y" { long int intval; textint textintval; @@ -418,7 +417,7 @@ typedef union YYSTYPE relative_time rel; } /* Line 187 of yacc.c. */ -#line 422 "getdate.c" +#line 421 "getdate.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -431,7 +430,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 435 "getdate.c" +#line 434 "getdate.c" #ifdef short # undef short @@ -745,15 +744,15 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 312, 312, 313, 317, 324, 326, 330, 332, 334, - 336, 338, 340, 341, 342, 346, 351, 356, 363, 368, - 378, 383, 391, 393, 396, 398, 400, 405, 410, 415, - 420, 428, 433, 453, 460, 468, 476, 481, 487, 492, - 501, 503, 505, 510, 512, 514, 516, 518, 520, 522, - 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, - 544, 546, 548, 550, 554, 556, 558, 560, 562, 564, - 569, 573, 573, 576, 577, 582, 583, 588, 593, 604, - 605, 611, 612 + 0, 311, 311, 312, 316, 323, 325, 329, 331, 333, + 335, 337, 339, 340, 341, 345, 350, 355, 362, 367, + 377, 382, 390, 392, 395, 397, 399, 404, 409, 414, + 419, 427, 432, 452, 459, 467, 475, 480, 486, 491, + 500, 502, 504, 509, 511, 513, 515, 517, 519, 521, + 523, 525, 527, 529, 531, 533, 535, 537, 539, 541, + 543, 545, 547, 549, 553, 555, 557, 559, 561, 563, + 568, 572, 572, 575, 576, 581, 582, 587, 592, 603, + 604, 610, 611 }; #endif @@ -1730,451 +1729,451 @@ yyreduce: switch (yyn) { case 4: -#line 318 "getdate.y" +#line 317 "getdate.y" { - pc->seconds = (yyvsp[(2) - (2)].timespec); - pc->timespec_seen = true; + pc->seconds = (yyvsp[(2) - (2)].timespec); + pc->timespec_seen = true; } break; case 7: -#line 331 "getdate.y" +#line 330 "getdate.y" { pc->times_seen++; } break; case 8: -#line 333 "getdate.y" +#line 332 "getdate.y" { pc->local_zones_seen++; } break; case 9: -#line 335 "getdate.y" +#line 334 "getdate.y" { pc->zones_seen++; } break; case 10: -#line 337 "getdate.y" +#line 336 "getdate.y" { pc->dates_seen++; } break; case 11: -#line 339 "getdate.y" +#line 338 "getdate.y" { pc->days_seen++; } break; case 15: -#line 347 "getdate.y" +#line 346 "getdate.y" { - set_hhmmss (pc, (yyvsp[(1) - (2)].textintval).value, 0, 0, 0); - pc->meridian = (yyvsp[(2) - (2)].intval); + set_hhmmss (pc, (yyvsp[(1) - (2)].textintval).value, 0, 0, 0); + pc->meridian = (yyvsp[(2) - (2)].intval); } break; case 16: -#line 352 "getdate.y" +#line 351 "getdate.y" { - set_hhmmss (pc, (yyvsp[(1) - (4)].textintval).value, (yyvsp[(3) - (4)].textintval).value, 0, 0); - pc->meridian = (yyvsp[(4) - (4)].intval); + set_hhmmss (pc, (yyvsp[(1) - (4)].textintval).value, (yyvsp[(3) - (4)].textintval).value, 0, 0); + pc->meridian = (yyvsp[(4) - (4)].intval); } break; case 17: -#line 357 "getdate.y" +#line 356 "getdate.y" { - set_hhmmss (pc, (yyvsp[(1) - (5)].textintval).value, (yyvsp[(3) - (5)].textintval).value, 0, 0); - pc->meridian = MER24; - pc->zones_seen++; - pc->time_zone = time_zone_hhmm (pc, (yyvsp[(4) - (5)].textintval), (yyvsp[(5) - (5)].intval)); + set_hhmmss (pc, (yyvsp[(1) - (5)].textintval).value, (yyvsp[(3) - (5)].textintval).value, 0, 0); + pc->meridian = MER24; + pc->zones_seen++; + pc->time_zone = time_zone_hhmm (pc, (yyvsp[(4) - (5)].textintval), (yyvsp[(5) - (5)].intval)); } break; case 18: -#line 364 "getdate.y" +#line 363 "getdate.y" { - set_hhmmss (pc, (yyvsp[(1) - (6)].textintval).value, (yyvsp[(3) - (6)].textintval).value, (yyvsp[(5) - (6)].timespec).tv_sec, (yyvsp[(5) - (6)].timespec).tv_nsec); - pc->meridian = (yyvsp[(6) - (6)].intval); + set_hhmmss (pc, (yyvsp[(1) - (6)].textintval).value, (yyvsp[(3) - (6)].textintval).value, (yyvsp[(5) - (6)].timespec).tv_sec, (yyvsp[(5) - (6)].timespec).tv_nsec); + pc->meridian = (yyvsp[(6) - (6)].intval); } break; case 19: -#line 369 "getdate.y" +#line 368 "getdate.y" { - set_hhmmss (pc, (yyvsp[(1) - (7)].textintval).value, (yyvsp[(3) - (7)].textintval).value, (yyvsp[(5) - (7)].timespec).tv_sec, (yyvsp[(5) - (7)].timespec).tv_nsec); - pc->meridian = MER24; - pc->zones_seen++; - pc->time_zone = time_zone_hhmm (pc, (yyvsp[(6) - (7)].textintval), (yyvsp[(7) - (7)].intval)); + set_hhmmss (pc, (yyvsp[(1) - (7)].textintval).value, (yyvsp[(3) - (7)].textintval).value, (yyvsp[(5) - (7)].timespec).tv_sec, (yyvsp[(5) - (7)].timespec).tv_nsec); + pc->meridian = MER24; + pc->zones_seen++; + pc->time_zone = time_zone_hhmm (pc, (yyvsp[(6) - (7)].textintval), (yyvsp[(7) - (7)].intval)); } break; case 20: -#line 379 "getdate.y" +#line 378 "getdate.y" { - pc->local_isdst = (yyvsp[(1) - (1)].intval); - pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval)); + pc->local_isdst = (yyvsp[(1) - (1)].intval); + pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval)); } break; case 21: -#line 384 "getdate.y" +#line 383 "getdate.y" { - pc->local_isdst = 1; - pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1; + pc->local_isdst = 1; + pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1; } break; case 22: -#line 392 "getdate.y" +#line 391 "getdate.y" { pc->time_zone = (yyvsp[(1) - (1)].intval); } break; case 23: -#line 394 "getdate.y" +#line 393 "getdate.y" { pc->time_zone = (yyvsp[(1) - (2)].intval); - apply_relative_time (pc, (yyvsp[(2) - (2)].rel), 1); } + apply_relative_time (pc, (yyvsp[(2) - (2)].rel), 1); } break; case 24: -#line 397 "getdate.y" +#line 396 "getdate.y" { pc->time_zone = (yyvsp[(1) - (3)].intval) + time_zone_hhmm (pc, (yyvsp[(2) - (3)].textintval), (yyvsp[(3) - (3)].intval)); } break; case 25: -#line 399 "getdate.y" +#line 398 "getdate.y" { pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; } break; case 26: -#line 401 "getdate.y" +#line 400 "getdate.y" { pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; } break; case 27: -#line 406 "getdate.y" +#line 405 "getdate.y" { - pc->day_ordinal = 1; - pc->day_number = (yyvsp[(1) - (1)].intval); + pc->day_ordinal = 0; + pc->day_number = (yyvsp[(1) - (1)].intval); } break; case 28: -#line 411 "getdate.y" +#line 410 "getdate.y" { - pc->day_ordinal = 1; - pc->day_number = (yyvsp[(1) - (2)].intval); + pc->day_ordinal = 0; + pc->day_number = (yyvsp[(1) - (2)].intval); } break; case 29: -#line 416 "getdate.y" +#line 415 "getdate.y" { - pc->day_ordinal = (yyvsp[(1) - (2)].intval); - pc->day_number = (yyvsp[(2) - (2)].intval); + pc->day_ordinal = (yyvsp[(1) - (2)].intval); + pc->day_number = (yyvsp[(2) - (2)].intval); } break; case 30: -#line 421 "getdate.y" +#line 420 "getdate.y" { - pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value; - pc->day_number = (yyvsp[(2) - (2)].intval); + pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value; + pc->day_number = (yyvsp[(2) - (2)].intval); } break; case 31: -#line 429 "getdate.y" +#line 428 "getdate.y" { - pc->month = (yyvsp[(1) - (3)].textintval).value; - pc->day = (yyvsp[(3) - (3)].textintval).value; + pc->month = (yyvsp[(1) - (3)].textintval).value; + pc->day = (yyvsp[(3) - (3)].textintval).value; } break; case 32: -#line 434 "getdate.y" +#line 433 "getdate.y" { - /* Interpret as YYYY/MM/DD if the first value has 4 or more digits, - otherwise as MM/DD/YY. - The goal in recognizing YYYY/MM/DD is solely to support legacy - machine-generated dates like those in an RCS log listing. If - you want portability, use the ISO 8601 format. */ - if (4 <= (yyvsp[(1) - (5)].textintval).digits) - { - pc->year = (yyvsp[(1) - (5)].textintval); - pc->month = (yyvsp[(3) - (5)].textintval).value; - pc->day = (yyvsp[(5) - (5)].textintval).value; - } - else - { - pc->month = (yyvsp[(1) - (5)].textintval).value; - pc->day = (yyvsp[(3) - (5)].textintval).value; - pc->year = (yyvsp[(5) - (5)].textintval); - } + /* Interpret as YYYY/MM/DD if the first value has 4 or more digits, + otherwise as MM/DD/YY. + The goal in recognizing YYYY/MM/DD is solely to support legacy + machine-generated dates like those in an RCS log listing. If + you want portability, use the ISO 8601 format. */ + if (4 <= (yyvsp[(1) - (5)].textintval).digits) + { + pc->year = (yyvsp[(1) - (5)].textintval); + pc->month = (yyvsp[(3) - (5)].textintval).value; + pc->day = (yyvsp[(5) - (5)].textintval).value; + } + else + { + pc->month = (yyvsp[(1) - (5)].textintval).value; + pc->day = (yyvsp[(3) - (5)].textintval).value; + pc->year = (yyvsp[(5) - (5)].textintval); + } } break; case 33: -#line 454 "getdate.y" +#line 453 "getdate.y" { - /* ISO 8601 format. YYYY-MM-DD. */ - pc->year = (yyvsp[(1) - (3)].textintval); - pc->month = -(yyvsp[(2) - (3)].textintval).value; - pc->day = -(yyvsp[(3) - (3)].textintval).value; + /* ISO 8601 format. YYYY-MM-DD. */ + pc->year = (yyvsp[(1) - (3)].textintval); + pc->month = -(yyvsp[(2) - (3)].textintval).value; + pc->day = -(yyvsp[(3) - (3)].textintval).value; } break; case 34: -#line 461 "getdate.y" +#line 460 "getdate.y" { - /* e.g. 17-JUN-1992. */ - pc->day = (yyvsp[(1) - (3)].textintval).value; - pc->month = (yyvsp[(2) - (3)].intval); - pc->year.value = -(yyvsp[(3) - (3)].textintval).value; - pc->year.digits = (yyvsp[(3) - (3)].textintval).digits; + /* e.g. 17-JUN-1992. */ + pc->day = (yyvsp[(1) - (3)].textintval).value; + pc->month = (yyvsp[(2) - (3)].intval); + pc->year.value = -(yyvsp[(3) - (3)].textintval).value; + pc->year.digits = (yyvsp[(3) - (3)].textintval).digits; } break; case 35: -#line 469 "getdate.y" +#line 468 "getdate.y" { - /* e.g. JUN-17-1992. */ - pc->month = (yyvsp[(1) - (3)].intval); - pc->day = -(yyvsp[(2) - (3)].textintval).value; - pc->year.value = -(yyvsp[(3) - (3)].textintval).value; - pc->year.digits = (yyvsp[(3) - (3)].textintval).digits; + /* e.g. JUN-17-1992. */ + pc->month = (yyvsp[(1) - (3)].intval); + pc->day = -(yyvsp[(2) - (3)].textintval).value; + pc->year.value = -(yyvsp[(3) - (3)].textintval).value; + pc->year.digits = (yyvsp[(3) - (3)].textintval).digits; } break; case 36: -#line 477 "getdate.y" +#line 476 "getdate.y" { - pc->month = (yyvsp[(1) - (2)].intval); - pc->day = (yyvsp[(2) - (2)].textintval).value; + pc->month = (yyvsp[(1) - (2)].intval); + pc->day = (yyvsp[(2) - (2)].textintval).value; } break; case 37: -#line 482 "getdate.y" +#line 481 "getdate.y" { - pc->month = (yyvsp[(1) - (4)].intval); - pc->day = (yyvsp[(2) - (4)].textintval).value; - pc->year = (yyvsp[(4) - (4)].textintval); + pc->month = (yyvsp[(1) - (4)].intval); + pc->day = (yyvsp[(2) - (4)].textintval).value; + pc->year = (yyvsp[(4) - (4)].textintval); } break; case 38: -#line 488 "getdate.y" +#line 487 "getdate.y" { - pc->day = (yyvsp[(1) - (2)].textintval).value; - pc->month = (yyvsp[(2) - (2)].intval); + pc->day = (yyvsp[(1) - (2)].textintval).value; + pc->month = (yyvsp[(2) - (2)].intval); } break; case 39: -#line 493 "getdate.y" +#line 492 "getdate.y" { - pc->day = (yyvsp[(1) - (3)].textintval).value; - pc->month = (yyvsp[(2) - (3)].intval); - pc->year = (yyvsp[(3) - (3)].textintval); + pc->day = (yyvsp[(1) - (3)].textintval).value; + pc->month = (yyvsp[(2) - (3)].intval); + pc->year = (yyvsp[(3) - (3)].textintval); } break; case 40: -#line 502 "getdate.y" +#line 501 "getdate.y" { apply_relative_time (pc, (yyvsp[(1) - (2)].rel), -1); } break; case 41: -#line 504 "getdate.y" +#line 503 "getdate.y" { apply_relative_time (pc, (yyvsp[(1) - (1)].rel), 1); } break; case 42: -#line 506 "getdate.y" +#line 505 "getdate.y" { apply_relative_time (pc, (yyvsp[(1) - (1)].rel), 1); } break; case 43: -#line 511 "getdate.y" +#line 510 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].intval); } break; case 44: -#line 513 "getdate.y" +#line 512 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; } break; case 45: -#line 515 "getdate.y" +#line 514 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = 1; } break; case 46: -#line 517 "getdate.y" +#line 516 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].intval); } break; case 47: -#line 519 "getdate.y" +#line 518 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; } break; case 48: -#line 521 "getdate.y" +#line 520 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = 1; } break; case 49: -#line 523 "getdate.y" +#line 522 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); } break; case 50: -#line 525 "getdate.y" +#line 524 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } break; case 51: -#line 527 "getdate.y" +#line 526 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (1)].intval); } break; case 52: -#line 529 "getdate.y" +#line 528 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].intval); } break; case 53: -#line 531 "getdate.y" +#line 530 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; } break; case 54: -#line 533 "getdate.y" +#line 532 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = 1; } break; case 55: -#line 535 "getdate.y" +#line 534 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].intval); } break; case 56: -#line 537 "getdate.y" +#line 536 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; } break; case 57: -#line 539 "getdate.y" +#line 538 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = 1; } break; case 58: -#line 541 "getdate.y" +#line 540 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].intval); } break; case 59: -#line 543 "getdate.y" +#line 542 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; } break; case 60: -#line 545 "getdate.y" +#line 544 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; } break; case 61: -#line 547 "getdate.y" +#line 546 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].timespec).tv_sec; (yyval.rel).ns = (yyvsp[(1) - (2)].timespec).tv_nsec; } break; case 62: -#line 549 "getdate.y" +#line 548 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = 1; } break; case 64: -#line 555 "getdate.y" +#line 554 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).year = (yyvsp[(1) - (2)].textintval).value; } break; case 65: -#line 557 "getdate.y" +#line 556 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).month = (yyvsp[(1) - (2)].textintval).value; } break; case 66: -#line 559 "getdate.y" +#line 558 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); } break; case 67: -#line 561 "getdate.y" +#line 560 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).hour = (yyvsp[(1) - (2)].textintval).value; } break; case 68: -#line 563 "getdate.y" +#line 562 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).minutes = (yyvsp[(1) - (2)].textintval).value; } break; case 69: -#line 565 "getdate.y" +#line 564 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).seconds = (yyvsp[(1) - (2)].textintval).value; } break; case 70: -#line 570 "getdate.y" +#line 569 "getdate.y" { (yyval.rel) = RELATIVE_TIME_0; (yyval.rel).day = (yyvsp[(1) - (1)].intval); } break; case 74: -#line 578 "getdate.y" +#line 577 "getdate.y" { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; } break; case 76: -#line 584 "getdate.y" +#line 583 "getdate.y" { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; } break; case 77: -#line 589 "getdate.y" +#line 588 "getdate.y" { digits_to_date_time (pc, (yyvsp[(1) - (1)].textintval)); } break; case 78: -#line 594 "getdate.y" +#line 593 "getdate.y" { - /* Hybrid all-digit and relative offset, so that we accept e.g., - "YYYYMMDD +N days" as well as "YYYYMMDD N days". */ - digits_to_date_time (pc, (yyvsp[(1) - (2)].textintval)); - apply_relative_time (pc, (yyvsp[(2) - (2)].rel), 1); + /* Hybrid all-digit and relative offset, so that we accept e.g., + "YYYYMMDD +N days" as well as "YYYYMMDD N days". */ + digits_to_date_time (pc, (yyvsp[(1) - (2)].textintval)); + apply_relative_time (pc, (yyvsp[(2) - (2)].rel), 1); } break; case 79: -#line 604 "getdate.y" +#line 603 "getdate.y" { (yyval.intval) = -1; } break; case 80: -#line 606 "getdate.y" +#line 605 "getdate.y" { (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; } break; case 81: -#line 611 "getdate.y" +#line 610 "getdate.y" { (yyval.intval) = MER24; } break; case 82: -#line 613 "getdate.y" +#line 612 "getdate.y" { (yyval.intval) = (yyvsp[(1) - (1)].intval); } break; /* Line 1267 of yacc.c. */ -#line 2178 "getdate.c" +#line 2177 "getdate.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2388,7 +2387,7 @@ yyreturn: } -#line 616 "getdate.y" +#line 615 "getdate.y" static table const meridian_table[] = @@ -2407,71 +2406,71 @@ static table const dst_table[] = static table const month_and_day_table[] = { - { "JANUARY", tMONTH, 1 }, - { "FEBRUARY", tMONTH, 2 }, - { "MARCH", tMONTH, 3 }, - { "APRIL", tMONTH, 4 }, - { "MAY", tMONTH, 5 }, - { "JUNE", tMONTH, 6 }, - { "JULY", tMONTH, 7 }, - { "AUGUST", tMONTH, 8 }, - { "SEPTEMBER",tMONTH, 9 }, - { "SEPT", tMONTH, 9 }, - { "OCTOBER", tMONTH, 10 }, - { "NOVEMBER", tMONTH, 11 }, - { "DECEMBER", tMONTH, 12 }, - { "SUNDAY", tDAY, 0 }, - { "MONDAY", tDAY, 1 }, - { "TUESDAY", tDAY, 2 }, - { "TUES", tDAY, 2 }, - { "WEDNESDAY",tDAY, 3 }, - { "WEDNES", tDAY, 3 }, - { "THURSDAY", tDAY, 4 }, - { "THUR", tDAY, 4 }, - { "THURS", tDAY, 4 }, - { "FRIDAY", tDAY, 5 }, - { "SATURDAY", tDAY, 6 }, + { "JANUARY", tMONTH, 1 }, + { "FEBRUARY", tMONTH, 2 }, + { "MARCH", tMONTH, 3 }, + { "APRIL", tMONTH, 4 }, + { "MAY", tMONTH, 5 }, + { "JUNE", tMONTH, 6 }, + { "JULY", tMONTH, 7 }, + { "AUGUST", tMONTH, 8 }, + { "SEPTEMBER",tMONTH, 9 }, + { "SEPT", tMONTH, 9 }, + { "OCTOBER", tMONTH, 10 }, + { "NOVEMBER", tMONTH, 11 }, + { "DECEMBER", tMONTH, 12 }, + { "SUNDAY", tDAY, 0 }, + { "MONDAY", tDAY, 1 }, + { "TUESDAY", tDAY, 2 }, + { "TUES", tDAY, 2 }, + { "WEDNESDAY",tDAY, 3 }, + { "WEDNES", tDAY, 3 }, + { "THURSDAY", tDAY, 4 }, + { "THUR", tDAY, 4 }, + { "THURS", tDAY, 4 }, + { "FRIDAY", tDAY, 5 }, + { "SATURDAY", tDAY, 6 }, { NULL, 0, 0 } }; static table const time_units_table[] = { - { "YEAR", tYEAR_UNIT, 1 }, - { "MONTH", tMONTH_UNIT, 1 }, - { "FORTNIGHT",tDAY_UNIT, 14 }, - { "WEEK", tDAY_UNIT, 7 }, - { "DAY", tDAY_UNIT, 1 }, - { "HOUR", tHOUR_UNIT, 1 }, - { "MINUTE", tMINUTE_UNIT, 1 }, - { "MIN", tMINUTE_UNIT, 1 }, - { "SECOND", tSEC_UNIT, 1 }, - { "SEC", tSEC_UNIT, 1 }, + { "YEAR", tYEAR_UNIT, 1 }, + { "MONTH", tMONTH_UNIT, 1 }, + { "FORTNIGHT",tDAY_UNIT, 14 }, + { "WEEK", tDAY_UNIT, 7 }, + { "DAY", tDAY_UNIT, 1 }, + { "HOUR", tHOUR_UNIT, 1 }, + { "MINUTE", tMINUTE_UNIT, 1 }, + { "MIN", tMINUTE_UNIT, 1 }, + { "SECOND", tSEC_UNIT, 1 }, + { "SEC", tSEC_UNIT, 1 }, { NULL, 0, 0 } }; /* Assorted relative-time words. */ static table const relative_time_table[] = { - { "TOMORROW", tDAY_SHIFT, 1 }, - { "YESTERDAY",tDAY_SHIFT, -1 }, - { "TODAY", tDAY_SHIFT, 0 }, - { "NOW", tDAY_SHIFT, 0 }, - { "LAST", tORDINAL, -1 }, - { "THIS", tORDINAL, 0 }, - { "NEXT", tORDINAL, 1 }, - { "FIRST", tORDINAL, 1 }, -/*{ "SECOND", tORDINAL, 2 }, */ - { "THIRD", tORDINAL, 3 }, - { "FOURTH", tORDINAL, 4 }, - { "FIFTH", tORDINAL, 5 }, - { "SIXTH", tORDINAL, 6 }, - { "SEVENTH", tORDINAL, 7 }, - { "EIGHTH", tORDINAL, 8 }, - { "NINTH", tORDINAL, 9 }, - { "TENTH", tORDINAL, 10 }, - { "ELEVENTH", tORDINAL, 11 }, - { "TWELFTH", tORDINAL, 12 }, - { "AGO", tAGO, 1 }, + { "TOMORROW", tDAY_SHIFT, 1 }, + { "YESTERDAY",tDAY_SHIFT, -1 }, + { "TODAY", tDAY_SHIFT, 0 }, + { "NOW", tDAY_SHIFT, 0 }, + { "LAST", tORDINAL, -1 }, + { "THIS", tORDINAL, 0 }, + { "NEXT", tORDINAL, 1 }, + { "FIRST", tORDINAL, 1 }, +/*{ "SECOND", tORDINAL, 2 }, */ + { "THIRD", tORDINAL, 3 }, + { "FOURTH", tORDINAL, 4 }, + { "FIFTH", tORDINAL, 5 }, + { "SIXTH", tORDINAL, 6 }, + { "SEVENTH", tORDINAL, 7 }, + { "EIGHTH", tORDINAL, 8 }, + { "NINTH", tORDINAL, 9 }, + { "TENTH", tORDINAL, 10 }, + { "ELEVENTH", tORDINAL, 11 }, + { "TWELFTH", tORDINAL, 12 }, + { "AGO", tAGO, 1 }, { NULL, 0, 0 } }; @@ -2480,9 +2479,9 @@ static table const relative_time_table[] = stamps in London during summer. */ static table const universal_time_zone_table[] = { - { "GMT", tZONE, HOUR ( 0) }, /* Greenwich Mean */ - { "UT", tZONE, HOUR ( 0) }, /* Universal (Coordinated) */ - { "UTC", tZONE, HOUR ( 0) }, + { "GMT", tZONE, HOUR ( 0) }, /* Greenwich Mean */ + { "UT", tZONE, HOUR ( 0) }, /* Universal (Coordinated) */ + { "UTC", tZONE, HOUR ( 0) }, { NULL, 0, 0 } }; @@ -2493,84 +2492,84 @@ static table const universal_time_zone_table[] = abbreviations; use numeric abbreviations like `-0500' instead. */ static table const time_zone_table[] = { - { "WET", tZONE, HOUR ( 0) }, /* Western European */ - { "WEST", tDAYZONE, HOUR ( 0) }, /* Western European Summer */ - { "BST", tDAYZONE, HOUR ( 0) }, /* British Summer */ - { "ART", tZONE, -HOUR ( 3) }, /* Argentina */ - { "BRT", tZONE, -HOUR ( 3) }, /* Brazil */ - { "BRST", tDAYZONE, -HOUR ( 3) }, /* Brazil Summer */ - { "NST", tZONE, -(HOUR ( 3) + 30) }, /* Newfoundland Standard */ - { "NDT", tDAYZONE,-(HOUR ( 3) + 30) }, /* Newfoundland Daylight */ - { "AST", tZONE, -HOUR ( 4) }, /* Atlantic Standard */ - { "ADT", tDAYZONE, -HOUR ( 4) }, /* Atlantic Daylight */ - { "CLT", tZONE, -HOUR ( 4) }, /* Chile */ - { "CLST", tDAYZONE, -HOUR ( 4) }, /* Chile Summer */ - { "EST", tZONE, -HOUR ( 5) }, /* Eastern Standard */ - { "EDT", tDAYZONE, -HOUR ( 5) }, /* Eastern Daylight */ - { "CST", tZONE, -HOUR ( 6) }, /* Central Standard */ - { "CDT", tDAYZONE, -HOUR ( 6) }, /* Central Daylight */ - { "MST", tZONE, -HOUR ( 7) }, /* Mountain Standard */ - { "MDT", tDAYZONE, -HOUR ( 7) }, /* Mountain Daylight */ - { "PST", tZONE, -HOUR ( 8) }, /* Pacific Standard */ - { "PDT", tDAYZONE, -HOUR ( 8) }, /* Pacific Daylight */ - { "AKST", tZONE, -HOUR ( 9) }, /* Alaska Standard */ - { "AKDT", tDAYZONE, -HOUR ( 9) }, /* Alaska Daylight */ - { "HST", tZONE, -HOUR (10) }, /* Hawaii Standard */ - { "HAST", tZONE, -HOUR (10) }, /* Hawaii-Aleutian Standard */ - { "HADT", tDAYZONE, -HOUR (10) }, /* Hawaii-Aleutian Daylight */ - { "SST", tZONE, -HOUR (12) }, /* Samoa Standard */ - { "WAT", tZONE, HOUR ( 1) }, /* West Africa */ - { "CET", tZONE, HOUR ( 1) }, /* Central European */ - { "CEST", tDAYZONE, HOUR ( 1) }, /* Central European Summer */ - { "MET", tZONE, HOUR ( 1) }, /* Middle European */ - { "MEZ", tZONE, HOUR ( 1) }, /* Middle European */ - { "MEST", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ - { "MESZ", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ - { "EET", tZONE, HOUR ( 2) }, /* Eastern European */ - { "EEST", tDAYZONE, HOUR ( 2) }, /* Eastern European Summer */ - { "CAT", tZONE, HOUR ( 2) }, /* Central Africa */ - { "SAST", tZONE, HOUR ( 2) }, /* South Africa Standard */ - { "EAT", tZONE, HOUR ( 3) }, /* East Africa */ - { "MSK", tZONE, HOUR ( 3) }, /* Moscow */ - { "MSD", tDAYZONE, HOUR ( 3) }, /* Moscow Daylight */ - { "IST", tZONE, (HOUR ( 5) + 30) }, /* India Standard */ - { "SGT", tZONE, HOUR ( 8) }, /* Singapore */ - { "KST", tZONE, HOUR ( 9) }, /* Korea Standard */ - { "JST", tZONE, HOUR ( 9) }, /* Japan Standard */ - { "GST", tZONE, HOUR (10) }, /* Guam Standard */ - { "NZST", tZONE, HOUR (12) }, /* New Zealand Standard */ - { "NZDT", tDAYZONE, HOUR (12) }, /* New Zealand Daylight */ + { "WET", tZONE, HOUR ( 0) }, /* Western European */ + { "WEST", tDAYZONE, HOUR ( 0) }, /* Western European Summer */ + { "BST", tDAYZONE, HOUR ( 0) }, /* British Summer */ + { "ART", tZONE, -HOUR ( 3) }, /* Argentina */ + { "BRT", tZONE, -HOUR ( 3) }, /* Brazil */ + { "BRST", tDAYZONE, -HOUR ( 3) }, /* Brazil Summer */ + { "NST", tZONE, -(HOUR ( 3) + 30) }, /* Newfoundland Standard */ + { "NDT", tDAYZONE,-(HOUR ( 3) + 30) }, /* Newfoundland Daylight */ + { "AST", tZONE, -HOUR ( 4) }, /* Atlantic Standard */ + { "ADT", tDAYZONE, -HOUR ( 4) }, /* Atlantic Daylight */ + { "CLT", tZONE, -HOUR ( 4) }, /* Chile */ + { "CLST", tDAYZONE, -HOUR ( 4) }, /* Chile Summer */ + { "EST", tZONE, -HOUR ( 5) }, /* Eastern Standard */ + { "EDT", tDAYZONE, -HOUR ( 5) }, /* Eastern Daylight */ + { "CST", tZONE, -HOUR ( 6) }, /* Central Standard */ + { "CDT", tDAYZONE, -HOUR ( 6) }, /* Central Daylight */ + { "MST", tZONE, -HOUR ( 7) }, /* Mountain Standard */ + { "MDT", tDAYZONE, -HOUR ( 7) }, /* Mountain Daylight */ + { "PST", tZONE, -HOUR ( 8) }, /* Pacific Standard */ + { "PDT", tDAYZONE, -HOUR ( 8) }, /* Pacific Daylight */ + { "AKST", tZONE, -HOUR ( 9) }, /* Alaska Standard */ + { "AKDT", tDAYZONE, -HOUR ( 9) }, /* Alaska Daylight */ + { "HST", tZONE, -HOUR (10) }, /* Hawaii Standard */ + { "HAST", tZONE, -HOUR (10) }, /* Hawaii-Aleutian Standard */ + { "HADT", tDAYZONE, -HOUR (10) }, /* Hawaii-Aleutian Daylight */ + { "SST", tZONE, -HOUR (12) }, /* Samoa Standard */ + { "WAT", tZONE, HOUR ( 1) }, /* West Africa */ + { "CET", tZONE, HOUR ( 1) }, /* Central European */ + { "CEST", tDAYZONE, HOUR ( 1) }, /* Central European Summer */ + { "MET", tZONE, HOUR ( 1) }, /* Middle European */ + { "MEZ", tZONE, HOUR ( 1) }, /* Middle European */ + { "MEST", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ + { "MESZ", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ + { "EET", tZONE, HOUR ( 2) }, /* Eastern European */ + { "EEST", tDAYZONE, HOUR ( 2) }, /* Eastern European Summer */ + { "CAT", tZONE, HOUR ( 2) }, /* Central Africa */ + { "SAST", tZONE, HOUR ( 2) }, /* South Africa Standard */ + { "EAT", tZONE, HOUR ( 3) }, /* East Africa */ + { "MSK", tZONE, HOUR ( 3) }, /* Moscow */ + { "MSD", tDAYZONE, HOUR ( 3) }, /* Moscow Daylight */ + { "IST", tZONE, (HOUR ( 5) + 30) }, /* India Standard */ + { "SGT", tZONE, HOUR ( 8) }, /* Singapore */ + { "KST", tZONE, HOUR ( 9) }, /* Korea Standard */ + { "JST", tZONE, HOUR ( 9) }, /* Japan Standard */ + { "GST", tZONE, HOUR (10) }, /* Guam Standard */ + { "NZST", tZONE, HOUR (12) }, /* New Zealand Standard */ + { "NZDT", tDAYZONE, HOUR (12) }, /* New Zealand Daylight */ { NULL, 0, 0 } }; /* Military time zone table. */ static table const military_table[] = { - { "A", tZONE, -HOUR ( 1) }, - { "B", tZONE, -HOUR ( 2) }, - { "C", tZONE, -HOUR ( 3) }, - { "D", tZONE, -HOUR ( 4) }, - { "E", tZONE, -HOUR ( 5) }, - { "F", tZONE, -HOUR ( 6) }, - { "G", tZONE, -HOUR ( 7) }, - { "H", tZONE, -HOUR ( 8) }, - { "I", tZONE, -HOUR ( 9) }, - { "K", tZONE, -HOUR (10) }, - { "L", tZONE, -HOUR (11) }, - { "M", tZONE, -HOUR (12) }, - { "N", tZONE, HOUR ( 1) }, - { "O", tZONE, HOUR ( 2) }, - { "P", tZONE, HOUR ( 3) }, - { "Q", tZONE, HOUR ( 4) }, - { "R", tZONE, HOUR ( 5) }, - { "S", tZONE, HOUR ( 6) }, - { "T", tZONE, HOUR ( 7) }, - { "U", tZONE, HOUR ( 8) }, - { "V", tZONE, HOUR ( 9) }, - { "W", tZONE, HOUR (10) }, - { "X", tZONE, HOUR (11) }, - { "Y", tZONE, HOUR (12) }, - { "Z", tZONE, HOUR ( 0) }, + { "A", tZONE, -HOUR ( 1) }, + { "B", tZONE, -HOUR ( 2) }, + { "C", tZONE, -HOUR ( 3) }, + { "D", tZONE, -HOUR ( 4) }, + { "E", tZONE, -HOUR ( 5) }, + { "F", tZONE, -HOUR ( 6) }, + { "G", tZONE, -HOUR ( 7) }, + { "H", tZONE, -HOUR ( 8) }, + { "I", tZONE, -HOUR ( 9) }, + { "K", tZONE, -HOUR (10) }, + { "L", tZONE, -HOUR (11) }, + { "M", tZONE, -HOUR (12) }, + { "N", tZONE, HOUR ( 1) }, + { "O", tZONE, HOUR ( 2) }, + { "P", tZONE, HOUR ( 3) }, + { "Q", tZONE, HOUR ( 4) }, + { "R", tZONE, HOUR ( 5) }, + { "S", tZONE, HOUR ( 6) }, + { "T", tZONE, HOUR ( 7) }, + { "U", tZONE, HOUR ( 8) }, + { "V", tZONE, HOUR ( 9) }, + { "W", tZONE, HOUR (10) }, + { "X", tZONE, HOUR (11) }, + { "Y", tZONE, HOUR (12) }, + { "Z", tZONE, HOUR ( 0) }, { NULL, 0, 0 } }; @@ -2680,10 +2679,10 @@ tm_diff (struct tm const *a, struct tm const *b) long int ayear = a->tm_year; long int years = ayear - b->tm_year; long int days = (365 * years + intervening_leap_days - + (a->tm_yday - b->tm_yday)); + + (a->tm_yday - b->tm_yday)); return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) - + (a->tm_min - b->tm_min)) - + (a->tm_sec - b->tm_sec)); + + (a->tm_min - b->tm_min)) + + (a->tm_sec - b->tm_sec)); } #endif /* ! HAVE_TM_GMTOFF */ @@ -2731,9 +2730,9 @@ lookup_word (parser_control const *pc, char *word) { word[wordlen - 1] = '\0'; for (tp = time_units_table; tp->name; tp++) - if (strcmp (word, tp->name) == 0) - return tp; - word[wordlen - 1] = 'S'; /* For "this" in relative_time_table. */ + if (strcmp (word, tp->name) == 0) + return tp; + word[wordlen - 1] = 'S'; /* For "this" in relative_time_table. */ } for (tp = relative_time_table; tp->name; tp++) @@ -2744,7 +2743,7 @@ lookup_word (parser_control const *pc, char *word) if (wordlen == 1) for (tp = military_table; tp->name; tp++) if (word[0] == tp->name[0]) - return tp; + return tp; /* Drop out any periods and try the time zone table again. */ for (period_found = false, p = q = word; (*p = *q); q++) @@ -2767,163 +2766,163 @@ yylex (YYSTYPE *lvalp, parser_control *pc) for (;;) { while (c = *pc->input, c_isspace (c)) - pc->input++; + pc->input++; if (ISDIGIT (c) || c == '-' || c == '+') - { - char const *p; - int sign; - unsigned long int value; - if (c == '-' || c == '+') - { - sign = c == '-' ? -1 : 1; - while (c = *++pc->input, c_isspace (c)) - continue; - if (! ISDIGIT (c)) - /* skip the '-' sign */ - continue; - } - else - sign = 0; - p = pc->input; - for (value = 0; ; value *= 10) - { - unsigned long int value1 = value + (c - '0'); - if (value1 < value) - return '?'; - value = value1; - c = *++p; - if (! ISDIGIT (c)) - break; - if (ULONG_MAX / 10 < value) - return '?'; - } - if ((c == '.' || c == ',') && ISDIGIT (p[1])) - { - time_t s; - int ns; - int digits; - unsigned long int value1; - - /* Check for overflow when converting value to time_t. */ - if (sign < 0) - { - s = - value; - if (0 < s) - return '?'; - value1 = -s; - } - else - { - s = value; - if (s < 0) - return '?'; - value1 = s; - } - if (value != value1) - return '?'; - - /* Accumulate fraction, to ns precision. */ - p++; - ns = *p++ - '0'; - for (digits = 2; digits <= LOG10_BILLION; digits++) - { - ns *= 10; - if (ISDIGIT (*p)) - ns += *p++ - '0'; - } - - /* Skip excess digits, truncating toward -Infinity. */ - if (sign < 0) - for (; ISDIGIT (*p); p++) - if (*p != '0') - { - ns++; - break; - } - while (ISDIGIT (*p)) - p++; - - /* Adjust to the timespec convention, which is that - tv_nsec is always a positive offset even if tv_sec is - negative. */ - if (sign < 0 && ns) - { - s--; - if (! (s < 0)) - return '?'; - ns = BILLION - ns; - } - - lvalp->timespec.tv_sec = s; - lvalp->timespec.tv_nsec = ns; - pc->input = p; - return sign ? tSDECIMAL_NUMBER : tUDECIMAL_NUMBER; - } - else - { - lvalp->textintval.negative = sign < 0; - if (sign < 0) - { - lvalp->textintval.value = - value; - if (0 < lvalp->textintval.value) - return '?'; - } - else - { - lvalp->textintval.value = value; - if (lvalp->textintval.value < 0) - return '?'; - } - lvalp->textintval.digits = p - pc->input; - pc->input = p; - return sign ? tSNUMBER : tUNUMBER; - } - } + { + char const *p; + int sign; + unsigned long int value; + if (c == '-' || c == '+') + { + sign = c == '-' ? -1 : 1; + while (c = *++pc->input, c_isspace (c)) + continue; + if (! ISDIGIT (c)) + /* skip the '-' sign */ + continue; + } + else + sign = 0; + p = pc->input; + for (value = 0; ; value *= 10) + { + unsigned long int value1 = value + (c - '0'); + if (value1 < value) + return '?'; + value = value1; + c = *++p; + if (! ISDIGIT (c)) + break; + if (ULONG_MAX / 10 < value) + return '?'; + } + if ((c == '.' || c == ',') && ISDIGIT (p[1])) + { + time_t s; + int ns; + int digits; + unsigned long int value1; + + /* Check for overflow when converting value to time_t. */ + if (sign < 0) + { + s = - value; + if (0 < s) + return '?'; + value1 = -s; + } + else + { + s = value; + if (s < 0) + return '?'; + value1 = s; + } + if (value != value1) + return '?'; + + /* Accumulate fraction, to ns precision. */ + p++; + ns = *p++ - '0'; + for (digits = 2; digits <= LOG10_BILLION; digits++) + { + ns *= 10; + if (ISDIGIT (*p)) + ns += *p++ - '0'; + } + + /* Skip excess digits, truncating toward -Infinity. */ + if (sign < 0) + for (; ISDIGIT (*p); p++) + if (*p != '0') + { + ns++; + break; + } + while (ISDIGIT (*p)) + p++; + + /* Adjust to the timespec convention, which is that + tv_nsec is always a positive offset even if tv_sec is + negative. */ + if (sign < 0 && ns) + { + s--; + if (! (s < 0)) + return '?'; + ns = BILLION - ns; + } + + lvalp->timespec.tv_sec = s; + lvalp->timespec.tv_nsec = ns; + pc->input = p; + return sign ? tSDECIMAL_NUMBER : tUDECIMAL_NUMBER; + } + else + { + lvalp->textintval.negative = sign < 0; + if (sign < 0) + { + lvalp->textintval.value = - value; + if (0 < lvalp->textintval.value) + return '?'; + } + else + { + lvalp->textintval.value = value; + if (lvalp->textintval.value < 0) + return '?'; + } + lvalp->textintval.digits = p - pc->input; + pc->input = p; + return sign ? tSNUMBER : tUNUMBER; + } + } if (c_isalpha (c)) - { - char buff[20]; - char *p = buff; - table const *tp; - - do - { - if (p < buff + sizeof buff - 1) - *p++ = c; - c = *++pc->input; - } - while (c_isalpha (c) || c == '.'); - - *p = '\0'; - tp = lookup_word (pc, buff); - if (! tp) - return '?'; - lvalp->intval = tp->value; - return tp->type; - } + { + char buff[20]; + char *p = buff; + table const *tp; + + do + { + if (p < buff + sizeof buff - 1) + *p++ = c; + c = *++pc->input; + } + while (c_isalpha (c) || c == '.'); + + *p = '\0'; + tp = lookup_word (pc, buff); + if (! tp) + return '?'; + lvalp->intval = tp->value; + return tp->type; + } if (c != '(') - return *pc->input++; + return *pc->input++; count = 0; do - { - c = *pc->input++; - if (c == '\0') - return c; - if (c == '(') - count++; - else if (c == ')') - count--; - } + { + c = *pc->input++; + if (c == '\0') + return c; + if (c == '(') + count++; + else if (c == ')') + count--; + } while (count != 0); } } /* Do nothing if the parser reports an error. */ static int -yyerror (parser_control const *pc ATTRIBUTE_UNUSED, - char const *s ATTRIBUTE_UNUSED) +yyerror (parser_control const *pc _GL_UNUSED, + char const *s _GL_UNUSED) { return 0; } @@ -2938,19 +2937,19 @@ mktime_ok (struct tm const *tm0, struct tm const *tm1, time_t t) if (t == (time_t) -1) { /* Guard against falsely reporting an error when parsing a time - stamp that happens to equal (time_t) -1, on a host that - supports such a time stamp. */ + stamp that happens to equal (time_t) -1, on a host that + supports such a time stamp. */ tm1 = localtime (&t); if (!tm1) - return false; + return false; } return ! ((tm0->tm_sec ^ tm1->tm_sec) - | (tm0->tm_min ^ tm1->tm_min) - | (tm0->tm_hour ^ tm1->tm_hour) - | (tm0->tm_mday ^ tm1->tm_mday) - | (tm0->tm_mon ^ tm1->tm_mon) - | (tm0->tm_year ^ tm1->tm_year)); + | (tm0->tm_min ^ tm1->tm_min) + | (tm0->tm_hour ^ tm1->tm_hour) + | (tm0->tm_mday ^ tm1->tm_mday) + | (tm0->tm_mon ^ tm1->tm_mon) + | (tm0->tm_year ^ tm1->tm_year)); } /* A reasonable upper bound for the size of ordinary TZ strings. @@ -2967,8 +2966,8 @@ get_tz (char tzbuf[TZBUFSIZE]) { size_t tzsize = strlen (tz) + 1; tz = (tzsize <= TZBUFSIZE - ? memcpy (tzbuf, tz, tzsize) - : xmemdup (tz, tzsize)); + ? memcpy (tzbuf, tz, tzsize) + : xmemdup (tz, tzsize)); } return tz; } @@ -3016,32 +3015,34 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) char const *s; for (s = tzbase; *s; s++, tzsize++) - if (*s == '\\') - { - s++; - if (! (*s == '\\' || *s == '"')) - break; - } - else if (*s == '"') - { - char *z; - char *tz1; - char tz1buf[TZBUFSIZE]; - bool large_tz = TZBUFSIZE < tzsize; - bool setenv_ok; - tz0 = get_tz (tz0buf); - z = tz1 = large_tz ? xmalloc (tzsize) : tz1buf; - for (s = tzbase; *s != '"'; s++) - *z++ = *(s += *s == '\\'); - *z = '\0'; - setenv_ok = setenv ("TZ", tz1, 1) == 0; - if (large_tz) - free (tz1); - if (!setenv_ok) - goto fail; - tz_was_altered = true; - p = s + 1; - } + if (*s == '\\') + { + s++; + if (! (*s == '\\' || *s == '"')) + break; + } + else if (*s == '"') + { + char *z; + char *tz1; + char tz1buf[TZBUFSIZE]; + bool large_tz = TZBUFSIZE < tzsize; + bool setenv_ok; + /* Free tz0, in case this is the 2nd or subsequent time through. */ + free (tz0); + tz0 = get_tz (tz0buf); + z = tz1 = large_tz ? xmalloc (tzsize) : tz1buf; + for (s = tzbase; *s != '"'; s++) + *z++ = *(s += *s == '\\'); + *z = '\0'; + setenv_ok = setenv ("TZ", tz1, 1) == 0; + if (large_tz) + free (tz1); + if (!setenv_ok) + goto fail; + tz_was_altered = true; + p = s + 1; + } } /* As documented, be careful to treat the empty string just like @@ -3085,19 +3086,19 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) int quarter; for (quarter = 1; quarter <= 3; quarter++) { - time_t probe = Start + quarter * (90 * 24 * 60 * 60); - struct tm const *probe_tm = localtime (&probe); - if (probe_tm && probe_tm->tm_zone - && probe_tm->tm_isdst != pc.local_time_zone_table[0].value) - { - { - pc.local_time_zone_table[1].name = probe_tm->tm_zone; - pc.local_time_zone_table[1].type = tLOCAL_ZONE; - pc.local_time_zone_table[1].value = probe_tm->tm_isdst; - pc.local_time_zone_table[2].name = NULL; - } - break; - } + time_t probe = Start + quarter * (90 * 24 * 60 * 60); + struct tm const *probe_tm = localtime (&probe); + if (probe_tm && probe_tm->tm_zone + && probe_tm->tm_isdst != pc.local_time_zone_table[0].value) + { + { + pc.local_time_zone_table[1].name = probe_tm->tm_zone; + pc.local_time_zone_table[1].type = tLOCAL_ZONE; + pc.local_time_zone_table[1].value = probe_tm->tm_isdst; + pc.local_time_zone_table[2].name = NULL; + } + break; + } } } #else @@ -3109,9 +3110,9 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) int i; for (i = 0; i < 2; i++) { - pc.local_time_zone_table[i].name = tzname[i]; - pc.local_time_zone_table[i].type = tLOCAL_ZONE; - pc.local_time_zone_table[i].value = i; + pc.local_time_zone_table[i].name = tzname[i]; + pc.local_time_zone_table[i].type = tLOCAL_ZONE; + pc.local_time_zone_table[i].value = i; } pc.local_time_zone_table[i].name = NULL; } @@ -3122,11 +3123,11 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) if (pc.local_time_zone_table[0].name && pc.local_time_zone_table[1].name && ! strcmp (pc.local_time_zone_table[0].name, - pc.local_time_zone_table[1].name)) + pc.local_time_zone_table[1].name)) { /* This locale uses the same abbrevation for standard and - daylight times. So if we see that abbreviation, we don't - know whether it's daylight time. */ + daylight times. So if we see that abbreviation, we don't + know whether it's daylight time. */ pc.local_time_zone_table[0].value = -1; pc.local_time_zone_table[1].name = NULL; } @@ -3139,158 +3140,162 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) else { if (1 < (pc.times_seen | pc.dates_seen | pc.days_seen | pc.dsts_seen - | (pc.local_zones_seen + pc.zones_seen))) - goto fail; + | (pc.local_zones_seen + pc.zones_seen))) + goto fail; tm.tm_year = to_year (pc.year) - TM_YEAR_BASE; tm.tm_mon = pc.month - 1; tm.tm_mday = pc.day; if (pc.times_seen || (pc.rels_seen && ! pc.dates_seen && ! pc.days_seen)) - { - tm.tm_hour = to_hour (pc.hour, pc.meridian); - if (tm.tm_hour < 0) - goto fail; - tm.tm_min = pc.minutes; - tm.tm_sec = pc.seconds.tv_sec; - } + { + tm.tm_hour = to_hour (pc.hour, pc.meridian); + if (tm.tm_hour < 0) + goto fail; + tm.tm_min = pc.minutes; + tm.tm_sec = pc.seconds.tv_sec; + } else - { - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - pc.seconds.tv_nsec = 0; - } + { + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + pc.seconds.tv_nsec = 0; + } /* Let mktime deduce tm_isdst if we have an absolute time stamp. */ if (pc.dates_seen | pc.days_seen | pc.times_seen) - tm.tm_isdst = -1; + tm.tm_isdst = -1; /* But if the input explicitly specifies local time with or without - DST, give mktime that information. */ + DST, give mktime that information. */ if (pc.local_zones_seen) - tm.tm_isdst = pc.local_isdst; + tm.tm_isdst = pc.local_isdst; tm0 = tm; Start = mktime (&tm); if (! mktime_ok (&tm0, &tm, Start)) - { - if (! pc.zones_seen) - goto fail; - else - { - /* Guard against falsely reporting errors near the time_t - boundaries when parsing times in other time zones. For - example, suppose the input string "1969-12-31 23:00:00 -0100", - the current time zone is 8 hours ahead of UTC, and the min - time_t value is 1970-01-01 00:00:00 UTC. Then the min - localtime value is 1970-01-01 08:00:00, and mktime will - therefore fail on 1969-12-31 23:00:00. To work around the - problem, set the time zone to 1 hour behind UTC temporarily - by setting TZ="XXX1:00" and try mktime again. */ - - long int time_zone = pc.time_zone; - long int abs_time_zone = time_zone < 0 ? - time_zone : time_zone; - long int abs_time_zone_hour = abs_time_zone / 60; - int abs_time_zone_min = abs_time_zone % 60; - char tz1buf[sizeof "XXX+0:00" - + sizeof pc.time_zone * CHAR_BIT / 3]; - if (!tz_was_altered) - tz0 = get_tz (tz0buf); - sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0), - abs_time_zone_hour, abs_time_zone_min); - if (setenv ("TZ", tz1buf, 1) != 0) - goto fail; - tz_was_altered = true; - tm = tm0; - Start = mktime (&tm); - if (! mktime_ok (&tm0, &tm, Start)) - goto fail; - } - } + { + if (! pc.zones_seen) + goto fail; + else + { + /* Guard against falsely reporting errors near the time_t + boundaries when parsing times in other time zones. For + example, suppose the input string "1969-12-31 23:00:00 -0100", + the current time zone is 8 hours ahead of UTC, and the min + time_t value is 1970-01-01 00:00:00 UTC. Then the min + localtime value is 1970-01-01 08:00:00, and mktime will + therefore fail on 1969-12-31 23:00:00. To work around the + problem, set the time zone to 1 hour behind UTC temporarily + by setting TZ="XXX1:00" and try mktime again. */ + + long int time_zone = pc.time_zone; + long int abs_time_zone = time_zone < 0 ? - time_zone : time_zone; + long int abs_time_zone_hour = abs_time_zone / 60; + int abs_time_zone_min = abs_time_zone % 60; + char tz1buf[sizeof "XXX+0:00" + + sizeof pc.time_zone * CHAR_BIT / 3]; + if (!tz_was_altered) + tz0 = get_tz (tz0buf); + sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0), + abs_time_zone_hour, abs_time_zone_min); + if (setenv ("TZ", tz1buf, 1) != 0) + goto fail; + tz_was_altered = true; + tm = tm0; + Start = mktime (&tm); + if (! mktime_ok (&tm0, &tm, Start)) + goto fail; + } + } if (pc.days_seen && ! pc.dates_seen) - { - tm.tm_mday += ((pc.day_number - tm.tm_wday + 7) % 7 - + 7 * (pc.day_ordinal - (0 < pc.day_ordinal))); - tm.tm_isdst = -1; - Start = mktime (&tm); - if (Start == (time_t) -1) - goto fail; - } + { + tm.tm_mday += ((pc.day_number - tm.tm_wday + 7) % 7 + + 7 * (pc.day_ordinal + - (0 < pc.day_ordinal + && tm.tm_wday != pc.day_number))); + tm.tm_isdst = -1; + Start = mktime (&tm); + if (Start == (time_t) -1) + goto fail; + } /* Add relative date. */ if (pc.rel.year | pc.rel.month | pc.rel.day) - { - int year = tm.tm_year + pc.rel.year; - int month = tm.tm_mon + pc.rel.month; - int day = tm.tm_mday + pc.rel.day; - if (((year < tm.tm_year) ^ (pc.rel.year < 0)) - | ((month < tm.tm_mon) ^ (pc.rel.month < 0)) - | ((day < tm.tm_mday) ^ (pc.rel.day < 0))) - goto fail; - tm.tm_year = year; - tm.tm_mon = month; - tm.tm_mday = day; - tm.tm_hour = tm0.tm_hour; - tm.tm_min = tm0.tm_min; - tm.tm_sec = tm0.tm_sec; - tm.tm_isdst = tm0.tm_isdst; - Start = mktime (&tm); - if (Start == (time_t) -1) - goto fail; - } + { + int year = tm.tm_year + pc.rel.year; + int month = tm.tm_mon + pc.rel.month; + int day = tm.tm_mday + pc.rel.day; + if (((year < tm.tm_year) ^ (pc.rel.year < 0)) + | ((month < tm.tm_mon) ^ (pc.rel.month < 0)) + | ((day < tm.tm_mday) ^ (pc.rel.day < 0))) + goto fail; + tm.tm_year = year; + tm.tm_mon = month; + tm.tm_mday = day; + tm.tm_hour = tm0.tm_hour; + tm.tm_min = tm0.tm_min; + tm.tm_sec = tm0.tm_sec; + tm.tm_isdst = tm0.tm_isdst; + Start = mktime (&tm); + if (Start == (time_t) -1) + goto fail; + } /* The only "output" of this if-block is an updated Start value, - so this block must follow others that clobber Start. */ + so this block must follow others that clobber Start. */ if (pc.zones_seen) - { - long int delta = pc.time_zone * 60; - time_t t1; + { + long int delta = pc.time_zone * 60; + time_t t1; #ifdef HAVE_TM_GMTOFF - delta -= tm.tm_gmtoff; + delta -= tm.tm_gmtoff; #else - time_t t = Start; - struct tm const *gmt = gmtime (&t); - if (! gmt) - goto fail; - delta -= tm_diff (&tm, gmt); + time_t t = Start; + struct tm const *gmt = gmtime (&t); + if (! gmt) + goto fail; + delta -= tm_diff (&tm, gmt); #endif - t1 = Start - delta; - if ((Start < t1) != (delta < 0)) - goto fail; /* time_t overflow */ - Start = t1; - } + t1 = Start - delta; + if ((Start < t1) != (delta < 0)) + goto fail; /* time_t overflow */ + Start = t1; + } /* Add relative hours, minutes, and seconds. On hosts that support - leap seconds, ignore the possibility of leap seconds; e.g., - "+ 10 minutes" adds 600 seconds, even if one of them is a - leap second. Typically this is not what the user wants, but it's - too hard to do it the other way, because the time zone indicator - must be applied before relative times, and if mktime is applied - again the time zone will be lost. */ + leap seconds, ignore the possibility of leap seconds; e.g., + "+ 10 minutes" adds 600 seconds, even if one of them is a + leap second. Typically this is not what the user wants, but it's + too hard to do it the other way, because the time zone indicator + must be applied before relative times, and if mktime is applied + again the time zone will be lost. */ { - long int sum_ns = pc.seconds.tv_nsec + pc.rel.ns; - long int normalized_ns = (sum_ns % BILLION + BILLION) % BILLION; - time_t t0 = Start; - long int d1 = 60 * 60 * pc.rel.hour; - time_t t1 = t0 + d1; - long int d2 = 60 * pc.rel.minutes; - time_t t2 = t1 + d2; - long int d3 = pc.rel.seconds; - time_t t3 = t2 + d3; - long int d4 = (sum_ns - normalized_ns) / BILLION; - time_t t4 = t3 + d4; - - if ((d1 / (60 * 60) ^ pc.rel.hour) - | (d2 / 60 ^ pc.rel.minutes) - | ((t1 < t0) ^ (d1 < 0)) - | ((t2 < t1) ^ (d2 < 0)) - | ((t3 < t2) ^ (d3 < 0)) - | ((t4 < t3) ^ (d4 < 0))) - goto fail; - - result->tv_sec = t4; - result->tv_nsec = normalized_ns; + long int sum_ns = pc.seconds.tv_nsec + pc.rel.ns; + long int normalized_ns = (sum_ns % BILLION + BILLION) % BILLION; + time_t t0 = Start; + long int d1 = 60 * 60 * pc.rel.hour; + time_t t1 = t0 + d1; + long int d2 = 60 * pc.rel.minutes; + time_t t2 = t1 + d2; + long_time_t d3 = pc.rel.seconds; + long_time_t t3 = t2 + d3; + long int d4 = (sum_ns - normalized_ns) / BILLION; + long_time_t t4 = t3 + d4; + time_t t5 = t4; + + if ((d1 / (60 * 60) ^ pc.rel.hour) + | (d2 / 60 ^ pc.rel.minutes) + | ((t1 < t0) ^ (d1 < 0)) + | ((t2 < t1) ^ (d2 < 0)) + | ((t3 < t2) ^ (d3 < 0)) + | ((t4 < t3) ^ (d4 < 0)) + | (t5 != t4)) + goto fail; + + result->tv_sec = t5; + result->tv_nsec = normalized_ns; } } @@ -3322,19 +3327,19 @@ main (int ac, char **av) struct timespec d; struct tm const *tm; if (! get_date (&d, buff, NULL)) - printf ("Bad format - couldn't convert.\n"); + printf ("Bad format - couldn't convert.\n"); else if (! (tm = localtime (&d.tv_sec))) - { - long int sec = d.tv_sec; - printf ("localtime (%ld) failed\n", sec); - } + { + long int sec = d.tv_sec; + printf ("localtime (%ld) failed\n", sec); + } else - { - int ns = d.tv_nsec; - printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", - tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec, ns); - } + { + int ns = d.tv_nsec; + printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", + tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, ns); + } printf ("\t> "); fflush (stdout); } diff --git a/lib/getdate.h b/gnu/getdate.h similarity index 83% rename from lib/getdate.h rename to gnu/getdate.h index 73b61883921e082ac54738f51454885110dbe757..380b8eef142fbd672616b78029c637054774eca0 100644 --- a/lib/getdate.h +++ b/gnu/getdate.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Parse a string into an internal time stamp. - Copyright (C) 1995, 1997, 1998, 2003, 2004, 2007 Free Software + Copyright (C) 1995, 1997, 1998, 2003, 2004, 2007, 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/lib/getdate.y b/gnu/getdate.y similarity index 53% rename from lib/getdate.y rename to gnu/getdate.y index 877b264250ac6c15d6f0e73faf8c2f4528f1c29e..445865bdb839ebbe2f3c9e44e94c6182daaeb453 100644 --- a/lib/getdate.y +++ b/gnu/getdate.y @@ -1,8 +1,8 @@ %{ /* Parse a string into an internal time stamp. - Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008 - Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010 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 @@ -78,16 +78,6 @@ of `digit' even when the host does not conform to POSIX. */ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) -#ifndef __attribute__ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ -# define __attribute__(x) -# endif -#endif - -#ifndef ATTRIBUTE_UNUSED -# define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#endif - /* Shift A right by B bits portably, by dividing A by 2**B and truncating towards minus infinity. A and B should be free of side effects, and B should be in the range 0 <= B <= INT_BITS - 2, where @@ -98,9 +88,9 @@ implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift right in the usual way when A < 0, so SHR falls back on division if ordinary A >> B doesn't seem to be the usual signed shift. */ -#define SHR(a, b) \ - (-1 >> 1 == -1 \ - ? (a) >> (b) \ +#define SHR(a, b) \ + (-1 >> 1 == -1 \ + ? (a) >> (b) \ : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0)) #define EPOCH_YEAR 1970 @@ -108,12 +98,21 @@ #define HOUR(x) ((x) * 60) -/* Lots of this code assumes time_t and time_t-like values fit into - long int. It also assumes that signed integer overflow silently - wraps around, but there's no portable way to check for that at - compile-time. */ +/* long_time_t is a signed integer type that contains all time_t values. */ verify (TYPE_IS_INTEGER (time_t)); -verify (LONG_MIN <= TYPE_MINIMUM (time_t) && TYPE_MAXIMUM (time_t) <= LONG_MAX); +#if TIME_T_FITS_IN_LONG_INT +typedef long int long_time_t; +#else +typedef time_t long_time_t; +#endif + +/* Lots of this code assumes time_t and time_t-like values fit into + long_time_t. */ +verify (TYPE_MINIMUM (long_time_t) <= TYPE_MINIMUM (time_t) + && TYPE_MAXIMUM (time_t) <= TYPE_MAXIMUM (long_time_t)); + +/* FIXME: It also assumes that signed integer overflow silently wraps around, + but this is not true any more with recent versions of GCC 4. */ /* An integer value, and the number of digits in its textual representation. */ @@ -146,7 +145,7 @@ typedef struct long int day; long int hour; long int minutes; - long int seconds; + long_time_t seconds; long int ns; } relative_time; @@ -219,30 +218,30 @@ digits_to_date_time (parser_control *pc, textint text_int) else { if (4 < text_int.digits) - { - pc->dates_seen++; - pc->day = text_int.value % 100; - pc->month = (text_int.value / 100) % 100; - pc->year.value = text_int.value / 10000; - pc->year.digits = text_int.digits - 4; - } + { + pc->dates_seen++; + pc->day = text_int.value % 100; + pc->month = (text_int.value / 100) % 100; + pc->year.value = text_int.value / 10000; + pc->year.digits = text_int.digits - 4; + } else - { - pc->times_seen++; - if (text_int.digits <= 2) - { - pc->hour = text_int.value; - pc->minutes = 0; - } - else - { - pc->hour = text_int.value / 100; - pc->minutes = text_int.value % 100; - } - pc->seconds.tv_sec = 0; - pc->seconds.tv_nsec = 0; - pc->meridian = MER24; - } + { + pc->times_seen++; + if (text_int.digits <= 2) + { + pc->hour = text_int.value; + pc->minutes = 0; + } + else + { + pc->hour = text_int.value / 100; + pc->minutes = text_int.value % 100; + } + pc->seconds.tv_sec = 0; + pc->seconds.tv_nsec = 0; + pc->meridian = MER24; + } } } @@ -263,7 +262,7 @@ apply_relative_time (parser_control *pc, relative_time rel, int factor) /* Set PC-> hour, minutes, seconds and nanoseconds members from arguments. */ static void set_hhmmss (parser_control *pc, long int hour, long int minutes, - time_t sec, long int nsec) + time_t sec, long int nsec) { pc->hour = hour; pc->minutes = minutes; @@ -316,8 +315,8 @@ spec: timespec: '@' seconds { - pc->seconds = $2; - pc->timespec_seen = true; + pc->seconds = $2; + pc->timespec_seen = true; } ; @@ -345,45 +344,45 @@ item: time: tUNUMBER tMERIDIAN { - set_hhmmss (pc, $1.value, 0, 0, 0); - pc->meridian = $2; + set_hhmmss (pc, $1.value, 0, 0, 0); + pc->meridian = $2; } | tUNUMBER ':' tUNUMBER o_merid { - set_hhmmss (pc, $1.value, $3.value, 0, 0); - pc->meridian = $4; + set_hhmmss (pc, $1.value, $3.value, 0, 0); + pc->meridian = $4; } | tUNUMBER ':' tUNUMBER tSNUMBER o_colon_minutes { - set_hhmmss (pc, $1.value, $3.value, 0, 0); - pc->meridian = MER24; - pc->zones_seen++; - pc->time_zone = time_zone_hhmm (pc, $4, $5); + set_hhmmss (pc, $1.value, $3.value, 0, 0); + pc->meridian = MER24; + pc->zones_seen++; + pc->time_zone = time_zone_hhmm (pc, $4, $5); } | tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_merid { - set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); - pc->meridian = $6; + set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); + pc->meridian = $6; } | tUNUMBER ':' tUNUMBER ':' unsigned_seconds tSNUMBER o_colon_minutes { - set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); - pc->meridian = MER24; - pc->zones_seen++; - pc->time_zone = time_zone_hhmm (pc, $6, $7); + set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); + pc->meridian = MER24; + pc->zones_seen++; + pc->time_zone = time_zone_hhmm (pc, $6, $7); } ; local_zone: tLOCAL_ZONE { - pc->local_isdst = $1; - pc->dsts_seen += (0 < $1); + pc->local_isdst = $1; + pc->dsts_seen += (0 < $1); } | tLOCAL_ZONE tDST { - pc->local_isdst = 1; - pc->dsts_seen += (0 < $1) + 1; + pc->local_isdst = 1; + pc->dsts_seen += (0 < $1) + 1; } ; @@ -392,7 +391,7 @@ zone: { pc->time_zone = $1; } | tZONE relunit_snumber { pc->time_zone = $1; - apply_relative_time (pc, $2, 1); } + apply_relative_time (pc, $2, 1); } | tZONE tSNUMBER o_colon_minutes { pc->time_zone = $1 + time_zone_hhmm (pc, $2, $3); } | tDAYZONE @@ -404,96 +403,96 @@ zone: day: tDAY { - pc->day_ordinal = 1; - pc->day_number = $1; + pc->day_ordinal = 0; + pc->day_number = $1; } | tDAY ',' { - pc->day_ordinal = 1; - pc->day_number = $1; + pc->day_ordinal = 0; + pc->day_number = $1; } | tORDINAL tDAY { - pc->day_ordinal = $1; - pc->day_number = $2; + pc->day_ordinal = $1; + pc->day_number = $2; } | tUNUMBER tDAY { - pc->day_ordinal = $1.value; - pc->day_number = $2; + pc->day_ordinal = $1.value; + pc->day_number = $2; } ; date: tUNUMBER '/' tUNUMBER { - pc->month = $1.value; - pc->day = $3.value; + pc->month = $1.value; + pc->day = $3.value; } | tUNUMBER '/' tUNUMBER '/' tUNUMBER { - /* Interpret as YYYY/MM/DD if the first value has 4 or more digits, - otherwise as MM/DD/YY. - The goal in recognizing YYYY/MM/DD is solely to support legacy - machine-generated dates like those in an RCS log listing. If - you want portability, use the ISO 8601 format. */ - if (4 <= $1.digits) - { - pc->year = $1; - pc->month = $3.value; - pc->day = $5.value; - } - else - { - pc->month = $1.value; - pc->day = $3.value; - pc->year = $5; - } + /* Interpret as YYYY/MM/DD if the first value has 4 or more digits, + otherwise as MM/DD/YY. + The goal in recognizing YYYY/MM/DD is solely to support legacy + machine-generated dates like those in an RCS log listing. If + you want portability, use the ISO 8601 format. */ + if (4 <= $1.digits) + { + pc->year = $1; + pc->month = $3.value; + pc->day = $5.value; + } + else + { + pc->month = $1.value; + pc->day = $3.value; + pc->year = $5; + } } | tUNUMBER tSNUMBER tSNUMBER { - /* ISO 8601 format. YYYY-MM-DD. */ - pc->year = $1; - pc->month = -$2.value; - pc->day = -$3.value; + /* ISO 8601 format. YYYY-MM-DD. */ + pc->year = $1; + pc->month = -$2.value; + pc->day = -$3.value; } | tUNUMBER tMONTH tSNUMBER { - /* e.g. 17-JUN-1992. */ - pc->day = $1.value; - pc->month = $2; - pc->year.value = -$3.value; - pc->year.digits = $3.digits; + /* e.g. 17-JUN-1992. */ + pc->day = $1.value; + pc->month = $2; + pc->year.value = -$3.value; + pc->year.digits = $3.digits; } | tMONTH tSNUMBER tSNUMBER { - /* e.g. JUN-17-1992. */ - pc->month = $1; - pc->day = -$2.value; - pc->year.value = -$3.value; - pc->year.digits = $3.digits; + /* e.g. JUN-17-1992. */ + pc->month = $1; + pc->day = -$2.value; + pc->year.value = -$3.value; + pc->year.digits = $3.digits; } | tMONTH tUNUMBER { - pc->month = $1; - pc->day = $2.value; + pc->month = $1; + pc->day = $2.value; } | tMONTH tUNUMBER ',' tUNUMBER { - pc->month = $1; - pc->day = $2.value; - pc->year = $4; + pc->month = $1; + pc->day = $2.value; + pc->year = $4; } | tUNUMBER tMONTH { - pc->day = $1.value; - pc->month = $2; + pc->day = $1.value; + pc->month = $2; } | tUNUMBER tMONTH tUNUMBER { - pc->day = $1.value; - pc->month = $2; - pc->year = $3; + pc->day = $1.value; + pc->month = $2; + pc->year = $3; } ; @@ -592,10 +591,10 @@ number: hybrid: tUNUMBER relunit_snumber { - /* Hybrid all-digit and relative offset, so that we accept e.g., - "YYYYMMDD +N days" as well as "YYYYMMDD N days". */ - digits_to_date_time (pc, $1); - apply_relative_time (pc, $2, 1); + /* Hybrid all-digit and relative offset, so that we accept e.g., + "YYYYMMDD +N days" as well as "YYYYMMDD N days". */ + digits_to_date_time (pc, $1); + apply_relative_time (pc, $2, 1); } ; @@ -631,71 +630,71 @@ static table const dst_table[] = static table const month_and_day_table[] = { - { "JANUARY", tMONTH, 1 }, - { "FEBRUARY", tMONTH, 2 }, - { "MARCH", tMONTH, 3 }, - { "APRIL", tMONTH, 4 }, - { "MAY", tMONTH, 5 }, - { "JUNE", tMONTH, 6 }, - { "JULY", tMONTH, 7 }, - { "AUGUST", tMONTH, 8 }, - { "SEPTEMBER",tMONTH, 9 }, - { "SEPT", tMONTH, 9 }, - { "OCTOBER", tMONTH, 10 }, - { "NOVEMBER", tMONTH, 11 }, - { "DECEMBER", tMONTH, 12 }, - { "SUNDAY", tDAY, 0 }, - { "MONDAY", tDAY, 1 }, - { "TUESDAY", tDAY, 2 }, - { "TUES", tDAY, 2 }, - { "WEDNESDAY",tDAY, 3 }, - { "WEDNES", tDAY, 3 }, - { "THURSDAY", tDAY, 4 }, - { "THUR", tDAY, 4 }, - { "THURS", tDAY, 4 }, - { "FRIDAY", tDAY, 5 }, - { "SATURDAY", tDAY, 6 }, + { "JANUARY", tMONTH, 1 }, + { "FEBRUARY", tMONTH, 2 }, + { "MARCH", tMONTH, 3 }, + { "APRIL", tMONTH, 4 }, + { "MAY", tMONTH, 5 }, + { "JUNE", tMONTH, 6 }, + { "JULY", tMONTH, 7 }, + { "AUGUST", tMONTH, 8 }, + { "SEPTEMBER",tMONTH, 9 }, + { "SEPT", tMONTH, 9 }, + { "OCTOBER", tMONTH, 10 }, + { "NOVEMBER", tMONTH, 11 }, + { "DECEMBER", tMONTH, 12 }, + { "SUNDAY", tDAY, 0 }, + { "MONDAY", tDAY, 1 }, + { "TUESDAY", tDAY, 2 }, + { "TUES", tDAY, 2 }, + { "WEDNESDAY",tDAY, 3 }, + { "WEDNES", tDAY, 3 }, + { "THURSDAY", tDAY, 4 }, + { "THUR", tDAY, 4 }, + { "THURS", tDAY, 4 }, + { "FRIDAY", tDAY, 5 }, + { "SATURDAY", tDAY, 6 }, { NULL, 0, 0 } }; static table const time_units_table[] = { - { "YEAR", tYEAR_UNIT, 1 }, - { "MONTH", tMONTH_UNIT, 1 }, - { "FORTNIGHT",tDAY_UNIT, 14 }, - { "WEEK", tDAY_UNIT, 7 }, - { "DAY", tDAY_UNIT, 1 }, - { "HOUR", tHOUR_UNIT, 1 }, - { "MINUTE", tMINUTE_UNIT, 1 }, - { "MIN", tMINUTE_UNIT, 1 }, - { "SECOND", tSEC_UNIT, 1 }, - { "SEC", tSEC_UNIT, 1 }, + { "YEAR", tYEAR_UNIT, 1 }, + { "MONTH", tMONTH_UNIT, 1 }, + { "FORTNIGHT",tDAY_UNIT, 14 }, + { "WEEK", tDAY_UNIT, 7 }, + { "DAY", tDAY_UNIT, 1 }, + { "HOUR", tHOUR_UNIT, 1 }, + { "MINUTE", tMINUTE_UNIT, 1 }, + { "MIN", tMINUTE_UNIT, 1 }, + { "SECOND", tSEC_UNIT, 1 }, + { "SEC", tSEC_UNIT, 1 }, { NULL, 0, 0 } }; /* Assorted relative-time words. */ static table const relative_time_table[] = { - { "TOMORROW", tDAY_SHIFT, 1 }, - { "YESTERDAY",tDAY_SHIFT, -1 }, - { "TODAY", tDAY_SHIFT, 0 }, - { "NOW", tDAY_SHIFT, 0 }, - { "LAST", tORDINAL, -1 }, - { "THIS", tORDINAL, 0 }, - { "NEXT", tORDINAL, 1 }, - { "FIRST", tORDINAL, 1 }, -/*{ "SECOND", tORDINAL, 2 }, */ - { "THIRD", tORDINAL, 3 }, - { "FOURTH", tORDINAL, 4 }, - { "FIFTH", tORDINAL, 5 }, - { "SIXTH", tORDINAL, 6 }, - { "SEVENTH", tORDINAL, 7 }, - { "EIGHTH", tORDINAL, 8 }, - { "NINTH", tORDINAL, 9 }, - { "TENTH", tORDINAL, 10 }, - { "ELEVENTH", tORDINAL, 11 }, - { "TWELFTH", tORDINAL, 12 }, - { "AGO", tAGO, 1 }, + { "TOMORROW", tDAY_SHIFT, 1 }, + { "YESTERDAY",tDAY_SHIFT, -1 }, + { "TODAY", tDAY_SHIFT, 0 }, + { "NOW", tDAY_SHIFT, 0 }, + { "LAST", tORDINAL, -1 }, + { "THIS", tORDINAL, 0 }, + { "NEXT", tORDINAL, 1 }, + { "FIRST", tORDINAL, 1 }, +/*{ "SECOND", tORDINAL, 2 }, */ + { "THIRD", tORDINAL, 3 }, + { "FOURTH", tORDINAL, 4 }, + { "FIFTH", tORDINAL, 5 }, + { "SIXTH", tORDINAL, 6 }, + { "SEVENTH", tORDINAL, 7 }, + { "EIGHTH", tORDINAL, 8 }, + { "NINTH", tORDINAL, 9 }, + { "TENTH", tORDINAL, 10 }, + { "ELEVENTH", tORDINAL, 11 }, + { "TWELFTH", tORDINAL, 12 }, + { "AGO", tAGO, 1 }, { NULL, 0, 0 } }; @@ -704,9 +703,9 @@ static table const relative_time_table[] = stamps in London during summer. */ static table const universal_time_zone_table[] = { - { "GMT", tZONE, HOUR ( 0) }, /* Greenwich Mean */ - { "UT", tZONE, HOUR ( 0) }, /* Universal (Coordinated) */ - { "UTC", tZONE, HOUR ( 0) }, + { "GMT", tZONE, HOUR ( 0) }, /* Greenwich Mean */ + { "UT", tZONE, HOUR ( 0) }, /* Universal (Coordinated) */ + { "UTC", tZONE, HOUR ( 0) }, { NULL, 0, 0 } }; @@ -717,84 +716,84 @@ static table const universal_time_zone_table[] = abbreviations; use numeric abbreviations like `-0500' instead. */ static table const time_zone_table[] = { - { "WET", tZONE, HOUR ( 0) }, /* Western European */ - { "WEST", tDAYZONE, HOUR ( 0) }, /* Western European Summer */ - { "BST", tDAYZONE, HOUR ( 0) }, /* British Summer */ - { "ART", tZONE, -HOUR ( 3) }, /* Argentina */ - { "BRT", tZONE, -HOUR ( 3) }, /* Brazil */ - { "BRST", tDAYZONE, -HOUR ( 3) }, /* Brazil Summer */ - { "NST", tZONE, -(HOUR ( 3) + 30) }, /* Newfoundland Standard */ - { "NDT", tDAYZONE,-(HOUR ( 3) + 30) }, /* Newfoundland Daylight */ - { "AST", tZONE, -HOUR ( 4) }, /* Atlantic Standard */ - { "ADT", tDAYZONE, -HOUR ( 4) }, /* Atlantic Daylight */ - { "CLT", tZONE, -HOUR ( 4) }, /* Chile */ - { "CLST", tDAYZONE, -HOUR ( 4) }, /* Chile Summer */ - { "EST", tZONE, -HOUR ( 5) }, /* Eastern Standard */ - { "EDT", tDAYZONE, -HOUR ( 5) }, /* Eastern Daylight */ - { "CST", tZONE, -HOUR ( 6) }, /* Central Standard */ - { "CDT", tDAYZONE, -HOUR ( 6) }, /* Central Daylight */ - { "MST", tZONE, -HOUR ( 7) }, /* Mountain Standard */ - { "MDT", tDAYZONE, -HOUR ( 7) }, /* Mountain Daylight */ - { "PST", tZONE, -HOUR ( 8) }, /* Pacific Standard */ - { "PDT", tDAYZONE, -HOUR ( 8) }, /* Pacific Daylight */ - { "AKST", tZONE, -HOUR ( 9) }, /* Alaska Standard */ - { "AKDT", tDAYZONE, -HOUR ( 9) }, /* Alaska Daylight */ - { "HST", tZONE, -HOUR (10) }, /* Hawaii Standard */ - { "HAST", tZONE, -HOUR (10) }, /* Hawaii-Aleutian Standard */ - { "HADT", tDAYZONE, -HOUR (10) }, /* Hawaii-Aleutian Daylight */ - { "SST", tZONE, -HOUR (12) }, /* Samoa Standard */ - { "WAT", tZONE, HOUR ( 1) }, /* West Africa */ - { "CET", tZONE, HOUR ( 1) }, /* Central European */ - { "CEST", tDAYZONE, HOUR ( 1) }, /* Central European Summer */ - { "MET", tZONE, HOUR ( 1) }, /* Middle European */ - { "MEZ", tZONE, HOUR ( 1) }, /* Middle European */ - { "MEST", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ - { "MESZ", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ - { "EET", tZONE, HOUR ( 2) }, /* Eastern European */ - { "EEST", tDAYZONE, HOUR ( 2) }, /* Eastern European Summer */ - { "CAT", tZONE, HOUR ( 2) }, /* Central Africa */ - { "SAST", tZONE, HOUR ( 2) }, /* South Africa Standard */ - { "EAT", tZONE, HOUR ( 3) }, /* East Africa */ - { "MSK", tZONE, HOUR ( 3) }, /* Moscow */ - { "MSD", tDAYZONE, HOUR ( 3) }, /* Moscow Daylight */ - { "IST", tZONE, (HOUR ( 5) + 30) }, /* India Standard */ - { "SGT", tZONE, HOUR ( 8) }, /* Singapore */ - { "KST", tZONE, HOUR ( 9) }, /* Korea Standard */ - { "JST", tZONE, HOUR ( 9) }, /* Japan Standard */ - { "GST", tZONE, HOUR (10) }, /* Guam Standard */ - { "NZST", tZONE, HOUR (12) }, /* New Zealand Standard */ - { "NZDT", tDAYZONE, HOUR (12) }, /* New Zealand Daylight */ + { "WET", tZONE, HOUR ( 0) }, /* Western European */ + { "WEST", tDAYZONE, HOUR ( 0) }, /* Western European Summer */ + { "BST", tDAYZONE, HOUR ( 0) }, /* British Summer */ + { "ART", tZONE, -HOUR ( 3) }, /* Argentina */ + { "BRT", tZONE, -HOUR ( 3) }, /* Brazil */ + { "BRST", tDAYZONE, -HOUR ( 3) }, /* Brazil Summer */ + { "NST", tZONE, -(HOUR ( 3) + 30) }, /* Newfoundland Standard */ + { "NDT", tDAYZONE,-(HOUR ( 3) + 30) }, /* Newfoundland Daylight */ + { "AST", tZONE, -HOUR ( 4) }, /* Atlantic Standard */ + { "ADT", tDAYZONE, -HOUR ( 4) }, /* Atlantic Daylight */ + { "CLT", tZONE, -HOUR ( 4) }, /* Chile */ + { "CLST", tDAYZONE, -HOUR ( 4) }, /* Chile Summer */ + { "EST", tZONE, -HOUR ( 5) }, /* Eastern Standard */ + { "EDT", tDAYZONE, -HOUR ( 5) }, /* Eastern Daylight */ + { "CST", tZONE, -HOUR ( 6) }, /* Central Standard */ + { "CDT", tDAYZONE, -HOUR ( 6) }, /* Central Daylight */ + { "MST", tZONE, -HOUR ( 7) }, /* Mountain Standard */ + { "MDT", tDAYZONE, -HOUR ( 7) }, /* Mountain Daylight */ + { "PST", tZONE, -HOUR ( 8) }, /* Pacific Standard */ + { "PDT", tDAYZONE, -HOUR ( 8) }, /* Pacific Daylight */ + { "AKST", tZONE, -HOUR ( 9) }, /* Alaska Standard */ + { "AKDT", tDAYZONE, -HOUR ( 9) }, /* Alaska Daylight */ + { "HST", tZONE, -HOUR (10) }, /* Hawaii Standard */ + { "HAST", tZONE, -HOUR (10) }, /* Hawaii-Aleutian Standard */ + { "HADT", tDAYZONE, -HOUR (10) }, /* Hawaii-Aleutian Daylight */ + { "SST", tZONE, -HOUR (12) }, /* Samoa Standard */ + { "WAT", tZONE, HOUR ( 1) }, /* West Africa */ + { "CET", tZONE, HOUR ( 1) }, /* Central European */ + { "CEST", tDAYZONE, HOUR ( 1) }, /* Central European Summer */ + { "MET", tZONE, HOUR ( 1) }, /* Middle European */ + { "MEZ", tZONE, HOUR ( 1) }, /* Middle European */ + { "MEST", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ + { "MESZ", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ + { "EET", tZONE, HOUR ( 2) }, /* Eastern European */ + { "EEST", tDAYZONE, HOUR ( 2) }, /* Eastern European Summer */ + { "CAT", tZONE, HOUR ( 2) }, /* Central Africa */ + { "SAST", tZONE, HOUR ( 2) }, /* South Africa Standard */ + { "EAT", tZONE, HOUR ( 3) }, /* East Africa */ + { "MSK", tZONE, HOUR ( 3) }, /* Moscow */ + { "MSD", tDAYZONE, HOUR ( 3) }, /* Moscow Daylight */ + { "IST", tZONE, (HOUR ( 5) + 30) }, /* India Standard */ + { "SGT", tZONE, HOUR ( 8) }, /* Singapore */ + { "KST", tZONE, HOUR ( 9) }, /* Korea Standard */ + { "JST", tZONE, HOUR ( 9) }, /* Japan Standard */ + { "GST", tZONE, HOUR (10) }, /* Guam Standard */ + { "NZST", tZONE, HOUR (12) }, /* New Zealand Standard */ + { "NZDT", tDAYZONE, HOUR (12) }, /* New Zealand Daylight */ { NULL, 0, 0 } }; /* Military time zone table. */ static table const military_table[] = { - { "A", tZONE, -HOUR ( 1) }, - { "B", tZONE, -HOUR ( 2) }, - { "C", tZONE, -HOUR ( 3) }, - { "D", tZONE, -HOUR ( 4) }, - { "E", tZONE, -HOUR ( 5) }, - { "F", tZONE, -HOUR ( 6) }, - { "G", tZONE, -HOUR ( 7) }, - { "H", tZONE, -HOUR ( 8) }, - { "I", tZONE, -HOUR ( 9) }, - { "K", tZONE, -HOUR (10) }, - { "L", tZONE, -HOUR (11) }, - { "M", tZONE, -HOUR (12) }, - { "N", tZONE, HOUR ( 1) }, - { "O", tZONE, HOUR ( 2) }, - { "P", tZONE, HOUR ( 3) }, - { "Q", tZONE, HOUR ( 4) }, - { "R", tZONE, HOUR ( 5) }, - { "S", tZONE, HOUR ( 6) }, - { "T", tZONE, HOUR ( 7) }, - { "U", tZONE, HOUR ( 8) }, - { "V", tZONE, HOUR ( 9) }, - { "W", tZONE, HOUR (10) }, - { "X", tZONE, HOUR (11) }, - { "Y", tZONE, HOUR (12) }, - { "Z", tZONE, HOUR ( 0) }, + { "A", tZONE, -HOUR ( 1) }, + { "B", tZONE, -HOUR ( 2) }, + { "C", tZONE, -HOUR ( 3) }, + { "D", tZONE, -HOUR ( 4) }, + { "E", tZONE, -HOUR ( 5) }, + { "F", tZONE, -HOUR ( 6) }, + { "G", tZONE, -HOUR ( 7) }, + { "H", tZONE, -HOUR ( 8) }, + { "I", tZONE, -HOUR ( 9) }, + { "K", tZONE, -HOUR (10) }, + { "L", tZONE, -HOUR (11) }, + { "M", tZONE, -HOUR (12) }, + { "N", tZONE, HOUR ( 1) }, + { "O", tZONE, HOUR ( 2) }, + { "P", tZONE, HOUR ( 3) }, + { "Q", tZONE, HOUR ( 4) }, + { "R", tZONE, HOUR ( 5) }, + { "S", tZONE, HOUR ( 6) }, + { "T", tZONE, HOUR ( 7) }, + { "U", tZONE, HOUR ( 8) }, + { "V", tZONE, HOUR ( 9) }, + { "W", tZONE, HOUR (10) }, + { "X", tZONE, HOUR (11) }, + { "Y", tZONE, HOUR (12) }, + { "Z", tZONE, HOUR ( 0) }, { NULL, 0, 0 } }; @@ -904,10 +903,10 @@ tm_diff (struct tm const *a, struct tm const *b) long int ayear = a->tm_year; long int years = ayear - b->tm_year; long int days = (365 * years + intervening_leap_days - + (a->tm_yday - b->tm_yday)); + + (a->tm_yday - b->tm_yday)); return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) - + (a->tm_min - b->tm_min)) - + (a->tm_sec - b->tm_sec)); + + (a->tm_min - b->tm_min)) + + (a->tm_sec - b->tm_sec)); } #endif /* ! HAVE_TM_GMTOFF */ @@ -955,9 +954,9 @@ lookup_word (parser_control const *pc, char *word) { word[wordlen - 1] = '\0'; for (tp = time_units_table; tp->name; tp++) - if (strcmp (word, tp->name) == 0) - return tp; - word[wordlen - 1] = 'S'; /* For "this" in relative_time_table. */ + if (strcmp (word, tp->name) == 0) + return tp; + word[wordlen - 1] = 'S'; /* For "this" in relative_time_table. */ } for (tp = relative_time_table; tp->name; tp++) @@ -968,7 +967,7 @@ lookup_word (parser_control const *pc, char *word) if (wordlen == 1) for (tp = military_table; tp->name; tp++) if (word[0] == tp->name[0]) - return tp; + return tp; /* Drop out any periods and try the time zone table again. */ for (period_found = false, p = q = word; (*p = *q); q++) @@ -991,163 +990,163 @@ yylex (YYSTYPE *lvalp, parser_control *pc) for (;;) { while (c = *pc->input, c_isspace (c)) - pc->input++; + pc->input++; if (ISDIGIT (c) || c == '-' || c == '+') - { - char const *p; - int sign; - unsigned long int value; - if (c == '-' || c == '+') - { - sign = c == '-' ? -1 : 1; - while (c = *++pc->input, c_isspace (c)) - continue; - if (! ISDIGIT (c)) - /* skip the '-' sign */ - continue; - } - else - sign = 0; - p = pc->input; - for (value = 0; ; value *= 10) - { - unsigned long int value1 = value + (c - '0'); - if (value1 < value) - return '?'; - value = value1; - c = *++p; - if (! ISDIGIT (c)) - break; - if (ULONG_MAX / 10 < value) - return '?'; - } - if ((c == '.' || c == ',') && ISDIGIT (p[1])) - { - time_t s; - int ns; - int digits; - unsigned long int value1; - - /* Check for overflow when converting value to time_t. */ - if (sign < 0) - { - s = - value; - if (0 < s) - return '?'; - value1 = -s; - } - else - { - s = value; - if (s < 0) - return '?'; - value1 = s; - } - if (value != value1) - return '?'; - - /* Accumulate fraction, to ns precision. */ - p++; - ns = *p++ - '0'; - for (digits = 2; digits <= LOG10_BILLION; digits++) - { - ns *= 10; - if (ISDIGIT (*p)) - ns += *p++ - '0'; - } - - /* Skip excess digits, truncating toward -Infinity. */ - if (sign < 0) - for (; ISDIGIT (*p); p++) - if (*p != '0') - { - ns++; - break; - } - while (ISDIGIT (*p)) - p++; - - /* Adjust to the timespec convention, which is that - tv_nsec is always a positive offset even if tv_sec is - negative. */ - if (sign < 0 && ns) - { - s--; - if (! (s < 0)) - return '?'; - ns = BILLION - ns; - } - - lvalp->timespec.tv_sec = s; - lvalp->timespec.tv_nsec = ns; - pc->input = p; - return sign ? tSDECIMAL_NUMBER : tUDECIMAL_NUMBER; - } - else - { - lvalp->textintval.negative = sign < 0; - if (sign < 0) - { - lvalp->textintval.value = - value; - if (0 < lvalp->textintval.value) - return '?'; - } - else - { - lvalp->textintval.value = value; - if (lvalp->textintval.value < 0) - return '?'; - } - lvalp->textintval.digits = p - pc->input; - pc->input = p; - return sign ? tSNUMBER : tUNUMBER; - } - } + { + char const *p; + int sign; + unsigned long int value; + if (c == '-' || c == '+') + { + sign = c == '-' ? -1 : 1; + while (c = *++pc->input, c_isspace (c)) + continue; + if (! ISDIGIT (c)) + /* skip the '-' sign */ + continue; + } + else + sign = 0; + p = pc->input; + for (value = 0; ; value *= 10) + { + unsigned long int value1 = value + (c - '0'); + if (value1 < value) + return '?'; + value = value1; + c = *++p; + if (! ISDIGIT (c)) + break; + if (ULONG_MAX / 10 < value) + return '?'; + } + if ((c == '.' || c == ',') && ISDIGIT (p[1])) + { + time_t s; + int ns; + int digits; + unsigned long int value1; + + /* Check for overflow when converting value to time_t. */ + if (sign < 0) + { + s = - value; + if (0 < s) + return '?'; + value1 = -s; + } + else + { + s = value; + if (s < 0) + return '?'; + value1 = s; + } + if (value != value1) + return '?'; + + /* Accumulate fraction, to ns precision. */ + p++; + ns = *p++ - '0'; + for (digits = 2; digits <= LOG10_BILLION; digits++) + { + ns *= 10; + if (ISDIGIT (*p)) + ns += *p++ - '0'; + } + + /* Skip excess digits, truncating toward -Infinity. */ + if (sign < 0) + for (; ISDIGIT (*p); p++) + if (*p != '0') + { + ns++; + break; + } + while (ISDIGIT (*p)) + p++; + + /* Adjust to the timespec convention, which is that + tv_nsec is always a positive offset even if tv_sec is + negative. */ + if (sign < 0 && ns) + { + s--; + if (! (s < 0)) + return '?'; + ns = BILLION - ns; + } + + lvalp->timespec.tv_sec = s; + lvalp->timespec.tv_nsec = ns; + pc->input = p; + return sign ? tSDECIMAL_NUMBER : tUDECIMAL_NUMBER; + } + else + { + lvalp->textintval.negative = sign < 0; + if (sign < 0) + { + lvalp->textintval.value = - value; + if (0 < lvalp->textintval.value) + return '?'; + } + else + { + lvalp->textintval.value = value; + if (lvalp->textintval.value < 0) + return '?'; + } + lvalp->textintval.digits = p - pc->input; + pc->input = p; + return sign ? tSNUMBER : tUNUMBER; + } + } if (c_isalpha (c)) - { - char buff[20]; - char *p = buff; - table const *tp; - - do - { - if (p < buff + sizeof buff - 1) - *p++ = c; - c = *++pc->input; - } - while (c_isalpha (c) || c == '.'); - - *p = '\0'; - tp = lookup_word (pc, buff); - if (! tp) - return '?'; - lvalp->intval = tp->value; - return tp->type; - } + { + char buff[20]; + char *p = buff; + table const *tp; + + do + { + if (p < buff + sizeof buff - 1) + *p++ = c; + c = *++pc->input; + } + while (c_isalpha (c) || c == '.'); + + *p = '\0'; + tp = lookup_word (pc, buff); + if (! tp) + return '?'; + lvalp->intval = tp->value; + return tp->type; + } if (c != '(') - return *pc->input++; + return *pc->input++; count = 0; do - { - c = *pc->input++; - if (c == '\0') - return c; - if (c == '(') - count++; - else if (c == ')') - count--; - } + { + c = *pc->input++; + if (c == '\0') + return c; + if (c == '(') + count++; + else if (c == ')') + count--; + } while (count != 0); } } /* Do nothing if the parser reports an error. */ static int -yyerror (parser_control const *pc ATTRIBUTE_UNUSED, - char const *s ATTRIBUTE_UNUSED) +yyerror (parser_control const *pc _GL_UNUSED, + char const *s _GL_UNUSED) { return 0; } @@ -1162,19 +1161,19 @@ mktime_ok (struct tm const *tm0, struct tm const *tm1, time_t t) if (t == (time_t) -1) { /* Guard against falsely reporting an error when parsing a time - stamp that happens to equal (time_t) -1, on a host that - supports such a time stamp. */ + stamp that happens to equal (time_t) -1, on a host that + supports such a time stamp. */ tm1 = localtime (&t); if (!tm1) - return false; + return false; } return ! ((tm0->tm_sec ^ tm1->tm_sec) - | (tm0->tm_min ^ tm1->tm_min) - | (tm0->tm_hour ^ tm1->tm_hour) - | (tm0->tm_mday ^ tm1->tm_mday) - | (tm0->tm_mon ^ tm1->tm_mon) - | (tm0->tm_year ^ tm1->tm_year)); + | (tm0->tm_min ^ tm1->tm_min) + | (tm0->tm_hour ^ tm1->tm_hour) + | (tm0->tm_mday ^ tm1->tm_mday) + | (tm0->tm_mon ^ tm1->tm_mon) + | (tm0->tm_year ^ tm1->tm_year)); } /* A reasonable upper bound for the size of ordinary TZ strings. @@ -1191,8 +1190,8 @@ get_tz (char tzbuf[TZBUFSIZE]) { size_t tzsize = strlen (tz) + 1; tz = (tzsize <= TZBUFSIZE - ? memcpy (tzbuf, tz, tzsize) - : xmemdup (tz, tzsize)); + ? memcpy (tzbuf, tz, tzsize) + : xmemdup (tz, tzsize)); } return tz; } @@ -1240,32 +1239,34 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) char const *s; for (s = tzbase; *s; s++, tzsize++) - if (*s == '\\') - { - s++; - if (! (*s == '\\' || *s == '"')) - break; - } - else if (*s == '"') - { - char *z; - char *tz1; - char tz1buf[TZBUFSIZE]; - bool large_tz = TZBUFSIZE < tzsize; - bool setenv_ok; - tz0 = get_tz (tz0buf); - z = tz1 = large_tz ? xmalloc (tzsize) : tz1buf; - for (s = tzbase; *s != '"'; s++) - *z++ = *(s += *s == '\\'); - *z = '\0'; - setenv_ok = setenv ("TZ", tz1, 1) == 0; - if (large_tz) - free (tz1); - if (!setenv_ok) - goto fail; - tz_was_altered = true; - p = s + 1; - } + if (*s == '\\') + { + s++; + if (! (*s == '\\' || *s == '"')) + break; + } + else if (*s == '"') + { + char *z; + char *tz1; + char tz1buf[TZBUFSIZE]; + bool large_tz = TZBUFSIZE < tzsize; + bool setenv_ok; + /* Free tz0, in case this is the 2nd or subsequent time through. */ + free (tz0); + tz0 = get_tz (tz0buf); + z = tz1 = large_tz ? xmalloc (tzsize) : tz1buf; + for (s = tzbase; *s != '"'; s++) + *z++ = *(s += *s == '\\'); + *z = '\0'; + setenv_ok = setenv ("TZ", tz1, 1) == 0; + if (large_tz) + free (tz1); + if (!setenv_ok) + goto fail; + tz_was_altered = true; + p = s + 1; + } } /* As documented, be careful to treat the empty string just like @@ -1309,19 +1310,19 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) int quarter; for (quarter = 1; quarter <= 3; quarter++) { - time_t probe = Start + quarter * (90 * 24 * 60 * 60); - struct tm const *probe_tm = localtime (&probe); - if (probe_tm && probe_tm->tm_zone - && probe_tm->tm_isdst != pc.local_time_zone_table[0].value) - { - { - pc.local_time_zone_table[1].name = probe_tm->tm_zone; - pc.local_time_zone_table[1].type = tLOCAL_ZONE; - pc.local_time_zone_table[1].value = probe_tm->tm_isdst; - pc.local_time_zone_table[2].name = NULL; - } - break; - } + time_t probe = Start + quarter * (90 * 24 * 60 * 60); + struct tm const *probe_tm = localtime (&probe); + if (probe_tm && probe_tm->tm_zone + && probe_tm->tm_isdst != pc.local_time_zone_table[0].value) + { + { + pc.local_time_zone_table[1].name = probe_tm->tm_zone; + pc.local_time_zone_table[1].type = tLOCAL_ZONE; + pc.local_time_zone_table[1].value = probe_tm->tm_isdst; + pc.local_time_zone_table[2].name = NULL; + } + break; + } } } #else @@ -1333,9 +1334,9 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) int i; for (i = 0; i < 2; i++) { - pc.local_time_zone_table[i].name = tzname[i]; - pc.local_time_zone_table[i].type = tLOCAL_ZONE; - pc.local_time_zone_table[i].value = i; + pc.local_time_zone_table[i].name = tzname[i]; + pc.local_time_zone_table[i].type = tLOCAL_ZONE; + pc.local_time_zone_table[i].value = i; } pc.local_time_zone_table[i].name = NULL; } @@ -1346,11 +1347,11 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) if (pc.local_time_zone_table[0].name && pc.local_time_zone_table[1].name && ! strcmp (pc.local_time_zone_table[0].name, - pc.local_time_zone_table[1].name)) + pc.local_time_zone_table[1].name)) { /* This locale uses the same abbrevation for standard and - daylight times. So if we see that abbreviation, we don't - know whether it's daylight time. */ + daylight times. So if we see that abbreviation, we don't + know whether it's daylight time. */ pc.local_time_zone_table[0].value = -1; pc.local_time_zone_table[1].name = NULL; } @@ -1363,158 +1364,162 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) else { if (1 < (pc.times_seen | pc.dates_seen | pc.days_seen | pc.dsts_seen - | (pc.local_zones_seen + pc.zones_seen))) - goto fail; + | (pc.local_zones_seen + pc.zones_seen))) + goto fail; tm.tm_year = to_year (pc.year) - TM_YEAR_BASE; tm.tm_mon = pc.month - 1; tm.tm_mday = pc.day; if (pc.times_seen || (pc.rels_seen && ! pc.dates_seen && ! pc.days_seen)) - { - tm.tm_hour = to_hour (pc.hour, pc.meridian); - if (tm.tm_hour < 0) - goto fail; - tm.tm_min = pc.minutes; - tm.tm_sec = pc.seconds.tv_sec; - } + { + tm.tm_hour = to_hour (pc.hour, pc.meridian); + if (tm.tm_hour < 0) + goto fail; + tm.tm_min = pc.minutes; + tm.tm_sec = pc.seconds.tv_sec; + } else - { - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - pc.seconds.tv_nsec = 0; - } + { + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + pc.seconds.tv_nsec = 0; + } /* Let mktime deduce tm_isdst if we have an absolute time stamp. */ if (pc.dates_seen | pc.days_seen | pc.times_seen) - tm.tm_isdst = -1; + tm.tm_isdst = -1; /* But if the input explicitly specifies local time with or without - DST, give mktime that information. */ + DST, give mktime that information. */ if (pc.local_zones_seen) - tm.tm_isdst = pc.local_isdst; + tm.tm_isdst = pc.local_isdst; tm0 = tm; Start = mktime (&tm); if (! mktime_ok (&tm0, &tm, Start)) - { - if (! pc.zones_seen) - goto fail; - else - { - /* Guard against falsely reporting errors near the time_t - boundaries when parsing times in other time zones. For - example, suppose the input string "1969-12-31 23:00:00 -0100", - the current time zone is 8 hours ahead of UTC, and the min - time_t value is 1970-01-01 00:00:00 UTC. Then the min - localtime value is 1970-01-01 08:00:00, and mktime will - therefore fail on 1969-12-31 23:00:00. To work around the - problem, set the time zone to 1 hour behind UTC temporarily - by setting TZ="XXX1:00" and try mktime again. */ - - long int time_zone = pc.time_zone; - long int abs_time_zone = time_zone < 0 ? - time_zone : time_zone; - long int abs_time_zone_hour = abs_time_zone / 60; - int abs_time_zone_min = abs_time_zone % 60; - char tz1buf[sizeof "XXX+0:00" - + sizeof pc.time_zone * CHAR_BIT / 3]; - if (!tz_was_altered) - tz0 = get_tz (tz0buf); - sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0), - abs_time_zone_hour, abs_time_zone_min); - if (setenv ("TZ", tz1buf, 1) != 0) - goto fail; - tz_was_altered = true; - tm = tm0; - Start = mktime (&tm); - if (! mktime_ok (&tm0, &tm, Start)) - goto fail; - } - } + { + if (! pc.zones_seen) + goto fail; + else + { + /* Guard against falsely reporting errors near the time_t + boundaries when parsing times in other time zones. For + example, suppose the input string "1969-12-31 23:00:00 -0100", + the current time zone is 8 hours ahead of UTC, and the min + time_t value is 1970-01-01 00:00:00 UTC. Then the min + localtime value is 1970-01-01 08:00:00, and mktime will + therefore fail on 1969-12-31 23:00:00. To work around the + problem, set the time zone to 1 hour behind UTC temporarily + by setting TZ="XXX1:00" and try mktime again. */ + + long int time_zone = pc.time_zone; + long int abs_time_zone = time_zone < 0 ? - time_zone : time_zone; + long int abs_time_zone_hour = abs_time_zone / 60; + int abs_time_zone_min = abs_time_zone % 60; + char tz1buf[sizeof "XXX+0:00" + + sizeof pc.time_zone * CHAR_BIT / 3]; + if (!tz_was_altered) + tz0 = get_tz (tz0buf); + sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0), + abs_time_zone_hour, abs_time_zone_min); + if (setenv ("TZ", tz1buf, 1) != 0) + goto fail; + tz_was_altered = true; + tm = tm0; + Start = mktime (&tm); + if (! mktime_ok (&tm0, &tm, Start)) + goto fail; + } + } if (pc.days_seen && ! pc.dates_seen) - { - tm.tm_mday += ((pc.day_number - tm.tm_wday + 7) % 7 - + 7 * (pc.day_ordinal - (0 < pc.day_ordinal))); - tm.tm_isdst = -1; - Start = mktime (&tm); - if (Start == (time_t) -1) - goto fail; - } + { + tm.tm_mday += ((pc.day_number - tm.tm_wday + 7) % 7 + + 7 * (pc.day_ordinal + - (0 < pc.day_ordinal + && tm.tm_wday != pc.day_number))); + tm.tm_isdst = -1; + Start = mktime (&tm); + if (Start == (time_t) -1) + goto fail; + } /* Add relative date. */ if (pc.rel.year | pc.rel.month | pc.rel.day) - { - int year = tm.tm_year + pc.rel.year; - int month = tm.tm_mon + pc.rel.month; - int day = tm.tm_mday + pc.rel.day; - if (((year < tm.tm_year) ^ (pc.rel.year < 0)) - | ((month < tm.tm_mon) ^ (pc.rel.month < 0)) - | ((day < tm.tm_mday) ^ (pc.rel.day < 0))) - goto fail; - tm.tm_year = year; - tm.tm_mon = month; - tm.tm_mday = day; - tm.tm_hour = tm0.tm_hour; - tm.tm_min = tm0.tm_min; - tm.tm_sec = tm0.tm_sec; - tm.tm_isdst = tm0.tm_isdst; - Start = mktime (&tm); - if (Start == (time_t) -1) - goto fail; - } + { + int year = tm.tm_year + pc.rel.year; + int month = tm.tm_mon + pc.rel.month; + int day = tm.tm_mday + pc.rel.day; + if (((year < tm.tm_year) ^ (pc.rel.year < 0)) + | ((month < tm.tm_mon) ^ (pc.rel.month < 0)) + | ((day < tm.tm_mday) ^ (pc.rel.day < 0))) + goto fail; + tm.tm_year = year; + tm.tm_mon = month; + tm.tm_mday = day; + tm.tm_hour = tm0.tm_hour; + tm.tm_min = tm0.tm_min; + tm.tm_sec = tm0.tm_sec; + tm.tm_isdst = tm0.tm_isdst; + Start = mktime (&tm); + if (Start == (time_t) -1) + goto fail; + } /* The only "output" of this if-block is an updated Start value, - so this block must follow others that clobber Start. */ + so this block must follow others that clobber Start. */ if (pc.zones_seen) - { - long int delta = pc.time_zone * 60; - time_t t1; + { + long int delta = pc.time_zone * 60; + time_t t1; #ifdef HAVE_TM_GMTOFF - delta -= tm.tm_gmtoff; + delta -= tm.tm_gmtoff; #else - time_t t = Start; - struct tm const *gmt = gmtime (&t); - if (! gmt) - goto fail; - delta -= tm_diff (&tm, gmt); + time_t t = Start; + struct tm const *gmt = gmtime (&t); + if (! gmt) + goto fail; + delta -= tm_diff (&tm, gmt); #endif - t1 = Start - delta; - if ((Start < t1) != (delta < 0)) - goto fail; /* time_t overflow */ - Start = t1; - } + t1 = Start - delta; + if ((Start < t1) != (delta < 0)) + goto fail; /* time_t overflow */ + Start = t1; + } /* Add relative hours, minutes, and seconds. On hosts that support - leap seconds, ignore the possibility of leap seconds; e.g., - "+ 10 minutes" adds 600 seconds, even if one of them is a - leap second. Typically this is not what the user wants, but it's - too hard to do it the other way, because the time zone indicator - must be applied before relative times, and if mktime is applied - again the time zone will be lost. */ + leap seconds, ignore the possibility of leap seconds; e.g., + "+ 10 minutes" adds 600 seconds, even if one of them is a + leap second. Typically this is not what the user wants, but it's + too hard to do it the other way, because the time zone indicator + must be applied before relative times, and if mktime is applied + again the time zone will be lost. */ { - long int sum_ns = pc.seconds.tv_nsec + pc.rel.ns; - long int normalized_ns = (sum_ns % BILLION + BILLION) % BILLION; - time_t t0 = Start; - long int d1 = 60 * 60 * pc.rel.hour; - time_t t1 = t0 + d1; - long int d2 = 60 * pc.rel.minutes; - time_t t2 = t1 + d2; - long int d3 = pc.rel.seconds; - time_t t3 = t2 + d3; - long int d4 = (sum_ns - normalized_ns) / BILLION; - time_t t4 = t3 + d4; - - if ((d1 / (60 * 60) ^ pc.rel.hour) - | (d2 / 60 ^ pc.rel.minutes) - | ((t1 < t0) ^ (d1 < 0)) - | ((t2 < t1) ^ (d2 < 0)) - | ((t3 < t2) ^ (d3 < 0)) - | ((t4 < t3) ^ (d4 < 0))) - goto fail; - - result->tv_sec = t4; - result->tv_nsec = normalized_ns; + long int sum_ns = pc.seconds.tv_nsec + pc.rel.ns; + long int normalized_ns = (sum_ns % BILLION + BILLION) % BILLION; + time_t t0 = Start; + long int d1 = 60 * 60 * pc.rel.hour; + time_t t1 = t0 + d1; + long int d2 = 60 * pc.rel.minutes; + time_t t2 = t1 + d2; + long_time_t d3 = pc.rel.seconds; + long_time_t t3 = t2 + d3; + long int d4 = (sum_ns - normalized_ns) / BILLION; + long_time_t t4 = t3 + d4; + time_t t5 = t4; + + if ((d1 / (60 * 60) ^ pc.rel.hour) + | (d2 / 60 ^ pc.rel.minutes) + | ((t1 < t0) ^ (d1 < 0)) + | ((t2 < t1) ^ (d2 < 0)) + | ((t3 < t2) ^ (d3 < 0)) + | ((t4 < t3) ^ (d4 < 0)) + | (t5 != t4)) + goto fail; + + result->tv_sec = t5; + result->tv_nsec = normalized_ns; } } @@ -1546,19 +1551,19 @@ main (int ac, char **av) struct timespec d; struct tm const *tm; if (! get_date (&d, buff, NULL)) - printf ("Bad format - couldn't convert.\n"); + printf ("Bad format - couldn't convert.\n"); else if (! (tm = localtime (&d.tv_sec))) - { - long int sec = d.tv_sec; - printf ("localtime (%ld) failed\n", sec); - } + { + long int sec = d.tv_sec; + printf ("localtime (%ld) failed\n", sec); + } else - { - int ns = d.tv_nsec; - printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", - tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec, ns); - } + { + int ns = d.tv_nsec; + printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", + tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, ns); + } printf ("\t> "); fflush (stdout); } diff --git a/lib/getdelim.c b/gnu/getdelim.c similarity index 67% rename from lib/getdelim.c rename to gnu/getdelim.c index 4cd1c1171e6a7e6c0849281fe252d615a8215056..f9b0cee66b88db6401b7735c05ec80057adbd714 100644 --- a/lib/getdelim.c +++ b/gnu/getdelim.c @@ -1,8 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* getdelim.c --- Implementation of replacement getdelim function. - Copyright (C) 1994, 1996, 1997, 1998, 2001, 2003, 2005, 2006, 2007, 2008 Free - Software Foundation, Inc. + Copyright (C) 1994, 1996, 1997, 1998, 2001, 2003, 2005, 2006, 2007, 2008, + 2009, 2010 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 @@ -23,30 +23,32 @@ #include <config.h> +/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc + optimizes away the lineptr == NULL || n == NULL || fp == NULL tests below. */ +#define _GL_ARG_NONNULL(params) + #include <stdio.h> #include <limits.h> +#include <stdint.h> #include <stdlib.h> #include <errno.h> -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" -# define getc_maybe_unlocked(fp) getc(fp) +# define getc_maybe_unlocked(fp) getc(fp) #elif !HAVE_FLOCKFILE || !HAVE_FUNLOCKFILE || !HAVE_DECL_GETC_UNLOCKED # undef flockfile # undef funlockfile # define flockfile(x) ((void) 0) # define funlockfile(x) ((void) 0) -# define getc_maybe_unlocked(fp) getc(fp) +# define getc_maybe_unlocked(fp) getc(fp) #else -# define getc_maybe_unlocked(fp) getc_unlocked(fp) +# define getc_maybe_unlocked(fp) getc_unlocked(fp) #endif /* Read up to (and including) a DELIMITER from FP into *LINEPTR (and @@ -75,10 +77,10 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) *n = 120; new_lineptr = (char *) realloc (*lineptr, *n); if (new_lineptr == NULL) - { - result = -1; - goto unlock_return; - } + { + result = -1; + goto unlock_return; + } *lineptr = new_lineptr; } @@ -88,44 +90,44 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp) i = getc_maybe_unlocked (fp); if (i == EOF) - { - result = -1; - break; - } + { + result = -1; + break; + } /* Make enough space for len+1 (for final NUL) bytes. */ if (cur_len + 1 >= *n) - { - size_t needed_max = - SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX; - size_t needed = 2 * *n + 1; /* Be generous. */ - char *new_lineptr; - - if (needed_max < needed) - needed = needed_max; - if (cur_len + 1 >= needed) - { - result = -1; - errno = EOVERFLOW; - goto unlock_return; - } - - new_lineptr = (char *) realloc (*lineptr, needed); - if (new_lineptr == NULL) - { - result = -1; - goto unlock_return; - } - - *lineptr = new_lineptr; - *n = needed; - } + { + size_t needed_max = + SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX; + size_t needed = 2 * *n + 1; /* Be generous. */ + char *new_lineptr; + + if (needed_max < needed) + needed = needed_max; + if (cur_len + 1 >= needed) + { + result = -1; + errno = EOVERFLOW; + goto unlock_return; + } + + new_lineptr = (char *) realloc (*lineptr, needed); + if (new_lineptr == NULL) + { + result = -1; + goto unlock_return; + } + + *lineptr = new_lineptr; + *n = needed; + } (*lineptr)[cur_len] = i; cur_len++; if (i == delimiter) - break; + break; } (*lineptr)[cur_len] = '\0'; result = cur_len ? cur_len : result; diff --git a/gnu/getdtablesize.c b/gnu/getdtablesize.c new file mode 100644 index 0000000000000000000000000000000000000000..b0af77b1c4f8aad7938330556eae0f94afadac47 --- /dev/null +++ b/gnu/getdtablesize.c @@ -0,0 +1,65 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* getdtablesize() function for platforms that don't have it. + Copyright (C) 2008-2010 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2008. + + 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/>. */ + +#include <config.h> + +/* Specification. */ +#include <unistd.h> + +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + +#include <stdio.h> + +/* Cache for the previous getdtablesize () result. */ +static int dtablesize; + +int +getdtablesize (void) +{ + if (dtablesize == 0) + { + /* We are looking for the number N such that the valid file descriptors + are 0..N-1. It can be obtained through a loop as follows: + { + int fd; + for (fd = 3; fd < 65536; fd++) + if (dup2 (0, fd) == -1) + break; + return fd; + } + On Windows XP, the result is 2048. + The drawback of this loop is that it allocates memory for a libc + internal array that is never freed. + + The number N can also be obtained as the upper bound for + _getmaxstdio (). _getmaxstdio () returns the maximum number of open + FILE objects. The sanity check in _setmaxstdio reveals the maximum + number of file descriptors. This too allocates memory, but it is + freed when we call _setmaxstdio with the original value. */ + int orig_max_stdio = _getmaxstdio (); + unsigned int bound; + for (bound = 0x10000; _setmaxstdio (bound) < 0; bound = bound / 2) + ; + _setmaxstdio (orig_max_stdio); + dtablesize = bound; + } + return dtablesize; +} + +#endif diff --git a/lib/getline.c b/gnu/getline.c similarity index 93% rename from lib/getline.c rename to gnu/getline.c index 6be04ef343ebdd4ddd1a7fa92af8355f4e52d929..3e5653e421467cee39186870b8918e46f32eb187 100644 --- a/lib/getline.c +++ b/gnu/getline.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* getline.c --- Implementation of replacement getline function. - Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007, 2009, 2010 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 diff --git a/gnu/getopt.c b/gnu/getopt.c new file mode 100644 index 0000000000000000000000000000000000000000..0c13f234d1e439cb0283ba654a5f8ca2b860ae17 --- /dev/null +++ b/gnu/getopt.c @@ -0,0 +1,1191 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Getopt for GNU. + NOTE: getopt is part of the C library, so if you don't know what + "Keep this file name-space clean" means, talk to drepper@gnu.org + before changing it! + Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2010 Free Software + Foundation, Inc. + This file is part of the GNU C Library. + + 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/>. */ + +#ifndef _LIBC +# include <config.h> +#endif + +#include "getopt.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#ifdef _LIBC +# include <libintl.h> +#else +# include "gettext.h" +# define _(msgid) gettext (msgid) +#endif + +#if defined _LIBC && defined USE_IN_LIBIO +# include <wchar.h> +#endif + +#ifndef attribute_hidden +# define attribute_hidden +#endif + +/* This version of `getopt' appears to the caller like standard Unix `getopt' + but it behaves differently for the user, since it allows the user + to intersperse the options with the other arguments. + + As `getopt_long' works, it permutes the elements of ARGV so that, + when it is done, all the options precede everything else. Thus + all application programs are extended to handle flexible argument order. + + Using `getopt' or setting the environment variable POSIXLY_CORRECT + disables permutation. + Then the behavior is completely standard. + + GNU application programs can use a third alternative mode in which + they can distinguish the relative order of options and other arguments. */ + +#include "getopt_int.h" + +/* For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. */ + +char *optarg; + +/* Index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + + On entry to `getopt', zero means this is the first call; initialize. + + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. */ + +/* 1003.2 says this must be 1 before any call. */ +int optind = 1; + +/* Callers store zero here to inhibit the error message + for unrecognized options. */ + +int opterr = 1; + +/* Set to an option character which was unrecognized. + This must be initialized on some systems to avoid linking in the + system's own getopt implementation. */ + +int optopt = '?'; + +/* Keep a global copy of all internal members of getopt_data. */ + +static struct _getopt_data getopt_data; + + +#if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV +extern char *getenv (); +#endif + +#ifdef _LIBC +/* Stored original parameters. + XXX This is no good solution. We should rather copy the args so + that we can compare them later. But we must not use malloc(3). */ +extern int __libc_argc; +extern char **__libc_argv; + +/* Bash 2.0 gives us an environment variable containing flags + indicating ARGV elements that should not be considered arguments. */ + +# ifdef USE_NONOPTION_FLAGS +/* Defined in getopt_init.c */ +extern char *__getopt_nonoption_flags; +# endif + +# ifdef USE_NONOPTION_FLAGS +# define SWAP_FLAGS(ch1, ch2) \ + if (d->__nonoption_flags_len > 0) \ + { \ + char __tmp = __getopt_nonoption_flags[ch1]; \ + __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ + __getopt_nonoption_flags[ch2] = __tmp; \ + } +# else +# define SWAP_FLAGS(ch1, ch2) +# endif +#else /* !_LIBC */ +# define SWAP_FLAGS(ch1, ch2) +#endif /* _LIBC */ + +/* Exchange two adjacent subsequences of ARGV. + One subsequence is elements [first_nonopt,last_nonopt) + which contains all the non-options that have been skipped so far. + The other is elements [last_nonopt,optind), which contains all + the options processed since those non-options were skipped. + + `first_nonopt' and `last_nonopt' are relocated so that they describe + the new indices of the non-options in ARGV after they are moved. */ + +static void +exchange (char **argv, struct _getopt_data *d) +{ + int bottom = d->__first_nonopt; + int middle = d->__last_nonopt; + int top = d->optind; + char *tem; + + /* Exchange the shorter segment with the far end of the longer segment. + That puts the shorter segment into the right place. + It leaves the longer segment in the right place overall, + but it consists of two parts that need to be swapped next. */ + +#if defined _LIBC && defined USE_NONOPTION_FLAGS + /* First make sure the handling of the `__getopt_nonoption_flags' + string can work normally. Our top argument must be in the range + of the string. */ + if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len) + { + /* We must extend the array. The user plays games with us and + presents new arguments. */ + char *new_str = malloc (top + 1); + if (new_str == NULL) + d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0; + else + { + memset (__mempcpy (new_str, __getopt_nonoption_flags, + d->__nonoption_flags_max_len), + '\0', top + 1 - d->__nonoption_flags_max_len); + d->__nonoption_flags_max_len = top + 1; + __getopt_nonoption_flags = new_str; + } + } +#endif + + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + /* Bottom segment is the short one. */ + int len = middle - bottom; + register int i; + + /* Swap it with the top part of the top segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); + } + /* Exclude the moved bottom segment from further swapping. */ + top -= len; + } + else + { + /* Top segment is the short one. */ + int len = top - middle; + register int i; + + /* Swap it with the bottom part of the bottom segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + SWAP_FLAGS (bottom + i, middle + i); + } + /* Exclude the moved top segment from further swapping. */ + bottom += len; + } + } + + /* Update records for the slots the non-options now occupy. */ + + d->__first_nonopt += (d->optind - d->__last_nonopt); + d->__last_nonopt = d->optind; +} + +/* Initialize the internal data when the first call is made. */ + +static const char * +_getopt_initialize (int argc _GL_UNUSED, + char **argv _GL_UNUSED, const char *optstring, + struct _getopt_data *d, int posixly_correct) +{ + /* Start processing options with ARGV-element 1 (since ARGV-element 0 + is the program name); the sequence of previously skipped + non-option ARGV-elements is empty. */ + + d->__first_nonopt = d->__last_nonopt = d->optind; + + d->__nextchar = NULL; + + d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT"); + + /* Determine how to handle the ordering of options and nonoptions. */ + + if (optstring[0] == '-') + { + d->__ordering = RETURN_IN_ORDER; + ++optstring; + } + else if (optstring[0] == '+') + { + d->__ordering = REQUIRE_ORDER; + ++optstring; + } + else if (d->__posixly_correct) + d->__ordering = REQUIRE_ORDER; + else + d->__ordering = PERMUTE; + +#if defined _LIBC && defined USE_NONOPTION_FLAGS + if (!d->__posixly_correct + && argc == __libc_argc && argv == __libc_argv) + { + if (d->__nonoption_flags_max_len == 0) + { + if (__getopt_nonoption_flags == NULL + || __getopt_nonoption_flags[0] == '\0') + d->__nonoption_flags_max_len = -1; + else + { + const char *orig_str = __getopt_nonoption_flags; + int len = d->__nonoption_flags_max_len = strlen (orig_str); + if (d->__nonoption_flags_max_len < argc) + d->__nonoption_flags_max_len = argc; + __getopt_nonoption_flags = + (char *) malloc (d->__nonoption_flags_max_len); + if (__getopt_nonoption_flags == NULL) + d->__nonoption_flags_max_len = -1; + else + memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), + '\0', d->__nonoption_flags_max_len - len); + } + } + d->__nonoption_flags_len = d->__nonoption_flags_max_len; + } + else + d->__nonoption_flags_len = 0; +#endif + + return optstring; +} + +/* Scan elements of ARGV (whose length is ARGC) for option characters + given in OPTSTRING. + + If an element of ARGV starts with '-', and is not exactly "-" or "--", + then it is an option element. The characters of this element + (aside from the initial '-') are option characters. If `getopt' + is called repeatedly, it returns successively each of the option characters + from each of the option elements. + + If `getopt' finds another option character, it returns that character, + updating `optind' and `nextchar' so that the next call to `getopt' can + resume the scan with the following option character or ARGV-element. + + If there are no more option characters, `getopt' returns -1. + Then `optind' is the index in ARGV of the first ARGV-element + that is not an option. (The ARGV-elements have been permuted + so that those that are not options now come last.) + + OPTSTRING is a string containing the legitimate option characters. + If an option character is seen that is not listed in OPTSTRING, + return '?' after printing an error message. If you set `opterr' to + zero, the error message is suppressed but we still return '?'. + + If a char in OPTSTRING is followed by a colon, that means it wants an arg, + so the following text in the same ARGV-element, or the text of the following + ARGV-element, is returned in `optarg'. Two colons mean an option that + wants an optional arg; if there is text in the current ARGV-element, + it is returned in `optarg', otherwise `optarg' is set to zero. + + If OPTSTRING starts with `-' or `+', it requests different methods of + handling the non-option ARGV-elements. + See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. + + Long-named options begin with `--' instead of `-'. + Their names may be abbreviated as long as the abbreviation is unique + or is an exact match for some defined option. If they have an + argument, it follows the option name in the same ARGV-element, separated + from the option name by a `=', or else the in next ARGV-element. + When `getopt' finds a long-named option, it returns 0 if that option's + `flag' field is nonzero, the value of the option's `val' field + if the `flag' field is zero. + + The elements of ARGV aren't really const, because we permute them. + But we pretend they're const in the prototype to be compatible + with other systems. + + LONGOPTS is a vector of `struct option' terminated by an + element containing a name which is zero. + + LONGIND returns the index in LONGOPT of the long-named option found. + It is only valid when a long-named option has been found by the most + recent call. + + If LONG_ONLY is nonzero, '-' as well as '--' can introduce + long-named options. */ + +int +_getopt_internal_r (int argc, char **argv, const char *optstring, + const struct option *longopts, int *longind, + int long_only, struct _getopt_data *d, int posixly_correct) +{ + int print_errors = d->opterr; + if (optstring[0] == ':') + print_errors = 0; + + if (argc < 1) + return -1; + + d->optarg = NULL; + + if (d->optind == 0 || !d->__initialized) + { + if (d->optind == 0) + d->optind = 1; /* Don't scan ARGV[0], the program name. */ + optstring = _getopt_initialize (argc, argv, optstring, d, + posixly_correct); + d->__initialized = 1; + } + + /* Test whether ARGV[optind] points to a non-option argument. + Either it does not have option syntax, or there is an environment flag + from the shell indicating it is not an option. The later information + is only used when the used in the GNU libc. */ +#if defined _LIBC && defined USE_NONOPTION_FLAGS +# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \ + || (d->optind < d->__nonoption_flags_len \ + && __getopt_nonoption_flags[d->optind] == '1')) +#else +# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') +#endif + + if (d->__nextchar == NULL || *d->__nextchar == '\0') + { + /* Advance to the next ARGV-element. */ + + /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been + moved back by the user (who may also have changed the arguments). */ + if (d->__last_nonopt > d->optind) + d->__last_nonopt = d->optind; + if (d->__first_nonopt > d->optind) + d->__first_nonopt = d->optind; + + if (d->__ordering == PERMUTE) + { + /* If we have just processed some options following some non-options, + exchange them so that the options come first. */ + + if (d->__first_nonopt != d->__last_nonopt + && d->__last_nonopt != d->optind) + exchange ((char **) argv, d); + else if (d->__last_nonopt != d->optind) + d->__first_nonopt = d->optind; + + /* Skip any additional non-options + and extend the range of non-options previously skipped. */ + + while (d->optind < argc && NONOPTION_P) + d->optind++; + d->__last_nonopt = d->optind; + } + + /* The special ARGV-element `--' means premature end of options. + Skip it like a null option, + then exchange with previous non-options as if it were an option, + then skip everything else like a non-option. */ + + if (d->optind != argc && !strcmp (argv[d->optind], "--")) + { + d->optind++; + + if (d->__first_nonopt != d->__last_nonopt + && d->__last_nonopt != d->optind) + exchange ((char **) argv, d); + else if (d->__first_nonopt == d->__last_nonopt) + d->__first_nonopt = d->optind; + d->__last_nonopt = argc; + + d->optind = argc; + } + + /* If we have done all the ARGV-elements, stop the scan + and back over any non-options that we skipped and permuted. */ + + if (d->optind == argc) + { + /* Set the next-arg-index to point at the non-options + that we previously skipped, so the caller will digest them. */ + if (d->__first_nonopt != d->__last_nonopt) + d->optind = d->__first_nonopt; + return -1; + } + + /* If we have come to a non-option and did not permute it, + either stop the scan or describe it to the caller and pass it by. */ + + if (NONOPTION_P) + { + if (d->__ordering == REQUIRE_ORDER) + return -1; + d->optarg = argv[d->optind++]; + return 1; + } + + /* We have found another option-ARGV-element. + Skip the initial punctuation. */ + + d->__nextchar = (argv[d->optind] + 1 + + (longopts != NULL && argv[d->optind][1] == '-')); + } + + /* Decode the current option-ARGV-element. */ + + /* Check whether the ARGV-element is a long option. + + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + + if (longopts != NULL + && (argv[d->optind][1] == '-' + || (long_only && (argv[d->optind][2] + || !strchr (optstring, argv[d->optind][1]))))) + { + char *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = -1; + int option_index; + + for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) + /* Do nothing. */ ; + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) + { + if ((unsigned int) (nameend - d->__nextchar) + == (unsigned int) strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else if (long_only + || pfound->has_arg != p->has_arg + || pfound->flag != p->flag + || pfound->val != p->val) + /* Second or later nonexact match found. */ + ambig = 1; + } + + if (ambig && !exact) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("%s: option '%s' is ambiguous\n"), + argv[0], argv[d->optind]) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, _("%s: option '%s' is ambiguous\n"), + argv[0], argv[d->optind]); +#endif + } + d->__nextchar += strlen (d->__nextchar); + d->optind++; + d->optopt = 0; + return '?'; + } + + if (pfound != NULL) + { + option_index = indfound; + d->optind++; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + d->optarg = nameend + 1; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + int n; +#endif + + if (argv[d->optind - 1][1] == '-') + { + /* --option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("\ +%s: option '--%s' doesn't allow an argument\n"), + argv[0], pfound->name); +#else + fprintf (stderr, _("\ +%s: option '--%s' doesn't allow an argument\n"), + argv[0], pfound->name); +#endif + } + else + { + /* +option or -option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("\ +%s: option '%c%s' doesn't allow an argument\n"), + argv[0], argv[d->optind - 1][0], + pfound->name); +#else + fprintf (stderr, _("\ +%s: option '%c%s' doesn't allow an argument\n"), + argv[0], argv[d->optind - 1][0], + pfound->name); +#endif + } + +#if defined _LIBC && defined USE_IN_LIBIO + if (n >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#endif + } + + d->__nextchar += strlen (d->__nextchar); + + d->optopt = pfound->val; + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (d->optind < argc) + d->optarg = argv[d->optind++]; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("\ +%s: option '%s' requires an argument\n"), + argv[0], argv[d->optind - 1]) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, + _("%s: option '%s' requires an argument\n"), + argv[0], argv[d->optind - 1]); +#endif + } + d->__nextchar += strlen (d->__nextchar); + d->optopt = pfound->val; + return optstring[0] == ':' ? ':' : '?'; + } + } + d->__nextchar += strlen (d->__nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + + /* Can't find it as a long option. If this is not getopt_long_only, + or the option starts with '--' or is not a valid short + option, then it's an error. + Otherwise interpret it as a short option. */ + if (!long_only || argv[d->optind][1] == '-' + || strchr (optstring, *d->__nextchar) == NULL) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + int n; +#endif + + if (argv[d->optind][1] == '-') + { + /* --option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("%s: unrecognized option '--%s'\n"), + argv[0], d->__nextchar); +#else + fprintf (stderr, _("%s: unrecognized option '--%s'\n"), + argv[0], d->__nextchar); +#endif + } + else + { + /* +option or -option */ +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("%s: unrecognized option '%c%s'\n"), + argv[0], argv[d->optind][0], d->__nextchar); +#else + fprintf (stderr, _("%s: unrecognized option '%c%s'\n"), + argv[0], argv[d->optind][0], d->__nextchar); +#endif + } + +#if defined _LIBC && defined USE_IN_LIBIO + if (n >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#endif + } + d->__nextchar = (char *) ""; + d->optind++; + d->optopt = 0; + return '?'; + } + } + + /* Look at and handle the next short option-character. */ + + { + char c = *d->__nextchar++; + char *temp = strchr (optstring, c); + + /* Increment `optind' when we start to process its last character. */ + if (*d->__nextchar == '\0') + ++d->optind; + + if (temp == NULL || c == ':') + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + int n; +#endif + +#if defined _LIBC && defined USE_IN_LIBIO + n = __asprintf (&buf, _("%s: invalid option -- '%c'\n"), + argv[0], c); +#else + fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c); +#endif + +#if defined _LIBC && defined USE_IN_LIBIO + if (n >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#endif + } + d->optopt = c; + return '?'; + } + /* Convenience. Treat POSIX -W foo same as long option --foo */ + if (temp[0] == 'W' && temp[1] == ';') + { + char *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = 0; + int option_index; + + /* This is an option that requires an argument. */ + if (*d->__nextchar != '\0') + { + d->optarg = d->__nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + d->optind++; + } + else if (d->optind == argc) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, + _("%s: option requires an argument -- '%c'\n"), + argv[0], c) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, + _("%s: option requires an argument -- '%c'\n"), + argv[0], c); +#endif + } + d->optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + return c; + } + else + /* We already incremented `d->optind' once; + increment it again when taking next ARGV-elt as argument. */ + d->optarg = argv[d->optind++]; + + /* optarg is now the argument, see if it's in the + table of longopts. */ + + for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '='; + nameend++) + /* Do nothing. */ ; + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) + { + if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else + /* Second or later nonexact match found. */ + ambig = 1; + } + if (ambig && !exact) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("%s: option '-W %s' is ambiguous\n"), + argv[0], argv[d->optind]) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, _("%s: option '-W %s' is ambiguous\n"), + argv[0], argv[d->optind]); +#endif + } + d->__nextchar += strlen (d->__nextchar); + d->optind++; + return '?'; + } + if (pfound != NULL) + { + option_index = indfound; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + d->optarg = nameend + 1; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("\ +%s: option '-W %s' doesn't allow an argument\n"), + argv[0], pfound->name) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, _("\ +%s: option '-W %s' doesn't allow an argument\n"), + argv[0], pfound->name); +#endif + } + + d->__nextchar += strlen (d->__nextchar); + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (d->optind < argc) + d->optarg = argv[d->optind++]; + else + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("\ +%s: option '%s' requires an argument\n"), + argv[0], argv[d->optind - 1]) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 + |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, + _("%s: option '%s' requires an argument\n"), + argv[0], argv[d->optind - 1]); +#endif + } + d->__nextchar += strlen (d->__nextchar); + return optstring[0] == ':' ? ':' : '?'; + } + } + d->__nextchar += strlen (d->__nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + d->__nextchar = NULL; + return 'W'; /* Let the application handle it. */ + } + if (temp[1] == ':') + { + if (temp[2] == ':') + { + /* This is an option that accepts an argument optionally. */ + if (*d->__nextchar != '\0') + { + d->optarg = d->__nextchar; + d->optind++; + } + else + d->optarg = NULL; + d->__nextchar = NULL; + } + else + { + /* This is an option that requires an argument. */ + if (*d->__nextchar != '\0') + { + d->optarg = d->__nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + d->optind++; + } + else if (d->optind == argc) + { + if (print_errors) + { +#if defined _LIBC && defined USE_IN_LIBIO + char *buf; + + if (__asprintf (&buf, _("\ +%s: option requires an argument -- '%c'\n"), + argv[0], c) >= 0) + { + _IO_flockfile (stderr); + + int old_flags2 = ((_IO_FILE *) stderr)->_flags2; + ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; + + __fxprintf (NULL, "%s", buf); + + ((_IO_FILE *) stderr)->_flags2 = old_flags2; + _IO_funlockfile (stderr); + + free (buf); + } +#else + fprintf (stderr, + _("%s: option requires an argument -- '%c'\n"), + argv[0], c); +#endif + } + d->optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + } + else + /* We already incremented `optind' once; + increment it again when taking next ARGV-elt as argument. */ + d->optarg = argv[d->optind++]; + d->__nextchar = NULL; + } + } + return c; + } +} + +int +_getopt_internal (int argc, char **argv, const char *optstring, + const struct option *longopts, int *longind, int long_only, + int posixly_correct) +{ + int result; + + getopt_data.optind = optind; + getopt_data.opterr = opterr; + + result = _getopt_internal_r (argc, argv, optstring, longopts, + longind, long_only, &getopt_data, + posixly_correct); + + optind = getopt_data.optind; + optarg = getopt_data.optarg; + optopt = getopt_data.optopt; + + return result; +} + +/* glibc gets a LSB-compliant getopt. + Standalone applications get a POSIX-compliant getopt. */ +#if _LIBC +enum { POSIXLY_CORRECT = 0 }; +#else +enum { POSIXLY_CORRECT = 1 }; +#endif + +int +getopt (int argc, char *const *argv, const char *optstring) +{ + return _getopt_internal (argc, (char **) argv, optstring, + (const struct option *) 0, + (int *) 0, + 0, POSIXLY_CORRECT); +} + +#ifdef _LIBC +int +__posix_getopt (int argc, char *const *argv, const char *optstring) +{ + return _getopt_internal (argc, argv, optstring, + (const struct option *) 0, + (int *) 0, + 0, 1); +} +#endif + + +#ifdef TEST + +/* Compile with -DTEST to make an executable for use in testing + the above definition of `getopt'. */ + +int +main (int argc, char **argv) +{ + int c; + int digit_optind = 0; + + while (1) + { + int this_option_optind = optind ? optind : 1; + + c = getopt (argc, argv, "abc:d:0123456789"); + if (c == -1) + break; + + switch (c) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value '%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } + } + + if (optind < argc) + { + printf ("non-option ARGV-elements: "); + while (optind < argc) + printf ("%s ", argv[optind++]); + printf ("\n"); + } + + exit (0); +} + +#endif /* TEST */ diff --git a/lib/getopt.in.h b/gnu/getopt.in.h similarity index 80% rename from lib/getopt.in.h rename to gnu/getopt.in.h index d2d3e6e63bb484f2554713e2269972c752330aa4..3478945a035f155969219490f3529cfc88fad271 100644 --- a/lib/getopt.in.h +++ b/gnu/getopt.in.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Declarations for getopt. - Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006,2007 - Free Software Foundation, Inc. + Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2010 Free Software + Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -16,24 +18,42 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef _GETOPT_H +#ifndef _GL_GETOPT_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +/* The include_next requires a split double-inclusion guard. We must + also inform the replacement unistd.h to not recursively use + <getopt.h>; our definitions will be present soon enough. */ +#if @HAVE_GETOPT_H@ +# define _GL_SYSTEM_GETOPT +# @INCLUDE_NEXT@ @NEXT_GETOPT_H@ +# undef _GL_SYSTEM_GETOPT +#endif + +#ifndef _GL_GETOPT_H #ifndef __need_getopt -# define _GETOPT_H 1 +# define _GL_GETOPT_H 1 #endif /* Standalone applications should #define __GETOPT_PREFIX to an identifier that prefixes the external functions and variables defined in this header. When this happens, include the headers that might declare getopt so that they will not cause - confusion if included after this file. Then systematically rename + confusion if included after this file (if the system had <getopt.h>, + we have already included it). Then systematically rename identifiers so that they do not collide with the system functions and variables. Renaming avoids problems with some compilers and linkers. */ #if defined __GETOPT_PREFIX && !defined __need_getopt -# include <stdlib.h> -# include <stdio.h> -# include <unistd.h> +# if !@HAVE_GETOPT_H@ +# include <stdlib.h> +# include <stdio.h> +# include <unistd.h> +# endif # undef __need_getopt # undef getopt # undef getopt_long @@ -42,6 +62,7 @@ # undef opterr # undef optind # undef optopt +# undef option # define __GETOPT_CONCAT(x, y) x ## y # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) @@ -52,6 +73,8 @@ # define opterr __GETOPT_ID (opterr) # define optind __GETOPT_ID (optind) # define optopt __GETOPT_ID (optopt) +# define option __GETOPT_ID (option) +# define _getopt_internal __GETOPT_ID (getopt_internal) #endif /* Standalone applications get correct prototypes for getopt_long and @@ -94,12 +117,14 @@ # define __GNUC_PREREQ(maj, min) (0) # endif # if defined __cplusplus && __GNUC_PREREQ (2,8) -# define __THROW throw () +# define __THROW throw () # else # define __THROW # endif #endif +/* The definition of _GL_ARG_NONNULL is copied here. */ + #ifdef __cplusplus extern "C" { #endif @@ -142,9 +167,9 @@ extern int optopt; zero. The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. + no_argument (or 0) if the option does not take an argument, + required_argument (or 1) if the option requires an argument, + optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but @@ -169,10 +194,10 @@ struct option /* Names for the values of the `has_arg' field of `struct option'. */ -# define no_argument 0 -# define required_argument 1 -# define optional_argument 2 -#endif /* need getopt */ +# define no_argument 0 +# define required_argument 1 +# define optional_argument 2 +#endif /* need getopt */ /* Get definitions and prototypes for functions to process the @@ -201,17 +226,17 @@ struct option the environment, then do not permute arguments. */ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) - __THROW; + __THROW _GL_ARG_NONNULL ((2, 3)); #ifndef __need_getopt extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind) - __THROW; + const char *__shortopts, + const struct option *__longopts, int *__longind) + __THROW _GL_ARG_NONNULL ((2, 3)); extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind) - __THROW; + const char *__shortopts, + const struct option *__longopts, int *__longind) + __THROW _GL_ARG_NONNULL ((2, 3)); #endif @@ -223,3 +248,4 @@ extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, #undef __need_getopt #endif /* getopt.h */ +#endif /* getopt.h */ diff --git a/lib/getopt1.c b/gnu/getopt1.c similarity index 51% rename from lib/getopt1.c rename to gnu/getopt1.c index d6a3ecf4e709543b202652a300c9721286ad504a..fbef7754968c3f6e0cf9249de8f4d462f13ef6bc 100644 --- a/lib/getopt1.c +++ b/gnu/getopt1.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2004,2006 - Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, + 1998, 2004, 2006, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -32,25 +34,25 @@ #include <stdlib.h> #endif -#ifndef NULL +#ifndef NULL #define NULL 0 #endif int getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, - const struct option *long_options, int *opt_index) + const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, - opt_index, 0, 0); + opt_index, 0, 0); } int _getopt_long_r (int argc, char **argv, const char *options, - const struct option *long_options, int *opt_index, - struct _getopt_data *d) + const struct option *long_options, int *opt_index, + struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, - 0, 0, d); + 0, d, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. @@ -60,20 +62,20 @@ _getopt_long_r (int argc, char **argv, const char *options, int getopt_long_only (int argc, char *__getopt_argv_const *argv, - const char *options, - const struct option *long_options, int *opt_index) + const char *options, + const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, - opt_index, 1, 0); + opt_index, 1, 0); } int _getopt_long_only_r (int argc, char **argv, const char *options, - const struct option *long_options, int *opt_index, - struct _getopt_data *d) + const struct option *long_options, int *opt_index, + struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, - 1, 0, d); + 1, d, 0); } @@ -91,76 +93,76 @@ main (int argc, char **argv) { int this_option_optind = optind ? optind : 1; int option_index = 0; - static struct option long_options[] = + static const struct option long_options[] = { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} + {"add", 1, 0, 0}, + {"append", 0, 0, 0}, + {"delete", 1, 0, 0}, + {"verbose", 0, 0, 0}, + {"create", 0, 0, 0}, + {"file", 1, 0, 0}, + {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); + long_options, &option_index); if (c == -1) - break; + break; switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } + { + case 0: + printf ("option %s", long_options[option_index].name); + if (optarg) + printf (" with arg %s", optarg); + printf ("\n"); + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", optarg); + break; + + case 'd': + printf ("option d with value `%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) - printf ("%s ", argv[optind++]); + printf ("%s ", argv[optind++]); printf ("\n"); } diff --git a/lib/getopt_int.h b/gnu/getopt_int.h similarity index 77% rename from lib/getopt_int.h rename to gnu/getopt_int.h index 3c6628bb94a920215a25a562b9c5b408c30b9cf7..0095d44ac47c0543d495274a189709b772bd0168 100644 --- a/lib/getopt_int.h +++ b/gnu/getopt_int.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Internal declarations for getopt. - Copyright (C) 1989-1994,1996-1999,2001,2003,2004 - Free Software Foundation, Inc. + Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2010 Free Software + Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -17,12 +19,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _GETOPT_INT_H -#define _GETOPT_INT_H 1 +#define _GETOPT_INT_H 1 + +#include <getopt.h> extern int _getopt_internal (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only, int __posixly_correct); + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, int __posixly_correct); /* Reentrant versions which can handle parsing multiple argument @@ -108,23 +112,23 @@ struct _getopt_data /* The initializer is necessary to set OPTIND and OPTERR to their default values and to clear the initialization flag. */ -#define _GETOPT_DATA_INITIALIZER { 1, 1 } +#define _GETOPT_DATA_INITIALIZER { 1, 1 } extern int _getopt_internal_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only, int __posixly_correct, - struct _getopt_data *__data); + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, struct _getopt_data *__data, + int __posixly_correct); extern int _getopt_long_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - struct _getopt_data *__data); + const char *__shortopts, + const struct option *__longopts, int *__longind, + struct _getopt_data *__data); extern int _getopt_long_only_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, - int *__longind, - struct _getopt_data *__data); + const char *__shortopts, + const struct option *__longopts, + int *__longind, + struct _getopt_data *__data); #endif /* getopt_int.h */ diff --git a/lib/getpagesize.c b/gnu/getpagesize.c similarity index 88% rename from lib/getpagesize.c rename to gnu/getpagesize.c index 5498aa9483312e814f8cd1c654be4ebefe07a5d9..41f0cfb5b900a844c7fea561fe2abdae7559f47d 100644 --- a/lib/getpagesize.c +++ b/gnu/getpagesize.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* getpagesize emulation for systems where it cannot be done in a C macro. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2010 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 diff --git a/lib/gettext.h b/gnu/gettext.h similarity index 91% rename from lib/gettext.h rename to gnu/gettext.h index 89b4febfed7ab8bcb7c2325124bf1efd46510c66..360d176188372c18c63483580d2022f8b1cda512 100644 --- a/lib/gettext.h +++ b/gnu/gettext.h @@ -1,7 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convenience header for conditional use of GNU <libintl.h>. - Copyright (C) 1995-1998, 2000-2002, 2004-2006 Free Software Foundation, Inc. + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2010 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 @@ -65,21 +66,30 @@ for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ +# undef gettext # define gettext(Msgid) ((const char *) (Msgid)) +# undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) +# undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) +# undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) +# undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) +# undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N)) +# undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) +# undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) +# undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) @@ -133,8 +143,8 @@ inline #endif static const char * pgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - int category) + const char *msg_ctxt_id, const char *msgid, + int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) @@ -152,9 +162,9 @@ inline #endif static const char * npgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) + const char *msg_ctxt_id, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); @@ -192,8 +202,8 @@ inline #endif static const char * dcpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - int category) + const char *msgctxt, const char *msgid, + int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; @@ -215,10 +225,10 @@ dcpgettext_expr (const char *domain, translation = dcgettext (domain, msg_ctxt_id, category); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) - free (msg_ctxt_id); + free (msg_ctxt_id); #endif if (translation != msg_ctxt_id) - return translation; + return translation; } return msgid; } @@ -237,9 +247,9 @@ inline #endif static const char * dcnpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) + const char *msgctxt, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; @@ -261,10 +271,10 @@ dcnpgettext_expr (const char *domain, translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) - free (msg_ctxt_id); + free (msg_ctxt_id); #endif if (!(translation == msg_ctxt_id || translation == msgid_plural)) - return translation; + return translation; } return (n == 1 ? msgid : msgid_plural); } diff --git a/lib/gettime.c b/gnu/gettime.c similarity index 87% rename from lib/gettime.c rename to gnu/gettime.c index 1b8533637dab31439c520e994672debc7b2a3c23..542d79e1d82e55594e3ee1e2e98cbe046c3f3400 100644 --- a/lib/gettime.c +++ b/gnu/gettime.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* gettime -- get the system clock - Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2002, 2004-2007, 2009-2010 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 diff --git a/lib/gettimeofday.c b/gnu/gettimeofday.c similarity index 94% rename from lib/gettimeofday.c rename to gnu/gettimeofday.c index 1d977b1acc15c838bb6e4cf516b0efa7e0960cd9..cdd8466334a4fcc889e2498e8c16f44b7bde18a1 100644 --- a/lib/gettimeofday.c +++ b/gnu/gettimeofday.c @@ -2,8 +2,7 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Provide gettimeofday for systems that don't have it or for which it's broken. - Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007 Free Software - Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2010 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 @@ -103,7 +102,7 @@ rpl_tzset (void) causes problems. */ int -rpl_gettimeofday (struct timeval *restrict tv, void *restrict tz) +gettimeofday (struct timeval *restrict tv, void *restrict tz) { #undef gettimeofday #if HAVE_GETTIMEOFDAY @@ -113,7 +112,7 @@ rpl_gettimeofday (struct timeval *restrict tv, void *restrict tz) struct tm save = *localtime_buffer_addr; # endif - int result = gettimeofday (tv, tz); + int result = gettimeofday (tv, (struct timezone *) tz); # if GETTIMEOFDAY_CLOBBERS_LOCALTIME *localtime_buffer_addr = save; diff --git a/gnu/hash-pjw.c b/gnu/hash-pjw.c new file mode 100644 index 0000000000000000000000000000000000000000..eac00c65601b70565ea187bb1a25f79acc9c2417 --- /dev/null +++ b/gnu/hash-pjw.c @@ -0,0 +1,42 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* hash-pjw.c -- compute a hash value from a NUL-terminated string. + + Copyright (C) 2001, 2003, 2006, 2009-2010 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/>. */ + +#include <config.h> + +#include "hash-pjw.h" + +#include <limits.h> + +#define SIZE_BITS (sizeof (size_t) * CHAR_BIT) + +/* A hash function for NUL-terminated char* strings using + the method described by Bruno Haible. + See http://www.haible.de/bruno/hashfunc.html. */ + +size_t +hash_pjw (const void *x, size_t tablesize) +{ + const char *s; + size_t h = 0; + + for (s = x; *s; s++) + h = *s + ((h << 9) | (h >> (SIZE_BITS - 9))); + + return h % tablesize; +} diff --git a/gnu/hash-pjw.h b/gnu/hash-pjw.h new file mode 100644 index 0000000000000000000000000000000000000000..5f674d55ef3f5c9f8eff32665faad53c02936073 --- /dev/null +++ b/gnu/hash-pjw.h @@ -0,0 +1,25 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* hash-pjw.h -- declaration for a simple hash function + Copyright (C) 2001, 2003, 2009-2010 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/>. */ + +#include <stddef.h> + +/* Compute a hash code for a NUL-terminated string starting at X, + and return the hash code modulo TABLESIZE. + The result is platform dependent: it depends on the size of the 'size_t' + type and on the signedness of the 'char' type. */ +extern size_t hash_pjw (void const *x, size_t tablesize); diff --git a/gnu/hash-triple.c b/gnu/hash-triple.c new file mode 100644 index 0000000000000000000000000000000000000000..6a44520d10ac5e394996f6be10938f09ec0d8e4b --- /dev/null +++ b/gnu/hash-triple.c @@ -0,0 +1,79 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Hash functions for file-related triples: name, device, inode. + Copyright (C) 2007, 2009-2010 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 Jim Meyering */ + +#include <config.h> + +#include "hash-triple.h" + +#include <stdlib.h> +#include <string.h> + +#include "hash-pjw.h" +#include "same.h" +#include "same-inode.h" + +#define STREQ(a, b) (strcmp (a, b) == 0) + +/* Hash an F_triple, and *do* consider the file name. */ +size_t +triple_hash (void const *x, size_t table_size) +{ + struct F_triple const *p = x; + size_t tmp = hash_pjw (p->name, table_size); + + /* Ignoring the device number here should be fine. */ + return (tmp ^ p->st_ino) % table_size; +} + +/* Hash an F_triple, without considering the file name. */ +size_t +triple_hash_no_name (void const *x, size_t table_size) +{ + struct F_triple const *p = x; + + /* Ignoring the device number here should be fine. */ + return p->st_ino % table_size; +} + +/* Compare two F_triple structs. */ +bool +triple_compare (void const *x, void const *y) +{ + struct F_triple const *a = x; + struct F_triple const *b = y; + return (SAME_INODE (*a, *b) && same_name (a->name, b->name)) ? true : false; +} + +bool +triple_compare_ino_str (void const *x, void const *y) +{ + struct F_triple const *a = x; + struct F_triple const *b = y; + return (SAME_INODE (*a, *b) && STREQ (a->name, b->name)) ? true : false; +} + +/* Free an F_triple. */ +void +triple_free (void *x) +{ + struct F_triple *a = x; + free (a->name); + free (a); +} diff --git a/gnu/hash-triple.h b/gnu/hash-triple.h new file mode 100644 index 0000000000000000000000000000000000000000..39bb3358e78fae842116c981f1dbfd1ea07be4b0 --- /dev/null +++ b/gnu/hash-triple.h @@ -0,0 +1,24 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#ifndef HASH_TRIPLE_H +#define HASH_TRIPLE_H + +#include <sys/types.h> +#include <sys/stat.h> +#include <stdbool.h> + +/* Describe a just-created or just-renamed destination file. */ +struct F_triple +{ + char *name; + ino_t st_ino; + dev_t st_dev; +}; + +extern size_t triple_hash (void const *x, size_t table_size); +extern size_t triple_hash_no_name (void const *x, size_t table_size); +extern bool triple_compare (void const *x, void const *y); +extern bool triple_compare_ino_str (void const *x, void const *y); +extern void triple_free (void *x); + +#endif diff --git a/lib/hash.c b/gnu/hash.c similarity index 61% rename from lib/hash.c rename to gnu/hash.c index 7d76d45f71250c5d6b92a816fc69b1e23c4ce5a3..2278c30bf214d6684670878e86c086ab1edfe0e9 100644 --- a/lib/hash.c +++ b/gnu/hash.c @@ -1,7 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* hash - hashing table processing. - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007 Free - Software Foundation, Inc. + Copyright (C) 1998-2004, 2006-2007, 2009-2010 Free Software Foundation, Inc. Written by Jim Meyering, 1992. @@ -26,9 +27,11 @@ #include <config.h> #include "hash.h" + +#include "bitrotate.h" #include "xalloc.h" -#include <limits.h> +#include <stdint.h> #include <stdio.h> #include <stdlib.h> @@ -42,9 +45,11 @@ # endif #endif -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif +struct hash_entry + { + void *data; + struct hash_entry *next; + }; struct hash_table { @@ -57,7 +62,7 @@ struct hash_table size_t n_buckets_used; size_t n_entries; - /* Tuning arguments, kept in a physicaly separate structure. */ + /* Tuning arguments, kept in a physically separate structure. */ const Hash_tuning *tuning; /* Three functions are given to `hash_initialize', see the documentation @@ -81,7 +86,7 @@ struct hash_table }; /* A hash table contains many internal entries, each holding a pointer to - some user provided data (also called a user entry). An entry indistinctly + some user-provided data (also called a user entry). An entry indistinctly refers to both the internal entry and its associated user entry. A user entry contents may be hashed by a randomization function (the hashing function, or just `hasher' for short) into a number (or `slot') between 0 @@ -176,16 +181,16 @@ hash_get_max_bucket_length (const Hash_table *table) for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) - { - struct hash_entry const *cursor = bucket; - size_t bucket_length = 1; + { + struct hash_entry const *cursor = bucket; + size_t bucket_length = 1; - while (cursor = cursor->next, cursor) - bucket_length++; + while (cursor = cursor->next, cursor) + bucket_length++; - if (bucket_length > max_bucket_length) - max_bucket_length = bucket_length; - } + if (bucket_length > max_bucket_length) + max_bucket_length = bucket_length; + } } return max_bucket_length; @@ -204,17 +209,17 @@ hash_table_ok (const Hash_table *table) for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) - { - struct hash_entry const *cursor = bucket; + { + struct hash_entry const *cursor = bucket; - /* Count bucket head. */ - n_buckets_used++; - n_entries++; + /* Count bucket head. */ + n_buckets_used++; + n_entries++; - /* Count bucket overflow. */ - while (cursor = cursor->next, cursor) - n_entries++; - } + /* Count bucket overflow. */ + while (cursor = cursor->next, cursor) + n_entries++; + } } if (n_buckets_used == table->n_buckets_used && n_entries == table->n_entries) @@ -234,10 +239,10 @@ hash_print_statistics (const Hash_table *table, FILE *stream) fprintf (stream, "# entries: %lu\n", (unsigned long int) n_entries); fprintf (stream, "# buckets: %lu\n", (unsigned long int) n_buckets); fprintf (stream, "# buckets used: %lu (%.2f%%)\n", - (unsigned long int) n_buckets_used, - (100.0 * n_buckets_used) / n_buckets); + (unsigned long int) n_buckets_used, + (100.0 * n_buckets_used) / n_buckets); fprintf (stream, "max bucket length: %lu\n", - (unsigned long int) max_bucket_length); + (unsigned long int) max_bucket_length); } /* If ENTRY matches an entry already in the hash table, return the @@ -257,7 +262,7 @@ hash_lookup (const Hash_table *table, const void *entry) return NULL; for (cursor = bucket; cursor; cursor = cursor->next) - if (table->comparator (entry, cursor->data)) + if (entry == cursor->data || table->comparator (entry, cursor->data)) return cursor->data; return NULL; @@ -268,7 +273,9 @@ hash_lookup (const Hash_table *table, const void *entry) /* The functions in this page traverse the hash table and process the contained entries. For the traversal to work properly, the hash table should not be resized nor modified while any particular entry is being - processed. In particular, entries should not be added or removed. */ + processed. In particular, entries should not be added, and an entry + may be removed only if there is no shrink threshold and the entry being + removed has already been passed to hash_get_next. */ /* Return the first data in the table, or NULL if the table is empty. */ @@ -321,7 +328,7 @@ hash_get_next (const Hash_table *table, const void *entry) size_t hash_get_entries (const Hash_table *table, void **buffer, - size_t buffer_size) + size_t buffer_size) { size_t counter = 0; struct hash_entry const *bucket; @@ -330,14 +337,14 @@ hash_get_entries (const Hash_table *table, void **buffer, for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) - { - for (cursor = bucket; cursor; cursor = cursor->next) - { - if (counter >= buffer_size) - return counter; - buffer[counter++] = cursor->data; - } - } + { + for (cursor = bucket; cursor; cursor = cursor->next) + { + if (counter >= buffer_size) + return counter; + buffer[counter++] = cursor->data; + } + } } return counter; @@ -353,7 +360,7 @@ hash_get_entries (const Hash_table *table, void **buffer, size_t hash_do_for_each (const Hash_table *table, Hash_processor processor, - void *processor_data) + void *processor_data) { size_t counter = 0; struct hash_entry const *bucket; @@ -362,14 +369,14 @@ hash_do_for_each (const Hash_table *table, Hash_processor processor, for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) - { - for (cursor = bucket; cursor; cursor = cursor->next) - { - if (!(*processor) (cursor->data, processor_data)) - return counter; - counter++; - } - } + { + for (cursor = bucket; cursor; cursor = cursor->next) + { + if (! processor (cursor->data, processor_data)) + return counter; + counter++; + } + } } return counter; @@ -391,10 +398,8 @@ hash_do_for_each (const Hash_table *table, Hash_processor processor, size_t hash_string (const char *string, size_t n_buckets) { -# define ROTATE_LEFT(Value, Shift) \ - ((Value) << (Shift) | (Value) >> ((sizeof (size_t) * CHAR_BIT) - (Shift))) # define HASH_ONE_CHAR(Value, Byte) \ - ((Byte) + ROTATE_LEFT (Value, 7)) + ((Byte) + rotl_sz (Value, 7)) size_t value = 0; unsigned char ch; @@ -403,7 +408,6 @@ hash_string (const char *string, size_t n_buckets) value = HASH_ONE_CHAR (value, ch); return value % n_buckets; -# undef ROTATE_LEFT # undef HASH_ONE_CHAR } @@ -459,7 +463,7 @@ next_prime (size_t candidate) /* Make it definitely odd. */ candidate |= 1; - while (!is_prime (candidate)) + while (SIZE_MAX != candidate && !is_prime (candidate)) candidate += 2; return candidate; @@ -471,6 +475,27 @@ hash_reset_tuning (Hash_tuning *tuning) *tuning = default_tuning; } +/* If the user passes a NULL hasher, we hash the raw pointer. */ +static size_t +raw_hasher (const void *data, size_t n) +{ + /* When hashing unique pointers, it is often the case that they were + generated by malloc and thus have the property that the low-order + bits are 0. As this tends to give poorer performance with small + tables, we rotate the pointer value before performing division, + in an attempt to improve hash quality. */ + size_t val = rotr_sz ((size_t) data, 3); + return val % n; +} + +/* If the user passes a NULL comparator, we use pointer comparison. */ +static bool +raw_comparator (const void *a, const void *b) +{ + return a == b; +} + + /* For the given hash TABLE, check the user supplied tuning structure for reasonable values, and return true if there is no gross error with it. Otherwise, definitively reset the TUNING field to some acceptable default @@ -481,13 +506,16 @@ static bool check_tuning (Hash_table *table) { const Hash_tuning *tuning = table->tuning; + float epsilon; + if (tuning == &default_tuning) + return true; /* Be a bit stricter than mathematics would require, so that rounding errors in size calculations do not cause allocations to fail to grow or shrink as they should. The smallest allocation is 11 (due to next_prime's algorithm), so an epsilon of 0.1 should be good enough. */ - float epsilon = 0.1f; + epsilon = 0.1f; if (epsilon < tuning->growth_threshold && tuning->growth_threshold < 1 - epsilon @@ -502,6 +530,26 @@ check_tuning (Hash_table *table) return false; } +/* Compute the size of the bucket array for the given CANDIDATE and + TUNING, or return 0 if there is no possible way to allocate that + many entries. */ + +static size_t +compute_bucket_size (size_t candidate, const Hash_tuning *tuning) +{ + if (!tuning->is_n_buckets) + { + float new_candidate = candidate / tuning->growth_threshold; + if (SIZE_MAX <= new_candidate) + return 0; + candidate = new_candidate; + } + candidate = next_prime (candidate); + if (xalloc_oversized (candidate, sizeof (struct hash_entry *))) + return 0; + return candidate; +} + /* Allocate and return a new hash table, or NULL upon failure. The initial number of buckets is automatically selected so as to _guarantee_ that you may insert at least CANDIDATE different user entries before any growth of @@ -513,17 +561,20 @@ check_tuning (Hash_table *table) TUNING points to a structure of user-supplied values, in case some fine tuning is wanted over the default behavior of the hasher. If TUNING is - NULL, the default tuning parameters are used instead. + NULL, the default tuning parameters are used instead. If TUNING is + provided but the values requested are out of bounds or might cause + rounding errors, return NULL. - The user-supplied HASHER function should be provided. It accepts two + The user-supplied HASHER function, when not NULL, accepts two arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a slot number for that entry which should be in the range 0..TABLE_SIZE-1. This slot number is then returned. - The user-supplied COMPARATOR function should be provided. It accepts two + The user-supplied COMPARATOR function, when not NULL, accepts two arguments pointing to user data, it then returns true for a pair of entries that compare equal, or false otherwise. This function is internally called - on entries which are already known to hash to the same bucket index. + on entries which are already known to hash to the same bucket index, + but which are distinct pointers. The user-supplied DATA_FREER function, when not NULL, may be later called with the user data as an argument, just before the entry containing the @@ -535,13 +586,15 @@ check_tuning (Hash_table *table) Hash_table * hash_initialize (size_t candidate, const Hash_tuning *tuning, - Hash_hasher hasher, Hash_comparator comparator, - Hash_data_freer data_freer) + Hash_hasher hasher, Hash_comparator comparator, + Hash_data_freer data_freer) { Hash_table *table; - if (hasher == NULL || comparator == NULL) - return NULL; + if (hasher == NULL) + hasher = raw_hasher; + if (comparator == NULL) + comparator = raw_comparator; table = malloc (sizeof *table); if (table == NULL) @@ -553,25 +606,15 @@ hash_initialize (size_t candidate, const Hash_tuning *tuning, if (!check_tuning (table)) { /* Fail if the tuning options are invalid. This is the only occasion - when the user gets some feedback about it. Once the table is created, - if the user provides invalid tuning options, we silently revert to - using the defaults, and ignore further request to change the tuning - options. */ + when the user gets some feedback about it. Once the table is created, + if the user provides invalid tuning options, we silently revert to + using the defaults, and ignore further request to change the tuning + options. */ goto fail; } - if (!tuning->is_n_buckets) - { - float new_candidate = candidate / tuning->growth_threshold; - if (SIZE_MAX <= new_candidate) - goto fail; - candidate = new_candidate; - } - - if (xalloc_oversized (candidate, sizeof *table->bucket)) - goto fail; - table->n_buckets = next_prime (candidate); - if (xalloc_oversized (table->n_buckets, sizeof *table->bucket)) + table->n_buckets = compute_bucket_size (candidate, tuning); + if (!table->n_buckets) goto fail; table->bucket = calloc (table->n_buckets, sizeof *table->bucket); @@ -608,30 +651,30 @@ hash_clear (Hash_table *table) for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { if (bucket->data) - { - struct hash_entry *cursor; - struct hash_entry *next; - - /* Free the bucket overflow. */ - for (cursor = bucket->next; cursor; cursor = next) - { - if (table->data_freer) - (*table->data_freer) (cursor->data); - cursor->data = NULL; - - next = cursor->next; - /* Relinking is done one entry at a time, as it is to be expected - that overflows are either rare or short. */ - cursor->next = table->free_entry_list; - table->free_entry_list = cursor; - } - - /* Free the bucket head. */ - if (table->data_freer) - (*table->data_freer) (bucket->data); - bucket->data = NULL; - bucket->next = NULL; - } + { + struct hash_entry *cursor; + struct hash_entry *next; + + /* Free the bucket overflow. */ + for (cursor = bucket->next; cursor; cursor = next) + { + if (table->data_freer) + table->data_freer (cursor->data); + cursor->data = NULL; + + next = cursor->next; + /* Relinking is done one entry at a time, as it is to be expected + that overflows are either rare or short. */ + cursor->next = table->free_entry_list; + table->free_entry_list = cursor; + } + + /* Free the bucket head. */ + if (table->data_freer) + table->data_freer (bucket->data); + bucket->data = NULL; + bucket->next = NULL; + } } table->n_buckets_used = 0; @@ -654,15 +697,13 @@ hash_free (Hash_table *table) if (table->data_freer && table->n_entries) { for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - { - if (bucket->data) - { - for (cursor = bucket; cursor; cursor = cursor->next) - { - (*table->data_freer) (cursor->data); - } - } - } + { + if (bucket->data) + { + for (cursor = bucket; cursor; cursor = cursor->next) + table->data_freer (cursor->data); + } + } } #if USE_OBSTACK @@ -675,10 +716,10 @@ hash_free (Hash_table *table) for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) { for (cursor = bucket->next; cursor; cursor = next) - { - next = cursor->next; - free (cursor); - } + { + next = cursor->next; + free (cursor); + } } /* Also reclaim the internal list of previously freed entries. */ @@ -697,7 +738,7 @@ hash_free (Hash_table *table) /* Insertion and deletion. */ -/* Get a new hash entry for a bucket overflow, possibly by reclying a +/* Get a new hash entry for a bucket overflow, possibly by recycling a previously freed one. If this is not possible, allocate a new one. */ static struct hash_entry * @@ -741,7 +782,7 @@ free_entry (Hash_table *table, struct hash_entry *entry) static void * hash_find_entry (Hash_table *table, const void *entry, - struct hash_entry **bucket_head, bool delete) + struct hash_entry **bucket_head, bool delete) { struct hash_entry *bucket = table->bucket + table->hasher (entry, table->n_buckets); @@ -757,26 +798,26 @@ hash_find_entry (Hash_table *table, const void *entry, return NULL; /* See if the entry is the first in the bucket. */ - if ((*table->comparator) (entry, bucket->data)) + if (entry == bucket->data || table->comparator (entry, bucket->data)) { void *data = bucket->data; if (delete) - { - if (bucket->next) - { - struct hash_entry *next = bucket->next; - - /* Bump the first overflow entry into the bucket head, then save - the previous first overflow entry for later recycling. */ - *bucket = *next; - free_entry (table, next); - } - else - { - bucket->data = NULL; - } - } + { + if (bucket->next) + { + struct hash_entry *next = bucket->next; + + /* Bump the first overflow entry into the bucket head, then save + the previous first overflow entry for later recycling. */ + *bucket = *next; + free_entry (table, next); + } + else + { + bucket->data = NULL; + } + } return data; } @@ -784,124 +825,208 @@ hash_find_entry (Hash_table *table, const void *entry, /* Scan the bucket overflow. */ for (cursor = bucket; cursor->next; cursor = cursor->next) { - if ((*table->comparator) (entry, cursor->next->data)) - { - void *data = cursor->next->data; - - if (delete) - { - struct hash_entry *next = cursor->next; - - /* Unlink the entry to delete, then save the freed entry for later - recycling. */ - cursor->next = next->next; - free_entry (table, next); - } - - return data; - } + if (entry == cursor->next->data + || table->comparator (entry, cursor->next->data)) + { + void *data = cursor->next->data; + + if (delete) + { + struct hash_entry *next = cursor->next; + + /* Unlink the entry to delete, then save the freed entry for later + recycling. */ + cursor->next = next->next; + free_entry (table, next); + } + + return data; + } } /* No entry found. */ return NULL; } +/* Internal helper, to move entries from SRC to DST. Both tables must + share the same free entry list. If SAFE, only move overflow + entries, saving bucket heads for later, so that no allocations will + occur. Return false if the free entry list is exhausted and an + allocation fails. */ + +static bool +transfer_entries (Hash_table *dst, Hash_table *src, bool safe) +{ + struct hash_entry *bucket; + struct hash_entry *cursor; + struct hash_entry *next; + for (bucket = src->bucket; bucket < src->bucket_limit; bucket++) + if (bucket->data) + { + void *data; + struct hash_entry *new_bucket; + + /* Within each bucket, transfer overflow entries first and + then the bucket head, to minimize memory pressure. After + all, the only time we might allocate is when moving the + bucket head, but moving overflow entries first may create + free entries that can be recycled by the time we finally + get to the bucket head. */ + for (cursor = bucket->next; cursor; cursor = next) + { + data = cursor->data; + new_bucket = (dst->bucket + dst->hasher (data, dst->n_buckets)); + + if (! (new_bucket < dst->bucket_limit)) + abort (); + + next = cursor->next; + + if (new_bucket->data) + { + /* Merely relink an existing entry, when moving from a + bucket overflow into a bucket overflow. */ + cursor->next = new_bucket->next; + new_bucket->next = cursor; + } + else + { + /* Free an existing entry, when moving from a bucket + overflow into a bucket header. */ + new_bucket->data = data; + dst->n_buckets_used++; + free_entry (dst, cursor); + } + } + /* Now move the bucket head. Be sure that if we fail due to + allocation failure that the src table is in a consistent + state. */ + data = bucket->data; + bucket->next = NULL; + if (safe) + continue; + new_bucket = (dst->bucket + dst->hasher (data, dst->n_buckets)); + + if (! (new_bucket < dst->bucket_limit)) + abort (); + + if (new_bucket->data) + { + /* Allocate or recycle an entry, when moving from a bucket + header into a bucket overflow. */ + struct hash_entry *new_entry = allocate_entry (dst); + + if (new_entry == NULL) + return false; + + new_entry->data = data; + new_entry->next = new_bucket->next; + new_bucket->next = new_entry; + } + else + { + /* Move from one bucket header to another. */ + new_bucket->data = data; + dst->n_buckets_used++; + } + bucket->data = NULL; + src->n_buckets_used--; + } + return true; +} + /* For an already existing hash table, change the number of buckets through specifying CANDIDATE. The contents of the hash table are preserved. The new number of buckets is automatically selected so as to _guarantee_ that the table may receive at least CANDIDATE different user entries, including those already in the table, before any other growth of the hash table size occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the - exact number of buckets desired. */ + exact number of buckets desired. Return true iff the rehash succeeded. */ bool hash_rehash (Hash_table *table, size_t candidate) { + Hash_table storage; Hash_table *new_table; - struct hash_entry *bucket; - struct hash_entry *cursor; - struct hash_entry *next; + size_t new_size = compute_bucket_size (candidate, table->tuning); - new_table = hash_initialize (candidate, table->tuning, table->hasher, - table->comparator, table->data_freer); - if (new_table == NULL) + if (!new_size) return false; + if (new_size == table->n_buckets) + return true; + new_table = &storage; + new_table->bucket = calloc (new_size, sizeof *new_table->bucket); + if (new_table->bucket == NULL) + return false; + new_table->n_buckets = new_size; + new_table->bucket_limit = new_table->bucket + new_size; + new_table->n_buckets_used = 0; + new_table->n_entries = 0; + new_table->tuning = table->tuning; + new_table->hasher = table->hasher; + new_table->comparator = table->comparator; + new_table->data_freer = table->data_freer; + + /* In order for the transfer to successfully complete, we need + additional overflow entries when distinct buckets in the old + table collide into a common bucket in the new table. The worst + case possible is a hasher that gives a good spread with the old + size, but returns a constant with the new size; if we were to + guarantee table->n_buckets_used-1 free entries in advance, then + the transfer would be guaranteed to not allocate memory. + However, for large tables, a guarantee of no further allocation + introduces a lot of extra memory pressure, all for an unlikely + corner case (most rehashes reduce, rather than increase, the + number of overflow entries needed). So, we instead ensure that + the transfer process can be reversed if we hit a memory + allocation failure mid-transfer. */ /* Merely reuse the extra old space into the new table. */ #if USE_OBSTACK - obstack_free (&new_table->entry_stack, NULL); new_table->entry_stack = table->entry_stack; #endif new_table->free_entry_list = table->free_entry_list; - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) - if (bucket->data) - for (cursor = bucket; cursor; cursor = next) - { - void *data = cursor->data; - struct hash_entry *new_bucket - = (new_table->bucket - + new_table->hasher (data, new_table->n_buckets)); - - if (! (new_bucket < new_table->bucket_limit)) - abort (); - - next = cursor->next; - - if (new_bucket->data) - { - if (cursor == bucket) - { - /* Allocate or recycle an entry, when moving from a bucket - header into a bucket overflow. */ - struct hash_entry *new_entry = allocate_entry (new_table); - - if (new_entry == NULL) - return false; - - new_entry->data = data; - new_entry->next = new_bucket->next; - new_bucket->next = new_entry; - } - else - { - /* Merely relink an existing entry, when moving from a - bucket overflow into a bucket overflow. */ - cursor->next = new_bucket->next; - new_bucket->next = cursor; - } - } - else - { - /* Free an existing entry, when moving from a bucket - overflow into a bucket header. Also take care of the - simple case of moving from a bucket header into a bucket - header. */ - new_bucket->data = data; - new_table->n_buckets_used++; - if (cursor != bucket) - free_entry (new_table, cursor); - } - } + if (transfer_entries (new_table, table, false)) + { + /* Entries transferred successfully; tie up the loose ends. */ + free (table->bucket); + table->bucket = new_table->bucket; + table->bucket_limit = new_table->bucket_limit; + table->n_buckets = new_table->n_buckets; + table->n_buckets_used = new_table->n_buckets_used; + table->free_entry_list = new_table->free_entry_list; + /* table->n_entries and table->entry_stack already hold their value. */ + return true; + } - free (table->bucket); - table->bucket = new_table->bucket; - table->bucket_limit = new_table->bucket_limit; - table->n_buckets = new_table->n_buckets; - table->n_buckets_used = new_table->n_buckets_used; + /* We've allocated new_table->bucket (and possibly some entries), + exhausted the free list, and moved some but not all entries into + new_table. We must undo the partial move before returning + failure. The only way to get into this situation is if new_table + uses fewer buckets than the old table, so we will reclaim some + free entries as overflows in the new table are put back into + distinct buckets in the old table. + + There are some pathological cases where a single pass through the + table requires more intermediate overflow entries than using two + passes. Two passes give worse cache performance and takes + longer, but at this point, we're already out of memory, so slow + and safe is better than failure. */ table->free_entry_list = new_table->free_entry_list; + if (! (transfer_entries (table, new_table, true) + && transfer_entries (table, new_table, false))) + abort (); /* table->n_entries already holds its value. */ -#if USE_OBSTACK - table->entry_stack = new_table->entry_stack; -#endif - free (new_table); - - return true; + free (new_table->bucket); + return false; } /* If ENTRY matches an entry already in the hash table, return the pointer to the entry from the table. Otherwise, insert ENTRY and return ENTRY. - Return NULL if the storage required for insertion cannot be allocated. */ + Return NULL if the storage required for insertion cannot be allocated. + This implementation does not support duplicate entries or insertion of + NULL. */ void * hash_insert (Hash_table *table, const void *entry) @@ -917,6 +1042,40 @@ hash_insert (Hash_table *table, const void *entry) if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL) return data; + /* If the growth threshold of the buckets in use has been reached, increase + the table size and rehash. There's no point in checking the number of + entries: if the hashing function is ill-conditioned, rehashing is not + likely to improve it. */ + + if (table->n_buckets_used + > table->tuning->growth_threshold * table->n_buckets) + { + /* Check more fully, before starting real work. If tuning arguments + became invalid, the second check will rely on proper defaults. */ + check_tuning (table); + if (table->n_buckets_used + > table->tuning->growth_threshold * table->n_buckets) + { + const Hash_tuning *tuning = table->tuning; + float candidate = + (tuning->is_n_buckets + ? (table->n_buckets * tuning->growth_factor) + : (table->n_buckets * tuning->growth_factor + * tuning->growth_threshold)); + + if (SIZE_MAX <= candidate) + return NULL; + + /* If the rehash fails, arrange to return NULL. */ + if (!hash_rehash (table, candidate)) + return NULL; + + /* Update the bucket we are interested in. */ + if (hash_find_entry (table, entry, &bucket, false) != NULL) + abort (); + } + } + /* ENTRY is not matched, it should be inserted. */ if (bucket->data) @@ -924,7 +1083,7 @@ hash_insert (Hash_table *table, const void *entry) struct hash_entry *new_entry = allocate_entry (table); if (new_entry == NULL) - return NULL; + return NULL; /* Add ENTRY in the overflow of the bucket. */ @@ -941,36 +1100,6 @@ hash_insert (Hash_table *table, const void *entry) table->n_entries++; table->n_buckets_used++; - /* If the growth threshold of the buckets in use has been reached, increase - the table size and rehash. There's no point in checking the number of - entries: if the hashing function is ill-conditioned, rehashing is not - likely to improve it. */ - - if (table->n_buckets_used - > table->tuning->growth_threshold * table->n_buckets) - { - /* Check more fully, before starting real work. If tuning arguments - became invalid, the second check will rely on proper defaults. */ - check_tuning (table); - if (table->n_buckets_used - > table->tuning->growth_threshold * table->n_buckets) - { - const Hash_tuning *tuning = table->tuning; - float candidate = - (tuning->is_n_buckets - ? (table->n_buckets * tuning->growth_factor) - : (table->n_buckets * tuning->growth_factor - * tuning->growth_threshold)); - - if (SIZE_MAX <= candidate) - return NULL; - - /* If the rehash fails, arrange to return NULL. */ - if (!hash_rehash (table, candidate)) - entry = NULL; - } - } - return (void *) entry; } @@ -994,27 +1123,45 @@ hash_delete (Hash_table *table, const void *entry) table->n_buckets_used--; /* If the shrink threshold of the buckets in use has been reached, - rehash into a smaller table. */ + rehash into a smaller table. */ if (table->n_buckets_used - < table->tuning->shrink_threshold * table->n_buckets) - { - /* Check more fully, before starting real work. If tuning arguments - became invalid, the second check will rely on proper defaults. */ - check_tuning (table); - if (table->n_buckets_used - < table->tuning->shrink_threshold * table->n_buckets) - { - const Hash_tuning *tuning = table->tuning; - size_t candidate = - (tuning->is_n_buckets - ? table->n_buckets * tuning->shrink_factor - : (table->n_buckets * tuning->shrink_factor - * tuning->growth_threshold)); - - hash_rehash (table, candidate); - } - } + < table->tuning->shrink_threshold * table->n_buckets) + { + /* Check more fully, before starting real work. If tuning arguments + became invalid, the second check will rely on proper defaults. */ + check_tuning (table); + if (table->n_buckets_used + < table->tuning->shrink_threshold * table->n_buckets) + { + const Hash_tuning *tuning = table->tuning; + size_t candidate = + (tuning->is_n_buckets + ? table->n_buckets * tuning->shrink_factor + : (table->n_buckets * tuning->shrink_factor + * tuning->growth_threshold)); + + if (!hash_rehash (table, candidate)) + { + /* Failure to allocate memory in an attempt to + shrink the table is not fatal. But since memory + is low, we can at least be kind and free any + spare entries, rather than keeping them tied up + in the free entry list. */ +#if ! USE_OBSTACK + struct hash_entry *cursor = table->free_entry_list; + struct hash_entry *next; + while (cursor) + { + next = cursor->next; + free (cursor); + cursor = next; + } + table->free_entry_list = NULL; +#endif + } + } + } } return data; @@ -1027,22 +1174,22 @@ hash_delete (Hash_table *table, const void *entry) void hash_print (const Hash_table *table) { - struct hash_entry const *bucket; + struct hash_entry *bucket = (struct hash_entry *) table->bucket; - for (bucket = table->bucket; bucket < table->bucket_limit; bucket++) + for ( ; bucket < table->bucket_limit; bucket++) { struct hash_entry *cursor; if (bucket) - printf ("%lu:\n", (unsigned long int) (bucket - table->bucket)); + printf ("%lu:\n", (unsigned long int) (bucket - table->bucket)); for (cursor = bucket; cursor; cursor = cursor->next) - { - char const *s = cursor->data; - /* FIXME */ - if (s) - printf (" %s\n", s); - } + { + char const *s = cursor->data; + /* FIXME */ + if (s) + printf (" %s\n", s); + } } } diff --git a/lib/hash.h b/gnu/hash.h similarity index 69% rename from lib/hash.h rename to gnu/hash.h index fc1af28a97cddf854b96d54e1910cd2e0b83d836..9db337422ba84c5ae01bf817a37c647880b68df9 100644 --- a/lib/hash.h +++ b/gnu/hash.h @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* hash - hashing table processing. - Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2001, 2003, 2009-2010 Free Software Foundation, + Inc. Written by Jim Meyering <meyering@ascend.com>, 1998. This program is free software: you can redistribute it and/or modify @@ -26,27 +29,32 @@ # include <stdio.h> # include <stdbool.h> +/* The warn_unused_result attribute appeared first in gcc-3.4.0 */ +# ifndef __attribute__ +# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4) +# define __attribute__(x) +# endif +# endif + +# ifndef ATTRIBUTE_WUR +# define ATTRIBUTE_WUR __attribute__ ((__warn_unused_result__)) +# endif + typedef size_t (*Hash_hasher) (const void *, size_t); typedef bool (*Hash_comparator) (const void *, const void *); typedef void (*Hash_data_freer) (void *); typedef bool (*Hash_processor) (void *, void *); -struct hash_entry - { - void *data; - struct hash_entry *next; - }; - struct hash_tuning { /* This structure is mainly used for `hash_initialize', see the block documentation of `hash_reset_tuning' for more complete comments. */ - float shrink_threshold; /* ratio of used buckets to trigger a shrink */ - float shrink_factor; /* ratio of new smaller size to original size */ - float growth_threshold; /* ratio of used buckets to trigger a growth */ - float growth_factor; /* ratio of new bigger size to original size */ - bool is_n_buckets; /* if CANDIDATE really means table size */ + float shrink_threshold; /* ratio of used buckets to trigger a shrink */ + float shrink_factor; /* ratio of new smaller size to original size */ + float growth_threshold; /* ratio of used buckets to trigger a growth */ + float growth_factor; /* ratio of new bigger size to original size */ + bool is_n_buckets; /* if CANDIDATE really means table size */ }; typedef struct hash_tuning Hash_tuning; @@ -74,14 +82,14 @@ size_t hash_do_for_each (const Hash_table *, Hash_processor, void *); size_t hash_string (const char *, size_t); void hash_reset_tuning (Hash_tuning *); Hash_table *hash_initialize (size_t, const Hash_tuning *, - Hash_hasher, Hash_comparator, - Hash_data_freer); + Hash_hasher, Hash_comparator, + Hash_data_freer) ATTRIBUTE_WUR; void hash_clear (Hash_table *); void hash_free (Hash_table *); /* Insertion and deletion. */ -bool hash_rehash (Hash_table *, size_t); -void *hash_insert (Hash_table *, const void *); +bool hash_rehash (Hash_table *, size_t) ATTRIBUTE_WUR; +void *hash_insert (Hash_table *, const void *) ATTRIBUTE_WUR; void *hash_delete (Hash_table *, const void *); #endif diff --git a/lib/human.c b/gnu/human.c similarity index 63% rename from lib/human.c rename to gnu/human.c index c7291b73247f2a6a96e6f22f53eba3de161ef3bc..04c8f9c15ab7c91c21ffbd4ad1216659554c4013 100644 --- a/lib/human.c +++ b/gnu/human.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* human.c -- print human readable file size - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + 2006, 2007, 2009, 2010 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 @@ -36,15 +38,15 @@ static const char power_letter[] = { - 0, /* not used */ - 'K', /* kibi ('k' for kilo is a special case) */ - 'M', /* mega or mebi */ - 'G', /* giga or gibi */ - 'T', /* tera or tebi */ - 'P', /* peta or pebi */ - 'E', /* exa or exbi */ - 'Z', /* zetta or 2**70 */ - 'Y' /* yotta or 2**80 */ + 0, /* not used */ + 'K', /* kibi ('k' for kilo is a special case) */ + 'M', /* mega or mebi */ + 'G', /* giga or gibi */ + 'T', /* tera or tebi */ + 'P', /* peta or pebi */ + 'E', /* exa or exbi */ + 'Z', /* zetta or 2**70 */ + 'Y' /* yotta or 2**80 */ }; @@ -78,7 +80,7 @@ adjust_value (int inexact_style, long double value) static char * group_number (char *number, size_t numberlen, - char const *grouping, char const *thousands_sep) + char const *grouping, char const *thousands_sep) { register char *d; size_t grouplen = SIZE_MAX; @@ -97,19 +99,19 @@ group_number (char *number, size_t numberlen, unsigned char g = *grouping; if (g) - { - grouplen = g < CHAR_MAX ? g : i; - grouping++; - } + { + grouplen = g < CHAR_MAX ? g : i; + grouping++; + } if (i < grouplen) - grouplen = i; + grouplen = i; d -= grouplen; i -= grouplen; memcpy (d, buf + i, grouplen); if (i == 0) - return d; + return d; d -= thousands_seplen; memcpy (d, thousands_sep, thousands_seplen); @@ -152,7 +154,7 @@ group_number (char *number, size_t numberlen, char * human_readable (uintmax_t n, char *buf, int opts, - uintmax_t from_block_size, uintmax_t to_block_size) + uintmax_t from_block_size, uintmax_t to_block_size) { int inexact_style = opts & (human_round_to_nearest | human_floor | human_ceiling); @@ -195,16 +197,16 @@ human_readable (uintmax_t n, char *buf, int opts, if (to_block_size <= from_block_size) { if (from_block_size % to_block_size == 0) - { - uintmax_t multiplier = from_block_size / to_block_size; - amt = n * multiplier; - if (amt / multiplier == n) - { - tenths = 0; - rounding = 0; - goto use_integer_arithmetic; - } - } + { + uintmax_t multiplier = from_block_size / to_block_size; + amt = n * multiplier; + if (amt / multiplier == n) + { + tenths = 0; + rounding = 0; + goto use_integer_arithmetic; + } + } } else if (from_block_size != 0 && to_block_size % from_block_size == 0) { @@ -229,37 +231,37 @@ human_readable (uintmax_t n, char *buf, int opts, if (! (opts & human_autoscale)) { - sprintf (buf, "%.0Lf", adjust_value (inexact_style, damt)); - buflen = strlen (buf); - nonintegerlen = 0; + sprintf (buf, "%.0Lf", adjust_value (inexact_style, damt)); + buflen = strlen (buf); + nonintegerlen = 0; } else { - long double e = 1; - exponent = 0; - - do - { - e *= base; - exponent++; - } - while (e * base <= damt && exponent < exponent_max); - - damt /= e; - - sprintf (buf, "%.1Lf", adjust_value (inexact_style, damt)); - buflen = strlen (buf); - nonintegerlen = decimal_pointlen + 1; - - if (1 + nonintegerlen + ! (opts & human_base_1024) < buflen - || ((opts & human_suppress_point_zero) - && buf[buflen - 1] == '0')) - { - sprintf (buf, "%.0Lf", - adjust_value (inexact_style, damt * 10) / 10); - buflen = strlen (buf); - nonintegerlen = 0; - } + long double e = 1; + exponent = 0; + + do + { + e *= base; + exponent++; + } + while (e * base <= damt && exponent < exponent_max); + + damt /= e; + + sprintf (buf, "%.1Lf", adjust_value (inexact_style, damt)); + buflen = strlen (buf); + nonintegerlen = decimal_pointlen + 1; + + if (1 + nonintegerlen + ! (opts & human_base_1024) < buflen + || ((opts & human_suppress_point_zero) + && buf[buflen - 1] == '0')) + { + sprintf (buf, "%.0Lf", + adjust_value (inexact_style, damt * 10) / 10); + buflen = strlen (buf); + nonintegerlen = 0; + } } p = psuffix - buflen; @@ -277,77 +279,77 @@ human_readable (uintmax_t n, char *buf, int opts, if (opts & human_autoscale) { - exponent = 0; - - if (base <= amt) - { - do - { - unsigned int r10 = (amt % base) * 10 + tenths; - unsigned int r2 = (r10 % base) * 2 + (rounding >> 1); - amt /= base; - tenths = r10 / base; - rounding = (r2 < base - ? (r2 + rounding) != 0 - : 2 + (base < r2 + rounding)); - exponent++; - } - while (base <= amt && exponent < exponent_max); - - if (amt < 10) - { - if (inexact_style == human_round_to_nearest - ? 2 < rounding + (tenths & 1) - : inexact_style == human_ceiling && 0 < rounding) - { - tenths++; - rounding = 0; - - if (tenths == 10) - { - amt++; - tenths = 0; - } - } - - if (amt < 10 - && (tenths || ! (opts & human_suppress_point_zero))) - { - *--p = '0' + tenths; - p -= decimal_pointlen; - memcpy (p, decimal_point, decimal_pointlen); - tenths = rounding = 0; - } - } - } + exponent = 0; + + if (base <= amt) + { + do + { + unsigned int r10 = (amt % base) * 10 + tenths; + unsigned int r2 = (r10 % base) * 2 + (rounding >> 1); + amt /= base; + tenths = r10 / base; + rounding = (r2 < base + ? (r2 + rounding) != 0 + : 2 + (base < r2 + rounding)); + exponent++; + } + while (base <= amt && exponent < exponent_max); + + if (amt < 10) + { + if (inexact_style == human_round_to_nearest + ? 2 < rounding + (tenths & 1) + : inexact_style == human_ceiling && 0 < rounding) + { + tenths++; + rounding = 0; + + if (tenths == 10) + { + amt++; + tenths = 0; + } + } + + if (amt < 10 + && (tenths || ! (opts & human_suppress_point_zero))) + { + *--p = '0' + tenths; + p -= decimal_pointlen; + memcpy (p, decimal_point, decimal_pointlen); + tenths = rounding = 0; + } + } + } } if (inexact_style == human_round_to_nearest - ? 5 < tenths + (0 < rounding + (amt & 1)) - : inexact_style == human_ceiling && 0 < tenths + rounding) + ? 5 < tenths + (0 < rounding + (amt & 1)) + : inexact_style == human_ceiling && 0 < tenths + rounding) { - amt++; - - if ((opts & human_autoscale) - && amt == base && exponent < exponent_max) - { - exponent++; - if (! (opts & human_suppress_point_zero)) - { - *--p = '0'; - p -= decimal_pointlen; - memcpy (p, decimal_point, decimal_pointlen); - } - amt = 1; - } + amt++; + + if ((opts & human_autoscale) + && amt == base && exponent < exponent_max) + { + exponent++; + if (! (opts & human_suppress_point_zero)) + { + *--p = '0'; + p -= decimal_pointlen; + memcpy (p, decimal_point, decimal_pointlen); + } + amt = 1; + } } integerlim = p; do { - int digit = amt % 10; - *--p = digit + '0'; + int digit = amt % 10; + *--p = digit + '0'; } while ((amt /= 10) != 0); } @@ -359,28 +361,28 @@ human_readable (uintmax_t n, char *buf, int opts, if (opts & human_SI) { if (exponent < 0) - { - uintmax_t power; - exponent = 0; - for (power = 1; power < to_block_size; power *= base) - if (++exponent == exponent_max) - break; - } + { + uintmax_t power; + exponent = 0; + for (power = 1; power < to_block_size; power *= base) + if (++exponent == exponent_max) + break; + } if ((exponent | (opts & human_B)) && (opts & human_space_before_unit)) - *psuffix++ = ' '; + *psuffix++ = ' '; if (exponent) - *psuffix++ = (! (opts & human_base_1024) && exponent == 1 - ? 'k' - : power_letter[exponent]); + *psuffix++ = (! (opts & human_base_1024) && exponent == 1 + ? 'k' + : power_letter[exponent]); if (opts & human_B) - { - if ((opts & human_base_1024) && exponent) - *psuffix++ = 'i'; - *psuffix++ = 'B'; - } + { + if ((opts & human_base_1024) && exponent) + *psuffix++ = 'i'; + *psuffix++ = 'B'; + } } *psuffix = '\0'; @@ -421,37 +423,37 @@ humblock (char const *spec, uintmax_t *block_size, int *options) else { if (*spec == '\'') - { - opts |= human_group_digits; - spec++; - } + { + opts |= human_group_digits; + spec++; + } if (0 <= (i = ARGMATCH (spec, block_size_args, block_size_opts))) - { - opts |= block_size_opts[i]; - *block_size = 1; - } + { + opts |= block_size_opts[i]; + *block_size = 1; + } else - { - char *ptr; - strtol_error e = xstrtoumax (spec, &ptr, 0, block_size, - "eEgGkKmMpPtTyYzZ0"); - if (e != LONGINT_OK) - { - *options = 0; - return e; - } - for (; ! ('0' <= *spec && *spec <= '9'); spec++) - if (spec == ptr) - { - opts |= human_SI; - if (ptr[-1] == 'B') - opts |= human_B; - if (ptr[-1] != 'B' || ptr[-2] == 'i') - opts |= human_base_1024; - break; - } - } + { + char *ptr; + strtol_error e = xstrtoumax (spec, &ptr, 0, block_size, + "eEgGkKmMpPtTyYzZ0"); + if (e != LONGINT_OK) + { + *options = 0; + return e; + } + for (; ! ('0' <= *spec && *spec <= '9'); spec++) + if (spec == ptr) + { + opts |= human_SI; + if (ptr[-1] == 'B') + opts |= human_B; + if (ptr[-1] != 'B' || ptr[-2] == 'i') + opts |= human_base_1024; + break; + } + } } *options = opts; diff --git a/lib/human.h b/gnu/human.h similarity index 94% rename from lib/human.h rename to gnu/human.h index 11b1e0cee46af96c8182b86cdef438d6b8e9ebfa..5d3f0c6d681f33958dc082581ae493cad9e780fa 100644 --- a/lib/human.h +++ b/gnu/human.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* human.h -- print human readable file size - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + 2006, 2007, 2009, 2010 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 diff --git a/gnu/imaxtostr.c b/gnu/imaxtostr.c new file mode 100644 index 0000000000000000000000000000000000000000..af7316d121e1095d218304336010643345c1863d --- /dev/null +++ b/gnu/imaxtostr.c @@ -0,0 +1,6 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#define inttostr imaxtostr +#define inttype intmax_t +#define inttype_is_signed 1 +#include "inttostr.c" diff --git a/lib/intprops.h b/gnu/intprops.h similarity index 69% rename from lib/intprops.h rename to gnu/intprops.h index 002161ee57402c4ee89ca7a5da20d4bfbc7858ae..6f3e575ab16434378aae0cfe8c32e6d96b5d3095 100644 --- a/lib/intprops.h +++ b/gnu/intprops.h @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* intprops.h -- properties of integer types - Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010 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 @@ -17,40 +20,43 @@ /* Written by Paul Eggert. */ -#include <limits.h> +#ifndef GL_INTPROPS_H +# define GL_INTPROPS_H + +# include <limits.h> /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ -#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) +# define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ -#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) -#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) -#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) +# define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) +# define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) +# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) /* True if the arithmetic type T is signed. */ -#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) +# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* The maximum and minimum values for the integer type T. These macros have undefined behavior if T is signed and has padding bits. If this is a problem for you, please let us know how to fix it for your host. */ -#define TYPE_MINIMUM(t) \ +# define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ - : TYPE_SIGNED_MAGNITUDE (t) \ - ? ~ (t) 0 \ - : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) -#define TYPE_MAXIMUM(t) \ + ? (t) 0 \ + : TYPE_SIGNED_MAGNITUDE (t) \ + ? ~ (t) 0 \ + : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) +# define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) + ? (t) -1 \ + : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) /* Return zero if T can be determined to be an unsigned type. Otherwise, return 1. @@ -58,20 +64,22 @@ tighter bound. Otherwise, it overestimates the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. The symbol signed_type_or_expr__ is private to this header file. */ -#if __GNUC__ >= 2 -# define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t)) -#else -# define signed_type_or_expr__(t) 1 -#endif +# if __GNUC__ >= 2 +# define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t)) +# else +# define signed_type_or_expr__(t) 1 +# endif /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed; log10 (2.0) < 146/485; add 1 for integer division truncation; add 1 more for a minus sign if needed. */ -#define INT_STRLEN_BOUND(t) \ +# define INT_STRLEN_BOUND(t) \ ((sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) * 146 / 485 \ + signed_type_or_expr__ (t) + 1) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ -#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) +# define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) + +#endif /* GL_INTPROPS_H */ diff --git a/lib/inttostr.c b/gnu/inttostr.c similarity index 79% rename from lib/inttostr.c rename to gnu/inttostr.c index ed6a6933dea6c153a1634b67a1fc3247b5ab6380..d4f99cc21369ffb8241aa851d1377d266ce6a549 100644 --- a/lib/inttostr.c +++ b/gnu/inttostr.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* inttostr.c -- convert integers to printable strings - Copyright (C) 2001, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 2001, 2006, 2008, 2009, 2010 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 @@ -17,14 +19,10 @@ /* Written by Paul Eggert */ -/* Tell gcc not to warn about the (i < 0) test, below. */ -#if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ -# pragma GCC diagnostic ignored "-Wtype-limits" -#endif - #include <config.h> #include "inttostr.h" +#include "verify.h" /* Convert I to a printable string in BUF, which must be at least INT_BUFSIZE_BOUND (INTTYPE) bytes long. Return the address of the @@ -36,18 +34,21 @@ inttostr (inttype i, char *buf) char *p = buf + INT_STRLEN_BOUND (inttype); *p = 0; + verify (TYPE_SIGNED (inttype) == inttype_is_signed); +#if inttype_is_signed if (i < 0) { do - *--p = '0' - i % 10; + *--p = '0' - i % 10; while ((i /= 10) != 0); *--p = '-'; } else +#endif { do - *--p = '0' + i % 10; + *--p = '0' + i % 10; while ((i /= 10) != 0); } diff --git a/lib/inttostr.h b/gnu/inttostr.h similarity index 90% rename from lib/inttostr.h rename to gnu/inttostr.h index a103caf587f1a4966888bc6aed4a983d34b4b194..8b6dbcef20769d84caceacaff9c15672a121acef 100644 --- a/lib/inttostr.h +++ b/gnu/inttostr.h @@ -1,7 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* inttostr.h -- convert integers to printable strings - Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software - Foundation, Inc. + Copyright (C) 2001-2006, 2009-2010 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 diff --git a/lib/inttypes.in.h b/gnu/inttypes.in.h similarity index 94% rename from lib/inttypes.in.h rename to gnu/inttypes.in.h index 33cec2d258c86c7c4fe6a4c92b08dde0d80f8375..27deaa7f48aea43c9e27deca6b0ce8280748e066 100644 --- a/lib/inttypes.in.h +++ b/gnu/inttypes.in.h @@ -1,4 +1,6 @@ -/* Copyright (C) 2006-2008 Free Software Foundation, Inc. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 2006-2010 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. @@ -36,8 +38,11 @@ #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H #define INTTYPES_H -/* Include <stdint.h> or the gnulib replacement. */ -#include <stdint.h> +/* Include <stdint.h> or the gnulib replacement. + But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include <stdint.h> +#endif /* Get CHAR_BIT. */ #include <limits.h> @@ -45,7 +50,9 @@ # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>." #endif -/* The definition of GL_LINK_WARNING is copied here. */ +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ /* 7.8.1 Macros for format specifiers */ @@ -168,7 +175,7 @@ # endif # endif # ifdef INT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? _LP64 : @INT64_MAX_EQ_LONG_MAX@) +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _PRI64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRI64_PREFIX "I64" @@ -185,7 +192,7 @@ # endif # endif # ifdef UINT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _PRIu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRIu64_PREFIX "I64" @@ -661,7 +668,7 @@ # endif # endif # ifdef INT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? _LP64 : @INT64_MAX_EQ_LONG_MAX@) +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _SCN64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCN64_PREFIX "I64" @@ -678,7 +685,7 @@ # endif # endif # ifdef UINT64_MAX -# if (@APPLE_UNIVERSAL_BUILD@ ? _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) +# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _SCNu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCNu64_PREFIX "I64" @@ -1045,10 +1052,10 @@ extern intmax_t imaxabs (intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxabs -# define imaxabs(a) \ - (GL_LINK_WARNING ("imaxabs is unportable - " \ - "use gnulib module imaxabs for portability"), \ - imaxabs (a)) +# if HAVE_RAW_DECL_IMAXABS +_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " + "use gnulib module imaxabs for portability"); +# endif #endif #if @GNULIB_IMAXDIV@ @@ -1058,34 +1065,34 @@ extern imaxdiv_t imaxdiv (intmax_t, intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxdiv -# define imaxdiv(a,b) \ - (GL_LINK_WARNING ("imaxdiv is unportable - " \ - "use gnulib module imaxdiv for portability"), \ - imaxdiv (a, b)) +# if HAVE_RAW_DECL_IMAXDIV +_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " + "use gnulib module imaxdiv for portability"); +# endif #endif #if @GNULIB_STRTOIMAX@ # if !@HAVE_DECL_STRTOIMAX@ -extern intmax_t strtoimax (const char *, char **, int); +extern intmax_t strtoimax (const char *, char **, int) _GL_ARG_NONNULL ((1)); # endif #elif defined GNULIB_POSIXCHECK # undef strtoimax -# define strtoimax(p,e,b) \ - (GL_LINK_WARNING ("strtoimax is unportable - " \ - "use gnulib module strtoimax for portability"), \ - strtoimax (p, e, b)) +# if HAVE_RAW_DECL_STRTOIMAX +_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " + "use gnulib module strtoimax for portability"); +# endif #endif #if @GNULIB_STRTOUMAX@ # if !@HAVE_DECL_STRTOUMAX@ -extern uintmax_t strtoumax (const char *, char **, int); +extern uintmax_t strtoumax (const char *, char **, int) _GL_ARG_NONNULL ((1)); # endif #elif defined GNULIB_POSIXCHECK # undef strtoumax -# define strtoumax(p,e,b) \ - (GL_LINK_WARNING ("strtoumax is unportable - " \ - "use gnulib module strtoumax for portability"), \ - strtoumax (p, e, b)) +# if HAVE_RAW_DECL_STRTOUMAX +_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " + "use gnulib module strtoumax for portability"); +# endif #endif /* Don't bother defining or declaring wcstoimax and wcstoumax, since diff --git a/gnu/langinfo.in.h b/gnu/langinfo.in.h new file mode 100644 index 0000000000000000000000000000000000000000..5a4111127c50254615b07c6bd386b44358bdb18a --- /dev/null +++ b/gnu/langinfo.in.h @@ -0,0 +1,164 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Substitute for and wrapper around <langinfo.h>. + Copyright (C) 2009, 2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* + * POSIX <langinfo.h> for platforms that lack it or have an incomplete one. + * <http://www.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html> + */ + +#ifndef _GL_LANGINFO_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_LANGINFO_H@ +# @INCLUDE_NEXT@ @NEXT_LANGINFO_H@ +#endif + +#ifndef _GL_LANGINFO_H +#define _GL_LANGINFO_H + + +#if !@HAVE_LANGINFO_H@ + +/* A platform that lacks <langinfo.h>. */ + +/* Assume that it also lacks <nl_types.h> and the nl_item type. */ +typedef int nl_item; + +/* nl_langinfo items of the LC_CTYPE category */ +# define CODESET 10000 +/* nl_langinfo items of the LC_NUMERIC category */ +# define RADIXCHAR 10001 +# define THOUSEP 10002 +/* nl_langinfo items of the LC_TIME category */ +# define D_T_FMT 10003 +# define D_FMT 10004 +# define T_FMT 10005 +# define T_FMT_AMPM 10006 +# define AM_STR 10007 +# define PM_STR 10008 +# define DAY_1 10009 +# define DAY_2 (DAY_1 + 1) +# define DAY_3 (DAY_1 + 2) +# define DAY_4 (DAY_1 + 3) +# define DAY_5 (DAY_1 + 4) +# define DAY_6 (DAY_1 + 5) +# define DAY_7 (DAY_1 + 6) +# define ABDAY_1 10016 +# define ABDAY_2 (ABDAY_1 + 1) +# define ABDAY_3 (ABDAY_1 + 2) +# define ABDAY_4 (ABDAY_1 + 3) +# define ABDAY_5 (ABDAY_1 + 4) +# define ABDAY_6 (ABDAY_1 + 5) +# define ABDAY_7 (ABDAY_1 + 6) +# define MON_1 10023 +# define MON_2 (MON_1 + 1) +# define MON_3 (MON_1 + 2) +# define MON_4 (MON_1 + 3) +# define MON_5 (MON_1 + 4) +# define MON_6 (MON_1 + 5) +# define MON_7 (MON_1 + 6) +# define MON_8 (MON_1 + 7) +# define MON_9 (MON_1 + 8) +# define MON_10 (MON_1 + 9) +# define MON_11 (MON_1 + 10) +# define MON_12 (MON_1 + 11) +# define ABMON_1 10035 +# define ABMON_2 (ABMON_1 + 1) +# define ABMON_3 (ABMON_1 + 2) +# define ABMON_4 (ABMON_1 + 3) +# define ABMON_5 (ABMON_1 + 4) +# define ABMON_6 (ABMON_1 + 5) +# define ABMON_7 (ABMON_1 + 6) +# define ABMON_8 (ABMON_1 + 7) +# define ABMON_9 (ABMON_1 + 8) +# define ABMON_10 (ABMON_1 + 9) +# define ABMON_11 (ABMON_1 + 10) +# define ABMON_12 (ABMON_1 + 11) +# define ERA 10047 +# define ERA_D_FMT 10048 +# define ERA_D_T_FMT 10049 +# define ERA_T_FMT 10050 +# define ALT_DIGITS 10051 +/* nl_langinfo items of the LC_MONETARY category */ +# define CRNCYSTR 10052 +/* nl_langinfo items of the LC_MESSAGES category */ +# define YESEXPR 10053 +# define NOEXPR 10054 + +#else + +/* A platform that has <langinfo.h>. */ + +# if !@HAVE_LANGINFO_CODESET@ +# define CODESET 10000 +# define GNULIB_defined_CODESET 1 +# endif + +# if !@HAVE_LANGINFO_ERA@ +# define ERA 10047 +# define ERA_D_FMT 10048 +# define ERA_D_T_FMT 10049 +# define ERA_T_FMT 10050 +# define ALT_DIGITS 10051 +# define GNULIB_defined_ERA 1 +# endif + +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* Declare overridden functions. */ + + +/* Return a piece of locale dependent information. + Note: The difference between nl_langinfo (CODESET) and locale_charset () + is that the latter normalizes the encoding names to GNU conventions. */ + +#if @GNULIB_NL_LANGINFO@ +# if @REPLACE_NL_LANGINFO@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef nl_langinfo +# define nl_langinfo rpl_nl_langinfo +# endif +_GL_FUNCDECL_RPL (nl_langinfo, char *, (nl_item item)); +_GL_CXXALIAS_RPL (nl_langinfo, char *, (nl_item item)); +# else +# if !@HAVE_NL_LANGINFO@ +_GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item)); +# endif +_GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item)); +# endif +_GL_CXXALIASWARN (nl_langinfo); +#elif defined GNULIB_POSIXCHECK +# undef nl_langinfo +# if HAVE_RAW_DECL_NL_LANGINFO +_GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - " + "use gnulib module nl_langinfo for portability"); +# endif +#endif + + +#endif /* _GL_LANGINFO_H */ +#endif /* _GL_LANGINFO_H */ diff --git a/gnu/lchown.c b/gnu/lchown.c new file mode 100644 index 0000000000000000000000000000000000000000..0753010b9b994220fb9d895b6306d04e800164ae --- /dev/null +++ b/gnu/lchown.c @@ -0,0 +1,118 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Provide a stub lchown function for systems that lack it. + + Copyright (C) 1998-1999, 2002, 2004, 2006-2007, 2009-2010 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 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) +{ + struct stat st; + bool stat_valid = false; + int result; + +# if CHOWN_CHANGE_TIME_BUG + 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/gnu/localcharset.c b/gnu/localcharset.c new file mode 100644 index 0000000000000000000000000000000000000000..4255174418b5b14cde8935f6df3f38bd86413ac0 --- /dev/null +++ b/gnu/localcharset.c @@ -0,0 +1,551 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Determine a canonical name for the current locale's character encoding. + + Copyright (C) 2000-2006, 2008-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Bruno Haible <bruno@clisp.org>. */ + +#include <config.h> + +/* Specification. */ +#include "localcharset.h" + +#include <fcntl.h> +#include <stddef.h> +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET +# define DARWIN7 /* Darwin 7 or newer, i.e. MacOS X 10.3 or newer */ +#endif + +#if defined _WIN32 || defined __WIN32__ +# define WIN32_NATIVE +#endif + +#if defined __EMX__ +/* Assume EMX program runs on OS/2, even if compiled under DOS. */ +# ifndef OS2 +# define OS2 +# endif +#endif + +#if !defined WIN32_NATIVE +# include <unistd.h> +# if HAVE_LANGINFO_CODESET +# include <langinfo.h> +# else +# if 0 /* see comment below */ +# include <locale.h> +# endif +# endif +# ifdef __CYGWIN__ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +# endif +#elif defined WIN32_NATIVE +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +#endif +#if defined OS2 +# define INCL_DOS +# include <os2.h> +#endif + +#if ENABLE_RELOCATABLE +# include "relocatable.h" +#else +# define relocate(pathname) (pathname) +#endif + +/* Get LIBDIR. */ +#ifndef LIBDIR +# include "configmake.h" +#endif + +/* Define O_NOFOLLOW to 0 on platforms where it does not exist. */ +#ifndef O_NOFOLLOW +# define O_NOFOLLOW 0 +#endif + +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Win32, Cygwin, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +#endif + +#ifndef DIRECTORY_SEPARATOR +# define DIRECTORY_SEPARATOR '/' +#endif + +#ifndef ISSLASH +# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) +#endif + +#if HAVE_DECL_GETC_UNLOCKED +# undef getc +# define getc getc_unlocked +#endif + +/* The following static variable is declared 'volatile' to avoid a + possible multithread problem in the function get_charset_aliases. If we + are running in a threaded environment, and if two threads initialize + 'charset_aliases' simultaneously, both will produce the same value, + and everything will be ok if the two assignments to 'charset_aliases' + are atomic. But I don't know what will happen if the two assignments mix. */ +#if __STDC__ != 1 +# define volatile /* empty */ +#endif +/* Pointer to the contents of the charset.alias file, if it has already been + read, else NULL. Its format is: + ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ +static const char * volatile charset_aliases; + +/* Return a pointer to the contents of the charset.alias file. */ +static const char * +get_charset_aliases (void) +{ + const char *cp; + + cp = charset_aliases; + if (cp == NULL) + { +#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) + const char *dir; + const char *base = "charset.alias"; + char *file_name; + + /* Make it possible to override the charset.alias location. This is + necessary for running the testsuite before "make install". */ + dir = getenv ("CHARSETALIASDIR"); + if (dir == NULL || dir[0] == '\0') + dir = relocate (LIBDIR); + + /* Concatenate dir and base into freshly allocated file_name. */ + { + size_t dir_len = strlen (dir); + size_t base_len = strlen (base); + int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); + file_name = (char *) malloc (dir_len + add_slash + base_len + 1); + if (file_name != NULL) + { + memcpy (file_name, dir, dir_len); + if (add_slash) + file_name[dir_len] = DIRECTORY_SEPARATOR; + memcpy (file_name + dir_len + add_slash, base, base_len + 1); + } + } + + if (file_name == NULL) + /* Out of memory. Treat the file as empty. */ + cp = ""; + else + { + int fd; + + /* Open the file. Reject symbolic links on platforms that support + O_NOFOLLOW. This is a security feature. Without it, an attacker + could retrieve parts of the contents (namely, the tail of the + first line that starts with "* ") of an arbitrary file by placing + a symbolic link to that file under the name "charset.alias" in + some writable directory and defining the environment variable + CHARSETALIASDIR to point to that directory. */ + fd = open (file_name, + O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0)); + if (fd < 0) + /* File not found. Treat it as empty. */ + cp = ""; + else + { + FILE *fp; + + fp = fdopen (fd, "r"); + if (fp == NULL) + { + /* Out of memory. Treat the file as empty. */ + close (fd); + cp = ""; + } + else + { + /* Parse the file's contents. */ + char *res_ptr = NULL; + size_t res_size = 0; + + for (;;) + { + int c; + char buf1[50+1]; + char buf2[50+1]; + size_t l1, l2; + char *old_res_ptr; + + c = getc (fp); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') + { + /* Skip comment, to end of line. */ + do + c = getc (fp); + while (!(c == EOF || c == '\n')); + if (c == EOF) + break; + continue; + } + ungetc (c, fp); + if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) + break; + l1 = strlen (buf1); + l2 = strlen (buf2); + old_res_ptr = res_ptr; + if (res_size == 0) + { + res_size = l1 + 1 + l2 + 1; + res_ptr = (char *) malloc (res_size + 1); + } + else + { + res_size += l1 + 1 + l2 + 1; + res_ptr = (char *) realloc (res_ptr, res_size + 1); + } + if (res_ptr == NULL) + { + /* Out of memory. */ + res_size = 0; + if (old_res_ptr != NULL) + free (old_res_ptr); + break; + } + strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); + strcpy (res_ptr + res_size - (l2 + 1), buf2); + } + fclose (fp); + if (res_size == 0) + cp = ""; + else + { + *(res_ptr + res_size) = '\0'; + cp = res_ptr; + } + } + } + + free (file_name); + } + +#else + +# if defined DARWIN7 + /* To avoid the trouble of installing a file that is shared by many + GNU packages -- many packaging systems have problems with this --, + simply inline the aliases here. */ + cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" + "ISO8859-2" "\0" "ISO-8859-2" "\0" + "ISO8859-4" "\0" "ISO-8859-4" "\0" + "ISO8859-5" "\0" "ISO-8859-5" "\0" + "ISO8859-7" "\0" "ISO-8859-7" "\0" + "ISO8859-9" "\0" "ISO-8859-9" "\0" + "ISO8859-13" "\0" "ISO-8859-13" "\0" + "ISO8859-15" "\0" "ISO-8859-15" "\0" + "KOI8-R" "\0" "KOI8-R" "\0" + "KOI8-U" "\0" "KOI8-U" "\0" + "CP866" "\0" "CP866" "\0" + "CP949" "\0" "CP949" "\0" + "CP1131" "\0" "CP1131" "\0" + "CP1251" "\0" "CP1251" "\0" + "eucCN" "\0" "GB2312" "\0" + "GB2312" "\0" "GB2312" "\0" + "eucJP" "\0" "EUC-JP" "\0" + "eucKR" "\0" "EUC-KR" "\0" + "Big5" "\0" "BIG5" "\0" + "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" + "GBK" "\0" "GBK" "\0" + "GB18030" "\0" "GB18030" "\0" + "SJIS" "\0" "SHIFT_JIS" "\0" + "ARMSCII-8" "\0" "ARMSCII-8" "\0" + "PT154" "\0" "PT154" "\0" + /*"ISCII-DEV" "\0" "?" "\0"*/ + "*" "\0" "UTF-8" "\0"; +# endif + +# if defined VMS + /* To avoid the troubles of an extra file charset.alias_vms in the + sources of many GNU packages, simply inline the aliases here. */ + /* The list of encodings is taken from the OpenVMS 7.3-1 documentation + "Compaq C Run-Time Library Reference Manual for OpenVMS systems" + section 10.7 "Handling Different Character Sets". */ + cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" + "ISO8859-2" "\0" "ISO-8859-2" "\0" + "ISO8859-5" "\0" "ISO-8859-5" "\0" + "ISO8859-7" "\0" "ISO-8859-7" "\0" + "ISO8859-8" "\0" "ISO-8859-8" "\0" + "ISO8859-9" "\0" "ISO-8859-9" "\0" + /* Japanese */ + "eucJP" "\0" "EUC-JP" "\0" + "SJIS" "\0" "SHIFT_JIS" "\0" + "DECKANJI" "\0" "DEC-KANJI" "\0" + "SDECKANJI" "\0" "EUC-JP" "\0" + /* Chinese */ + "eucTW" "\0" "EUC-TW" "\0" + "DECHANYU" "\0" "DEC-HANYU" "\0" + "DECHANZI" "\0" "GB2312" "\0" + /* Korean */ + "DECKOREAN" "\0" "EUC-KR" "\0"; +# endif + +# if defined WIN32_NATIVE || defined __CYGWIN__ + /* To avoid the troubles of installing a separate file in the same + directory as the DLL and of retrieving the DLL's directory at + runtime, simply inline the aliases here. */ + + cp = "CP936" "\0" "GBK" "\0" + "CP1361" "\0" "JOHAB" "\0" + "CP20127" "\0" "ASCII" "\0" + "CP20866" "\0" "KOI8-R" "\0" + "CP20936" "\0" "GB2312" "\0" + "CP21866" "\0" "KOI8-RU" "\0" + "CP28591" "\0" "ISO-8859-1" "\0" + "CP28592" "\0" "ISO-8859-2" "\0" + "CP28593" "\0" "ISO-8859-3" "\0" + "CP28594" "\0" "ISO-8859-4" "\0" + "CP28595" "\0" "ISO-8859-5" "\0" + "CP28596" "\0" "ISO-8859-6" "\0" + "CP28597" "\0" "ISO-8859-7" "\0" + "CP28598" "\0" "ISO-8859-8" "\0" + "CP28599" "\0" "ISO-8859-9" "\0" + "CP28605" "\0" "ISO-8859-15" "\0" + "CP38598" "\0" "ISO-8859-8" "\0" + "CP51932" "\0" "EUC-JP" "\0" + "CP51936" "\0" "GB2312" "\0" + "CP51949" "\0" "EUC-KR" "\0" + "CP51950" "\0" "EUC-TW" "\0" + "CP54936" "\0" "GB18030" "\0" + "CP65001" "\0" "UTF-8" "\0"; +# endif +#endif + + charset_aliases = cp; + } + + return cp; +} + +/* Determine the current locale's character encoding, and canonicalize it + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. + If the canonical name cannot be determined, the result is a non-canonical + name. */ + +#ifdef STATIC +STATIC +#endif +const char * +locale_charset (void) +{ + const char *codeset; + const char *aliases; + +#if !(defined WIN32_NATIVE || defined OS2) + +# if HAVE_LANGINFO_CODESET + + /* Most systems support nl_langinfo (CODESET) nowadays. */ + codeset = nl_langinfo (CODESET); + +# ifdef __CYGWIN__ + /* Cygwin 1.5.x does not have locales. nl_langinfo (CODESET) always + returns "US-ASCII". As long as this is not fixed, return the suffix + of the locale name from the environment variables (if present) or + the codepage as a number. */ + if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) + { + const char *locale; + static char buf[2 + 10 + 1]; + + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return + it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + } + + /* Woe32 has a function returning the locale's codepage as a number: + GetACP(). This encoding is used by Cygwin, unless the user has set + the environment variable CYGWIN=codepage:oem (which very few people + do). + Output directed to console windows needs to be converted (to + GetOEMCP() if the console is using a raster font, or to + GetConsoleOutputCP() if it is using a TrueType font). Cygwin does + this conversion transparently (see winsup/cygwin/fhandler_console.cc), + converting to GetConsoleOutputCP(). This leads to correct results, + except when SetConsoleOutputCP has been called and a raster font is + in use. */ + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; + } +# endif + +# else + + /* On old systems which lack it, use setlocale or getenv. */ + const char *locale = NULL; + + /* But most old systems don't have a complete set of locales. Some + (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't + use setlocale here; it would return "C" when it doesn't support the + locale name the user has set. */ +# if 0 + locale = setlocale (LC_CTYPE, NULL); +# endif + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + } + + /* On some old systems, one used to set locale = "iso8859_1". On others, + you set it to "language_COUNTRY.charset". In any case, we resolve it + through the charset.alias file. */ + codeset = locale; + +# endif + +#elif defined WIN32_NATIVE + + static char buf[2 + 10 + 1]; + + /* Woe32 has a function returning the locale's codepage as a number: + GetACP(). + When the output goes to a console window, it needs to be provided in + GetOEMCP() encoding if the console is using a raster font, or in + GetConsoleOutputCP() encoding if it is using a TrueType font. + But in GUI programs and for output sent to files and pipes, GetACP() + encoding is the best bet. */ + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; + +#elif defined OS2 + + const char *locale; + static char buf[2 + 10 + 1]; + ULONG cp[3]; + ULONG cplen; + + /* Allow user to override the codeset, as set in the operating system, + with standard language environment variables. */ + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + + /* Resolve through the charset.alias file. */ + codeset = locale; + } + else + { + /* OS/2 has a function returning the locale's codepage as a number. */ + if (DosQueryCp (sizeof (cp), cp, &cplen)) + codeset = ""; + else + { + sprintf (buf, "CP%u", cp[0]); + codeset = buf; + } + } + +#endif + + if (codeset == NULL) + /* The canonical name cannot be determined. */ + codeset = ""; + + /* Resolve alias. */ + for (aliases = get_charset_aliases (); + *aliases != '\0'; + aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) + if (strcmp (codeset, aliases) == 0 + || (aliases[0] == '*' && aliases[1] == '\0')) + { + codeset = aliases + strlen (aliases) + 1; + break; + } + + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + if (codeset[0] == '\0') + codeset = "ASCII"; + + return codeset; +} diff --git a/lib/localcharset.h b/gnu/localcharset.h similarity index 95% rename from lib/localcharset.h rename to gnu/localcharset.h index 7f0b97447ffa567c8dd70d5f7fdf1b74f640aa7b..9a67c0deb0ee3366ceabf1ad14680537214cc293 100644 --- a/lib/localcharset.h +++ b/gnu/localcharset.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2009-2010 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. This program is free software; you can redistribute it and/or modify diff --git a/lib/lseek.c b/gnu/lseek.c similarity index 96% rename from lib/lseek.c rename to gnu/lseek.c index f0b76035e038254bd0f6dd1690def406fc25974f..831e538343cba4bbfd8a7ffc4a8c9e58edb47035 100644 --- a/lib/lseek.c +++ b/gnu/lseek.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An lseek() function that detects pipes. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 2009, 2010 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 diff --git a/lib/lstat.c b/gnu/lstat.c similarity index 53% rename from lib/lstat.c rename to gnu/lstat.c index 3e07270801a9a019c747ca8c83d36136ee0116ca..4d9e28a4e2bf34c05ae3d2418b8648ee12d6e363 100644 --- a/lib/lstat.c +++ b/gnu/lstat.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Work around a bug of lstat on some systems - Copyright (C) 1997-1999, 2000-2006, 2008 Free Software Foundation, Inc. + Copyright (C) 1997-2006, 2008-2010 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 @@ -19,11 +21,18 @@ #include <config.h> -/* Get the original definition of open. It might be defined as a macro. */ -#define __need_system_sys_stat_h -#include <sys/types.h> -#include <sys/stat.h> -#undef __need_system_sys_stat_h +#if !HAVE_LSTAT +/* On systems that lack symlinks, our replacement <sys/stat.h> already + defined lstat as stat, so there is nothing further to do other than + avoid an empty file. */ +typedef int dummy; +#else /* HAVE_LSTAT */ + +/* Get the original definition of lstat. It might be defined as a macro. */ +# define __need_system_sys_stat_h +# include <sys/types.h> +# include <sys/stat.h> +# undef __need_system_sys_stat_h static inline int orig_lstat (const char *filename, struct stat *buf) @@ -32,10 +41,10 @@ orig_lstat (const char *filename, struct stat *buf) } /* Specification. */ -#include <sys/stat.h> +# include <sys/stat.h> -#include <string.h> -#include <errno.h> +# include <string.h> +# include <errno.h> /* lstat works differently on Linux and Solaris systems. POSIX (see `pathname resolution' in the glossary) requires that programs like @@ -56,27 +65,29 @@ rpl_lstat (const char *file, struct stat *sbuf) size_t len; int lstat_result = orig_lstat (file, sbuf); - if (lstat_result != 0 || !S_ISLNK (sbuf->st_mode)) + if (lstat_result != 0) return lstat_result; + /* This replacement file can blindly check against '/' rather than + using the ISSLASH macro, because all platforms with '\\' either + lack symlinks (mingw) or have working lstat (cygwin) and thus do + not compile this file. 0 len should have already been filtered + out above, with a failure return of ENOENT. */ len = strlen (file); - if (len == 0 || file[len - 1] != '/') - return 0; - - /* FILE refers to a symbolic link and the name ends with a slash. - Call stat() to get info about the link's referent. */ - - /* If stat fails, then we do the same. */ - if (stat (file, sbuf) != 0) - return -1; - - /* If FILE references a directory, return 0. */ - if (S_ISDIR (sbuf->st_mode)) + if (file[len - 1] != '/' || S_ISDIR (sbuf->st_mode)) return 0; - /* Here, we know stat succeeded and FILE references a non-directory. - But it was specified via a name including a trailing slash. - Fail with errno set to ENOTDIR to indicate the contradiction. */ - errno = ENOTDIR; - return -1; + /* At this point, a trailing slash is only permitted on + symlink-to-dir; but it should have found information on the + directory, not the symlink. Call stat() to get info about the + link's referent. Our replacement stat guarantees valid results, + even if the symlink is not pointing to a directory. */ + if (!S_ISLNK (sbuf->st_mode)) + { + errno = ENOTDIR; + return -1; + } + return stat (file, sbuf); } + +#endif /* HAVE_LSTAT */ diff --git a/lib/malloc.c b/gnu/malloc.c similarity index 94% rename from lib/malloc.c rename to gnu/malloc.c index 4738df28de13b8a6aaac304a42369137fc8b1fb4..d9eec75e5d114cced0bb6ead665fabbdea15f375 100644 --- a/lib/malloc.c +++ b/gnu/malloc.c @@ -2,7 +2,7 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* malloc() function that is glibc compatible. - Copyright (C) 1997, 1998, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1997-1998, 2006-2007, 2009-2010 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 diff --git a/lib/malloca.c b/gnu/malloca.c similarity index 72% rename from lib/malloca.c rename to gnu/malloca.c index 52f0c672fa85922e1663a403f48209a03e142eff..6b59638e2a5c730f17d17de24fd8d4b475489d2f 100644 --- a/lib/malloca.c +++ b/gnu/malloca.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Safe automatic memory allocation. - Copyright (C) 2003, 2006-2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2007, 2009-2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. This program is free software; you can redistribute it and/or modify @@ -76,21 +76,21 @@ mmalloca (size_t n) char *p = (char *) malloc (nplus); if (p != NULL) - { - size_t slot; + { + size_t slot; - p += HEADER_SIZE; + p += HEADER_SIZE; - /* Put a magic number into the indicator word. */ - ((int *) p)[-1] = MAGIC_NUMBER; + /* Put a magic number into the indicator word. */ + ((int *) p)[-1] = MAGIC_NUMBER; - /* Enter p into the hash table. */ - slot = (unsigned long) p % HASH_TABLE_SIZE; - ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot]; - mmalloca_results[slot] = p; + /* Enter p into the hash table. */ + slot = (unsigned long) p % HASH_TABLE_SIZE; + ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot]; + mmalloca_results[slot] = p; - return p; - } + return p; + } } /* Out of memory. */ return NULL; @@ -111,28 +111,28 @@ freea (void *p) if (p != NULL) { /* Attempt to quickly distinguish the mmalloca() result - which has - a magic indicator word - and the alloca() result - which has an - uninitialized indicator word. It is for this test that sa_increment - additional bytes are allocated in the alloca() case. */ + a magic indicator word - and the alloca() result - which has an + uninitialized indicator word. It is for this test that sa_increment + additional bytes are allocated in the alloca() case. */ if (((int *) p)[-1] == MAGIC_NUMBER) - { - /* Looks like a mmalloca() result. To see whether it really is one, - perform a lookup in the hash table. */ - size_t slot = (unsigned long) p % HASH_TABLE_SIZE; - void **chain = &mmalloca_results[slot]; - for (; *chain != NULL;) - { - if (*chain == p) - { - /* Found it. Remove it from the hash table and free it. */ - char *p_begin = (char *) p - HEADER_SIZE; - *chain = ((struct header *) p_begin)->next; - free (p_begin); - return; - } - chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next; - } - } + { + /* Looks like a mmalloca() result. To see whether it really is one, + perform a lookup in the hash table. */ + size_t slot = (unsigned long) p % HASH_TABLE_SIZE; + void **chain = &mmalloca_results[slot]; + for (; *chain != NULL;) + { + if (*chain == p) + { + /* Found it. Remove it from the hash table and free it. */ + char *p_begin = (char *) p - HEADER_SIZE; + *chain = ((struct header *) p_begin)->next; + free (p_begin); + return; + } + chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next; + } + } /* At this point, we know it was not a mmalloca() result. */ } } diff --git a/lib/malloca.h b/gnu/malloca.h similarity index 94% rename from lib/malloca.h rename to gnu/malloca.h index ae180c394c772250a3d3b2ee14394a544211b904..b0c78a3fffafdfc023a71d963fdaa1a6b45d222b 100644 --- a/lib/malloca.h +++ b/gnu/malloca.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Safe automatic memory allocation. - Copyright (C) 2003-2007 Free Software Foundation, Inc. + Copyright (C) 2003-2007, 2009-2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. This program is free software; you can redistribute it and/or modify @@ -56,7 +56,7 @@ extern "C" { the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ - ((N) < 4032 - sa_increment \ + ((N) < 4032 - sa_increment \ ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \ : mmalloca (N)) #else @@ -124,10 +124,10 @@ enum sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) #if HAVE_LONG_LONG_INT - | (sa_alignment_longlong - 1) + | (sa_alignment_longlong - 1) #endif - | (sa_alignment_longdouble - 1) - ) + 1, + | (sa_alignment_longdouble - 1) + ) + 1, /* The increment that guarantees room for a magic word must be >= sizeof (int) and a multiple of sa_alignment_max. */ sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max diff --git a/lib/malloca.valgrind b/gnu/malloca.valgrind similarity index 100% rename from lib/malloca.valgrind rename to gnu/malloca.valgrind diff --git a/lib/mbchar.c b/gnu/mbchar.c similarity index 71% rename from lib/mbchar.c rename to gnu/mbchar.c index 6fa14b09c0e67f2f934fdfc67b320f47a77c0033..b140b341bed69518f9c8b75f22e0dee13d120be6 100644 --- a/lib/mbchar.c +++ b/gnu/mbchar.c @@ -1,4 +1,6 @@ -/* Copyright (C) 2001, 2006 Free Software Foundation, Inc. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 2001, 2006, 2009, 2010 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 @@ -25,10 +27,10 @@ /* Bit table of characters in the ISO C "basic character set". */ const unsigned int is_basic_table [UCHAR_MAX / 32 + 1] = { - 0x00001a00, /* '\t' '\v' '\f' */ - 0xffffffef, /* ' '...'#' '%'...'?' */ - 0xfffffffe, /* 'A'...'Z' '[' '\\' ']' '^' '_' */ - 0x7ffffffe /* 'a'...'z' '{' '|' '}' '~' */ + 0x00001a00, /* '\t' '\v' '\f' */ + 0xffffffef, /* ' '...'#' '%'...'?' */ + 0xfffffffe, /* 'A'...'Z' '[' '\\' ']' '^' '_' */ + 0x7ffffffe /* 'a'...'z' '{' '|' '}' '~' */ /* The remaining bits are 0. */ }; diff --git a/lib/mbchar.h b/gnu/mbchar.h similarity index 73% rename from lib/mbchar.h rename to gnu/mbchar.h index 5d47a0a9c520da080fcc03da3adab99ac2f72553..bbefddb7efd898e1205a08c004bd6a299429b108 100644 --- a/lib/mbchar.h +++ b/gnu/mbchar.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Multibyte character data type. - Copyright (C) 2001, 2005-2007 Free Software Foundation, Inc. + Copyright (C) 2001, 2005-2007, 2009-2010 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 @@ -114,31 +116,31 @@ Here are the function prototypes of the macros. - extern const char * mb_ptr (const mbchar_t mbc); - extern size_t mb_len (const mbchar_t mbc); - extern bool mb_iseq (const mbchar_t mbc, char sc); - extern bool mb_isnul (const mbchar_t mbc); - extern int mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2); - extern int mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_equal (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_isalnum (const mbchar_t mbc); - extern bool mb_isalpha (const mbchar_t mbc); - extern bool mb_isascii (const mbchar_t mbc); - extern bool mb_isblank (const mbchar_t mbc); - extern bool mb_iscntrl (const mbchar_t mbc); - extern bool mb_isdigit (const mbchar_t mbc); - extern bool mb_isgraph (const mbchar_t mbc); - extern bool mb_islower (const mbchar_t mbc); - extern bool mb_isprint (const mbchar_t mbc); - extern bool mb_ispunct (const mbchar_t mbc); - extern bool mb_isspace (const mbchar_t mbc); - extern bool mb_isupper (const mbchar_t mbc); - extern bool mb_isxdigit (const mbchar_t mbc); - extern int mb_width (const mbchar_t mbc); - extern void mb_putc (const mbchar_t mbc, FILE *stream); + extern const char * mb_ptr (const mbchar_t mbc); + extern size_t mb_len (const mbchar_t mbc); + extern bool mb_iseq (const mbchar_t mbc, char sc); + extern bool mb_isnul (const mbchar_t mbc); + extern int mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2); + extern int mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2); + extern bool mb_equal (const mbchar_t mbc1, const mbchar_t mbc2); + extern bool mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2); + extern bool mb_isalnum (const mbchar_t mbc); + extern bool mb_isalpha (const mbchar_t mbc); + extern bool mb_isascii (const mbchar_t mbc); + extern bool mb_isblank (const mbchar_t mbc); + extern bool mb_iscntrl (const mbchar_t mbc); + extern bool mb_isdigit (const mbchar_t mbc); + extern bool mb_isgraph (const mbchar_t mbc); + extern bool mb_islower (const mbchar_t mbc); + extern bool mb_isprint (const mbchar_t mbc); + extern bool mb_ispunct (const mbchar_t mbc); + extern bool mb_isspace (const mbchar_t mbc); + extern bool mb_isupper (const mbchar_t mbc); + extern bool mb_isxdigit (const mbchar_t mbc); + extern int mb_width (const mbchar_t mbc); + extern void mb_putc (const mbchar_t mbc, FILE *stream); extern void mb_setascii (mbchar_t *new, char sc); - extern void mb_copy (mbchar_t *new, const mbchar_t *old); + extern void mb_copy (mbchar_t *new, const mbchar_t *old); */ #ifndef _MBCHAR_H @@ -160,10 +162,10 @@ struct mbchar { - const char *ptr; /* pointer to current character */ - size_t bytes; /* number of bytes of current character, > 0 */ - bool wc_valid; /* true if wc is a valid wide character */ - wchar_t wc; /* if wc_valid: the current character */ + const char *ptr; /* pointer to current character */ + size_t bytes; /* number of bytes of current character, > 0 */ + bool wc_valid; /* true if wc is a valid wide character */ + wchar_t wc; /* if wc_valid: the current character */ char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */ }; @@ -180,38 +182,38 @@ typedef struct mbchar mbchar_t; #define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc)) #define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0) #define mb_cmp(mbc1, mbc2) \ - ((mbc1).wc_valid \ - ? ((mbc2).wc_valid \ - ? (int) (mbc1).wc - (int) (mbc2).wc \ - : -1) \ - : ((mbc2).wc_valid \ - ? 1 \ - : (mbc1).bytes == (mbc2).bytes \ - ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ - : (mbc1).bytes < (mbc2).bytes \ + ((mbc1).wc_valid \ + ? ((mbc2).wc_valid \ + ? (int) (mbc1).wc - (int) (mbc2).wc \ + : -1) \ + : ((mbc2).wc_valid \ + ? 1 \ + : (mbc1).bytes == (mbc2).bytes \ + ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ + : (mbc1).bytes < (mbc2).bytes \ ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) #define mb_casecmp(mbc1, mbc2) \ - ((mbc1).wc_valid \ - ? ((mbc2).wc_valid \ - ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc) \ - : -1) \ - : ((mbc2).wc_valid \ - ? 1 \ - : (mbc1).bytes == (mbc2).bytes \ - ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ - : (mbc1).bytes < (mbc2).bytes \ + ((mbc1).wc_valid \ + ? ((mbc2).wc_valid \ + ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc) \ + : -1) \ + : ((mbc2).wc_valid \ + ? 1 \ + : (mbc1).bytes == (mbc2).bytes \ + ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ + : (mbc1).bytes < (mbc2).bytes \ ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) #define mb_equal(mbc1, mbc2) \ - ((mbc1).wc_valid && (mbc2).wc_valid \ - ? (mbc1).wc == (mbc2).wc \ - : (mbc1).bytes == (mbc2).bytes \ + ((mbc1).wc_valid && (mbc2).wc_valid \ + ? (mbc1).wc == (mbc2).wc \ + : (mbc1).bytes == (mbc2).bytes \ && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) #define mb_caseequal(mbc1, mbc2) \ - ((mbc1).wc_valid && (mbc2).wc_valid \ - ? towlower ((mbc1).wc) == towlower ((mbc2).wc) \ - : (mbc1).bytes == (mbc2).bytes \ + ((mbc1).wc_valid && (mbc2).wc_valid \ + ? towlower ((mbc1).wc) == towlower ((mbc2).wc) \ + : (mbc1).bytes == (mbc2).bytes \ && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) /* <ctype.h>, <wctype.h> classification. */ @@ -308,7 +310,7 @@ static inline bool is_basic (char c) { return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31)) - & 1; + & 1; } #else diff --git a/gnu/mbrtowc.c b/gnu/mbrtowc.c new file mode 100644 index 0000000000000000000000000000000000000000..7768ce93c274e1e4ff10d1e264f525695de61c09 --- /dev/null +++ b/gnu/mbrtowc.c @@ -0,0 +1,388 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Convert multibyte character to wide character. + Copyright (C) 1999-2002, 2005-2010 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2008. + + 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/>. */ + +#include <config.h> + +/* Specification. */ +#include <wchar.h> + +#if GNULIB_defined_mbstate_t +/* Implement mbrtowc() on top of mbtowc(). */ + +# include <errno.h> +# include <stdlib.h> + +# include "localcharset.h" +# include "streq.h" +# include "verify.h" + + +verify (sizeof (mbstate_t) >= 4); + +static char internal_state[4]; + +size_t +mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) +{ + char *pstate = (char *)ps; + + if (pstate == NULL) + pstate = internal_state; + + if (s == NULL) + { + pwc = NULL; + s = ""; + n = 1; + } + + if (n == 0) + return (size_t)(-2); + + /* Here n > 0. */ + { + size_t nstate = pstate[0]; + char buf[4]; + const char *p; + size_t m; + + switch (nstate) + { + case 0: + p = s; + m = n; + break; + case 3: + buf[2] = pstate[3]; + /*FALLTHROUGH*/ + case 2: + buf[1] = pstate[2]; + /*FALLTHROUGH*/ + case 1: + buf[0] = pstate[1]; + p = buf; + m = nstate; + buf[m++] = s[0]; + if (n >= 2 && m < 4) + { + buf[m++] = s[1]; + if (n >= 3 && m < 4) + buf[m++] = s[2]; + } + break; + default: + errno = EINVAL; + return (size_t)(-1); + } + + /* Here m > 0. */ + +# if __GLIBC__ + /* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */ + mbtowc (NULL, NULL, 0); +# endif + { + int res = mbtowc (pwc, p, m); + + if (res >= 0) + { + if (pwc != NULL && ((*pwc == 0) != (res == 0))) + abort (); + if (nstate >= (res > 0 ? res : 1)) + abort (); + res -= nstate; + pstate[0] = 0; + return res; + } + + /* mbtowc does not distinguish between invalid and incomplete multibyte + sequences. But mbrtowc needs to make this distinction. + There are two possible approaches: + - Use iconv() and its return value. + - Use built-in knowledge about the possible encodings. + Given the low quality of implementation of iconv() on the systems that + lack mbrtowc(), we use the second approach. + The possible encodings are: + - 8-bit encodings, + - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, + - UTF-8. + Use specialized code for each. */ + if (m >= 4 || m >= MB_CUR_MAX) + goto invalid; + /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ + { + const char *encoding = locale_charset (); + + if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) + { + /* Cf. unistr/u8-mblen.c. */ + unsigned char c = (unsigned char) p[0]; + + if (c >= 0xc2) + { + if (c < 0xe0) + { + if (m == 1) + goto incomplete; + } + else if (c < 0xf0) + { + if (m == 1) + goto incomplete; + if (m == 2) + { + unsigned char c2 = (unsigned char) p[1]; + + if ((c2 ^ 0x80) < 0x40 + && (c >= 0xe1 || c2 >= 0xa0) + && (c != 0xed || c2 < 0xa0)) + goto incomplete; + } + } + else if (c <= 0xf4) + { + if (m == 1) + goto incomplete; + else /* m == 2 || m == 3 */ + { + unsigned char c2 = (unsigned char) p[1]; + + if ((c2 ^ 0x80) < 0x40 + && (c >= 0xf1 || c2 >= 0x90) + && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) + { + if (m == 2) + goto incomplete; + else /* m == 3 */ + { + unsigned char c3 = (unsigned char) p[2]; + + if ((c3 ^ 0x80) < 0x40) + goto incomplete; + } + } + } + } + } + goto invalid; + } + + /* As a reference for this code, you can use the GNU libiconv + implementation. Look for uses of the RET_TOOFEW macro. */ + + if (STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) + goto incomplete; + } + if (m == 2) + { + unsigned char c = (unsigned char) p[0]; + + if (c == 0x8f) + { + unsigned char c2 = (unsigned char) p[1]; + + if (c2 >= 0xa1 && c2 < 0xff) + goto incomplete; + } + } + goto invalid; + } + if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) + || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) + || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if (c >= 0xa1 && c < 0xff) + goto incomplete; + } + goto invalid; + } + if (STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0xa1 && c < 0xff) || c == 0x8e) + goto incomplete; + } + else /* m == 2 || m == 3 */ + { + unsigned char c = (unsigned char) p[0]; + + if (c == 0x8e) + goto incomplete; + } + goto invalid; + } + if (STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) + goto incomplete; + } + else /* m == 2 || m == 3 */ + { + unsigned char c = (unsigned char) p[0]; + + if (c >= 0x90 && c <= 0xe3) + { + unsigned char c2 = (unsigned char) p[1]; + + if (c2 >= 0x30 && c2 <= 0x39) + { + if (m == 2) + goto incomplete; + else /* m == 3 */ + { + unsigned char c3 = (unsigned char) p[2]; + + if (c3 >= 0x81 && c3 <= 0xfe) + goto incomplete; + } + } + } + } + goto invalid; + } + if (STREQ (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) + { + if (m == 1) + { + unsigned char c = (unsigned char) p[0]; + + if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) + || (c >= 0xf0 && c <= 0xf9)) + goto incomplete; + } + goto invalid; + } + + /* An unknown multibyte encoding. */ + goto incomplete; + } + + incomplete: + { + size_t k = nstate; + /* Here 0 <= k < m < 4. */ + pstate[++k] = s[0]; + if (k < m) + { + pstate[++k] = s[1]; + if (k < m) + pstate[++k] = s[2]; + } + if (k != m) + abort (); + } + pstate[0] = m; + return (size_t)(-2); + + invalid: + errno = EILSEQ; + /* The conversion state is undefined, says POSIX. */ + return (size_t)(-1); + } + } +} + +#else +/* Override the system's mbrtowc() function. */ + +# undef mbrtowc + +size_t +rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) +{ +# if MBRTOWC_NULL_ARG_BUG || MBRTOWC_RETVAL_BUG + if (s == NULL) + { + pwc = NULL; + s = ""; + n = 1; + } +# endif + +# if MBRTOWC_RETVAL_BUG + { + static mbstate_t internal_state; + + /* Override mbrtowc's internal state. We can not call mbsinit() on the + hidden internal state, but we can call it on our variable. */ + if (ps == NULL) + ps = &internal_state; + + if (!mbsinit (ps)) + { + /* Parse the rest of the multibyte character byte for byte. */ + size_t count = 0; + for (; n > 0; s++, n--) + { + wchar_t wc; + size_t ret = mbrtowc (&wc, s, 1, ps); + + if (ret == (size_t)(-1)) + return (size_t)(-1); + count++; + if (ret != (size_t)(-2)) + { + /* The multibyte character has been completed. */ + if (pwc != NULL) + *pwc = wc; + return (wc == 0 ? 0 : count); + } + } + return (size_t)(-2); + } + } +# endif + +# if MBRTOWC_NUL_RETVAL_BUG + { + wchar_t wc; + size_t ret = mbrtowc (&wc, s, n, ps); + + if (ret != (size_t)(-1) && ret != (size_t)(-2)) + { + if (pwc != NULL) + *pwc = wc; + if (wc == 0) + ret = 0; + } + return ret; + } +# else + return mbrtowc (pwc, s, n, ps); +# endif +} + +#endif diff --git a/lib/mbscasecmp.c b/gnu/mbscasecmp.c similarity index 69% rename from lib/mbscasecmp.c rename to gnu/mbscasecmp.c index 7fdfdeb3d66ef1cd3f01f7c3a577fa5eb3ef169c..285554b3ec27e61265ecdd19241826a07dee428f 100644 --- a/lib/mbscasecmp.c +++ b/gnu/mbscasecmp.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2008 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2005, based on earlier glibc code. @@ -51,21 +53,21 @@ mbscasecmp (const char *s1, const char *s2) mbui_init (iter2, s2); while (mbui_avail (iter1) && mbui_avail (iter2)) - { - int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2)); + { + int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2)); - if (cmp != 0) - return cmp; + if (cmp != 0) + return cmp; - mbui_advance (iter1); - mbui_advance (iter2); - } + mbui_advance (iter1); + mbui_advance (iter2); + } if (mbui_avail (iter1)) - /* s2 terminated before s1. */ - return 1; + /* s2 terminated before s1. */ + return 1; if (mbui_avail (iter2)) - /* s1 terminated before s2. */ - return -1; + /* s1 terminated before s2. */ + return -1; return 0; } else @@ -75,24 +77,24 @@ mbscasecmp (const char *s1, const char *s2) unsigned char c1, c2; do - { - c1 = TOLOWER (*p1); - c2 = TOLOWER (*p2); + { + c1 = TOLOWER (*p1); + c2 = TOLOWER (*p2); - if (c1 == '\0') - break; + if (c1 == '\0') + break; - ++p1; - ++p2; - } + ++p1; + ++p2; + } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) - return c1 - c2; + return c1 - c2; else - /* On machines where 'char' and 'int' are types of the same size, the - difference of two 'unsigned char' values - including the sign bit - - doesn't fit in an 'int'. */ - return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); + /* On machines where 'char' and 'int' are types of the same size, the + difference of two 'unsigned char' values - including the sign bit - + doesn't fit in an 'int'. */ + return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } } diff --git a/lib/mbsinit.c b/gnu/mbsinit.c similarity index 91% rename from lib/mbsinit.c rename to gnu/mbsinit.c index 81fed5a12b8849a8df57809aeddc139bdb201b88..78f113b50b8a0fd4d39d121c36b6e0f66c5640da 100644 --- a/lib/mbsinit.c +++ b/gnu/mbsinit.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Test for initial conversion state. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify diff --git a/gnu/mbsrtowcs-state.c b/gnu/mbsrtowcs-state.c new file mode 100644 index 0000000000000000000000000000000000000000..e84dcbe492debc1426cac7daa9fae12b5bfc73dc --- /dev/null +++ b/gnu/mbsrtowcs-state.c @@ -0,0 +1,39 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Convert string to wide string. + Copyright (C) 2008-2010 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2008. + + 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/>. */ + +#include <config.h> + +#include <wchar.h> + +/* Internal state used by the functions mbsrtowcs() and mbsnrtowcs(). */ +mbstate_t _gl_mbsrtowcs_state +/* The state must initially be in the "initial state"; so, zero-initialize it. + On most systems, putting it into BSS is sufficient. Not so on MacOS X 10.3, + see <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>. + When it needs an initializer, use 0 or {0} as initializer? 0 only works + when mbstate_t is a scalar type (such as when gnulib defines it, or on + AIX, IRIX, mingw). {0} works as an initializer in all cases: for a struct + or union type, but also for a scalar type (ISO C 99, 6.7.8.(11)). */ +#if defined __ELF__ + /* On ELF systems, variables in BSS behave well. */ +#else + /* Use braces, to be on the safe side. */ + = { 0 } +#endif + ; diff --git a/gnu/mbsrtowcs.c b/gnu/mbsrtowcs.c new file mode 100644 index 0000000000000000000000000000000000000000..ced294206c0128150938008636f8b2e87263fe51 --- /dev/null +++ b/gnu/mbsrtowcs.c @@ -0,0 +1,138 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Convert string to wide string. + Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2008. + + 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/>. */ + +#include <config.h> + +/* Specification. */ +#include <wchar.h> + +#include <errno.h> +#include <limits.h> +#include <stdlib.h> + +#include "strnlen1.h" + + +extern mbstate_t _gl_mbsrtowcs_state; + +size_t +mbsrtowcs (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) +{ + if (ps == NULL) + ps = &_gl_mbsrtowcs_state; + { + const char *src = *srcp; + + if (dest != NULL) + { + wchar_t *destptr = dest; + + for (; len > 0; destptr++, len--) + { + size_t src_avail; + size_t ret; + + /* An optimized variant of + src_avail = strnlen1 (src, MB_LEN_MAX); */ + if (src[0] == '\0') + src_avail = 1; + else if (src[1] == '\0') + src_avail = 2; + else if (src[2] == '\0') + src_avail = 3; + else if (MB_LEN_MAX <= 4 || src[3] == '\0') + src_avail = 4; + else + src_avail = 4 + strnlen1 (src + 4, MB_LEN_MAX - 4); + + /* Parse the next multibyte character. */ + ret = mbrtowc (destptr, src, src_avail, ps); + + if (ret == (size_t)(-2)) + /* Encountered a multibyte character that extends past a '\0' byte + or that is longer than MB_LEN_MAX bytes. Cannot happen. */ + abort (); + + if (ret == (size_t)(-1)) + goto bad_input; + if (ret == 0) + { + src = NULL; + /* Here mbsinit (ps). */ + break; + } + src += ret; + } + + *srcp = src; + return destptr - dest; + } + else + { + /* Ignore dest and len, don't store *srcp at the end, and + don't clobber *ps. */ + mbstate_t state = *ps; + size_t totalcount = 0; + + for (;; totalcount++) + { + size_t src_avail; + size_t ret; + + /* An optimized variant of + src_avail = strnlen1 (src, MB_LEN_MAX); */ + if (src[0] == '\0') + src_avail = 1; + else if (src[1] == '\0') + src_avail = 2; + else if (src[2] == '\0') + src_avail = 3; + else if (MB_LEN_MAX <= 4 || src[3] == '\0') + src_avail = 4; + else + src_avail = 4 + strnlen1 (src + 4, MB_LEN_MAX - 4); + + /* Parse the next multibyte character. */ + ret = mbrtowc (NULL, src, src_avail, &state); + + if (ret == (size_t)(-2)) + /* Encountered a multibyte character that extends past a '\0' byte + or that is longer than MB_LEN_MAX bytes. Cannot happen. */ + abort (); + + if (ret == (size_t)(-1)) + goto bad_input2; + if (ret == 0) + { + /* Here mbsinit (&state). */ + break; + } + src += ret; + } + + return totalcount; + } + + bad_input: + *srcp = src; + bad_input2: + errno = EILSEQ; + return (size_t)(-1); + } +} diff --git a/lib/mbuiter.h b/gnu/mbuiter.h similarity index 66% rename from lib/mbuiter.h rename to gnu/mbuiter.h index 213e710307fce2b0ba0447a39a23278e9d018644..a81e6ade03c5744a8fca73d5e51c01b0f436f520 100644 --- a/lib/mbuiter.h +++ b/gnu/mbuiter.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Iterating through multibyte strings: macros for multi-byte encodings. - Copyright (C) 2001, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2001, 2005, 2007, 2009, 2010 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 @@ -77,13 +79,13 @@ Here are the function prototypes of the macros. - extern void mbui_init (mbui_iterator_t iter, const char *startptr); - extern bool mbui_avail (mbui_iterator_t iter); - extern void mbui_advance (mbui_iterator_t iter); - extern mbchar_t mbui_cur (mbui_iterator_t iter); - extern const char * mbui_cur_ptr (mbui_iterator_t iter); - extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff); - extern void mbui_copy (mbui_iterator_t *new, const mbui_iterator_t *old); + extern void mbui_init (mbui_iterator_t iter, const char *startptr); + extern bool mbui_avail (mbui_iterator_t iter); + extern void mbui_advance (mbui_iterator_t iter); + extern mbchar_t mbui_cur (mbui_iterator_t iter); + extern const char * mbui_cur_ptr (mbui_iterator_t iter); + extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff); + extern void mbui_copy (mbui_iterator_t *new, const mbui_iterator_t *old); */ #ifndef _MBUITER_H @@ -108,16 +110,16 @@ struct mbuiter_multi { - bool in_shift; /* true if next byte may not be interpreted as ASCII */ - mbstate_t state; /* if in_shift: current shift state */ - bool next_done; /* true if mbui_avail has already filled the following */ - struct mbchar cur; /* the current character: - const char *cur.ptr pointer to current character - The following are only valid after mbui_avail. - size_t cur.bytes number of bytes of current character - bool cur.wc_valid true if wc is a valid wide character - wchar_t cur.wc if wc_valid: the current character - */ + bool in_shift; /* true if next byte may not be interpreted as ASCII */ + mbstate_t state; /* if in_shift: current shift state */ + bool next_done; /* true if mbui_avail has already filled the following */ + struct mbchar cur; /* the current character: + const char *cur.ptr pointer to current character + The following are only valid after mbui_avail. + size_t cur.bytes number of bytes of current character + bool cur.wc_valid true if wc is a valid wide character + wchar_t cur.wc if wc_valid: the current character + */ }; static inline void @@ -131,8 +133,8 @@ mbuiter_multi_next (struct mbuiter_multi *iter) if (is_basic (*iter->cur.ptr)) { /* These characters are part of the basic character set. ISO C 99 - guarantees that their wide character code is identical to their - char code. */ + guarantees that their wide character code is identical to their + char code. */ iter->cur.bytes = 1; iter->cur.wc = *iter->cur.ptr; iter->cur.wc_valid = true; @@ -143,40 +145,40 @@ mbuiter_multi_next (struct mbuiter_multi *iter) iter->in_shift = true; with_shift: iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr, - strnlen1 (iter->cur.ptr, MB_CUR_MAX), - &iter->state); + strnlen1 (iter->cur.ptr, MB_CUR_MAX), + &iter->state); if (iter->cur.bytes == (size_t) -1) - { - /* An invalid multibyte sequence was encountered. */ - iter->cur.bytes = 1; - iter->cur.wc_valid = false; - /* Whether to set iter->in_shift = false and reset iter->state - or not is not very important; the string is bogus anyway. */ - } + { + /* An invalid multibyte sequence was encountered. */ + iter->cur.bytes = 1; + iter->cur.wc_valid = false; + /* Whether to set iter->in_shift = false and reset iter->state + or not is not very important; the string is bogus anyway. */ + } else if (iter->cur.bytes == (size_t) -2) - { - /* An incomplete multibyte character at the end. */ - iter->cur.bytes = strlen (iter->cur.ptr); - iter->cur.wc_valid = false; - /* Whether to set iter->in_shift = false and reset iter->state - or not is not important; the string end is reached anyway. */ - } + { + /* An incomplete multibyte character at the end. */ + iter->cur.bytes = strlen (iter->cur.ptr); + iter->cur.wc_valid = false; + /* Whether to set iter->in_shift = false and reset iter->state + or not is not important; the string end is reached anyway. */ + } else - { - if (iter->cur.bytes == 0) - { - /* A null wide character was encountered. */ - iter->cur.bytes = 1; - assert (*iter->cur.ptr == '\0'); - assert (iter->cur.wc == 0); - } - iter->cur.wc_valid = true; - - /* When in the initial state, we can go back treating ASCII - characters more quickly. */ - if (mbsinit (&iter->state)) - iter->in_shift = false; - } + { + if (iter->cur.bytes == 0) + { + /* A null wide character was encountered. */ + iter->cur.bytes = 1; + assert (*iter->cur.ptr == '\0'); + assert (iter->cur.wc == 0); + } + iter->cur.wc_valid = true; + + /* When in the initial state, we can go back treating ASCII + characters more quickly. */ + if (mbsinit (&iter->state)) + iter->in_shift = false; + } } iter->next_done = true; } diff --git a/gnu/memchr.c b/gnu/memchr.c new file mode 100644 index 0000000000000000000000000000000000000000..91178cf571c93bfefd7827b824e12a1ad4bd7a9e --- /dev/null +++ b/gnu/memchr.c @@ -0,0 +1,174 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2010 + Free Software Foundation, Inc. + + Based on strlen implementation by Torbjorn Granlund (tege@sics.se), + with help from Dan Sahlin (dan@sics.se) and + commentary by Jim Blandy (jimb@ai.mit.edu); + adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), + and implemented by Roland McGrath (roland@ai.mit.edu). + +NOTE: The canonical source of this file is maintained with the GNU C Library. +Bugs can be reported to bug-glibc@prep.ai.mit.edu. + +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 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/>. */ + +#ifndef _LIBC +# include <config.h> +#endif + +#include <string.h> + +#include <stddef.h> + +#if defined _LIBC +# include <memcopy.h> +#else +# define reg_char char +#endif + +#include <limits.h> + +#if HAVE_BP_SYM_H || defined _LIBC +# include <bp-sym.h> +#else +# define BP_SYM(sym) sym +#endif + +#undef __memchr +#ifdef _LIBC +# undef memchr +#endif + +#ifndef weak_alias +# define __memchr memchr +#endif + +/* Search no more than N bytes of S for C. */ +void * +__memchr (void const *s, int c_in, size_t n) +{ + /* On 32-bit hardware, choosing longword to be a 32-bit unsigned + long instead of a 64-bit uintmax_t tends to give better + performance. On 64-bit hardware, unsigned long is generally 64 + bits already. Change this typedef to experiment with + performance. */ + typedef unsigned long int longword; + + const unsigned char *char_ptr; + const longword *longword_ptr; + longword repeated_one; + longword repeated_c; + unsigned reg_char c; + + c = (unsigned char) c_in; + + /* Handle the first few bytes by reading one byte at a time. + Do this until CHAR_PTR is aligned on a longword boundary. */ + for (char_ptr = (const unsigned char *) s; + n > 0 && (size_t) char_ptr % sizeof (longword) != 0; + --n, ++char_ptr) + if (*char_ptr == c) + return (void *) char_ptr; + + longword_ptr = (const longword *) char_ptr; + + /* All these elucidatory comments refer to 4-byte longwords, + but the theory applies equally well to any size longwords. */ + + /* Compute auxiliary longword values: + repeated_one is a value which has a 1 in every byte. + repeated_c has c in every byte. */ + repeated_one = 0x01010101; + repeated_c = c | (c << 8); + repeated_c |= repeated_c << 16; + if (0xffffffffU < (longword) -1) + { + repeated_one |= repeated_one << 31 << 1; + repeated_c |= repeated_c << 31 << 1; + if (8 < sizeof (longword)) + { + size_t i; + + for (i = 64; i < sizeof (longword) * 8; i *= 2) + { + repeated_one |= repeated_one << i; + repeated_c |= repeated_c << i; + } + } + } + + /* Instead of the traditional loop which tests each byte, we will test a + longword at a time. The tricky part is testing if *any of the four* + bytes in the longword in question are equal to c. We first use an xor + with repeated_c. This reduces the task to testing whether *any of the + four* bytes in longword1 is zero. + + We compute tmp = + ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7). + That is, we perform the following operations: + 1. Subtract repeated_one. + 2. & ~longword1. + 3. & a mask consisting of 0x80 in every byte. + Consider what happens in each byte: + - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, + and step 3 transforms it into 0x80. A carry can also be propagated + to more significant bytes. + - If a byte of longword1 is nonzero, let its lowest 1 bit be at + position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, + the byte ends in a single bit of value 0 and k bits of value 1. + After step 2, the result is just k bits of value 1: 2^k - 1. After + step 3, the result is 0. And no carry is produced. + So, if longword1 has only non-zero bytes, tmp is zero. + Whereas if longword1 has a zero byte, call j the position of the least + significant zero byte. Then the result has a zero at positions 0, ..., + j-1 and a 0x80 at position j. We cannot predict the result at the more + significant bytes (positions j+1..3), but it does not matter since we + already have a non-zero bit at position 8*j+7. + + So, the test whether any byte in longword1 is zero is equivalent to + testing whether tmp is nonzero. */ + + while (n >= sizeof (longword)) + { + longword longword1 = *longword_ptr ^ repeated_c; + + if ((((longword1 - repeated_one) & ~longword1) + & (repeated_one << 7)) != 0) + break; + longword_ptr++; + n -= sizeof (longword); + } + + char_ptr = (const unsigned char *) longword_ptr; + + /* At this point, we know that either n < sizeof (longword), or one of the + sizeof (longword) bytes starting at char_ptr is == c. On little-endian + machines, we could determine the first such byte without any further + memory accesses, just by looking at the tmp result from the last loop + iteration. But this does not work on big-endian machines. Choose code + that works in both cases. */ + + for (; n > 0; --n, ++char_ptr) + { + if (*char_ptr == c) + return (void *) char_ptr; + } + + return NULL; +} +#ifdef weak_alias +weak_alias (__memchr, BP_SYM (memchr)) +#endif diff --git a/gnu/memchr.valgrind b/gnu/memchr.valgrind new file mode 100644 index 0000000000000000000000000000000000000000..60f247e10dca1e6fc15d637edc2de0ea1ed5e23b --- /dev/null +++ b/gnu/memchr.valgrind @@ -0,0 +1,14 @@ +# Suppress a valgrind message about use of uninitialized memory in memchr(). +# POSIX states that when the character is found, memchr must not read extra +# bytes in an overestimated length (for example, where memchr is used to +# implement strnlen). However, we use a safe word read to provide a speedup. +{ + memchr-value4 + Memcheck:Value4 + fun:rpl_memchr +} +{ + memchr-value8 + Memcheck:Value8 + fun:rpl_memchr +} diff --git a/lib/mempcpy.c b/gnu/mempcpy.c similarity index 94% rename from lib/mempcpy.c rename to gnu/mempcpy.c index 988936ac74f62b23bc889b8d3716a03aa41d254f..c6031406a8dbfb365aa981c39ef90b78b0597287 100644 --- a/lib/mempcpy.c +++ b/gnu/mempcpy.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Copy memory area and return pointer after last written byte. - Copyright (C) 2003, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2007, 2009, 2010 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 diff --git a/lib/memrchr.c b/gnu/memrchr.c similarity index 90% rename from lib/memrchr.c rename to gnu/memrchr.c index da93ca0ba52a2cd88ce0cf225a832ef14bf8c606..a42f2a1e1e5ea895b77faa0b7203dda6a05851df 100644 --- a/lib/memrchr.c +++ b/gnu/memrchr.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* memrchr -- find the last occurrence of a byte in a memory block - Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2005, - 2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2010 Free Software + Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se) and @@ -84,15 +86,15 @@ __memrchr (void const *s, int c_in, size_t n) repeated_one |= repeated_one << 31 << 1; repeated_c |= repeated_c << 31 << 1; if (8 < sizeof (longword)) - { - size_t i; - - for (i = 64; i < sizeof (longword) * 8; i *= 2) - { - repeated_one |= repeated_one << i; - repeated_c |= repeated_c << i; - } - } + { + size_t i; + + for (i = 64; i < sizeof (longword) * 8; i *= 2) + { + repeated_one |= repeated_one << i; + repeated_c |= repeated_c << i; + } + } } /* Instead of the traditional loop which tests each byte, we will test a @@ -131,11 +133,11 @@ __memrchr (void const *s, int c_in, size_t n) longword longword1 = *--longword_ptr ^ repeated_c; if ((((longword1 - repeated_one) & ~longword1) - & (repeated_one << 7)) != 0) - { - longword_ptr++; - break; - } + & (repeated_one << 7)) != 0) + { + longword_ptr++; + break; + } n -= sizeof (longword); } @@ -151,7 +153,7 @@ __memrchr (void const *s, int c_in, size_t n) while (n-- > 0) { if (*--char_ptr == c) - return (void *) char_ptr; + return (void *) char_ptr; } return NULL; diff --git a/gnu/mkdir.c b/gnu/mkdir.c new file mode 100644 index 0000000000000000000000000000000000000000..c782a732bf2269b10884503df68a415b6e0becdd --- /dev/null +++ b/gnu/mkdir.c @@ -0,0 +1,94 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* On some systems, mkdir ("foo/", 0700) fails because of the trailing + slash. On those systems, this wrapper removes the trailing slash. + + Copyright (C) 2001, 2003, 2006, 2008-2010 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 Jim Meyering */ + +#include <config.h> + +/* Specification. */ +#include <sys/stat.h> + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "dirname.h" + +/* Disable the definition of mkdir to rpl_mkdir (from the <sys/stat.h> + substitute) in this file. Otherwise, we'd get an endless recursion. */ +#undef mkdir + +/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. + Additionally, it declares _mkdir (and depending on compile flags, an + alias mkdir), only in the nonstandard io.h. */ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# define mkdir(name,mode) _mkdir (name) +# define maybe_unused _GL_UNUSED +#else +# define maybe_unused /* empty */ +#endif + +/* This function is required at least for NetBSD 1.5.2. */ + +int +rpl_mkdir (char const *dir, mode_t mode maybe_unused) +{ + int ret_val; + char *tmp_dir; + size_t len = strlen (dir); + + if (len && dir[len - 1] == '/') + { + tmp_dir = strdup (dir); + if (!tmp_dir) + { + /* Rather than rely on strdup-posix, we set errno ourselves. */ + errno = ENOMEM; + return -1; + } + strip_trailing_slashes (tmp_dir); + } + else + { + tmp_dir = (char *) dir; + } +#if FUNC_MKDIR_DOT_BUG + /* Additionally, cygwin 1.5 mistakenly creates a directory "d/./". */ + { + char *last = last_component (tmp_dir); + if (*last == '.' && (last[1] == '\0' + || (last[1] == '.' && last[2] == '\0'))) + { + struct stat st; + if (stat (tmp_dir, &st) == 0) + errno = EEXIST; + return -1; + } + } +#endif /* FUNC_MKDIR_DOT_BUG */ + + ret_val = mkdir (tmp_dir, mode); + + if (tmp_dir != dir) + free (tmp_dir); + + return ret_val; +} diff --git a/lib/mkdirat.c b/gnu/mkdirat.c similarity index 83% rename from lib/mkdirat.c rename to gnu/mkdirat.c index 6b6278b1156d80fb87848712769e089a148d2c23..3e05db8248ea8f20ebc5d8598194864992d9d557 100644 --- a/lib/mkdirat.c +++ b/gnu/mkdirat.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* fd-relative mkdir - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 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 @@ -18,14 +20,8 @@ #include <config.h> -#include "openat.h" - #include <unistd.h> -#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ -#include "save-cwd.h" -#include "openat-priv.h" - /* Solaris 10 has no function like this. Create a subdirectory, FILE, with mode MODE, in the directory open on descriptor FD. If possible, do it without changing the @@ -35,8 +31,6 @@ #define AT_FUNC_NAME mkdirat #define AT_FUNC_F1 mkdir -#define AT_FUNC_F2 mkdir -#define AT_FUNC_USE_F1_COND 1 #define AT_FUNC_POST_FILE_PARAM_DECLS , mode_t mode #define AT_FUNC_POST_FILE_ARGS , mode #include "at-func.c" diff --git a/lib/mkdtemp.c b/gnu/mkdtemp.c similarity index 72% rename from lib/mkdtemp.c rename to gnu/mkdtemp.c index 6b9dd15134d042b55a5865e485ca8d39a04def0a..27fdd076eea30bd4c39ffb4a31b9052ce302534d 100644 --- a/lib/mkdtemp.c +++ b/gnu/mkdtemp.c @@ -1,4 +1,7 @@ -/* Copyright (C) 1999, 2001-2003, 2006-2007 Free Software Foundation, Inc. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 1999, 2001-2003, 2006-2007, 2009-2010 Free Software + Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -23,16 +26,16 @@ #include "tempname.h" -/* Generate a unique temporary directory from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; +/* Generate a unique temporary directory from XTEMPLATE. + The last six characters of XTEMPLATE must be "XXXXXX"; they are replaced with a string that makes the filename unique. The directory is created, mode 700, and its name is returned. (This function comes from OpenBSD.) */ char * -mkdtemp (char *template) +mkdtemp (char *xtemplate) { - if (gen_tempname (template, GT_DIR)) + if (gen_tempname (xtemplate, 0, 0, GT_DIR)) return NULL; else - return template; + return xtemplate; } diff --git a/gnu/mktime-internal.h b/gnu/mktime-internal.h new file mode 100644 index 0000000000000000000000000000000000000000..8a1259ef30d48c48c98ca4c0c2d86d215fbc5ddf --- /dev/null +++ b/gnu/mktime-internal.h @@ -0,0 +1,6 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#include <time.h> +time_t mktime_internal (struct tm *, + struct tm * (*) (time_t const *, struct tm *), + time_t *); diff --git a/lib/mktime.c b/gnu/mktime.c similarity index 65% rename from lib/mktime.c rename to gnu/mktime.c index 776a48af3dbd44dae70f9d0d6f302d6fbf15ce65..6adf3abe779a6818c8775004e6f34ff28b6fb8c4 100644 --- a/lib/mktime.c +++ b/gnu/mktime.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert a `struct tm' to a time_t value. - Copyright (C) 1993-1999, 2002-2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2002-2007, 2009-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Eggert <eggert@twinsun.com>. @@ -38,7 +38,7 @@ #include <limits.h> -#include <string.h> /* For the real memcpy prototype. */ +#include <string.h> /* For the real memcpy prototype. */ #if DEBUG # include <stdio.h> @@ -57,9 +57,9 @@ implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift right in the usual way when A < 0, so SHR falls back on division if ordinary A >> B doesn't seem to be the usual signed shift. */ -#define SHR(a, b) \ - (-1 >> 1 == -1 \ - ? (a) >> (b) \ +#define SHR(a, b) \ + (-1 >> 1 == -1 \ + ? (a) >> (b) \ : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0)) /* The extra casts in the following macros work around compiler bugs, @@ -86,14 +86,14 @@ your host. */ #define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ - : TYPE_SIGNED_MAGNITUDE (t) \ - ? ~ (t) 0 \ - : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) + ? (t) 0 \ + : TYPE_SIGNED_MAGNITUDE (t) \ + ? ~ (t) 0 \ + : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) + ? (t) -1 \ + : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) #ifndef TIME_T_MIN # define TIME_T_MIN TYPE_MINIMUM (time_t) @@ -125,7 +125,7 @@ leapyear (long int year) return ((year & 3) == 0 && (year % 100 != 0 - || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3))); + || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3))); } /* How many days come before each month (0-12). */ @@ -149,6 +149,7 @@ const unsigned short int __mon_yday[2][13] = # undef __localtime_r # define __localtime_r localtime_r # define __mktime_internal mktime_internal +# include "mktime-internal.h" #endif /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) - @@ -164,11 +165,14 @@ const unsigned short int __mon_yday[2][13] = static inline time_t ydhms_diff (long int year1, long int yday1, int hour1, int min1, int sec1, - int year0, int yday0, int hour0, int min0, int sec0) + int year0, int yday0, int hour0, int min0, int sec0) { verify (C99_integer_division, -1 / 2 == 0); +#if 0 /* This assertion fails on 32-bit systems with 64-bit time_t, such as + NetBSD 5 on i386. */ verify (long_int_year_and_yday_are_wide_enough, - INT_MAX <= LONG_MAX / 2 || TIME_T_MAX <= UINT_MAX); + INT_MAX <= LONG_MAX / 2 || TIME_T_MAX <= UINT_MAX); +#endif /* Compute intervening leap days correctly even if year is negative. Take care to avoid integer overflow here. */ @@ -200,16 +204,16 @@ ydhms_diff (long int year1, long int yday1, int hour1, int min1, int sec1, yield a value equal to *T. */ static time_t guess_time_tm (long int year, long int yday, int hour, int min, int sec, - const time_t *t, const struct tm *tp) + const time_t *t, const struct tm *tp) { if (tp) { time_t d = ydhms_diff (year, yday, hour, min, sec, - tp->tm_year, tp->tm_yday, - tp->tm_hour, tp->tm_min, tp->tm_sec); + tp->tm_year, tp->tm_yday, + tp->tm_hour, tp->tm_min, tp->tm_sec); time_t t1 = *t + d; if ((t1 < *t) == (TYPE_SIGNED (time_t) ? d < 0 : TIME_T_MAX / 2 < d)) - return t1; + return t1; } /* Overflow occurred one way or another. Return the nearest result @@ -218,8 +222,8 @@ guess_time_tm (long int year, long int yday, int hour, int min, int sec, match; and don't oscillate between two values, as that would confuse the spring-forward gap detector. */ return (*t < TIME_T_MIDPOINT - ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN) - : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX)); + ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN) + : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX)); } /* Use CONVERT to convert *T to a broken down time in *TP. @@ -227,7 +231,7 @@ guess_time_tm (long int year, long int yday, int hour, int min, int sec, it is the nearest in-range value and then convert that. */ static struct tm * ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), - time_t *t, struct tm *tp) + time_t *t, struct tm *tp) { struct tm *r = convert (t, tp); @@ -237,27 +241,27 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), time_t ok = 0; /* BAD is a known unconvertible time_t, and OK is a known good one. - Use binary search to narrow the range between BAD and OK until - they differ by 1. */ + Use binary search to narrow the range between BAD and OK until + they differ by 1. */ while (bad != ok + (bad < 0 ? -1 : 1)) - { - time_t mid = *t = (bad < 0 - ? bad + ((ok - bad) >> 1) - : ok + ((bad - ok) >> 1)); - r = convert (t, tp); - if (r) - ok = mid; - else - bad = mid; - } + { + time_t mid = *t = (bad < 0 + ? bad + ((ok - bad) >> 1) + : ok + ((bad - ok) >> 1)); + r = convert (t, tp); + if (r) + ok = mid; + else + bad = mid; + } if (!r && ok) - { - /* The last conversion attempt failed; - revert to the most recent successful attempt. */ - *t = ok; - r = convert (t, tp); - } + { + /* The last conversion attempt failed; + revert to the most recent successful attempt. */ + *t = ok; + r = convert (t, tp); + } } return r; @@ -272,8 +276,8 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), This function is external because it is used also by timegm.c. */ time_t __mktime_internal (struct tm *tp, - struct tm *(*convert) (const time_t *, struct tm *), - time_t *offset) + struct tm *(*convert) (const time_t *, struct tm *), + time_t *offset) { time_t t, gt, t0, t1, t2; struct tm tm; @@ -294,7 +298,7 @@ __mktime_internal (struct tm *tp, int year_requested = tp->tm_year; /* Normalize the value. */ int isdst = ((tp->tm_isdst >> (8 * sizeof (tp->tm_isdst) - 1)) - | (tp->tm_isdst != 0)); + | (tp->tm_isdst != 0)); /* 1 if the previous probe was DST. */ int dst2; @@ -314,8 +318,8 @@ __mktime_internal (struct tm *tp, /* Calculate day of year from year, month, and day of month. The result need not be in range. */ int mon_yday = ((__mon_yday[leapyear (year)] - [mon_remainder + 12 * negative_mon_remainder]) - - 1); + [mon_remainder + 12 * negative_mon_remainder]) + - 1); long int lmday = mday; long int yday = mon_yday + lmday; @@ -326,33 +330,33 @@ __mktime_internal (struct tm *tp, if (LEAP_SECONDS_POSSIBLE) { /* Handle out-of-range seconds specially, - since ydhms_tm_diff assumes every minute has 60 seconds. */ + since ydhms_tm_diff assumes every minute has 60 seconds. */ if (sec < 0) - sec = 0; + sec = 0; if (59 < sec) - sec = 59; + sec = 59; } /* Invert CONVERT by probing. First assume the same offset as last time. */ t0 = ydhms_diff (year, yday, hour, min, sec, - EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset); + EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset); if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3) { /* time_t isn't large enough to rule out overflows, so check - for major overflows. A gross check suffices, since if t0 - has overflowed, it is off by a multiple of TIME_T_MAX - - TIME_T_MIN + 1. So ignore any component of the difference - that is bounded by a small value. */ + for major overflows. A gross check suffices, since if t0 + has overflowed, it is off by a multiple of TIME_T_MAX - + TIME_T_MIN + 1. So ignore any component of the difference + that is bounded by a small value. */ /* Approximate log base 2 of the number of time units per - biennium. A biennium is 2 years; use this unit instead of - years to avoid integer overflow. For example, 2 average - Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds, - which is 63113904 seconds, and rint (log2 (63113904)) is - 26. */ + biennium. A biennium is 2 years; use this unit instead of + years to avoid integer overflow. For example, 2 average + Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds, + which is 63113904 seconds, and rint (log2 (63113904)) is + 26. */ int ALOG2_SECONDS_PER_BIENNIUM = 26; int ALOG2_MINUTES_PER_BIENNIUM = 20; int ALOG2_HOURS_PER_BIENNIUM = 14; @@ -360,64 +364,64 @@ __mktime_internal (struct tm *tp, int LOG2_YEARS_PER_BIENNIUM = 1; int approx_requested_biennia = - (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM) - - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM) - + SHR (mday, ALOG2_DAYS_PER_BIENNIUM) - + SHR (hour, ALOG2_HOURS_PER_BIENNIUM) - + SHR (min, ALOG2_MINUTES_PER_BIENNIUM) - + (LEAP_SECONDS_POSSIBLE - ? 0 - : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM))); + (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM) + - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM) + + SHR (mday, ALOG2_DAYS_PER_BIENNIUM) + + SHR (hour, ALOG2_HOURS_PER_BIENNIUM) + + SHR (min, ALOG2_MINUTES_PER_BIENNIUM) + + (LEAP_SECONDS_POSSIBLE + ? 0 + : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM))); int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM); int diff = approx_biennia - approx_requested_biennia; int abs_diff = diff < 0 ? - diff : diff; /* IRIX 4.0.5 cc miscaculates TIME_T_MIN / 3: it erroneously - gives a positive value of 715827882. Setting a variable - first then doing math on it seems to work. - (ghazi@caip.rutgers.edu) */ + gives a positive value of 715827882. Setting a variable + first then doing math on it seems to work. + (ghazi@caip.rutgers.edu) */ time_t time_t_max = TIME_T_MAX; time_t time_t_min = TIME_T_MIN; time_t overflow_threshold = - (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM; + (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM; if (overflow_threshold < abs_diff) - { - /* Overflow occurred. Try repairing it; this might work if - the time zone offset is enough to undo the overflow. */ - time_t repaired_t0 = -1 - t0; - approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM); - diff = approx_biennia - approx_requested_biennia; - abs_diff = diff < 0 ? - diff : diff; - if (overflow_threshold < abs_diff) - return -1; - guessed_offset += repaired_t0 - t0; - t0 = repaired_t0; - } + { + /* Overflow occurred. Try repairing it; this might work if + the time zone offset is enough to undo the overflow. */ + time_t repaired_t0 = -1 - t0; + approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM); + diff = approx_biennia - approx_requested_biennia; + abs_diff = diff < 0 ? - diff : diff; + if (overflow_threshold < abs_diff) + return -1; + guessed_offset += repaired_t0 - t0; + t0 = repaired_t0; + } } /* Repeatedly use the error to improve the guess. */ for (t = t1 = t2 = t0, dst2 = 0; (gt = guess_time_tm (year, yday, hour, min, sec, &t, - ranged_convert (convert, &t, &tm)), - t != gt); + ranged_convert (convert, &t, &tm)), + t != gt); t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0) if (t == t1 && t != t2 - && (tm.tm_isdst < 0 - || (isdst < 0 - ? dst2 <= (tm.tm_isdst != 0) - : (isdst != 0) != (tm.tm_isdst != 0)))) + && (tm.tm_isdst < 0 + || (isdst < 0 + ? dst2 <= (tm.tm_isdst != 0) + : (isdst != 0) != (tm.tm_isdst != 0)))) /* We can't possibly find a match, as we are oscillating - between two values. The requested time probably falls - within a spring-forward gap of size GT - T. Follow the common - practice in this case, which is to return a time that is GT - T - away from the requested time, preferring a time whose - tm_isdst differs from the requested value. (If no tm_isdst - was requested and only one of the two values has a nonzero - tm_isdst, prefer that value.) In practice, this is more - useful than returning -1. */ + between two values. The requested time probably falls + within a spring-forward gap of size GT - T. Follow the common + practice in this case, which is to return a time that is GT - T + away from the requested time, preferring a time whose + tm_isdst differs from the requested value. (If no tm_isdst + was requested and only one of the two values has a nonzero + tm_isdst, prefer that value.) In practice, this is more + useful than returning -1. */ goto offset_found; else if (--remaining_probes == 0) return -1; @@ -427,52 +431,52 @@ __mktime_internal (struct tm *tp, if (isdst != tm.tm_isdst && 0 <= isdst && 0 <= tm.tm_isdst) { /* tm.tm_isdst has the wrong value. Look for a neighboring - time with the right value, and use its UTC offset. + time with the right value, and use its UTC offset. - Heuristic: probe the adjacent timestamps in both directions, - looking for the desired isdst. This should work for all real - time zone histories in the tz database. */ + Heuristic: probe the adjacent timestamps in both directions, + looking for the desired isdst. This should work for all real + time zone histories in the tz database. */ /* Distance between probes when looking for a DST boundary. In - tzdata2003a, the shortest period of DST is 601200 seconds - (e.g., America/Recife starting 2000-10-08 01:00), and the - shortest period of non-DST surrounded by DST is 694800 - seconds (Africa/Tunis starting 1943-04-17 01:00). Use the - minimum of these two values, so we don't miss these short - periods when probing. */ + tzdata2003a, the shortest period of DST is 601200 seconds + (e.g., America/Recife starting 2000-10-08 01:00), and the + shortest period of non-DST surrounded by DST is 694800 + seconds (Africa/Tunis starting 1943-04-17 01:00). Use the + minimum of these two values, so we don't miss these short + periods when probing. */ int stride = 601200; /* The longest period of DST in tzdata2003a is 536454000 seconds - (e.g., America/Jujuy starting 1946-10-01 01:00). The longest - period of non-DST is much longer, but it makes no real sense - to search for more than a year of non-DST, so use the DST - max. */ + (e.g., America/Jujuy starting 1946-10-01 01:00). The longest + period of non-DST is much longer, but it makes no real sense + to search for more than a year of non-DST, so use the DST + max. */ int duration_max = 536454000; /* Search in both directions, so the maximum distance is half - the duration; add the stride to avoid off-by-1 problems. */ + the duration; add the stride to avoid off-by-1 problems. */ int delta_bound = duration_max / 2 + stride; int delta, direction; for (delta = stride; delta < delta_bound; delta += stride) - for (direction = -1; direction <= 1; direction += 2) - { - time_t ot = t + delta * direction; - if ((ot < t) == (direction < 0)) - { - struct tm otm; - ranged_convert (convert, &ot, &otm); - if (otm.tm_isdst == isdst) - { - /* We found the desired tm_isdst. - Extrapolate back to the desired time. */ - t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm); - ranged_convert (convert, &t, &tm); - goto offset_found; - } - } - } + for (direction = -1; direction <= 1; direction += 2) + { + time_t ot = t + delta * direction; + if ((ot < t) == (direction < 0)) + { + struct tm otm; + ranged_convert (convert, &ot, &otm); + if (otm.tm_isdst == isdst) + { + /* We found the desired tm_isdst. + Extrapolate back to the desired time. */ + t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm); + ranged_convert (convert, &t, &tm); + goto offset_found; + } + } + } } offset_found: @@ -481,14 +485,14 @@ __mktime_internal (struct tm *tp, if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec) { /* Adjust time to reflect the tm_sec requested, not the normalized value. - Also, repair any damage from a false match due to a leap second. */ + Also, repair any damage from a false match due to a leap second. */ int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec; t1 = t + sec_requested; t2 = t1 + sec_adjustment; if (((t1 < t) != (sec_requested < 0)) - | ((t2 < t1) != (sec_adjustment < 0)) - | ! convert (&t2, &tm)) - return -1; + | ((t2 < t1) != (sec_adjustment < 0)) + | ! convert (&t2, &tm)) + return -1; t = t2; } @@ -532,13 +536,13 @@ static int not_equal_tm (const struct tm *a, const struct tm *b) { return ((a->tm_sec ^ b->tm_sec) - | (a->tm_min ^ b->tm_min) - | (a->tm_hour ^ b->tm_hour) - | (a->tm_mday ^ b->tm_mday) - | (a->tm_mon ^ b->tm_mon) - | (a->tm_year ^ b->tm_year) - | (a->tm_yday ^ b->tm_yday) - | (a->tm_isdst ^ b->tm_isdst)); + | (a->tm_min ^ b->tm_min) + | (a->tm_hour ^ b->tm_hour) + | (a->tm_mday ^ b->tm_mday) + | (a->tm_mon ^ b->tm_mon) + | (a->tm_year ^ b->tm_year) + | (a->tm_yday ^ b->tm_yday) + | (a->tm_isdst ^ b->tm_isdst)); } static void @@ -546,9 +550,9 @@ print_tm (const struct tm *tp) { if (tp) printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d", - tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, - tp->tm_hour, tp->tm_min, tp->tm_sec, - tp->tm_yday, tp->tm_wday, tp->tm_isdst); + tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, + tp->tm_hour, tp->tm_min, tp->tm_sec, + tp->tm_yday, tp->tm_wday, tp->tm_isdst); else printf ("0"); } @@ -580,11 +584,11 @@ main (int argc, char **argv) if ((argc == 3 || argc == 4) && (sscanf (argv[1], "%d-%d-%d%c", - &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) - == 3) + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) + == 3) && (sscanf (argv[2], "%d:%d:%d%c", - &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) - == 3)) + &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) + == 3)) { tm.tm_year -= TM_YEAR_BASE; tm.tm_mon--; @@ -593,10 +597,10 @@ main (int argc, char **argv) tl = mktime (&tmk); lt = localtime (&tl); if (lt) - { - tml = *lt; - lt = &tml; - } + { + tml = *lt; + lt = &tml; + } printf ("mktime returns %ld == ", (long int) tl); print_tm (&tmk); printf ("\n"); @@ -609,51 +613,51 @@ main (int argc, char **argv) time_t to = atol (argv[3]); if (argc == 4) - for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) - { - lt = localtime (&tl); - if (lt) - { - tmk = tml = *lt; - tk = mktime (&tmk); - status |= check_result (tk, tmk, tl, &tml); - } - else - { - printf ("localtime (%ld) yields 0\n", (long int) tl); - status = 1; - } - tl1 = tl + by; - if ((tl1 < tl) != (by < 0)) - break; - } + for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) + { + lt = localtime (&tl); + if (lt) + { + tmk = tml = *lt; + tk = mktime (&tmk); + status |= check_result (tk, tmk, tl, &tml); + } + else + { + printf ("localtime (%ld) yields 0\n", (long int) tl); + status = 1; + } + tl1 = tl + by; + if ((tl1 < tl) != (by < 0)) + break; + } else - for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) - { - /* Null benchmark. */ - lt = localtime (&tl); - if (lt) - { - tmk = tml = *lt; - tk = tl; - status |= check_result (tk, tmk, tl, &tml); - } - else - { - printf ("localtime (%ld) yields 0\n", (long int) tl); - status = 1; - } - tl1 = tl + by; - if ((tl1 < tl) != (by < 0)) - break; - } + for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) + { + /* Null benchmark. */ + lt = localtime (&tl); + if (lt) + { + tmk = tml = *lt; + tk = tl; + status |= check_result (tk, tmk, tl, &tml); + } + else + { + printf ("localtime (%ld) yields 0\n", (long int) tl); + status = 1; + } + tl1 = tl + by; + if ((tl1 < tl) != (by < 0)) + break; + } } else printf ("Usage:\ \t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\ \t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\ \t%s FROM BY TO - # Do not test those values (for benchmark).\n", - argv[0], argv[0], argv[0]); + argv[0], argv[0], argv[0]); return status; } diff --git a/lib/modechange.c b/gnu/modechange.c similarity index 52% rename from lib/modechange.c rename to gnu/modechange.c index 1296717c5f6c0d09ab175f55737cee7243ef7cd0..b70c30a89bb0fb05178c9cbda489729e0f5868e4 100644 --- a/lib/modechange.c +++ b/gnu/modechange.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* modechange.c -- file mode manipulation - Copyright (C) 1989, 1990, 1997, 1998, 1999, 2001, 2003, 2004, 2005, - 2006 Free Software Foundation, Inc. + Copyright (C) 1989-1990, 1997-1999, 2001, 2003-2006, 2009-2010 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 @@ -56,22 +58,22 @@ octal_to_mode (unsigned int octal) /* Help the compiler optimize the usual case where mode_t uses the traditional octal representation. */ return ((S_ISUID == SUID && S_ISGID == SGID && S_ISVTX == SVTX - && S_IRUSR == RUSR && S_IWUSR == WUSR && S_IXUSR == XUSR - && S_IRGRP == RGRP && S_IWGRP == WGRP && S_IXGRP == XGRP - && S_IROTH == ROTH && S_IWOTH == WOTH && S_IXOTH == XOTH) - ? octal - : (mode_t) ((octal & SUID ? S_ISUID : 0) - | (octal & SGID ? S_ISGID : 0) - | (octal & SVTX ? S_ISVTX : 0) - | (octal & RUSR ? S_IRUSR : 0) - | (octal & WUSR ? S_IWUSR : 0) - | (octal & XUSR ? S_IXUSR : 0) - | (octal & RGRP ? S_IRGRP : 0) - | (octal & WGRP ? S_IWGRP : 0) - | (octal & XGRP ? S_IXGRP : 0) - | (octal & ROTH ? S_IROTH : 0) - | (octal & WOTH ? S_IWOTH : 0) - | (octal & XOTH ? S_IXOTH : 0))); + && S_IRUSR == RUSR && S_IWUSR == WUSR && S_IXUSR == XUSR + && S_IRGRP == RGRP && S_IWGRP == WGRP && S_IXGRP == XGRP + && S_IROTH == ROTH && S_IWOTH == WOTH && S_IXOTH == XOTH) + ? octal + : (mode_t) ((octal & SUID ? S_ISUID : 0) + | (octal & SGID ? S_ISGID : 0) + | (octal & SVTX ? S_ISVTX : 0) + | (octal & RUSR ? S_IRUSR : 0) + | (octal & WUSR ? S_IWUSR : 0) + | (octal & XUSR ? S_IXUSR : 0) + | (octal & RGRP ? S_IRGRP : 0) + | (octal & WGRP ? S_IWGRP : 0) + | (octal & XGRP ? S_IXGRP : 0) + | (octal & ROTH ? S_IROTH : 0) + | (octal & WOTH ? S_IWOTH : 0) + | (octal & XOTH ? S_IXOTH : 0))); } /* Special operations flags. */ @@ -97,11 +99,11 @@ enum /* Description of a mode change. */ struct mode_change { - char op; /* One of "=+-". */ - char flag; /* Special operations flag. */ - mode_t affected; /* Set for u, g, o, or a. */ - mode_t value; /* Bits to add/remove. */ - mode_t mentioned; /* Bits explicitly mentioned. */ + char op; /* One of "=+-". */ + char flag; /* Special operations flag. */ + mode_t affected; /* Set for u, g, o, or a. */ + mode_t value; /* Bits to add/remove. */ + mode_t mentioned; /* Bits explicitly mentioned. */ }; /* Return a mode_change array with the specified `=ddd'-style @@ -144,15 +146,15 @@ mode_compile (char const *mode_string) mode_t mentioned; do - { - octal_mode = 8 * octal_mode + *mode_string++ - '0'; - if (ALLM < octal_mode) - return NULL; - } + { + octal_mode = 8 * octal_mode + *mode_string++ - '0'; + if (ALLM < octal_mode) + return NULL; + } while ('0' <= *mode_string && *mode_string < '8'); if (*mode_string) - return NULL; + return NULL; mode = octal_to_mode (octal_mode); mentioned = (mode & (S_ISUID | S_ISGID)) | S_ISVTX | S_IRWXUGO; @@ -176,97 +178,97 @@ mode_compile (char const *mode_string) /* Turn on all the bits in `affected' for each group given. */ for (;; mode_string++) - switch (*mode_string) - { - default: - goto invalid; - case 'u': - affected |= S_ISUID | S_IRWXU; - break; - case 'g': - affected |= S_ISGID | S_IRWXG; - break; - case 'o': - affected |= S_ISVTX | S_IRWXO; - break; - case 'a': - affected |= CHMOD_MODE_BITS; - break; - case '=': case '+': case '-': - goto no_more_affected; - } + switch (*mode_string) + { + default: + goto invalid; + case 'u': + affected |= S_ISUID | S_IRWXU; + break; + case 'g': + affected |= S_ISGID | S_IRWXG; + break; + case 'o': + affected |= S_ISVTX | S_IRWXO; + break; + case 'a': + affected |= CHMOD_MODE_BITS; + break; + case '=': case '+': case '-': + goto no_more_affected; + } no_more_affected:; do - { - char op = *mode_string++; - mode_t value; - char flag = MODE_COPY_EXISTING; - struct mode_change *change; - - switch (*mode_string++) - { - case 'u': - /* Set the affected bits to the value of the `u' bits - on the same file. */ - value = S_IRWXU; - break; - case 'g': - /* Set the affected bits to the value of the `g' bits - on the same file. */ - value = S_IRWXG; - break; - case 'o': - /* Set the affected bits to the value of the `o' bits - on the same file. */ - value = S_IRWXO; - break; - - default: - value = 0; - flag = MODE_ORDINARY_CHANGE; - - for (mode_string--;; mode_string++) - switch (*mode_string) - { - case 'r': - value |= S_IRUSR | S_IRGRP | S_IROTH; - break; - case 'w': - value |= S_IWUSR | S_IWGRP | S_IWOTH; - break; - case 'x': - value |= S_IXUSR | S_IXGRP | S_IXOTH; - break; - case 'X': - flag = MODE_X_IF_ANY_X; - break; - case 's': - /* Set the setuid/gid bits if `u' or `g' is selected. */ - value |= S_ISUID | S_ISGID; - break; - case 't': - /* Set the "save text image" bit if `o' is selected. */ - value |= S_ISVTX; - break; - default: - goto no_more_values; - } - no_more_values:; - } - - change = &mc[used++]; - change->op = op; - change->flag = flag; - change->affected = affected; - change->value = value; - change->mentioned = (affected ? affected & value : value); - } + { + char op = *mode_string++; + mode_t value; + char flag = MODE_COPY_EXISTING; + struct mode_change *change; + + switch (*mode_string++) + { + case 'u': + /* Set the affected bits to the value of the `u' bits + on the same file. */ + value = S_IRWXU; + break; + case 'g': + /* Set the affected bits to the value of the `g' bits + on the same file. */ + value = S_IRWXG; + break; + case 'o': + /* Set the affected bits to the value of the `o' bits + on the same file. */ + value = S_IRWXO; + break; + + default: + value = 0; + flag = MODE_ORDINARY_CHANGE; + + for (mode_string--;; mode_string++) + switch (*mode_string) + { + case 'r': + value |= S_IRUSR | S_IRGRP | S_IROTH; + break; + case 'w': + value |= S_IWUSR | S_IWGRP | S_IWOTH; + break; + case 'x': + value |= S_IXUSR | S_IXGRP | S_IXOTH; + break; + case 'X': + flag = MODE_X_IF_ANY_X; + break; + case 's': + /* Set the setuid/gid bits if `u' or `g' is selected. */ + value |= S_ISUID | S_ISGID; + break; + case 't': + /* Set the "save text image" bit if `o' is selected. */ + value |= S_ISVTX; + break; + default: + goto no_more_values; + } + no_more_values:; + } + + change = &mc[used++]; + change->op = op; + change->flag = flag; + change->affected = affected; + change->value = value; + change->mentioned = (affected ? affected & value : value); + } while (*mode_string == '=' || *mode_string == '+' - || *mode_string == '-'); + || *mode_string == '-'); if (*mode_string != ',') - break; + break; } if (*mode_string == 0) @@ -308,7 +310,7 @@ mode_create_from_ref (const char *ref_file) mode_t mode_adjust (mode_t oldmode, bool dir, mode_t umask_value, - struct mode_change const *changes, mode_t *pmode_bits) + struct mode_change const *changes, mode_t *pmode_bits) { /* The adjusted mode. */ mode_t newmode = oldmode & CHMOD_MODE_BITS; @@ -320,63 +322,63 @@ mode_adjust (mode_t oldmode, bool dir, mode_t umask_value, { mode_t affected = changes->affected; mode_t omit_change = - (dir ? S_ISUID | S_ISGID : 0) & ~ changes->mentioned; + (dir ? S_ISUID | S_ISGID : 0) & ~ changes->mentioned; mode_t value = changes->value; switch (changes->flag) - { - case MODE_ORDINARY_CHANGE: - break; - - case MODE_COPY_EXISTING: - /* Isolate in `value' the bits in `newmode' to copy. */ - value &= newmode; - - /* Copy the isolated bits to the other two parts. */ - value |= ((value & (S_IRUSR | S_IRGRP | S_IROTH) - ? S_IRUSR | S_IRGRP | S_IROTH : 0) - | (value & (S_IWUSR | S_IWGRP | S_IWOTH) - ? S_IWUSR | S_IWGRP | S_IWOTH : 0) - | (value & (S_IXUSR | S_IXGRP | S_IXOTH) - ? S_IXUSR | S_IXGRP | S_IXOTH : 0)); - break; - - case MODE_X_IF_ANY_X: - /* Affect the execute bits if execute bits are already set - or if the file is a directory. */ - if ((newmode & (S_IXUSR | S_IXGRP | S_IXOTH)) | dir) - value |= S_IXUSR | S_IXGRP | S_IXOTH; - break; - } + { + case MODE_ORDINARY_CHANGE: + break; + + case MODE_COPY_EXISTING: + /* Isolate in `value' the bits in `newmode' to copy. */ + value &= newmode; + + /* Copy the isolated bits to the other two parts. */ + value |= ((value & (S_IRUSR | S_IRGRP | S_IROTH) + ? S_IRUSR | S_IRGRP | S_IROTH : 0) + | (value & (S_IWUSR | S_IWGRP | S_IWOTH) + ? S_IWUSR | S_IWGRP | S_IWOTH : 0) + | (value & (S_IXUSR | S_IXGRP | S_IXOTH) + ? S_IXUSR | S_IXGRP | S_IXOTH : 0)); + break; + + case MODE_X_IF_ANY_X: + /* Affect the execute bits if execute bits are already set + or if the file is a directory. */ + if ((newmode & (S_IXUSR | S_IXGRP | S_IXOTH)) | dir) + value |= S_IXUSR | S_IXGRP | S_IXOTH; + break; + } /* If WHO was specified, limit the change to the affected bits. - Otherwise, apply the umask. Either way, omit changes as - requested. */ + Otherwise, apply the umask. Either way, omit changes as + requested. */ value &= (affected ? affected : ~umask_value) & ~ omit_change; switch (changes->op) - { - case '=': - /* If WHO was specified, preserve the previous values of - bits that are not affected by this change operation. - Otherwise, clear all the bits. */ - { - mode_t preserved = (affected ? ~affected : 0) | omit_change; - mode_bits |= CHMOD_MODE_BITS & ~preserved; - newmode = (newmode & preserved) | value; - break; - } - - case '+': - mode_bits |= value; - newmode |= value; - break; - - case '-': - mode_bits |= value; - newmode &= ~value; - break; - } + { + case '=': + /* If WHO was specified, preserve the previous values of + bits that are not affected by this change operation. + Otherwise, clear all the bits. */ + { + mode_t preserved = (affected ? ~affected : 0) | omit_change; + mode_bits |= CHMOD_MODE_BITS & ~preserved; + newmode = (newmode & preserved) | value; + break; + } + + case '+': + mode_bits |= value; + newmode |= value; + break; + + case '-': + mode_bits |= value; + newmode &= ~value; + break; + } } if (pmode_bits) diff --git a/lib/modechange.h b/gnu/modechange.h similarity index 82% rename from lib/modechange.h rename to gnu/modechange.h index f6f8e744d6e305f6baa01d6cc48b0e87102153a1..58500cd307bc70dcca0dc9c486b59337faac6fda 100644 --- a/lib/modechange.h +++ b/gnu/modechange.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* modechange.h -- definitions for file mode manipulation - Copyright (C) 1989, 1990, 1997, 2003, 2004, 2005, 2006 Free - Software Foundation, Inc. + Copyright (C) 1989-1990, 1997, 2003-2006, 2009-2010 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 @@ -25,6 +27,6 @@ struct mode_change *mode_compile (const char *); struct mode_change *mode_create_from_ref (const char *); mode_t mode_adjust (mode_t, bool, mode_t, struct mode_change const *, - mode_t *); + mode_t *); #endif diff --git a/gnu/nl_langinfo.c b/gnu/nl_langinfo.c new file mode 100644 index 0000000000000000000000000000000000000000..a709942976c4443b6711af7ae4e35559bd1bac1e --- /dev/null +++ b/gnu/nl_langinfo.c @@ -0,0 +1,262 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* nl_langinfo() replacement: query locale dependent information. + + Copyright (C) 2007-2010 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/>. */ + +#include <config.h> + +/* Specification. */ +#include <langinfo.h> + +#if REPLACE_NL_LANGINFO + +/* Override nl_langinfo with support for added nl_item values. */ + +# include <locale.h> +# include <string.h> + +# undef nl_langinfo + +char * +rpl_nl_langinfo (nl_item item) +{ + switch (item) + { +# if GNULIB_defined_CODESET + case CODESET: + { + const char *locale; + static char buf[2 + 10 + 1]; + + locale = setlocale (LC_CTYPE, NULL); + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return + it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + } + return ""; + } +# endif +# if GNULIB_defined_ERA + case ERA: + /* The format is not standardized. In glibc it is a sequence of strings + of the form "direction:offset:start_date:end_date:era_name:era_format" + with an empty string at the end. */ + return ""; + case ERA_D_FMT: + /* The %Ex conversion in strftime behaves like %x if the locale does not + have an alternative time format. */ + item = D_FMT; + break; + case ERA_D_T_FMT: + /* The %Ec conversion in strftime behaves like %c if the locale does not + have an alternative time format. */ + item = D_T_FMT; + break; + case ERA_T_FMT: + /* The %EX conversion in strftime behaves like %X if the locale does not + have an alternative time format. */ + item = T_FMT; + break; + case ALT_DIGITS: + /* The format is not standardized. In glibc it is a sequence of 10 + strings, appended in memory. */ + return "\0\0\0\0\0\0\0\0\0\0"; +# endif + default: + break; + } + return nl_langinfo (item); +} + +#else + +/* Provide nl_langinfo from scratch. */ + +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + +/* Native Windows platforms. */ + +# define WIN32_LEAN_AND_MEAN /* avoid including junk */ +# include <windows.h> + +# include <stdio.h> + +# else + +/* An old Unix platform without locales, such as Linux libc5 or BeOS. */ + +# endif + +# include <locale.h> + +char * +nl_langinfo (nl_item item) +{ + switch (item) + { + /* nl_langinfo items of the LC_CTYPE category */ + case CODESET: +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { + static char buf[2 + 10 + 1]; + + /* Woe32 has a function returning the locale's codepage as a number. */ + sprintf (buf, "CP%u", GetACP ()); + return buf; + } +# elif defined __BEOS__ + return "UTF-8"; +# else + return "ISO-8859-1"; +# endif + /* nl_langinfo items of the LC_NUMERIC category */ + case RADIXCHAR: + return localeconv () ->decimal_point; + case THOUSEP: + return localeconv () ->thousands_sep; + /* nl_langinfo items of the LC_TIME category. + TODO: Really use the locale. */ + case D_T_FMT: + case ERA_D_T_FMT: + return "%a %b %e %H:%M:%S %Y"; + case D_FMT: + case ERA_D_FMT: + return "%m/%d/%y"; + case T_FMT: + case ERA_T_FMT: + return "%H:%M:%S"; + case T_FMT_AMPM: + return "%I:%M:%S %p"; + case AM_STR: + return "AM"; + case PM_STR: + return "PM"; + case DAY_1: + return "Sunday"; + case DAY_2: + return "Monday"; + case DAY_3: + return "Tuesday"; + case DAY_4: + return "Wednesday"; + case DAY_5: + return "Thursday"; + case DAY_6: + return "Friday"; + case DAY_7: + return "Saturday"; + case ABDAY_1: + return "Sun"; + case ABDAY_2: + return "Mon"; + case ABDAY_3: + return "Tue"; + case ABDAY_4: + return "Wed"; + case ABDAY_5: + return "Thu"; + case ABDAY_6: + return "Fri"; + case ABDAY_7: + return "Sat"; + case MON_1: + return "January"; + case MON_2: + return "February"; + case MON_3: + return "March"; + case MON_4: + return "April"; + case MON_5: + return "May"; + case MON_6: + return "June"; + case MON_7: + return "July"; + case MON_8: + return "August"; + case MON_9: + return "September"; + case MON_10: + return "October"; + case MON_11: + return "November"; + case MON_12: + return "December"; + case ABMON_1: + return "Jan"; + case ABMON_2: + return "Feb"; + case ABMON_3: + return "Mar"; + case ABMON_4: + return "Apr"; + case ABMON_5: + return "May"; + case ABMON_6: + return "Jun"; + case ABMON_7: + return "Jul"; + case ABMON_8: + return "Aug"; + case ABMON_9: + return "Sep"; + case ABMON_10: + return "Oct"; + case ABMON_11: + return "Nov"; + case ABMON_12: + return "Dec"; + case ERA: + return ""; + case ALT_DIGITS: + return "\0\0\0\0\0\0\0\0\0\0"; + /* nl_langinfo items of the LC_MONETARY category + TODO: Really use the locale. */ + case CRNCYSTR: + return "-"; + /* nl_langinfo items of the LC_MESSAGES category + TODO: Really use the locale. */ + case YESEXPR: + return "^[yY]"; + case NOEXPR: + return "^[nN]"; + default: + return ""; + } +} + +#endif diff --git a/lib/obstack.c b/gnu/obstack.c similarity index 83% rename from lib/obstack.c rename to gnu/obstack.c index 5b87466d881f1df66874890eff3212a444f8700f..7f1aa6b85b95028205bd7cacda4541336757e91d 100644 --- a/lib/obstack.c +++ b/gnu/obstack.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* obstack.c - subroutines used implicitly by object stack macros - Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, - 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software + Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -39,7 +41,7 @@ program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ -#include <stdio.h> /* Random thing to get __GNU_LIBRARY__. */ +#include <stdio.h> /* Random thing to get __GNU_LIBRARY__. */ #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 # include <gnu-versions.h> # if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION @@ -141,9 +143,9 @@ compat_symbol (libc, _obstack_compat, _obstack, GLIBC_2_0); int _obstack_begin (struct obstack *h, - int size, int alignment, - void *(*chunkfun) (long), - void (*freefun) (void *)) + int size, int alignment, + void *(*chunkfun) (long), + void (*freefun) (void *)) { register struct _obstack_chunk *chunk; /* points to new chunk */ @@ -153,16 +155,16 @@ _obstack_begin (struct obstack *h, /* Default size is what GNU malloc can fit in a 4096-byte block. */ { /* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc. - Use the values for range checking, because if range checking is off, - the extra bytes won't be missed terribly, but if range checking is on - and we used a larger request, a whole extra 4096 bytes would be - allocated. + Use the values for range checking, because if range checking is off, + the extra bytes won't be missed terribly, but if range checking is on + and we used a larger request, a whole extra 4096 bytes would be + allocated. - These number are irrelevant to the new GNU malloc. I suspect it is - less sensitive to the size of the request. */ + These number are irrelevant to the new GNU malloc. I suspect it is + less sensitive to the size of the request. */ int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1)) - + 4 + DEFAULT_ROUNDING - 1) - & ~(DEFAULT_ROUNDING - 1)); + + 4 + DEFAULT_ROUNDING - 1) + & ~(DEFAULT_ROUNDING - 1)); size = 4096 - extra; } @@ -176,7 +178,7 @@ _obstack_begin (struct obstack *h, if (!chunk) (*obstack_alloc_failed_handler) (); h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents, - alignment - 1); + alignment - 1); h->chunk_limit = chunk->limit = (char *) chunk + h->chunk_size; chunk->prev = 0; @@ -188,9 +190,9 @@ _obstack_begin (struct obstack *h, int _obstack_begin_1 (struct obstack *h, int size, int alignment, - void *(*chunkfun) (void *, long), - void (*freefun) (void *, void *), - void *arg) + void *(*chunkfun) (void *, long), + void (*freefun) (void *, void *), + void *arg) { register struct _obstack_chunk *chunk; /* points to new chunk */ @@ -200,16 +202,16 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment, /* Default size is what GNU malloc can fit in a 4096-byte block. */ { /* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc. - Use the values for range checking, because if range checking is off, - the extra bytes won't be missed terribly, but if range checking is on - and we used a larger request, a whole extra 4096 bytes would be - allocated. + Use the values for range checking, because if range checking is off, + the extra bytes won't be missed terribly, but if range checking is on + and we used a larger request, a whole extra 4096 bytes would be + allocated. - These number are irrelevant to the new GNU malloc. I suspect it is - less sensitive to the size of the request. */ + These number are irrelevant to the new GNU malloc. I suspect it is + less sensitive to the size of the request. */ int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1)) - + 4 + DEFAULT_ROUNDING - 1) - & ~(DEFAULT_ROUNDING - 1)); + + 4 + DEFAULT_ROUNDING - 1) + & ~(DEFAULT_ROUNDING - 1)); size = 4096 - extra; } @@ -224,7 +226,7 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment, if (!chunk) (*obstack_alloc_failed_handler) (); h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents, - alignment - 1); + alignment - 1); h->chunk_limit = chunk->limit = (char *) chunk + h->chunk_size; chunk->prev = 0; @@ -245,7 +247,7 @@ _obstack_newchunk (struct obstack *h, int length) { register struct _obstack_chunk *old_chunk = h->chunk; register struct _obstack_chunk *new_chunk; - register long new_size; + register long new_size; register long obj_size = h->next_free - h->object_base; register long i; long already; @@ -274,12 +276,12 @@ _obstack_newchunk (struct obstack *h, int length) if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT) { for (i = obj_size / sizeof (COPYING_UNIT) - 1; - i >= 0; i--) - ((COPYING_UNIT *)object_base)[i] - = ((COPYING_UNIT *)h->object_base)[i]; + i >= 0; i--) + ((COPYING_UNIT *)object_base)[i] + = ((COPYING_UNIT *)h->object_base)[i]; /* We used to copy the odd few remaining bytes as one extra COPYING_UNIT, - but that can cross a page boundary on a machine - which does not do strict alignment for COPYING_UNITS. */ + but that can cross a page boundary on a machine + which does not do strict alignment for COPYING_UNITS. */ already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT); } else @@ -293,8 +295,8 @@ _obstack_newchunk (struct obstack *h, int length) But not if that chunk might contain an empty object. */ if (! h->maybe_empty_object && (h->object_base - == __PTR_ALIGN ((char *) old_chunk, old_chunk->contents, - h->alignment_mask))) + == __PTR_ALIGN ((char *) old_chunk, old_chunk->contents, + h->alignment_mask))) { new_chunk->prev = old_chunk->prev; CALL_FREEFUN (h, old_chunk); @@ -320,8 +322,8 @@ int _obstack_allocated_p (struct obstack *h, void *obj); int _obstack_allocated_p (struct obstack *h, void *obj) { - register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ - register struct _obstack_chunk *plp; /* point to previous chunk if any */ + register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ + register struct _obstack_chunk *plp; /* point to previous chunk if any */ lp = (h)->chunk; /* We use >= rather than > since the object cannot be exactly at @@ -343,8 +345,8 @@ _obstack_allocated_p (struct obstack *h, void *obj) void __obstack_free (struct obstack *h, void *obj) { - register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ - register struct _obstack_chunk *plp; /* point to previous chunk if any */ + register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ + register struct _obstack_chunk *plp; /* point to previous chunk if any */ lp = h->chunk; /* We use >= because there cannot be an object at the beginning of a chunk. @@ -356,7 +358,7 @@ __obstack_free (struct obstack *h, void *obj) CALL_FREEFUN (h, lp); lp = plp; /* If we switch chunks, we can't tell whether the new current - chunk contains an empty object, so assume that it may. */ + chunk contains an empty object, so assume that it may. */ h->maybe_empty_object = 1; } if (lp) @@ -427,4 +429,4 @@ print_and_abort (void) exit (obstack_exit_failure); } -#endif /* !ELIDE_CODE */ +#endif /* !ELIDE_CODE */ diff --git a/gnu/obstack.h b/gnu/obstack.h new file mode 100644 index 0000000000000000000000000000000000000000..113aad817e432f049805074f9298518a33984bf2 --- /dev/null +++ b/gnu/obstack.h @@ -0,0 +1,514 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* obstack.h - object stack macros + Copyright (C) 1988-1994, 1996-1999, 2003-2006, 2009-2010 Free Software + Foundation, Inc. + This file is part of the GNU C Library. + + 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/>. */ + +/* Summary: + +All the apparent functions defined here are macros. The idea +is that you would use these pre-tested macros to solve a +very specific set of problems, and they would run fast. +Caution: no side-effects in arguments please!! They may be +evaluated MANY times!! + +These macros operate a stack of objects. Each object starts life +small, and may grow to maturity. (Consider building a word syllable +by syllable.) An object can move while it is growing. Once it has +been "finished" it never changes address again. So the "top of the +stack" is typically an immature growing object, while the rest of the +stack is of mature, fixed size and fixed address objects. + +These routines grab large chunks of memory, using a function you +supply, called `obstack_chunk_alloc'. On occasion, they free chunks, +by calling `obstack_chunk_free'. You must define them and declare +them before using any obstack macros. + +Each independent stack is represented by a `struct obstack'. +Each of the obstack macros expects a pointer to such a structure +as the first argument. + +One motivation for this package is the problem of growing char strings +in symbol tables. Unless you are "fascist pig with a read-only mind" +--Gosper's immortal quote from HAKMEM item 154, out of context--you +would not like to put any arbitrary upper limit on the length of your +symbols. + +In practice this often means you will build many short symbols and a +few long symbols. At the time you are reading a symbol you don't know +how long it is. One traditional method is to read a symbol into a +buffer, realloc()ating the buffer every time you try to read a symbol +that is longer than the buffer. This is beaut, but you still will +want to copy the symbol from the buffer to a more permanent +symbol-table entry say about half the time. + +With obstacks, you can work differently. Use one obstack for all symbol +names. As you read a symbol, grow the name in the obstack gradually. +When the name is complete, finalize it. Then, if the symbol exists already, +free the newly read name. + +The way we do this is to take a large chunk, allocating memory from +low addresses. When you want to build a symbol in the chunk you just +add chars above the current "high water mark" in the chunk. When you +have finished adding chars, because you got to the end of the symbol, +you know how long the chars are, and you can create a new object. +Mostly the chars will not burst over the highest address of the chunk, +because you would typically expect a chunk to be (say) 100 times as +long as an average object. + +In case that isn't clear, when we have enough chars to make up +the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed) +so we just point to it where it lies. No moving of chars is +needed and this is the second win: potentially long strings need +never be explicitly shuffled. Once an object is formed, it does not +change its address during its lifetime. + +When the chars burst over a chunk boundary, we allocate a larger +chunk, and then copy the partly formed object from the end of the old +chunk to the beginning of the new larger chunk. We then carry on +accreting characters to the end of the object as we normally would. + +A special macro is provided to add a single char at a time to a +growing object. This allows the use of register variables, which +break the ordinary 'growth' macro. + +Summary: + We allocate large chunks. + We carve out one object at a time from the current chunk. + Once carved, an object never moves. + We are free to append data of any size to the currently + growing object. + Exactly one object is growing in an obstack at any one time. + You can run one obstack per control block. + You may have as many control blocks as you dare. + Because of the way we do it, you can `unwind' an obstack + back to a previous state. (You may remove objects much + as you would with a stack.) +*/ + + +/* Don't do the contents of this file more than once. */ + +#ifndef _OBSTACK_H +#define _OBSTACK_H 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* We need the type of a pointer subtraction. If __PTRDIFF_TYPE__ is + defined, as with GNU C, use that; that way we don't pollute the + namespace with <stddef.h>'s symbols. Otherwise, include <stddef.h> + and use ptrdiff_t. */ + +#ifdef __PTRDIFF_TYPE__ +# define PTR_INT_TYPE __PTRDIFF_TYPE__ +#else +# include <stddef.h> +# define PTR_INT_TYPE ptrdiff_t +#endif + +/* If B is the base of an object addressed by P, return the result of + aligning P to the next multiple of A + 1. B and P must be of type + char *. A + 1 must be a power of 2. */ + +#define __BPTR_ALIGN(B, P, A) ((B) + (((P) - (B) + (A)) & ~(A))) + +/* Similiar to _BPTR_ALIGN (B, P, A), except optimize the common case + where pointers can be converted to integers, aligned as integers, + and converted back again. If PTR_INT_TYPE is narrower than a + pointer (e.g., the AS/400), play it safe and compute the alignment + relative to B. Otherwise, use the faster strategy of computing the + alignment relative to 0. */ + +#define __PTR_ALIGN(B, P, A) \ + __BPTR_ALIGN (sizeof (PTR_INT_TYPE) < sizeof (void *) ? (B) : (char *) 0, \ + P, A) + +#include <string.h> + +struct _obstack_chunk /* Lives at front of each chunk. */ +{ + char *limit; /* 1 past end of this chunk */ + struct _obstack_chunk *prev; /* address of prior chunk or NULL */ + char contents[4]; /* objects begin here */ +}; + +struct obstack /* control current object in current chunk */ +{ + long chunk_size; /* preferred size to allocate chunks in */ + struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */ + char *object_base; /* address of object we are building */ + char *next_free; /* where to add next char to current object */ + char *chunk_limit; /* address of char after current chunk */ + union + { + PTR_INT_TYPE tempint; + void *tempptr; + } temp; /* Temporary for some macros. */ + int alignment_mask; /* Mask of alignment for each object. */ + /* These prototypes vary based on `use_extra_arg', and we use + casts to the prototypeless function type in all assignments, + but having prototypes here quiets -Wstrict-prototypes. */ + struct _obstack_chunk *(*chunkfun) (void *, long); + void (*freefun) (void *, struct _obstack_chunk *); + void *extra_arg; /* first arg for chunk alloc/dealloc funcs */ + unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */ + unsigned maybe_empty_object:1;/* There is a possibility that the current + chunk contains a zero-length object. This + prevents freeing the chunk if we allocate + a bigger chunk to replace it. */ + unsigned alloc_failed:1; /* No longer used, as we now call the failed + handler on error, but retained for binary + compatibility. */ +}; + +/* Declare the external functions we use; they are in obstack.c. */ + +extern void _obstack_newchunk (struct obstack *, int); +extern int _obstack_begin (struct obstack *, int, int, + void *(*) (long), void (*) (void *)); +extern int _obstack_begin_1 (struct obstack *, int, int, + void *(*) (void *, long), + void (*) (void *, void *), void *); +extern int _obstack_memory_used (struct obstack *); + +/* The default name of the function for freeing a chunk is 'obstack_free', + but gnulib users can override this by defining '__obstack_free'. */ +#ifndef __obstack_free +# define __obstack_free obstack_free +#endif +extern void __obstack_free (struct obstack *obstack, void *block); + + +/* Error handler called when `obstack_chunk_alloc' failed to allocate + more memory. This can be set to a user defined function which + should either abort gracefully or use longjump - but shouldn't + return. The default action is to print a message and abort. */ +extern void (*obstack_alloc_failed_handler) (void); + +/* Exit value used when `print_and_abort' is used. */ +extern int obstack_exit_failure; + +/* Pointer to beginning of object being allocated or to be allocated next. + Note that this might not be the final address of the object + because a new chunk might be needed to hold the final size. */ + +#define obstack_base(h) ((void *) (h)->object_base) + +/* Size for allocating ordinary chunks. */ + +#define obstack_chunk_size(h) ((h)->chunk_size) + +/* Pointer to next byte not yet allocated in current chunk. */ + +#define obstack_next_free(h) ((h)->next_free) + +/* Mask specifying low bits that should be clear in address of an object. */ + +#define obstack_alignment_mask(h) ((h)->alignment_mask) + +/* To prevent prototype warnings provide complete argument list. */ +#define obstack_init(h) \ + _obstack_begin ((h), 0, 0, \ + (void *(*) (long)) obstack_chunk_alloc, \ + (void (*) (void *)) obstack_chunk_free) + +#define obstack_begin(h, size) \ + _obstack_begin ((h), (size), 0, \ + (void *(*) (long)) obstack_chunk_alloc, \ + (void (*) (void *)) obstack_chunk_free) + +#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ + _obstack_begin ((h), (size), (alignment), \ + (void *(*) (long)) (chunkfun), \ + (void (*) (void *)) (freefun)) + +#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ + _obstack_begin_1 ((h), (size), (alignment), \ + (void *(*) (void *, long)) (chunkfun), \ + (void (*) (void *, void *)) (freefun), (arg)) + +#define obstack_chunkfun(h, newchunkfun) \ + ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun)) + +#define obstack_freefun(h, newfreefun) \ + ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun)) + +#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar)) + +#define obstack_blank_fast(h,n) ((h)->next_free += (n)) + +#define obstack_memory_used(h) _obstack_memory_used (h) + +#if defined __GNUC__ && defined __STDC__ && __STDC__ +/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and + does not implement __extension__. But that compiler doesn't define + __GNUC_MINOR__. */ +# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) +# define __extension__ +# endif + +/* For GNU C, if not -traditional, + we can define these macros to compute all args only once + without using a global variable. + Also, we can avoid using the `temp' slot, to make faster code. */ + +# define obstack_object_size(OBSTACK) \ + __extension__ \ + ({ struct obstack const *__o = (OBSTACK); \ + (unsigned) (__o->next_free - __o->object_base); }) + +# define obstack_room(OBSTACK) \ + __extension__ \ + ({ struct obstack const *__o = (OBSTACK); \ + (unsigned) (__o->chunk_limit - __o->next_free); }) + +# define obstack_make_room(OBSTACK,length) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + int __len = (length); \ + if (__o->chunk_limit - __o->next_free < __len) \ + _obstack_newchunk (__o, __len); \ + (void) 0; }) + +# define obstack_empty_p(OBSTACK) \ + __extension__ \ + ({ struct obstack const *__o = (OBSTACK); \ + (__o->chunk->prev == 0 \ + && __o->next_free == __PTR_ALIGN ((char *) __o->chunk, \ + __o->chunk->contents, \ + __o->alignment_mask)); }) + +# define obstack_grow(OBSTACK,where,length) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + int __len = (length); \ + if (__o->next_free + __len > __o->chunk_limit) \ + _obstack_newchunk (__o, __len); \ + memcpy (__o->next_free, where, __len); \ + __o->next_free += __len; \ + (void) 0; }) + +# define obstack_grow0(OBSTACK,where,length) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + int __len = (length); \ + if (__o->next_free + __len + 1 > __o->chunk_limit) \ + _obstack_newchunk (__o, __len + 1); \ + memcpy (__o->next_free, where, __len); \ + __o->next_free += __len; \ + *(__o->next_free)++ = 0; \ + (void) 0; }) + +# define obstack_1grow(OBSTACK,datum) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + if (__o->next_free + 1 > __o->chunk_limit) \ + _obstack_newchunk (__o, 1); \ + obstack_1grow_fast (__o, datum); \ + (void) 0; }) + +/* These assume that the obstack alignment is good enough for pointers + or ints, and that the data added so far to the current object + shares that much alignment. */ + +# define obstack_ptr_grow(OBSTACK,datum) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + if (__o->next_free + sizeof (void *) > __o->chunk_limit) \ + _obstack_newchunk (__o, sizeof (void *)); \ + obstack_ptr_grow_fast (__o, datum); }) \ + +# define obstack_int_grow(OBSTACK,datum) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + if (__o->next_free + sizeof (int) > __o->chunk_limit) \ + _obstack_newchunk (__o, sizeof (int)); \ + obstack_int_grow_fast (__o, datum); }) + +# define obstack_ptr_grow_fast(OBSTACK,aptr) \ +__extension__ \ +({ struct obstack *__o1 = (OBSTACK); \ + *(const void **) __o1->next_free = (aptr); \ + __o1->next_free += sizeof (const void *); \ + (void) 0; }) + +# define obstack_int_grow_fast(OBSTACK,aint) \ +__extension__ \ +({ struct obstack *__o1 = (OBSTACK); \ + *(int *) __o1->next_free = (aint); \ + __o1->next_free += sizeof (int); \ + (void) 0; }) + +# define obstack_blank(OBSTACK,length) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + int __len = (length); \ + if (__o->chunk_limit - __o->next_free < __len) \ + _obstack_newchunk (__o, __len); \ + obstack_blank_fast (__o, __len); \ + (void) 0; }) + +# define obstack_alloc(OBSTACK,length) \ +__extension__ \ +({ struct obstack *__h = (OBSTACK); \ + obstack_blank (__h, (length)); \ + obstack_finish (__h); }) + +# define obstack_copy(OBSTACK,where,length) \ +__extension__ \ +({ struct obstack *__h = (OBSTACK); \ + obstack_grow (__h, (where), (length)); \ + obstack_finish (__h); }) + +# define obstack_copy0(OBSTACK,where,length) \ +__extension__ \ +({ struct obstack *__h = (OBSTACK); \ + obstack_grow0 (__h, (where), (length)); \ + obstack_finish (__h); }) + +/* The local variable is named __o1 to avoid a name conflict + when obstack_blank is called. */ +# define obstack_finish(OBSTACK) \ +__extension__ \ +({ struct obstack *__o1 = (OBSTACK); \ + void *__value = (void *) __o1->object_base; \ + if (__o1->next_free == __value) \ + __o1->maybe_empty_object = 1; \ + __o1->next_free \ + = __PTR_ALIGN (__o1->object_base, __o1->next_free, \ + __o1->alignment_mask); \ + if (__o1->next_free - (char *)__o1->chunk \ + > __o1->chunk_limit - (char *)__o1->chunk) \ + __o1->next_free = __o1->chunk_limit; \ + __o1->object_base = __o1->next_free; \ + __value; }) + +# define obstack_free(OBSTACK, OBJ) \ +__extension__ \ +({ struct obstack *__o = (OBSTACK); \ + void *__obj = (OBJ); \ + if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \ + __o->next_free = __o->object_base = (char *)__obj; \ + else (__obstack_free) (__o, __obj); }) + +#else /* not __GNUC__ or not __STDC__ */ + +# define obstack_object_size(h) \ + (unsigned) ((h)->next_free - (h)->object_base) + +# define obstack_room(h) \ + (unsigned) ((h)->chunk_limit - (h)->next_free) + +# define obstack_empty_p(h) \ + ((h)->chunk->prev == 0 \ + && (h)->next_free == __PTR_ALIGN ((char *) (h)->chunk, \ + (h)->chunk->contents, \ + (h)->alignment_mask)) + +/* Note that the call to _obstack_newchunk is enclosed in (..., 0) + so that we can avoid having void expressions + in the arms of the conditional expression. + Casting the third operand to void was tried before, + but some compilers won't accept it. */ + +# define obstack_make_room(h,length) \ +( (h)->temp.tempint = (length), \ + (((h)->next_free + (h)->temp.tempint > (h)->chunk_limit) \ + ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0)) + +# define obstack_grow(h,where,length) \ +( (h)->temp.tempint = (length), \ + (((h)->next_free + (h)->temp.tempint > (h)->chunk_limit) \ + ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0), \ + memcpy ((h)->next_free, where, (h)->temp.tempint), \ + (h)->next_free += (h)->temp.tempint) + +# define obstack_grow0(h,where,length) \ +( (h)->temp.tempint = (length), \ + (((h)->next_free + (h)->temp.tempint + 1 > (h)->chunk_limit) \ + ? (_obstack_newchunk ((h), (h)->temp.tempint + 1), 0) : 0), \ + memcpy ((h)->next_free, where, (h)->temp.tempint), \ + (h)->next_free += (h)->temp.tempint, \ + *((h)->next_free)++ = 0) + +# define obstack_1grow(h,datum) \ +( (((h)->next_free + 1 > (h)->chunk_limit) \ + ? (_obstack_newchunk ((h), 1), 0) : 0), \ + obstack_1grow_fast (h, datum)) + +# define obstack_ptr_grow(h,datum) \ +( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \ + ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ + obstack_ptr_grow_fast (h, datum)) + +# define obstack_int_grow(h,datum) \ +( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \ + ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ + obstack_int_grow_fast (h, datum)) + +# define obstack_ptr_grow_fast(h,aptr) \ + (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr)) + +# define obstack_int_grow_fast(h,aint) \ + (((int *) ((h)->next_free += sizeof (int)))[-1] = (aint)) + +# define obstack_blank(h,length) \ +( (h)->temp.tempint = (length), \ + (((h)->chunk_limit - (h)->next_free < (h)->temp.tempint) \ + ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0), \ + obstack_blank_fast (h, (h)->temp.tempint)) + +# define obstack_alloc(h,length) \ + (obstack_blank ((h), (length)), obstack_finish ((h))) + +# define obstack_copy(h,where,length) \ + (obstack_grow ((h), (where), (length)), obstack_finish ((h))) + +# define obstack_copy0(h,where,length) \ + (obstack_grow0 ((h), (where), (length)), obstack_finish ((h))) + +# define obstack_finish(h) \ +( ((h)->next_free == (h)->object_base \ + ? (((h)->maybe_empty_object = 1), 0) \ + : 0), \ + (h)->temp.tempptr = (h)->object_base, \ + (h)->next_free \ + = __PTR_ALIGN ((h)->object_base, (h)->next_free, \ + (h)->alignment_mask), \ + (((h)->next_free - (char *) (h)->chunk \ + > (h)->chunk_limit - (char *) (h)->chunk) \ + ? ((h)->next_free = (h)->chunk_limit) : 0), \ + (h)->object_base = (h)->next_free, \ + (h)->temp.tempptr) + +# define obstack_free(h,obj) \ +( (h)->temp.tempint = (char *) (obj) - (char *) (h)->chunk, \ + ((((h)->temp.tempint > 0 \ + && (h)->temp.tempint < (h)->chunk_limit - (char *) (h)->chunk)) \ + ? (int) ((h)->next_free = (h)->object_base \ + = (h)->temp.tempint + (char *) (h)->chunk) \ + : (((__obstack_free) ((h), (h)->temp.tempint + (char *) (h)->chunk), 0), 0))) + +#endif /* not __GNUC__ or not __STDC__ */ + +#ifdef __cplusplus +} /* C++ */ +#endif + +#endif /* obstack.h */ diff --git a/gnu/offtostr.c b/gnu/offtostr.c new file mode 100644 index 0000000000000000000000000000000000000000..98b0c0592d70e8cede45bf5ed1bab7230f425bef --- /dev/null +++ b/gnu/offtostr.c @@ -0,0 +1,6 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#define inttostr offtostr +#define inttype off_t +#define inttype_is_signed 1 +#include "inttostr.c" diff --git a/lib/open.c b/gnu/open.c similarity index 67% rename from lib/open.c rename to gnu/open.c index 13af274602661bb5b628c6d225d51ad2f4673007..7c2bbb81d975266bc34162f1a494a35f55524b67 100644 --- a/lib/open.c +++ b/gnu/open.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Open a descriptor to a file. - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2010 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 @@ -38,6 +40,11 @@ orig_open (const char *filename, int flags, mode_t mode) #include <string.h> #include <sys/types.h> #include <sys/stat.h> +#include <unistd.h> + +#ifndef REPLACE_OPEN_DIRECTORY +# define REPLACE_OPEN_DIRECTORY 0 +#endif int open (const char *filename, int flags, ...) @@ -51,12 +58,9 @@ open (const char *filename, int flags, ...) va_list arg; va_start (arg, flags); - /* If mode_t is narrower than int, use the promoted type (int), - not mode_t. Use sizeof to guess whether mode_t is narrower; - we don't know of any practical counterexamples. */ - mode = (sizeof (mode_t) < sizeof (int) - ? va_arg (arg, int) - : va_arg (arg, mode_t)); + /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 + creates crashing code when 'mode_t' is smaller than 'int'. */ + mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } @@ -92,15 +96,38 @@ open (const char *filename, int flags, ...) { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') - { - errno = EISDIR; - return -1; - } + { + errno = EISDIR; + return -1; + } } #endif fd = orig_open (filename, flags, mode); +#if REPLACE_FCHDIR + /* Implementing fchdir and fdopendir requires the ability to open a + directory file descriptor. If open doesn't support that (as on + mingw), we use a dummy file that behaves the same as directories + on Linux (ie. always reports EOF on attempts to read()), and + override fstat() in fchdir.c to hide the fact that we have a + dummy. */ + if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES + && (flags & O_ACCMODE) == O_RDONLY) + { + struct stat statbuf; + if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) + { + /* Maximum recursion depth of 1. */ + fd = open ("/dev/null", flags, mode); + if (0 <= fd) + fd = _gl_register_fd (fd, filename); + } + else + errno = EACCES; + } +#endif + #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. @@ -116,24 +143,25 @@ open (const char *filename, int flags, ...) with ENOTDIR. */ if (fd >= 0) { + /* We know len is positive, since open did not fail with ENOENT. */ size_t len = strlen (filename); - if (len > 0 && filename[len - 1] == '/') - { - struct stat statbuf; - - if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) - { - close (fd); - errno = ENOTDIR; - return -1; - } - } + if (filename[len - 1] == '/') + { + struct stat statbuf; + + if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) + { + close (fd); + errno = ENOTDIR; + return -1; + } + } } #endif -#ifdef FCHDIR_REPLACEMENT - if (fd >= 0) - _gl_register_fd (fd, filename); +#if REPLACE_FCHDIR + if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) + fd = _gl_register_fd (fd, filename); #endif return fd; diff --git a/lib/openat-die.c b/gnu/openat-die.c similarity index 73% rename from lib/openat-die.c rename to gnu/openat-die.c index 81498ae2e3ec723a8955bf7559a4ffa5ec534cd5..022dbd4b5986854f63dff4f2f88ffc52dae6f6b3 100644 --- a/lib/openat-die.c +++ b/gnu/openat-die.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Report a save- or restore-cwd failure in our openat replacement and then exit. - Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2010 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 @@ -26,13 +28,12 @@ #include "gettext.h" #define _(msgid) gettext (msgid) -#define N_(msgid) msgid void openat_save_fail (int errnum) { error (exit_failure, errnum, - _("unable to record current working directory")); + _("unable to record current working directory")); /* The `noreturn' attribute cannot be applied to error, since it returns when its first argument is 0. To help compilers understand that this @@ -41,11 +42,16 @@ openat_save_fail (int errnum) abort (); } + +/* Exit with an error about failure to restore the working directory + during an openat emulation. The caller must ensure that fd 2 is + not a just-opened fd, even when openat_safer is not in use. */ + void openat_restore_fail (int errnum) { error (exit_failure, errnum, - _("failed to return to initial working directory")); + _("failed to return to initial working directory")); /* As above. */ abort (); diff --git a/lib/openat-priv.h b/gnu/openat-priv.h similarity index 64% rename from lib/openat-priv.h rename to gnu/openat-priv.h index 9254f6bbad85cf37ca17770e91c422abd0f3210d..ca4fa50f84924a12843a29405f3237fbfbd6aed0 100644 --- a/lib/openat-priv.h +++ b/gnu/openat-priv.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Internals for openat-like functions. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 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 @@ -17,38 +19,28 @@ /* written by Jim Meyering */ +#ifndef _GL_HEADER_OPENAT_PRIV +#define _GL_HEADER_OPENAT_PRIV + #include <errno.h> #include <stdlib.h> #define OPENAT_BUFFER_SIZE 512 char *openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file); -/* Some systems don't have ENOSYS. */ -#ifndef ENOSYS -# ifdef ENOTSUP -# define ENOSYS ENOTSUP -# else -/* Some systems don't have ENOTSUP either. */ -# define ENOSYS EINVAL -# endif -#endif - -/* Some systems don't have EOPNOTSUPP. */ -#ifndef EOPNOTSUPP -# ifdef ENOTSUP -# define EOPNOTSUPP ENOTSUP -# else -/* Some systems don't have ENOTSUP either. */ -# define EOPNOTSUPP EINVAL -# endif -#endif - /* Trying to access a BUILD_PROC_NAME file will fail on systems without /proc support, and even on systems *with* ProcFS support. Return nonzero if the failure may be legitimate, e.g., because /proc is not readable, or the particular .../fd/N directory is not present. */ -#define EXPECTED_ERRNO(Errno) \ - ((Errno) == ENOTDIR || (Errno) == ENOENT \ - || (Errno) == EPERM || (Errno) == EACCES \ - || (Errno) == ENOSYS /* Solaris 8 */ \ +#define EXPECTED_ERRNO(Errno) \ + ((Errno) == ENOTDIR || (Errno) == ENOENT \ + || (Errno) == EPERM || (Errno) == EACCES \ + || (Errno) == ENOSYS /* Solaris 8 */ \ || (Errno) == EOPNOTSUPP /* FreeBSD */) + +/* Wrapper function shared among linkat and renameat. */ +int at_func2 (int fd1, char const *file1, + int fd2, char const *file2, + int (*func) (char const *file1, char const *file2)); + +#endif /* _GL_HEADER_OPENAT_PRIV */ diff --git a/lib/openat-proc.c b/gnu/openat-proc.c similarity index 58% rename from lib/openat-proc.c rename to gnu/openat-proc.c index e84dc454fbd16db8ca3b157604853d7acfdf2127..e0693be38b0332a274879998d37839a572793901 100644 --- a/lib/openat-proc.c +++ b/gnu/openat-proc.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Create /proc/self/fd-related names for subfiles of open directories. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2010 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 @@ -27,6 +29,7 @@ #include <stdio.h> #include <string.h> +#include <unistd.h> #include "dirname.h" #include "intprops.h" @@ -34,7 +37,10 @@ #include "xalloc.h" /* The results of open() in this file are not used with fchdir, - therefore save some unnecessary work in fchdir.c. */ + and we do not leak fds to any single-threaded code that could use stdio, + therefore save some unnecessary work in fchdir.c. + FIXME - if the kernel ever adds support for multi-thread safety for + avoiding standard fds, then we should use open_safer. */ #undef open #undef close @@ -54,32 +60,39 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file) { static int proc_status = 0; + /* Make sure the caller gets ENOENT when appropriate. */ + if (!*file) + { + buf[0] = '\0'; + return buf; + } + if (! proc_status) { /* Set PROC_STATUS to a positive value if /proc/self/fd is - reliable, and a negative value otherwise. Solaris 10 - /proc/self/fd mishandles "..", and any file name might expand - to ".." after symbolic link expansion, so avoid /proc/self/fd - if it mishandles "..". Solaris 10 has openat, but this - problem is exhibited on code that built on Solaris 8 and - running on Solaris 10. */ + reliable, and a negative value otherwise. Solaris 10 + /proc/self/fd mishandles "..", and any file name might expand + to ".." after symbolic link expansion, so avoid /proc/self/fd + if it mishandles "..". Solaris 10 has openat, but this + problem is exhibited on code that built on Solaris 8 and + running on Solaris 10. */ int proc_self_fd = open ("/proc/self/fd", O_RDONLY); if (proc_self_fd < 0) - proc_status = -1; + proc_status = -1; else - { - struct stat proc_self_fd_dotdot_st; - struct stat proc_self_st; - char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof ".." - 1)]; - sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, ".."); - proc_status = - ((stat (dotdot_buf, &proc_self_fd_dotdot_st) == 0 - && stat ("/proc/self", &proc_self_st) == 0 - && SAME_INODE (proc_self_fd_dotdot_st, proc_self_st)) - ? 1 : -1); - close (proc_self_fd); - } + { + struct stat proc_self_fd_dotdot_st; + struct stat proc_self_st; + char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof ".." - 1)]; + sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, ".."); + proc_status = + ((stat (dotdot_buf, &proc_self_fd_dotdot_st) == 0 + && stat ("/proc/self", &proc_self_st) == 0 + && SAME_INODE (proc_self_fd_dotdot_st, proc_self_st)) + ? 1 : -1); + close (proc_self_fd); + } } if (proc_status < 0) diff --git a/gnu/openat.c b/gnu/openat.c new file mode 100644 index 0000000000000000000000000000000000000000..f5e8a49dd7a3207d9b23318bc699013bb3f3764a --- /dev/null +++ b/gnu/openat.c @@ -0,0 +1,267 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* provide a replacement openat function + Copyright (C) 2004-2010 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 Jim Meyering */ + +#include <config.h> + +#include "openat.h" + +#include <stdarg.h> +#include <stddef.h> +#include <string.h> +#include <sys/stat.h> + +#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ +#include "openat-priv.h" +#include "save-cwd.h" + +#if HAVE_OPENAT + +# undef openat + +/* Like openat, but work around Solaris 9 bugs with trailing slash. */ +int +rpl_openat (int dfd, char const *filename, int flags, ...) +{ + mode_t mode; + int fd; + + mode = 0; + if (flags & O_CREAT) + { + va_list arg; + va_start (arg, flags); + + /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 + creates crashing code when 'mode_t' is smaller than 'int'. */ + mode = va_arg (arg, PROMOTED_MODE_T); + + va_end (arg); + } + +#if OPEN_TRAILING_SLASH_BUG + /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR + is specified, then fail. + Rationale: POSIX <http://www.opengroup.org/susv3/basedefs/xbd_chap04.html> + says that + "A pathname that contains at least one non-slash character and that + ends with one or more trailing slashes shall be resolved as if a + single dot character ( '.' ) were appended to the pathname." + and + "The special filename dot shall refer to the directory specified by + its predecessor." + If the named file already exists as a directory, then + - if O_CREAT is specified, open() must fail because of the semantics + of O_CREAT, + - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX + <http://www.opengroup.org/susv3/functions/open.html> says that it + fails with errno = EISDIR in this case. + If the named file does not exist or does not name a directory, then + - if O_CREAT is specified, open() must fail since open() cannot create + directories, + - if O_WRONLY or O_RDWR is specified, open() must fail because the + file does not contain a '.' directory. */ + if (flags & (O_CREAT | O_WRONLY | O_RDWR)) + { + size_t len = strlen (filename); + if (len > 0 && filename[len - 1] == '/') + { + errno = EISDIR; + return -1; + } + } +#endif + + fd = openat (dfd, filename, flags, mode); + +#if OPEN_TRAILING_SLASH_BUG + /* If the filename ends in a slash and fd does not refer to a directory, + then fail. + Rationale: POSIX <http://www.opengroup.org/susv3/basedefs/xbd_chap04.html> + says that + "A pathname that contains at least one non-slash character and that + ends with one or more trailing slashes shall be resolved as if a + single dot character ( '.' ) were appended to the pathname." + and + "The special filename dot shall refer to the directory specified by + its predecessor." + If the named file without the slash is not a directory, open() must fail + with ENOTDIR. */ + if (fd >= 0) + { + /* We know len is positive, since open did not fail with ENOENT. */ + size_t len = strlen (filename); + if (filename[len - 1] == '/') + { + struct stat statbuf; + + if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) + { + close (fd); + errno = ENOTDIR; + return -1; + } + } + } +#endif + + return fd; +} + +#else /* !HAVE_OPENAT */ + +/* Replacement for Solaris' openat function. + <http://www.google.com/search?q=openat+site:docs.sun.com> + First, try to simulate it via open ("/proc/self/fd/FD/FILE"). + Failing that, simulate it by doing save_cwd/fchdir/open/restore_cwd. + If either the save_cwd or the restore_cwd fails (relatively unlikely), + then give a diagnostic and exit nonzero. + Otherwise, upon failure, set errno and return -1, as openat does. + Upon successful completion, return a file descriptor. */ +int +openat (int fd, char const *file, int flags, ...) +{ + mode_t mode = 0; + + if (flags & O_CREAT) + { + va_list arg; + va_start (arg, flags); + + /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 + creates crashing code when 'mode_t' is smaller than 'int'. */ + mode = va_arg (arg, PROMOTED_MODE_T); + + va_end (arg); + } + + return openat_permissive (fd, file, flags, mode, NULL); +} + +/* Like openat (FD, FILE, FLAGS, MODE), but if CWD_ERRNO is + nonnull, set *CWD_ERRNO to an errno value if unable to save + or restore the initial working directory. This is needed only + the first time remove.c's remove_dir opens a command-line + directory argument. + + If a previous attempt to restore the current working directory + failed, then we must not even try to access a `.'-relative name. + It is the caller's responsibility not to call this function + in that case. */ + +int +openat_permissive (int fd, char const *file, int flags, mode_t mode, + int *cwd_errno) +{ + struct saved_cwd saved_cwd; + int saved_errno; + int err; + bool save_ok; + + if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) + return open (file, flags, mode); + + { + char buf[OPENAT_BUFFER_SIZE]; + char *proc_file = openat_proc_name (buf, fd, file); + if (proc_file) + { + int open_result = open (proc_file, flags, mode); + int open_errno = errno; + if (proc_file != buf) + free (proc_file); + /* If the syscall succeeds, or if it fails with an unexpected + errno value, then return right away. Otherwise, fall through + and resort to using save_cwd/restore_cwd. */ + if (0 <= open_result || ! EXPECTED_ERRNO (open_errno)) + { + errno = open_errno; + return open_result; + } + } + } + + save_ok = (save_cwd (&saved_cwd) == 0); + if (! save_ok) + { + if (! cwd_errno) + openat_save_fail (errno); + *cwd_errno = errno; + } + if (0 <= fd && fd == saved_cwd.desc) + { + /* If saving the working directory collides with the user's + requested fd, then the user's fd must have been closed to + begin with. */ + free_cwd (&saved_cwd); + errno = EBADF; + return -1; + } + + err = fchdir (fd); + saved_errno = errno; + + if (! err) + { + err = open (file, flags, mode); + saved_errno = errno; + if (save_ok && restore_cwd (&saved_cwd) != 0) + { + if (! cwd_errno) + { + /* Don't write a message to just-created fd 2. */ + saved_errno = errno; + if (err == STDERR_FILENO) + close (err); + openat_restore_fail (saved_errno); + } + *cwd_errno = errno; + } + } + + free_cwd (&saved_cwd); + errno = saved_errno; + return err; +} + +/* Return true if our openat implementation must resort to + using save_cwd and restore_cwd. */ +bool +openat_needs_fchdir (void) +{ + bool needs_fchdir = true; + int fd = open ("/", O_RDONLY); + + if (0 <= fd) + { + char buf[OPENAT_BUFFER_SIZE]; + char *proc_file = openat_proc_name (buf, fd, "."); + if (proc_file) + { + needs_fchdir = false; + if (proc_file != buf) + free (proc_file); + } + close (fd); + } + + return needs_fchdir; +} + +#endif /* !HAVE_OPENAT */ diff --git a/lib/openat.h b/gnu/openat.h similarity index 53% rename from lib/openat.h rename to gnu/openat.h index 68c7df0b7d5b4f83dbf5253cee08faf53b632f1d..7cc7ad99a5a99cf4aab74c0996d89f739810f810 100644 --- a/lib/openat.h +++ b/gnu/openat.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* provide a replacement openat function - Copyright (C) 2004, 2005, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 2004-2006, 2008-2010 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 @@ -16,6 +18,9 @@ /* written by Jim Meyering */ +#ifndef _GL_HEADER_OPENAT +#define _GL_HEADER_OPENAT + #include <fcntl.h> #include <sys/types.h> @@ -34,46 +39,10 @@ # define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) #endif -/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its - value exceeds INT_MAX, so its use as an int doesn't conform to the - C standard, and GCC and Sun C complain in some cases. If the bug - is present, undef AT_FDCWD here, so it can be redefined below. */ -#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 -# undef AT_FDCWD -#endif - -/* Use the same bit pattern as Solaris 9, but with the proper - signedness. The bit pattern is important, in case this actually is - Solaris with the above workaround. */ -#ifndef AT_FDCWD -# define AT_FDCWD (-3041965) -#endif - -/* Use the same values as Solaris 9. This shouldn't matter, but - there's no real reason to differ. */ -#ifndef AT_SYMLINK_NOFOLLOW -# define AT_SYMLINK_NOFOLLOW 4096 -# define AT_REMOVEDIR 1 -#endif - -#ifdef __OPENAT_PREFIX +#if !HAVE_OPENAT -# undef openat -# define __OPENAT_CONCAT(x, y) x ## y -# define __OPENAT_XCONCAT(x, y) __OPENAT_CONCAT (x, y) -# define __OPENAT_ID(y) __OPENAT_XCONCAT (__OPENAT_PREFIX, y) -# define openat __OPENAT_ID (openat) -int openat (int fd, char const *file, int flags, /* mode_t mode */ ...); int openat_permissive (int fd, char const *file, int flags, mode_t mode, - int *cwd_errno); -# if ! HAVE_FDOPENDIR -# define fdopendir __OPENAT_ID (fdopendir) -# endif -DIR *fdopendir (int fd); -# define fstatat __OPENAT_ID (fstatat) -int fstatat (int fd, char const *file, struct stat *st, int flag); -# define unlinkat __OPENAT_ID (unlinkat) -int unlinkat (int fd, char const *file, int flag); + int *cwd_errno); bool openat_needs_fchdir (void); #else @@ -84,19 +53,8 @@ bool openat_needs_fchdir (void); #endif -#if HAVE_OPENAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK -int rpl_fstatat (int fd, char const *file, struct stat *st, int flag); -# if !COMPILING_FSTATAT -# undef fstatat -# define fstatat rpl_fstatat -# endif -#endif - -int mkdirat (int fd, char const *file, mode_t mode); void openat_restore_fail (int) ATTRIBUTE_NORETURN; void openat_save_fail (int) ATTRIBUTE_NORETURN; -int fchmodat (int fd, char const *file, mode_t mode, int flag); -int fchownat (int fd, char const *file, uid_t owner, gid_t group, int flag); /* Using these function names makes application code slightly more readable than it would be with @@ -124,3 +82,35 @@ lchmodat (int fd, char const *file, mode_t mode) { return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW); } + +static inline int +statat (int fd, char const *name, struct stat *st) +{ + return fstatat (fd, name, st, 0); +} + +static inline int +lstatat (int fd, char const *name, struct stat *st) +{ + return fstatat (fd, name, st, AT_SYMLINK_NOFOLLOW); +} + +#if GNULIB_FACCESSAT +/* For now, there are no wrappers named laccessat or leuidaccessat, + since gnulib doesn't support faccessat(,AT_SYMLINK_NOFOLLOW) and + since access rights on symlinks are of limited utility. */ + +static inline int +accessat (int fd, char const *file, int mode) +{ + return faccessat (fd, file, mode, 0); +} + +static inline int +euidaccessat (int fd, char const *file, int mode) +{ + return faccessat (fd, file, mode, AT_EACCESS); +} +#endif + +#endif /* _GL_HEADER_OPENAT */ diff --git a/gnu/opendir-safer.c b/gnu/opendir-safer.c new file mode 100644 index 0000000000000000000000000000000000000000..f0a1b4c146d648062d463abe336e92d28cbebc55 --- /dev/null +++ b/gnu/opendir-safer.c @@ -0,0 +1,70 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Invoke opendir, but avoid some glitches. + + Copyright (C) 2009, 2010 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 Eric Blake. */ + +#include <config.h> + +#include "dirent-safer.h" + +#include <errno.h> +#include <unistd.h> +#include "unistd-safer.h" + +/* Like opendir, but do not clobber stdin, stdout, or stderr. */ + +DIR * +opendir_safer (char const *name) +{ + DIR *dp = opendir (name); + + if (dp) + { + int fd = dirfd (dp); + + if (0 <= fd && fd <= STDERR_FILENO) + { + /* If fdopendir is native (as on Linux), then it is safe to + assume dirfd(fdopendir(n))==n. If we are using the + gnulib module fdopendir, then this guarantee is not met, + but fdopendir recursively calls opendir_safer up to 3 + times to at least get a safe fd. If fdopendir is not + present but dirfd is accurate (as on cygwin 1.5.x), then + we recurse up to 3 times ourselves. Finally, if dirfd + always fails (as on mingw), then we are already safe. */ + DIR *newdp; + int e; +#if HAVE_FDOPENDIR || GNULIB_FDOPENDIR + int f = dup_safer (fd); + newdp = fdopendir (f); + e = errno; + if (! newdp) + close (f); +#else /* !FDOPENDIR */ + newdp = opendir_safer (name); + e = errno; +#endif + closedir (dp); + errno = e; + dp = newdp; + } + } + + return dp; +} diff --git a/lib/pathmax.h b/gnu/pathmax.h similarity index 86% rename from lib/pathmax.h rename to gnu/pathmax.h index c02c65addcc29ddb4618d1d2378a226eda3e5cc5..5c000608697a354de263711e95748d565e0ce15d 100644 --- a/lib/pathmax.h +++ b/gnu/pathmax.h @@ -1,7 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Define PATH_MAX somehow. Requires sys/types.h. - Copyright (C) 1992, 1999, 2001, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2010 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 @@ -28,9 +29,9 @@ # define _POSIX_PATH_MAX 256 # endif -# if !defined PATH_MAX && defined _PC_PATH_MAX +# if !defined PATH_MAX && defined _PC_PATH_MAX && defined HAVE_PATHCONF # define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \ - : pathconf ("/", _PC_PATH_MAX)) + : pathconf ("/", _PC_PATH_MAX)) # endif /* Don't include sys/param.h if it already has been. */ diff --git a/lib/pipe-safer.c b/gnu/pipe-safer.c similarity index 75% rename from lib/pipe-safer.c rename to gnu/pipe-safer.c index 0fc685054bd718f92fd18ea842871b405e684876..f8c3bdb7fb65d425982110e23ed74cdbd5ccc5d4 100644 --- a/lib/pipe-safer.c +++ b/gnu/pipe-safer.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Invoke pipe, but avoid some glitches. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 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 @@ -35,16 +37,16 @@ pipe_safer (int fd[2]) { int i; for (i = 0; i < 2; i++) - { - fd[i] = fd_safer (fd[i]); - if (fd[i] < 0) - { - int e = errno; - close (fd[1 - i]); - errno = e; - return -1; - } - } + { + fd[i] = fd_safer (fd[i]); + if (fd[i] < 0) + { + int e = errno; + close (fd[1 - i]); + errno = e; + return -1; + } + } return 0; } diff --git a/gnu/printf-args.c b/gnu/printf-args.c new file mode 100644 index 0000000000000000000000000000000000000000..452ce405816fdd68e25ae85075472071cb86b8a5 --- /dev/null +++ b/gnu/printf-args.c @@ -0,0 +1,190 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Decomposed printf argument list. + Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* This file can be parametrized with the following macros: + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. + PRINTF_FETCHARGS Name of the function to be defined. + STATIC Set to 'static' to declare the function static. */ + +#ifndef PRINTF_FETCHARGS +# include <config.h> +#endif + +/* Specification. */ +#ifndef PRINTF_FETCHARGS +# include "printf-args.h" +#endif + +#ifdef STATIC +STATIC +#endif +int +PRINTF_FETCHARGS (va_list args, arguments *a) +{ + size_t i; + argument *ap; + + for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++) + switch (ap->type) + { + case TYPE_SCHAR: + ap->a.a_schar = va_arg (args, /*signed char*/ int); + break; + case TYPE_UCHAR: + ap->a.a_uchar = va_arg (args, /*unsigned char*/ int); + break; + case TYPE_SHORT: + ap->a.a_short = va_arg (args, /*short*/ int); + break; + case TYPE_USHORT: + ap->a.a_ushort = va_arg (args, /*unsigned short*/ int); + break; + case TYPE_INT: + ap->a.a_int = va_arg (args, int); + break; + case TYPE_UINT: + ap->a.a_uint = va_arg (args, unsigned int); + break; + case TYPE_LONGINT: + ap->a.a_longint = va_arg (args, long int); + break; + case TYPE_ULONGINT: + ap->a.a_ulongint = va_arg (args, unsigned long int); + break; +#if HAVE_LONG_LONG_INT + case TYPE_LONGLONGINT: + ap->a.a_longlongint = va_arg (args, long long int); + break; + case TYPE_ULONGLONGINT: + ap->a.a_ulonglongint = va_arg (args, unsigned long long int); + break; +#endif + case TYPE_DOUBLE: + ap->a.a_double = va_arg (args, double); + break; + case TYPE_LONGDOUBLE: + ap->a.a_longdouble = va_arg (args, long double); + break; + case TYPE_CHAR: + ap->a.a_char = va_arg (args, int); + break; +#if HAVE_WINT_T + case TYPE_WIDE_CHAR: + /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by + default argument promotions", this is not the case in mingw32, + where wint_t is 'unsigned short'. */ + ap->a.a_wide_char = + (sizeof (wint_t) < sizeof (int) + ? (wint_t) va_arg (args, int) + : va_arg (args, wint_t)); + break; +#endif + case TYPE_STRING: + ap->a.a_string = va_arg (args, const char *); + /* A null pointer is an invalid argument for "%s", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_string == NULL) + ap->a.a_string = "(NULL)"; + break; +#if HAVE_WCHAR_T + case TYPE_WIDE_STRING: + ap->a.a_wide_string = va_arg (args, const wchar_t *); + /* A null pointer is an invalid argument for "%ls", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_wide_string == NULL) + { + static const wchar_t wide_null_string[] = + { + (wchar_t)'(', + (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L', + (wchar_t)')', + (wchar_t)0 + }; + ap->a.a_wide_string = wide_null_string; + } + break; +#endif + case TYPE_POINTER: + ap->a.a_pointer = va_arg (args, void *); + break; + case TYPE_COUNT_SCHAR_POINTER: + ap->a.a_count_schar_pointer = va_arg (args, signed char *); + break; + case TYPE_COUNT_SHORT_POINTER: + ap->a.a_count_short_pointer = va_arg (args, short *); + break; + case TYPE_COUNT_INT_POINTER: + ap->a.a_count_int_pointer = va_arg (args, int *); + break; + case TYPE_COUNT_LONGINT_POINTER: + ap->a.a_count_longint_pointer = va_arg (args, long int *); + break; +#if HAVE_LONG_LONG_INT + case TYPE_COUNT_LONGLONGINT_POINTER: + ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); + break; +#endif +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + case TYPE_U8_STRING: + ap->a.a_u8_string = va_arg (args, const uint8_t *); + /* A null pointer is an invalid argument for "%U", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_u8_string == NULL) + { + static const uint8_t u8_null_string[] = + { '(', 'N', 'U', 'L', 'L', ')', 0 }; + ap->a.a_u8_string = u8_null_string; + } + break; + case TYPE_U16_STRING: + ap->a.a_u16_string = va_arg (args, const uint16_t *); + /* A null pointer is an invalid argument for "%lU", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_u16_string == NULL) + { + static const uint16_t u16_null_string[] = + { '(', 'N', 'U', 'L', 'L', ')', 0 }; + ap->a.a_u16_string = u16_null_string; + } + break; + case TYPE_U32_STRING: + ap->a.a_u32_string = va_arg (args, const uint32_t *); + /* A null pointer is an invalid argument for "%llU", but in practice + it occurs quite frequently in printf statements that produce + debug output. Use a fallback in this case. */ + if (ap->a.a_u32_string == NULL) + { + static const uint32_t u32_null_string[] = + { '(', 'N', 'U', 'L', 'L', ')', 0 }; + ap->a.a_u32_string = u32_null_string; + } + break; +#endif + default: + /* Unknown type. */ + return -1; + } + return 0; +} diff --git a/lib/printf-args.h b/gnu/printf-args.h similarity index 67% rename from lib/printf-args.h rename to gnu/printf-args.h index 0c1e48cdd552a56f5379e89e53f102ea1ae98527..100cbbdf1963ee4ff61686b29ab0c636d33364ce 100644 --- a/lib/printf-args.h +++ b/gnu/printf-args.h @@ -1,7 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2006-2007 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2003, 2006-2007, 2009-2010 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 @@ -95,42 +96,42 @@ typedef struct arg_type type; union { - signed char a_schar; - unsigned char a_uchar; - short a_short; - unsigned short a_ushort; - int a_int; - unsigned int a_uint; - long int a_longint; - unsigned long int a_ulongint; + signed char a_schar; + unsigned char a_uchar; + short a_short; + unsigned short a_ushort; + int a_int; + unsigned int a_uint; + long int a_longint; + unsigned long int a_ulongint; #if HAVE_LONG_LONG_INT - long long int a_longlongint; - unsigned long long int a_ulonglongint; + long long int a_longlongint; + unsigned long long int a_ulonglongint; #endif - float a_float; - double a_double; - long double a_longdouble; - int a_char; + float a_float; + double a_double; + long double a_longdouble; + int a_char; #if HAVE_WINT_T - wint_t a_wide_char; + wint_t a_wide_char; #endif - const char* a_string; + const char* a_string; #if HAVE_WCHAR_T - const wchar_t* a_wide_string; + const wchar_t* a_wide_string; #endif - void* a_pointer; - signed char * a_count_schar_pointer; - short * a_count_short_pointer; - int * a_count_int_pointer; - long int * a_count_longint_pointer; + void* a_pointer; + signed char * a_count_schar_pointer; + short * a_count_short_pointer; + int * a_count_int_pointer; + long int * a_count_longint_pointer; #if HAVE_LONG_LONG_INT - long long int * a_count_longlongint_pointer; + long long int * a_count_longlongint_pointer; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ - const uint8_t * a_u8_string; - const uint16_t * a_u16_string; - const uint32_t * a_u32_string; + const uint8_t * a_u8_string; + const uint16_t * a_u16_string; + const uint32_t * a_u32_string; #endif } a; diff --git a/gnu/printf-parse.c b/gnu/printf-parse.c new file mode 100644 index 0000000000000000000000000000000000000000..206a62bc9e061a746be27c8eab91f3cf27a60dea --- /dev/null +++ b/gnu/printf-parse.c @@ -0,0 +1,629 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Formatted output to strings. + Copyright (C) 1999-2000, 2002-2003, 2006-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* This file can be parametrized with the following macros: + CHAR_T The element type of the format string. + CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters + in the format string are ASCII. + DIRECTIVE Structure denoting a format directive. + Depends on CHAR_T. + DIRECTIVES Structure denoting the set of format directives of a + format string. Depends on CHAR_T. + PRINTF_PARSE Function that parses a format string. + Depends on CHAR_T. + STATIC Set to 'static' to declare the function static. + ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */ + +#ifndef PRINTF_PARSE +# include <config.h> +#endif + +/* Specification. */ +#ifndef PRINTF_PARSE +# include "printf-parse.h" +#endif + +/* Default parameters. */ +#ifndef PRINTF_PARSE +# define PRINTF_PARSE printf_parse +# define CHAR_T char +# define DIRECTIVE char_directive +# define DIRECTIVES char_directives +#endif + +/* Get size_t, NULL. */ +#include <stddef.h> + +/* Get intmax_t. */ +#if defined IN_LIBINTL || defined IN_LIBASPRINTF +# if HAVE_STDINT_H_WITH_UINTMAX +# include <stdint.h> +# endif +# if HAVE_INTTYPES_H_WITH_UINTMAX +# include <inttypes.h> +# endif +#else +# include <stdint.h> +#endif + +/* malloc(), realloc(), free(). */ +#include <stdlib.h> + +/* errno. */ +#include <errno.h> + +/* Checked size_t computations. */ +#include "xsize.h" + +#if CHAR_T_ONLY_ASCII +/* c_isascii(). */ +# include "c-ctype.h" +#endif + +#ifdef STATIC +STATIC +#endif +int +PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) +{ + const CHAR_T *cp = format; /* pointer into format */ + size_t arg_posn = 0; /* number of regular arguments consumed */ + size_t d_allocated; /* allocated elements of d->dir */ + size_t a_allocated; /* allocated elements of a->arg */ + size_t max_width_length = 0; + size_t max_precision_length = 0; + + d->count = 0; + d_allocated = 1; + d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE)); + if (d->dir == NULL) + /* Out of memory. */ + goto out_of_memory_1; + + a->count = 0; + a_allocated = 0; + a->arg = NULL; + +#define REGISTER_ARG(_index_,_type_) \ + { \ + size_t n = (_index_); \ + if (n >= a_allocated) \ + { \ + size_t memory_size; \ + argument *memory; \ + \ + a_allocated = xtimes (a_allocated, 2); \ + if (a_allocated <= n) \ + a_allocated = xsum (n, 1); \ + memory_size = xtimes (a_allocated, sizeof (argument)); \ + if (size_overflow_p (memory_size)) \ + /* Overflow, would lead to out of memory. */ \ + goto out_of_memory; \ + memory = (argument *) (a->arg \ + ? realloc (a->arg, memory_size) \ + : malloc (memory_size)); \ + if (memory == NULL) \ + /* Out of memory. */ \ + goto out_of_memory; \ + a->arg = memory; \ + } \ + while (a->count <= n) \ + a->arg[a->count++].type = TYPE_NONE; \ + if (a->arg[n].type == TYPE_NONE) \ + a->arg[n].type = (_type_); \ + else if (a->arg[n].type != (_type_)) \ + /* Ambiguous type for positional argument. */ \ + goto error; \ + } + + while (*cp != '\0') + { + CHAR_T c = *cp++; + if (c == '%') + { + size_t arg_index = ARG_NONE; + DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */ + + /* Initialize the next directive. */ + dp->dir_start = cp - 1; + dp->flags = 0; + dp->width_start = NULL; + dp->width_end = NULL; + dp->width_arg_index = ARG_NONE; + dp->precision_start = NULL; + dp->precision_end = NULL; + dp->precision_arg_index = ARG_NONE; + dp->arg_index = ARG_NONE; + + /* Test for positional argument. */ + if (*cp >= '0' && *cp <= '9') + { + const CHAR_T *np; + + for (np = cp; *np >= '0' && *np <= '9'; np++) + ; + if (*np == '$') + { + size_t n = 0; + + for (np = cp; *np >= '0' && *np <= '9'; np++) + n = xsum (xtimes (n, 10), *np - '0'); + if (n == 0) + /* Positional argument 0. */ + goto error; + if (size_overflow_p (n)) + /* n too large, would lead to out of memory later. */ + goto error; + arg_index = n - 1; + cp = np + 1; + } + } + + /* Read the flags. */ + for (;;) + { + if (*cp == '\'') + { + dp->flags |= FLAG_GROUP; + cp++; + } + else if (*cp == '-') + { + dp->flags |= FLAG_LEFT; + cp++; + } + else if (*cp == '+') + { + dp->flags |= FLAG_SHOWSIGN; + cp++; + } + else if (*cp == ' ') + { + dp->flags |= FLAG_SPACE; + cp++; + } + else if (*cp == '#') + { + dp->flags |= FLAG_ALT; + cp++; + } + else if (*cp == '0') + { + dp->flags |= FLAG_ZERO; + cp++; + } + else + break; + } + + /* Parse the field width. */ + if (*cp == '*') + { + dp->width_start = cp; + cp++; + dp->width_end = cp; + if (max_width_length < 1) + max_width_length = 1; + + /* Test for positional argument. */ + if (*cp >= '0' && *cp <= '9') + { + const CHAR_T *np; + + for (np = cp; *np >= '0' && *np <= '9'; np++) + ; + if (*np == '$') + { + size_t n = 0; + + for (np = cp; *np >= '0' && *np <= '9'; np++) + n = xsum (xtimes (n, 10), *np - '0'); + if (n == 0) + /* Positional argument 0. */ + goto error; + if (size_overflow_p (n)) + /* n too large, would lead to out of memory later. */ + goto error; + dp->width_arg_index = n - 1; + cp = np + 1; + } + } + if (dp->width_arg_index == ARG_NONE) + { + dp->width_arg_index = arg_posn++; + if (dp->width_arg_index == ARG_NONE) + /* arg_posn wrapped around. */ + goto error; + } + REGISTER_ARG (dp->width_arg_index, TYPE_INT); + } + else if (*cp >= '0' && *cp <= '9') + { + size_t width_length; + + dp->width_start = cp; + for (; *cp >= '0' && *cp <= '9'; cp++) + ; + dp->width_end = cp; + width_length = dp->width_end - dp->width_start; + if (max_width_length < width_length) + max_width_length = width_length; + } + + /* Parse the precision. */ + if (*cp == '.') + { + cp++; + if (*cp == '*') + { + dp->precision_start = cp - 1; + cp++; + dp->precision_end = cp; + if (max_precision_length < 2) + max_precision_length = 2; + + /* Test for positional argument. */ + if (*cp >= '0' && *cp <= '9') + { + const CHAR_T *np; + + for (np = cp; *np >= '0' && *np <= '9'; np++) + ; + if (*np == '$') + { + size_t n = 0; + + for (np = cp; *np >= '0' && *np <= '9'; np++) + n = xsum (xtimes (n, 10), *np - '0'); + if (n == 0) + /* Positional argument 0. */ + goto error; + if (size_overflow_p (n)) + /* n too large, would lead to out of memory + later. */ + goto error; + dp->precision_arg_index = n - 1; + cp = np + 1; + } + } + if (dp->precision_arg_index == ARG_NONE) + { + dp->precision_arg_index = arg_posn++; + if (dp->precision_arg_index == ARG_NONE) + /* arg_posn wrapped around. */ + goto error; + } + REGISTER_ARG (dp->precision_arg_index, TYPE_INT); + } + else + { + size_t precision_length; + + dp->precision_start = cp - 1; + for (; *cp >= '0' && *cp <= '9'; cp++) + ; + dp->precision_end = cp; + precision_length = dp->precision_end - dp->precision_start; + if (max_precision_length < precision_length) + max_precision_length = precision_length; + } + } + + { + arg_type type; + + /* Parse argument type/size specifiers. */ + { + int flags = 0; + + for (;;) + { + if (*cp == 'h') + { + flags |= (1 << (flags & 1)); + cp++; + } + else if (*cp == 'L') + { + flags |= 4; + cp++; + } + else if (*cp == 'l') + { + flags += 8; + cp++; + } + else if (*cp == 'j') + { + if (sizeof (intmax_t) > sizeof (long)) + { + /* intmax_t = long long */ + flags += 16; + } + else if (sizeof (intmax_t) > sizeof (int)) + { + /* intmax_t = long */ + flags += 8; + } + cp++; + } + else if (*cp == 'z' || *cp == 'Z') + { + /* 'z' is standardized in ISO C 99, but glibc uses 'Z' + because the warning facility in gcc-2.95.2 understands + only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */ + if (sizeof (size_t) > sizeof (long)) + { + /* size_t = long long */ + flags += 16; + } + else if (sizeof (size_t) > sizeof (int)) + { + /* size_t = long */ + flags += 8; + } + cp++; + } + else if (*cp == 't') + { + if (sizeof (ptrdiff_t) > sizeof (long)) + { + /* ptrdiff_t = long long */ + flags += 16; + } + else if (sizeof (ptrdiff_t) > sizeof (int)) + { + /* ptrdiff_t = long */ + flags += 8; + } + cp++; + } +#if defined __APPLE__ && defined __MACH__ + /* On MacOS X 10.3, PRIdMAX is defined as "qd". + We cannot change it to "lld" because PRIdMAX must also + be understood by the system's printf routines. */ + else if (*cp == 'q') + { + if (64 / 8 > sizeof (long)) + { + /* int64_t = long long */ + flags += 16; + } + else + { + /* int64_t = long */ + flags += 8; + } + cp++; + } +#endif +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + /* On native Win32, PRIdMAX is defined as "I64d". + We cannot change it to "lld" because PRIdMAX must also + be understood by the system's printf routines. */ + else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4') + { + if (64 / 8 > sizeof (long)) + { + /* __int64 = long long */ + flags += 16; + } + else + { + /* __int64 = long */ + flags += 8; + } + cp += 3; + } +#endif + else + break; + } + + /* Read the conversion character. */ + c = *cp++; + switch (c) + { + case 'd': case 'i': +#if HAVE_LONG_LONG_INT + /* If 'long long' exists and is larger than 'long': */ + if (flags >= 16 || (flags & 4)) + type = TYPE_LONGLONGINT; + else +#endif + /* If 'long long' exists and is the same as 'long', we parse + "lld" into TYPE_LONGINT. */ + if (flags >= 8) + type = TYPE_LONGINT; + else if (flags & 2) + type = TYPE_SCHAR; + else if (flags & 1) + type = TYPE_SHORT; + else + type = TYPE_INT; + break; + case 'o': case 'u': case 'x': case 'X': +#if HAVE_LONG_LONG_INT + /* If 'long long' exists and is larger than 'long': */ + if (flags >= 16 || (flags & 4)) + type = TYPE_ULONGLONGINT; + else +#endif + /* If 'unsigned long long' exists and is the same as + 'unsigned long', we parse "llu" into TYPE_ULONGINT. */ + if (flags >= 8) + type = TYPE_ULONGINT; + else if (flags & 2) + type = TYPE_UCHAR; + else if (flags & 1) + type = TYPE_USHORT; + else + type = TYPE_UINT; + break; + case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': + case 'a': case 'A': + if (flags >= 16 || (flags & 4)) + type = TYPE_LONGDOUBLE; + else + type = TYPE_DOUBLE; + break; + case 'c': + if (flags >= 8) +#if HAVE_WINT_T + type = TYPE_WIDE_CHAR; +#else + goto error; +#endif + else + type = TYPE_CHAR; + break; +#if HAVE_WINT_T + case 'C': + type = TYPE_WIDE_CHAR; + c = 'c'; + break; +#endif + case 's': + if (flags >= 8) +#if HAVE_WCHAR_T + type = TYPE_WIDE_STRING; +#else + goto error; +#endif + else + type = TYPE_STRING; + break; +#if HAVE_WCHAR_T + case 'S': + type = TYPE_WIDE_STRING; + c = 's'; + break; +#endif + case 'p': + type = TYPE_POINTER; + break; + case 'n': +#if HAVE_LONG_LONG_INT + /* If 'long long' exists and is larger than 'long': */ + if (flags >= 16 || (flags & 4)) + type = TYPE_COUNT_LONGLONGINT_POINTER; + else +#endif + /* If 'long long' exists and is the same as 'long', we parse + "lln" into TYPE_COUNT_LONGINT_POINTER. */ + if (flags >= 8) + type = TYPE_COUNT_LONGINT_POINTER; + else if (flags & 2) + type = TYPE_COUNT_SCHAR_POINTER; + else if (flags & 1) + type = TYPE_COUNT_SHORT_POINTER; + else + type = TYPE_COUNT_INT_POINTER; + break; +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + case 'U': + if (flags >= 16) + type = TYPE_U32_STRING; + else if (flags >= 8) + type = TYPE_U16_STRING; + else + type = TYPE_U8_STRING; + break; +#endif + case '%': + type = TYPE_NONE; + break; + default: + /* Unknown conversion character. */ + goto error; + } + } + + if (type != TYPE_NONE) + { + dp->arg_index = arg_index; + if (dp->arg_index == ARG_NONE) + { + dp->arg_index = arg_posn++; + if (dp->arg_index == ARG_NONE) + /* arg_posn wrapped around. */ + goto error; + } + REGISTER_ARG (dp->arg_index, type); + } + dp->conversion = c; + dp->dir_end = cp; + } + + d->count++; + if (d->count >= d_allocated) + { + size_t memory_size; + DIRECTIVE *memory; + + d_allocated = xtimes (d_allocated, 2); + memory_size = xtimes (d_allocated, sizeof (DIRECTIVE)); + if (size_overflow_p (memory_size)) + /* Overflow, would lead to out of memory. */ + goto out_of_memory; + memory = (DIRECTIVE *) realloc (d->dir, memory_size); + if (memory == NULL) + /* Out of memory. */ + goto out_of_memory; + d->dir = memory; + } + } +#if CHAR_T_ONLY_ASCII + else if (!c_isascii (c)) + { + /* Non-ASCII character. Not supported. */ + goto error; + } +#endif + } + d->dir[d->count].dir_start = cp; + + d->max_width_length = max_width_length; + d->max_precision_length = max_precision_length; + return 0; + +error: + if (a->arg) + free (a->arg); + if (d->dir) + free (d->dir); + errno = EINVAL; + return -1; + +out_of_memory: + if (a->arg) + free (a->arg); + if (d->dir) + free (d->dir); +out_of_memory_1: + errno = ENOMEM; + return -1; +} + +#undef PRINTF_PARSE +#undef DIRECTIVES +#undef DIRECTIVE +#undef CHAR_T_ONLY_ASCII +#undef CHAR_T diff --git a/lib/printf-parse.h b/gnu/printf-parse.h similarity index 90% rename from lib/printf-parse.h rename to gnu/printf-parse.h index 31064c62aeb86edeae40d321ba9c670c551fd516..67b79843c3a1b71bb6bf7012ab09115049e67b3d 100644 --- a/lib/printf-parse.h +++ b/gnu/printf-parse.h @@ -1,7 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Parse printf format string. - Copyright (C) 1999, 2002-2003, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2003, 2005, 2007, 2009-2010 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 @@ -28,15 +29,15 @@ /* Flags */ -#define FLAG_GROUP 1 /* ' flag */ -#define FLAG_LEFT 2 /* - flag */ -#define FLAG_SHOWSIGN 4 /* + flag */ -#define FLAG_SPACE 8 /* space flag */ -#define FLAG_ALT 16 /* # flag */ -#define FLAG_ZERO 32 +#define FLAG_GROUP 1 /* ' flag */ +#define FLAG_LEFT 2 /* - flag */ +#define FLAG_SHOWSIGN 4 /* + flag */ +#define FLAG_SPACE 8 /* space flag */ +#define FLAG_ALT 16 /* # flag */ +#define FLAG_ZERO 32 /* arg_index value indicating that no argument is consumed. */ -#define ARG_NONE (~(size_t)0) +#define ARG_NONE (~(size_t)0) /* xxx_directive: A parsed directive. xxx_directives: A parsed format string. */ @@ -165,10 +166,10 @@ extern int u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a); extern int u16_printf_parse (const uint16_t *format, u16_directives *d, - arguments *a); + arguments *a); extern int u32_printf_parse (const uint32_t *format, u32_directives *d, - arguments *a); + arguments *a); #else # ifdef STATIC STATIC diff --git a/gnu/priv-set.c b/gnu/priv-set.c new file mode 100644 index 0000000000000000000000000000000000000000..e9f8fb24f3993b484c11a682c2356be917167012 --- /dev/null +++ b/gnu/priv-set.c @@ -0,0 +1,145 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Query, remove, or restore a Solaris privilege. + + Copyright (C) 2009, 2010 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 David Bartley. */ + +#include <config.h> +#include "priv-set.h" + +#if HAVE_GETPPRIV + +# include <errno.h> +# include <stdbool.h> +# include <priv.h> + +/* Holds a (cached) copy of the effective set. */ +static priv_set_t *eff_set; + +/* Holds a set of privileges that we have removed. */ +static priv_set_t *rem_set; + +static bool initialized; + +static int +priv_set_initialize (void) +{ + if (! initialized) + { + eff_set = priv_allocset (); + if (!eff_set) + { + return -1; + } + rem_set = priv_allocset (); + if (!rem_set) + { + priv_freeset (eff_set); + return -1; + } + if (getppriv (PRIV_EFFECTIVE, eff_set) != 0) + { + priv_freeset (eff_set); + priv_freeset (rem_set); + return -1; + } + priv_emptyset (rem_set); + initialized = true; + } + + return 0; +} + + +/* Check if priv is in the effective set. + Returns 1 if priv is a member and 0 if not. + Returns -1 on error with errno set appropriately. */ +int +priv_set_ismember (const char *priv) +{ + if (! initialized && priv_set_initialize () != 0) + return -1; + + return priv_ismember (eff_set, priv); +} + + +/* Try to remove priv from the effective set. + Returns 0 if priv was removed from or was not present in the effective set. + Returns -1 on error with errno set appropriately. */ +int +priv_set_remove (const char *priv) +{ + if (! initialized && priv_set_initialize () != 0) + return -1; + + if (priv_ismember (eff_set, priv)) + { + /* priv_addset/priv_delset can only fail if priv is invalid, which is + checked above by the priv_ismember call. */ + priv_delset (eff_set, priv); + if (setppriv (PRIV_SET, PRIV_EFFECTIVE, eff_set) != 0) + { + priv_addset (eff_set, priv); + return -1; + } + priv_addset (rem_set, priv); + } + else + { + errno = EINVAL; + return -1; + } + + return 0; +} + + +/* Try to restore priv to the effective set. + Returns 0 if priv was re-added to the effective set (after being prviously + removed by a call to priv_set_remove) or if priv was already in the + effective set. + Returns -1 on error with errno set appropriately. */ +int +priv_set_restore (const char *priv) +{ + if (! initialized && priv_set_initialize () != 0) + return -1; + + if (priv_ismember (rem_set, priv)) + { + /* priv_addset/priv_delset can only fail if priv is invalid, which is + checked above by the priv_ismember call. */ + priv_addset (eff_set, priv); + if (setppriv (PRIV_SET, PRIV_EFFECTIVE, eff_set) != 0) + { + priv_delset (eff_set, priv); + return -1; + } + priv_delset (rem_set, priv); + } + else + { + errno = EINVAL; + return -1; + } + + return 0; +} + +#endif diff --git a/gnu/priv-set.h b/gnu/priv-set.h new file mode 100644 index 0000000000000000000000000000000000000000..588f57926ee574d9cf37ab4b3359f535e0160bb5 --- /dev/null +++ b/gnu/priv-set.h @@ -0,0 +1,52 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Query, remove, or restore a Solaris privilege. + + Copyright (C) 2009, 2010 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 David Bartley. */ + +#if HAVE_GETPPRIV + +# include <priv.h> + +int priv_set_ismember (const char *priv); +int priv_set_remove (const char *priv); +int priv_set_restore (const char *priv); + +static inline int priv_set_remove_linkdir (void) +{ + return priv_set_remove (PRIV_SYS_LINKDIR); +} + +static inline int priv_set_restore_linkdir (void) +{ + return priv_set_restore (PRIV_SYS_LINKDIR); +} + +#else + +static inline int priv_set_remove_linkdir (void) +{ + return -1; +} + +static inline int priv_set_restore_linkdir (void) +{ + return -1; +} + +#endif diff --git a/gnu/progname.c b/gnu/progname.c new file mode 100644 index 0000000000000000000000000000000000000000..0bd63fae2a49cebc88f322cab4e2f134734bdf84 --- /dev/null +++ b/gnu/progname.c @@ -0,0 +1,94 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Program name management. + Copyright (C) 2001-2003, 2005-2010 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2001. + + 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/>. */ + + +#include <config.h> + +/* Specification. */ +#undef ENABLE_RELOCATABLE /* avoid defining set_program_name as a macro */ +#include "progname.h" + +#include <errno.h> /* get program_invocation_name declaration */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + + +/* String containing name the program is called with. + To be initialized by main(). */ +const char *program_name = NULL; + +/* Set program_name, based on argv[0]. + argv0 must be a string allocated with indefinite extent, and must not be + modified after this call. */ +void +set_program_name (const char *argv0) +{ + /* libtool creates a temporary executable whose name is sometimes prefixed + with "lt-" (depends on the platform). It also makes argv[0] absolute. + But the name of the temporary executable is a detail that should not be + visible to the end user and to the test suite. + Remove this "<dirname>/.libs/" or "<dirname>/.libs/lt-" prefix here. */ + const char *slash; + const char *base; + + /* Sanity check. POSIX requires the invoking process to pass a non-NULL + argv[0]. */ + if (argv0 == NULL) + { + /* It's a bug in the invoking program. Help diagnosing it. */ + fputs ("A NULL argv[0] was passed through an exec system call.\n", + stderr); + abort (); + } + + slash = strrchr (argv0, '/'); + base = (slash != NULL ? slash + 1 : argv0); + if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0) + { + argv0 = base; + if (strncmp (base, "lt-", 3) == 0) + { + argv0 = base + 3; + /* On glibc systems, remove the "lt-" prefix from the variable + program_invocation_short_name. */ +#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME + program_invocation_short_name = (char *) argv0; +#endif + } + } + + /* But don't strip off a leading <dirname>/ in general, because when the user + runs + /some/hidden/place/bin/cp foo foo + he should get the error message + /some/hidden/place/bin/cp: `foo' and `foo' are the same file + not + cp: `foo' and `foo' are the same file + */ + + program_name = argv0; + + /* On glibc systems, the error() function comes from libc and uses the + variable program_invocation_name, not program_name. So set this variable + as well. */ +#if HAVE_DECL_PROGRAM_INVOCATION_NAME + program_invocation_name = (char *) argv0; +#endif +} diff --git a/gnu/progname.h b/gnu/progname.h new file mode 100644 index 0000000000000000000000000000000000000000..77e782a3009a9f60eb0889515b872c8e2519658d --- /dev/null +++ b/gnu/progname.h @@ -0,0 +1,64 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Program name management. + Copyright (C) 2001-2004, 2006, 2009-2010 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2001. + + 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/>. */ + +#ifndef _PROGNAME_H +#define _PROGNAME_H + +/* Programs using this file should do the following in main(): + set_program_name (argv[0]); + */ + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* String containing name the program is called with. */ +extern const char *program_name; + +/* Set program_name, based on argv[0]. + argv0 must be a string allocated with indefinite extent, and must not be + modified after this call. */ +extern void set_program_name (const char *argv0); + +#if ENABLE_RELOCATABLE + +/* Set program_name, based on argv[0], and original installation prefix and + directory, for relocatability. */ +extern void set_program_name_and_installdir (const char *argv0, + const char *orig_installprefix, + const char *orig_installdir); +#undef set_program_name +#define set_program_name(ARG0) \ + set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR) + +/* Return the full pathname of the current executable, based on the earlier + call to set_program_name_and_installdir. Return NULL if unknown. */ +extern char *get_full_program_name (void); + +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif /* _PROGNAME_H */ diff --git a/lib/quote.c b/gnu/quote.c similarity index 88% rename from lib/quote.c rename to gnu/quote.c index 5e8b76471167512fb98d82b3fd57c2929712c095..ae62f3e57b46a82bd25c0b27e40cc3f0e9af6f76 100644 --- a/lib/quote.c +++ b/gnu/quote.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* quote.c - quote arguments for output - Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005, 2006 Free + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005, 2006, 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/lib/quote.h b/gnu/quote.h similarity index 83% rename from lib/quote.h rename to gnu/quote.h index c3660b1963fe6b2b4b4d55094488cf925a162b9a..bdf5b27690ebadc474ffc0bb8bb9cfd242a7b094 100644 --- a/lib/quote.h +++ b/gnu/quote.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* quote.h - prototypes for quote.c - Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/quotearg.c b/gnu/quotearg.c new file mode 100644 index 0000000000000000000000000000000000000000..724c0569721ba1c32273e5eeeb408200b52c618f --- /dev/null +++ b/gnu/quotearg.c @@ -0,0 +1,891 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* quotearg.c - quote arguments for output + + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, + 2009, 2010 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 <eggert@twinsun.com> */ + +#include <config.h> + +#include "quotearg.h" + +#include "xalloc.h" + +#include <ctype.h> +#include <errno.h> +#include <limits.h> +#include <stdbool.h> +#include <stdlib.h> +#include <string.h> +#include <wchar.h> +#include <wctype.h> + +#include "gettext.h" +#define _(msgid) gettext (msgid) +#define N_(msgid) msgid + +#ifndef SIZE_MAX +# define SIZE_MAX ((size_t) -1) +#endif + +#define INT_BITS (sizeof (int) * CHAR_BIT) + +struct quoting_options +{ + /* Basic quoting style. */ + enum quoting_style style; + + /* Additional flags. Bitwise combination of enum quoting_flags. */ + int flags; + + /* Quote the characters indicated by this bit vector even if the + quoting style would not normally require them to be quoted. */ + unsigned int quote_these_too[(UCHAR_MAX / INT_BITS) + 1]; + + /* The left quote for custom_quoting_style. */ + char const *left_quote; + + /* The right quote for custom_quoting_style. */ + char const *right_quote; +}; + +/* Names of quoting styles. */ +char const *const quoting_style_args[] = +{ + "literal", + "shell", + "shell-always", + "c", + "c-maybe", + "escape", + "locale", + "clocale", + 0 +}; + +/* Correspondences to quoting style names. */ +enum quoting_style const quoting_style_vals[] = +{ + literal_quoting_style, + shell_quoting_style, + shell_always_quoting_style, + c_quoting_style, + c_maybe_quoting_style, + escape_quoting_style, + locale_quoting_style, + clocale_quoting_style +}; + +/* The default quoting options. */ +static struct quoting_options default_quoting_options; + +/* Allocate a new set of quoting options, with contents initially identical + to O if O is not null, or to the default if O is null. + It is the caller's responsibility to free the result. */ +struct quoting_options * +clone_quoting_options (struct quoting_options *o) +{ + int e = errno; + struct quoting_options *p = xmemdup (o ? o : &default_quoting_options, + sizeof *o); + errno = e; + return p; +} + +/* Get the value of O's quoting style. If O is null, use the default. */ +enum quoting_style +get_quoting_style (struct quoting_options *o) +{ + return (o ? o : &default_quoting_options)->style; +} + +/* In O (or in the default if O is null), + set the value of the quoting style to S. */ +void +set_quoting_style (struct quoting_options *o, enum quoting_style s) +{ + (o ? o : &default_quoting_options)->style = s; +} + +/* In O (or in the default if O is null), + set the value of the quoting options for character C to I. + Return the old value. Currently, the only values defined for I are + 0 (the default) and 1 (which means to quote the character even if + it would not otherwise be quoted). */ +int +set_char_quoting (struct quoting_options *o, char c, int i) +{ + unsigned char uc = c; + unsigned int *p = + (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS; + int shift = uc % INT_BITS; + int r = (*p >> shift) & 1; + *p ^= ((i & 1) ^ r) << shift; + return r; +} + +/* In O (or in the default if O is null), + set the value of the quoting options flag to I, which can be a + bitwise combination of enum quoting_flags, or 0 for default + behavior. Return the old value. */ +int +set_quoting_flags (struct quoting_options *o, int i) +{ + int r; + if (!o) + o = &default_quoting_options; + r = o->flags; + o->flags = i; + return r; +} + +void +set_custom_quoting (struct quoting_options *o, + char const *left_quote, char const *right_quote) +{ + if (!o) + o = &default_quoting_options; + o->style = custom_quoting_style; + if (!left_quote || !right_quote) + abort (); + o->left_quote = left_quote; + o->right_quote = right_quote; +} + +/* Return quoting options for STYLE, with no extra quoting. */ +static struct quoting_options +quoting_options_from_style (enum quoting_style style) +{ + struct quoting_options o; + o.style = style; + o.flags = 0; + memset (o.quote_these_too, 0, sizeof o.quote_these_too); + return o; +} + +/* MSGID approximates a quotation mark. Return its translation if it + has one; otherwise, return either it or "\"", depending on S. */ +static char const * +gettext_quote (char const *msgid, enum quoting_style s) +{ + char const *translation = _(msgid); + if (translation == msgid && s == clocale_quoting_style) + translation = "\""; + return translation; +} + +/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of + argument ARG (of size ARGSIZE), using QUOTING_STYLE, FLAGS, and + QUOTE_THESE_TOO to control quoting. + Terminate the output with a null character, and return the written + size of the output, not counting the terminating null. + If BUFFERSIZE is too small to store the output string, return the + value that would have been returned had BUFFERSIZE been large enough. + If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE. + + This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG, + ARGSIZE, O), except it breaks O into its component pieces and is + not careful about errno. */ + +static size_t +quotearg_buffer_restyled (char *buffer, size_t buffersize, + char const *arg, size_t argsize, + enum quoting_style quoting_style, int flags, + unsigned int const *quote_these_too, + char const *left_quote, + char const *right_quote) +{ + size_t i; + size_t len = 0; + char const *quote_string = 0; + size_t quote_string_len = 0; + bool backslash_escapes = false; + bool unibyte_locale = MB_CUR_MAX == 1; + bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0; + +#define STORE(c) \ + do \ + { \ + if (len < buffersize) \ + buffer[len] = (c); \ + len++; \ + } \ + while (0) + + switch (quoting_style) + { + case c_maybe_quoting_style: + quoting_style = c_quoting_style; + elide_outer_quotes = true; + /* Fall through. */ + case c_quoting_style: + if (!elide_outer_quotes) + STORE ('"'); + backslash_escapes = true; + quote_string = "\""; + quote_string_len = 1; + break; + + case escape_quoting_style: + backslash_escapes = true; + elide_outer_quotes = false; + break; + + case locale_quoting_style: + case clocale_quoting_style: + case custom_quoting_style: + { + if (quoting_style != custom_quoting_style) + { + /* TRANSLATORS: + Get translations for open and closing quotation marks. + + The message catalog should translate "`" to a left + quotation mark suitable for the locale, and similarly for + "'". If the catalog has no translation, + locale_quoting_style quotes `like this', and + clocale_quoting_style quotes "like this". + + For example, an American English Unicode locale should + translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and + should translate "'" to U+201D (RIGHT DOUBLE QUOTATION + MARK). A British English Unicode locale should instead + translate these to U+2018 (LEFT SINGLE QUOTATION MARK) + and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. + + If you don't know what to put here, please see + <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> + and use glyphs suitable for your language. */ + left_quote = gettext_quote (N_("`"), quoting_style); + right_quote = gettext_quote (N_("'"), quoting_style); + } + if (!elide_outer_quotes) + for (quote_string = left_quote; *quote_string; quote_string++) + STORE (*quote_string); + backslash_escapes = true; + quote_string = right_quote; + quote_string_len = strlen (quote_string); + } + break; + + case shell_quoting_style: + quoting_style = shell_always_quoting_style; + elide_outer_quotes = true; + /* Fall through. */ + case shell_always_quoting_style: + if (!elide_outer_quotes) + STORE ('\''); + quote_string = "'"; + quote_string_len = 1; + break; + + case literal_quoting_style: + elide_outer_quotes = false; + break; + + default: + abort (); + } + + for (i = 0; ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize); i++) + { + unsigned char c; + unsigned char esc; + bool is_right_quote = false; + + if (backslash_escapes + && quote_string_len + && i + quote_string_len <= argsize + && memcmp (arg + i, quote_string, quote_string_len) == 0) + { + if (elide_outer_quotes) + goto force_outer_quoting_style; + is_right_quote = true; + } + + c = arg[i]; + switch (c) + { + case '\0': + if (backslash_escapes) + { + if (elide_outer_quotes) + goto force_outer_quoting_style; + STORE ('\\'); + /* If quote_string were to begin with digits, we'd need to + test for the end of the arg as well. However, it's + hard to imagine any locale that would use digits in + quotes, and set_custom_quoting is documented not to + accept them. */ + if (i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9') + { + STORE ('0'); + STORE ('0'); + } + c = '0'; + /* We don't have to worry that this last '0' will be + backslash-escaped because, again, quote_string should + not start with it and because quote_these_too is + documented as not accepting it. */ + } + else if (flags & QA_ELIDE_NULL_BYTES) + continue; + break; + + case '?': + switch (quoting_style) + { + case shell_always_quoting_style: + if (elide_outer_quotes) + goto force_outer_quoting_style; + break; + + case c_quoting_style: + if ((flags & QA_SPLIT_TRIGRAPHS) + && i + 2 < argsize && arg[i + 1] == '?') + switch (arg[i + 2]) + { + case '!': case '\'': + case '(': case ')': case '-': case '/': + case '<': case '=': case '>': + /* Escape the second '?' in what would otherwise be + a trigraph. */ + if (elide_outer_quotes) + goto force_outer_quoting_style; + c = arg[i + 2]; + i += 2; + STORE ('?'); + STORE ('"'); + STORE ('"'); + STORE ('?'); + break; + + default: + break; + } + break; + + default: + break; + } + break; + + case '\a': esc = 'a'; goto c_escape; + case '\b': esc = 'b'; goto c_escape; + case '\f': esc = 'f'; goto c_escape; + case '\n': esc = 'n'; goto c_and_shell_escape; + case '\r': esc = 'r'; goto c_and_shell_escape; + case '\t': esc = 't'; goto c_and_shell_escape; + case '\v': esc = 'v'; goto c_escape; + case '\\': esc = c; + /* No need to escape the escape if we are trying to elide + outer quotes and nothing else is problematic. */ + if (backslash_escapes && elide_outer_quotes && quote_string_len) + goto store_c; + + c_and_shell_escape: + if (quoting_style == shell_always_quoting_style + && elide_outer_quotes) + goto force_outer_quoting_style; + /* Fall through. */ + c_escape: + if (backslash_escapes) + { + c = esc; + goto store_escape; + } + break; + + case '{': case '}': /* sometimes special if isolated */ + if (! (argsize == SIZE_MAX ? arg[1] == '\0' : argsize == 1)) + break; + /* Fall through. */ + case '#': case '~': + if (i != 0) + break; + /* Fall through. */ + case ' ': + case '!': /* special in bash */ + case '"': case '$': case '&': + case '(': case ')': case '*': case ';': + case '<': + case '=': /* sometimes special in 0th or (with "set -k") later args */ + case '>': case '[': + case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */ + case '`': case '|': + /* A shell special character. In theory, '$' and '`' could + be the first bytes of multibyte characters, which means + we should check them with mbrtowc, but in practice this + doesn't happen so it's not worth worrying about. */ + if (quoting_style == shell_always_quoting_style + && elide_outer_quotes) + goto force_outer_quoting_style; + break; + + case '\'': + if (quoting_style == shell_always_quoting_style) + { + if (elide_outer_quotes) + goto force_outer_quoting_style; + STORE ('\''); + STORE ('\\'); + STORE ('\''); + } + break; + + case '%': case '+': case ',': case '-': case '.': case '/': + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': case ':': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': case ']': case '_': case 'a': case 'b': + case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': + case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': + case 'o': case 'p': case 'q': case 'r': case 's': case 't': + case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': + /* These characters don't cause problems, no matter what the + quoting style is. They cannot start multibyte sequences. + A digit or a special letter would cause trouble if it + appeared at the beginning of quote_string because we'd then + escape by prepending a backslash. However, it's hard to + imagine any locale that would use digits or letters as + quotes, and set_custom_quoting is documented not to accept + them. Also, a digit or a special letter would cause + trouble if it appeared in quote_these_too, but that's also + documented as not accepting them. */ + break; + + default: + /* If we have a multibyte sequence, copy it until we reach + its end, find an error, or come back to the initial shift + state. For C-like styles, if the sequence has + unprintable characters, escape the whole sequence, since + we can't easily escape single characters within it. */ + { + /* Length of multibyte sequence found so far. */ + size_t m; + + bool printable; + + if (unibyte_locale) + { + m = 1; + printable = isprint (c) != 0; + } + else + { + mbstate_t mbstate; + memset (&mbstate, 0, sizeof mbstate); + + m = 0; + printable = true; + if (argsize == SIZE_MAX) + argsize = strlen (arg); + + do + { + wchar_t w; + size_t bytes = mbrtowc (&w, &arg[i + m], + argsize - (i + m), &mbstate); + if (bytes == 0) + break; + else if (bytes == (size_t) -1) + { + printable = false; + break; + } + else if (bytes == (size_t) -2) + { + printable = false; + while (i + m < argsize && arg[i + m]) + m++; + break; + } + else + { + /* Work around a bug with older shells that "see" a '\' + that is really the 2nd byte of a multibyte character. + In practice the problem is limited to ASCII + chars >= '@' that are shell special chars. */ + if ('[' == 0x5b && elide_outer_quotes + && quoting_style == shell_always_quoting_style) + { + size_t j; + for (j = 1; j < bytes; j++) + switch (arg[i + m + j]) + { + case '[': case '\\': case '^': + case '`': case '|': + goto force_outer_quoting_style; + + default: + break; + } + } + + if (! iswprint (w)) + printable = false; + m += bytes; + } + } + while (! mbsinit (&mbstate)); + } + + if (1 < m || (backslash_escapes && ! printable)) + { + /* Output a multibyte sequence, or an escaped + unprintable unibyte character. */ + size_t ilim = i + m; + + for (;;) + { + if (backslash_escapes && ! printable) + { + if (elide_outer_quotes) + goto force_outer_quoting_style; + STORE ('\\'); + STORE ('0' + (c >> 6)); + STORE ('0' + ((c >> 3) & 7)); + c = '0' + (c & 7); + } + else if (is_right_quote) + { + STORE ('\\'); + is_right_quote = false; + } + if (ilim <= i + 1) + break; + STORE (c); + c = arg[++i]; + } + + goto store_c; + } + } + } + + if (! ((backslash_escapes || elide_outer_quotes) + && quote_these_too + && quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS))) + && !is_right_quote) + goto store_c; + + store_escape: + if (elide_outer_quotes) + goto force_outer_quoting_style; + STORE ('\\'); + + store_c: + STORE (c); + } + + if (len == 0 && quoting_style == shell_always_quoting_style + && elide_outer_quotes) + goto force_outer_quoting_style; + + if (quote_string && !elide_outer_quotes) + for (; *quote_string; quote_string++) + STORE (*quote_string); + + if (len < buffersize) + buffer[len] = '\0'; + return len; + + force_outer_quoting_style: + /* Don't reuse quote_these_too, since the addition of outer quotes + sufficiently quotes the specified characters. */ + return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, + quoting_style, + flags & ~QA_ELIDE_OUTER_QUOTES, NULL, + left_quote, right_quote); +} + +/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of + argument ARG (of size ARGSIZE), using O to control quoting. + If O is null, use the default. + Terminate the output with a null character, and return the written + size of the output, not counting the terminating null. + If BUFFERSIZE is too small to store the output string, return the + value that would have been returned had BUFFERSIZE been large enough. + If ARGSIZE is SIZE_MAX, use the string length of the argument for + ARGSIZE. */ +size_t +quotearg_buffer (char *buffer, size_t buffersize, + char const *arg, size_t argsize, + struct quoting_options const *o) +{ + struct quoting_options const *p = o ? o : &default_quoting_options; + int e = errno; + size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize, + p->style, p->flags, p->quote_these_too, + p->left_quote, p->right_quote); + errno = e; + return r; +} + +/* Equivalent to quotearg_alloc (ARG, ARGSIZE, NULL, O). */ +char * +quotearg_alloc (char const *arg, size_t argsize, + struct quoting_options const *o) +{ + return quotearg_alloc_mem (arg, argsize, NULL, o); +} + +/* Like quotearg_buffer (..., ARG, ARGSIZE, O), except return newly + allocated storage containing the quoted string, and store the + resulting size into *SIZE, if non-NULL. The result can contain + embedded null bytes only if ARGSIZE is not SIZE_MAX, SIZE is not + NULL, and set_quoting_flags has not set the null byte elision + flag. */ +char * +quotearg_alloc_mem (char const *arg, size_t argsize, size_t *size, + struct quoting_options const *o) +{ + struct quoting_options const *p = o ? o : &default_quoting_options; + int e = errno; + /* Elide embedded null bytes if we can't return a size. */ + int flags = p->flags | (size ? 0 : QA_ELIDE_NULL_BYTES); + size_t bufsize = quotearg_buffer_restyled (0, 0, arg, argsize, p->style, + flags, p->quote_these_too, + p->left_quote, + p->right_quote) + 1; + char *buf = xcharalloc (bufsize); + quotearg_buffer_restyled (buf, bufsize, arg, argsize, p->style, flags, + p->quote_these_too, + p->left_quote, p->right_quote); + errno = e; + if (size) + *size = bufsize - 1; + return buf; +} + +/* A storage slot with size and pointer to a value. */ +struct slotvec +{ + size_t size; + char *val; +}; + +/* Preallocate a slot 0 buffer, so that the caller can always quote + one small component of a "memory exhausted" message in slot 0. */ +static char slot0[256]; +static unsigned int nslots = 1; +static struct slotvec slotvec0 = {sizeof slot0, slot0}; +static struct slotvec *slotvec = &slotvec0; + +void +quotearg_free (void) +{ + struct slotvec *sv = slotvec; + unsigned int i; + for (i = 1; i < nslots; i++) + free (sv[i].val); + if (sv[0].val != slot0) + { + free (sv[0].val); + slotvec0.size = sizeof slot0; + slotvec0.val = slot0; + } + if (sv != &slotvec0) + { + free (sv); + slotvec = &slotvec0; + } + nslots = 1; +} + +/* Use storage slot N to return a quoted version of argument ARG. + ARG is of size ARGSIZE, but if that is SIZE_MAX, ARG is a + null-terminated string. + OPTIONS specifies the quoting options. + The returned value points to static storage that can be + reused by the next call to this function with the same value of N. + N must be nonnegative. N is deliberately declared with type "int" + to allow for future extensions (using negative values). */ +static char * +quotearg_n_options (int n, char const *arg, size_t argsize, + struct quoting_options const *options) +{ + int e = errno; + + unsigned int n0 = n; + struct slotvec *sv = slotvec; + + if (n < 0) + abort (); + + if (nslots <= n0) + { + /* FIXME: technically, the type of n1 should be `unsigned int', + but that evokes an unsuppressible warning from gcc-4.0.1 and + older. If gcc ever provides an option to suppress that warning, + revert to the original type, so that the test in xalloc_oversized + is once again performed only at compile time. */ + size_t n1 = n0 + 1; + bool preallocated = (sv == &slotvec0); + + if (xalloc_oversized (n1, sizeof *sv)) + xalloc_die (); + + slotvec = sv = xrealloc (preallocated ? NULL : sv, n1 * sizeof *sv); + if (preallocated) + *sv = slotvec0; + memset (sv + nslots, 0, (n1 - nslots) * sizeof *sv); + nslots = n1; + } + + { + size_t size = sv[n].size; + char *val = sv[n].val; + /* Elide embedded null bytes since we don't return a size. */ + int flags = options->flags | QA_ELIDE_NULL_BYTES; + size_t qsize = quotearg_buffer_restyled (val, size, arg, argsize, + options->style, flags, + options->quote_these_too, + options->left_quote, + options->right_quote); + + if (size <= qsize) + { + sv[n].size = size = qsize + 1; + if (val != slot0) + free (val); + sv[n].val = val = xcharalloc (size); + quotearg_buffer_restyled (val, size, arg, argsize, options->style, + flags, options->quote_these_too, + options->left_quote, + options->right_quote); + } + + errno = e; + return val; + } +} + +char * +quotearg_n (int n, char const *arg) +{ + return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options); +} + +char * +quotearg_n_mem (int n, char const *arg, size_t argsize) +{ + return quotearg_n_options (n, arg, argsize, &default_quoting_options); +} + +char * +quotearg (char const *arg) +{ + return quotearg_n (0, arg); +} + +char * +quotearg_mem (char const *arg, size_t argsize) +{ + return quotearg_n_mem (0, arg, argsize); +} + +char * +quotearg_n_style (int n, enum quoting_style s, char const *arg) +{ + struct quoting_options const o = quoting_options_from_style (s); + return quotearg_n_options (n, arg, SIZE_MAX, &o); +} + +char * +quotearg_n_style_mem (int n, enum quoting_style s, + char const *arg, size_t argsize) +{ + struct quoting_options const o = quoting_options_from_style (s); + return quotearg_n_options (n, arg, argsize, &o); +} + +char * +quotearg_style (enum quoting_style s, char const *arg) +{ + return quotearg_n_style (0, s, arg); +} + +char * +quotearg_style_mem (enum quoting_style s, char const *arg, size_t argsize) +{ + return quotearg_n_style_mem (0, s, arg, argsize); +} + +char * +quotearg_char_mem (char const *arg, size_t argsize, char ch) +{ + struct quoting_options options; + options = default_quoting_options; + set_char_quoting (&options, ch, 1); + return quotearg_n_options (0, arg, argsize, &options); +} + +char * +quotearg_char (char const *arg, char ch) +{ + return quotearg_char_mem (arg, SIZE_MAX, ch); +} + +char * +quotearg_colon (char const *arg) +{ + return quotearg_char (arg, ':'); +} + +char * +quotearg_colon_mem (char const *arg, size_t argsize) +{ + return quotearg_char_mem (arg, argsize, ':'); +} + +char * +quotearg_n_custom (int n, char const *left_quote, + char const *right_quote, char const *arg) +{ + return quotearg_n_custom_mem (n, left_quote, right_quote, arg, + SIZE_MAX); +} + +char * +quotearg_n_custom_mem (int n, char const *left_quote, + char const *right_quote, + char const *arg, size_t argsize) +{ + struct quoting_options o = default_quoting_options; + set_custom_quoting (&o, left_quote, right_quote); + return quotearg_n_options (n, arg, argsize, &o); +} + +char * +quotearg_custom (char const *left_quote, char const *right_quote, + char const *arg) +{ + return quotearg_n_custom (0, left_quote, right_quote, arg); +} + +char * +quotearg_custom_mem (char const *left_quote, char const *right_quote, + char const *arg, size_t argsize) +{ + return quotearg_n_custom_mem (0, left_quote, right_quote, arg, + argsize); +} diff --git a/lib/quotearg.h b/gnu/quotearg.h similarity index 71% rename from lib/quotearg.h rename to gnu/quotearg.h index 770010700175559a95acfcbdabe23c355e2fc111..ff8154c50bcccebc3f5a71f9923447492ccfeede 100644 --- a/lib/quotearg.h +++ b/gnu/quotearg.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* quotearg.h - quote arguments for output - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2008 Free - Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2010 + 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 @@ -100,7 +102,8 @@ enum quoting_style c_maybe_quoting_style, /* Like c_quoting_style except always omit the surrounding - double-quote characters (ls --quoting-style=escape). + double-quote characters and ignore QA_SPLIT_TRIGRAPHS + (ls --quoting-style=escape). quotearg_buffer: "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a:b" @@ -136,7 +139,8 @@ enum quoting_style locale_quoting_style, /* Like c_quoting_style except use quotation marks appropriate for - the locale (ls --quoting-style=clocale). + the locale and ignore QA_SPLIT_TRIGRAPHS + (ls --quoting-style=clocale). LC_MESSAGES=C quotearg_buffer: @@ -157,7 +161,50 @@ enum quoting_style "\302\253simple\302\273", "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273" */ - clocale_quoting_style + clocale_quoting_style, + + /* Like clocale_quoting_style except use the custom quotation marks + set by set_custom_quoting. If custom quotation marks are not + set, the behavior is undefined. + + left_quote = right_quote = "'" + quotearg_buffer: + "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" + quotearg: + "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" + quotearg_colon: + "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a\\:b'" + + left_quote = "(" and right_quote = ")" + quotearg_buffer: + "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)" + quotearg: + "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)" + quotearg_colon: + "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a\\:b)" + + left_quote = ":" and right_quote = " " + quotearg_buffer: + ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b " + quotearg: + ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b " + quotearg_colon: + ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a\\:b " + + left_quote = "\"'" and right_quote = "'\"" + Notice that this is treated as a single level of quotes or two + levels where the outer quote need not be escaped within the inner + quotes. For two levels where the outer quote must be escaped + within the inner quotes, you must use separate quotearg + invocations. + quotearg_buffer: + "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\"" + quotearg: + "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\"" + quotearg_colon: + "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a\\:b'\"" + */ + custom_quoting_style }; /* Flags for use in set_quoting_flags. */ @@ -210,7 +257,9 @@ void set_quoting_style (struct quoting_options *o, enum quoting_style s); set the value of the quoting options for character C to I. Return the old value. Currently, the only values defined for I are 0 (the default) and 1 (which means to quote the character even if - it would not otherwise be quoted). */ + it would not otherwise be quoted). C must never be a digit or a + letter that has special meaning after a backslash (for example, "\t" + for tab). */ int set_char_quoting (struct quoting_options *o, char c, int i); /* In O (or in the default if O is null), @@ -219,6 +268,19 @@ int set_char_quoting (struct quoting_options *o, char c, int i); behavior. Return the old value. */ int set_quoting_flags (struct quoting_options *o, int i); +/* In O (or in the default if O is null), + set the value of the quoting style to custom_quoting_style, + set the left quote to LEFT_QUOTE, and set the right quote to + RIGHT_QUOTE. Each of LEFT_QUOTE and RIGHT_QUOTE must be + null-terminated and can be the empty string. Because backslashes are + used for escaping, it does not make sense for RIGHT_QUOTE to contain + a backslash. RIGHT_QUOTE must not begin with a digit or a letter + that has special meaning after a backslash (for example, "\t" for + tab). */ +void set_custom_quoting (struct quoting_options *o, + char const *left_quote, + char const *right_quote); + /* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of argument ARG (of size ARGSIZE), using O to control quoting. If O is null, use the default. @@ -231,14 +293,14 @@ int set_quoting_flags (struct quoting_options *o, int i); not -1, the style of O does not use backslash escapes, and the flags of O do not request elision of null bytes.*/ size_t quotearg_buffer (char *buffer, size_t buffersize, - char const *arg, size_t argsize, - struct quoting_options const *o); + char const *arg, size_t argsize, + struct quoting_options const *o); /* Like quotearg_buffer, except return the result in a newly allocated buffer. It is the caller's responsibility to free the result. The result will not contain embedded null bytes. */ char *quotearg_alloc (char const *arg, size_t argsize, - struct quoting_options const *o); + struct quoting_options const *o); /* Like quotearg_alloc, except that the length of the result, excluding the terminating null byte, is stored into SIZE if it is @@ -247,7 +309,7 @@ char *quotearg_alloc (char const *arg, size_t argsize, backslash escapes, and the flags of O do not request elision of null bytes.*/ char *quotearg_alloc_mem (char const *arg, size_t argsize, - size_t *size, struct quoting_options const *o); + size_t *size, struct quoting_options const *o); /* Use storage slot N to return a quoted version of the string ARG. Use the default quoting options. @@ -278,16 +340,17 @@ char *quotearg_n_style (int n, enum quoting_style s, char const *arg); argument ARG of size ARGSIZE. This is like quotearg_n_style (N, S, ARG), except it can quote null bytes. */ char *quotearg_n_style_mem (int n, enum quoting_style s, - char const *arg, size_t argsize); + char const *arg, size_t argsize); /* Equivalent to quotearg_n_style (0, S, ARG). */ char *quotearg_style (enum quoting_style s, char const *arg); /* Equivalent to quotearg_n_style_mem (0, S, ARG, ARGSIZE). */ char *quotearg_style_mem (enum quoting_style s, - char const *arg, size_t argsize); + char const *arg, size_t argsize); -/* Like quotearg (ARG), except also quote any instances of CH. */ +/* Like quotearg (ARG), except also quote any instances of CH. + See set_char_quoting for a description of acceptable CH values. */ char *quotearg_char (char const *arg, char ch); /* Like quotearg_char (ARG, CH), except it can quote null bytes. */ @@ -299,6 +362,29 @@ char *quotearg_colon (char const *arg); /* Like quotearg_colon (ARG), except it can quote null bytes. */ char *quotearg_colon_mem (char const *arg, size_t argsize); +/* Like quotearg_n_style (N, S, ARG) but with S as custom_quoting_style + with left quote as LEFT_QUOTE and right quote as RIGHT_QUOTE. See + set_custom_quoting for a description of acceptable LEFT_QUOTE and + RIGHT_QUOTE values. */ +char *quotearg_n_custom (int n, char const *left_quote, + char const *right_quote, char const *arg); + +/* Like quotearg_n_custom (N, LEFT_QUOTE, RIGHT_QUOTE, ARG) except it + can quote null bytes. */ +char *quotearg_n_custom_mem (int n, char const *left_quote, + char const *right_quote, + char const *arg, size_t argsize); + +/* Equivalent to quotearg_n_custom (0, LEFT_QUOTE, RIGHT_QUOTE, ARG). */ +char *quotearg_custom (char const *left_quote, char const *right_quote, + char const *arg); + +/* Equivalent to quotearg_n_custom_mem (0, LEFT_QUOTE, RIGHT_QUOTE, ARG, + ARGSIZE). */ +char *quotearg_custom_mem (char const *left_quote, + char const *right_quote, + char const *arg, size_t argsize); + /* Free any dynamically allocated memory. */ void quotearg_free (void); diff --git a/lib/rawmemchr.c b/gnu/rawmemchr.c similarity index 97% rename from lib/rawmemchr.c rename to gnu/rawmemchr.c index d7cdc6e4289d5865c39fb1b9ac21d78d6054ff58..61aafcc32105d7535a754746388a38e5c92e0a31 100644 --- a/lib/rawmemchr.c +++ b/gnu/rawmemchr.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Searching in a string. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 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 diff --git a/lib/rawmemchr.valgrind b/gnu/rawmemchr.valgrind similarity index 100% rename from lib/rawmemchr.valgrind rename to gnu/rawmemchr.valgrind diff --git a/gnu/readlink.c b/gnu/readlink.c new file mode 100644 index 0000000000000000000000000000000000000000..dcbc0fbac223b46520132a886f6523e935789b96 --- /dev/null +++ b/gnu/readlink.c @@ -0,0 +1,76 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Stub for readlink(). + Copyright (C) 2003-2007, 2009-2010 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/>. */ + +#include <config.h> + +/* Specification. */ +#include <unistd.h> + +#include <errno.h> +#include <string.h> +#include <sys/stat.h> + +#if !HAVE_READLINK + +/* readlink() substitute for systems that don't have a readlink() function, + such as DJGPP 2.03 and mingw32. */ + +ssize_t +readlink (const char *name, char *buf _GL_UNUSED, + size_t bufsize _GL_UNUSED) +{ + struct stat statbuf; + + /* In general we should use lstat() here, not stat(). But on platforms + without symbolic links, lstat() - if it exists - would be equivalent to + stat(), therefore we can use stat(). This saves us a configure check. */ + if (stat (name, &statbuf) >= 0) + errno = EINVAL; + return -1; +} + +#else /* HAVE_READLINK */ + +# undef readlink + +/* readlink() wrapper that uses correct types, for systems like cygwin + 1.5.x where readlink returns int, and which rejects trailing slash, + for Solaris 9. */ + +ssize_t +rpl_readlink (const char *name, char *buf, size_t bufsize) +{ +# if READLINK_TRAILING_SLASH_BUG + size_t len = strlen (name); + if (len && name[len - 1] == '/') + { + /* Even if name without the slash is a symlink to a directory, + both lstat() and stat() must resolve the trailing slash to + the directory rather than the symlink. We can therefore + safely use stat() to distinguish between EINVAL and + ENOTDIR/ENOENT, avoiding extra overhead of rpl_lstat(). */ + struct stat st; + if (stat (name, &st) == 0) + errno = EINVAL; + return -1; + } +# endif /* READLINK_TRAILING_SLASH_BUG */ + return readlink (name, buf, bufsize); +} + +#endif /* HAVE_READLINK */ diff --git a/lib/realloc.c b/gnu/realloc.c similarity index 92% rename from lib/realloc.c rename to gnu/realloc.c index b61c2ca8294d05ba5561ff0ba380d33cd5748368..04894fa530ae8a583d871f7138759ffabfd0ce8d 100644 --- a/lib/realloc.c +++ b/gnu/realloc.c @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* realloc() function that is glibc compatible. - Copyright (C) 1997, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2010 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 @@ -71,7 +74,7 @@ rpl_realloc (void *p, size_t n) { #if GNULIB_REALLOC_GNU && !NEED_REALLOC_GNU && !SYSTEM_MALLOC_GLIBC_COMPATIBLE if (n == 0) - n = 1; + n = 1; #endif result = malloc (n); } diff --git a/lib/ref-add.sin b/gnu/ref-add.sin similarity index 93% rename from lib/ref-add.sin rename to gnu/ref-add.sin index 222d7529516d190c78bcdc86ab6630a51ec510fd..dbb61df3dc7c7a8d621518af8941004687180f53 100644 --- a/lib/ref-add.sin +++ b/gnu/ref-add.sin @@ -1,6 +1,6 @@ # Add this package to a list of references stored in a text file. # -# Copyright (C) 2000 Free Software Foundation, Inc. +# Copyright (C) 2000, 2009, 2010 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 diff --git a/lib/ref-del.sin b/gnu/ref-del.sin similarity index 93% rename from lib/ref-del.sin rename to gnu/ref-del.sin index 1bf073e15ed5ae960311dd4c16ac8fcbc7440c24..4c31a6eafd83f02ef617a58cb6464eb13e05a19c 100644 --- a/lib/ref-del.sin +++ b/gnu/ref-del.sin @@ -1,6 +1,6 @@ # Remove this package from a list of references stored in a text file. # -# Copyright (C) 2000 Free Software Foundation, Inc. +# Copyright (C) 2000, 2009, 2010 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 diff --git a/lib/regcomp.c b/gnu/regcomp.c similarity index 97% rename from lib/regcomp.c rename to gnu/regcomp.c index a4e3f2dddbab1c1e41033eff87fe08fa8e84bcea..69f5c94d71930148842d625d18c73bd0bf6baa26 100644 --- a/lib/regcomp.c +++ b/gnu/regcomp.c @@ -1,8 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. - Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009 - Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free + Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -385,7 +385,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, applies to multibyte character sets; for single byte character sets, the SIMPLE_BRACKET again suffices. */ if (dfa->mb_cur_max > 1 - && (cset->nchar_classes || cset->non_match + && (cset->nchar_classes || cset->non_match || cset->nranges # ifdef _LIBC || cset->nequiv_classes # endif /* _LIBC */ @@ -638,7 +638,7 @@ free_dfa_content (re_dfa_t *dfa) re_dfastate_t *state = entry->array[j]; free_state (state); } - re_free (entry->array); + re_free (entry->array); } re_free (dfa->state_table); #ifdef RE_ENABLE_I18N @@ -852,6 +852,9 @@ static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len) { __re_size_t table_size; +#ifndef _LIBC + char *codeset_name; +#endif #ifdef RE_ENABLE_I18N size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t)); #else @@ -895,7 +898,9 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) != 0); #else - if (strcmp (locale_charset (), "UTF-8") == 0) + codeset_name = nl_langinfo (CODESET); + if (strcasecmp (codeset_name, "UTF-8") == 0 + || strcasecmp (codeset_name, "UTF8") == 0) dfa->is_utf8 = 1; /* We check exhaustively in the loop below if this charset is a @@ -1018,7 +1023,10 @@ create_initial_state (re_dfa_t *dfa) Idx dest_idx = dfa->edests[node_idx].elems[0]; if (!re_node_set_contains (&init_nodes, dest_idx)) { - re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx); + reg_errcode_t merge_err + = re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx); + if (merge_err != REG_NOERROR) + return merge_err; i = 0; } } @@ -1087,8 +1095,8 @@ optimize_utf8 (re_dfa_t *dfa) } break; case OP_PERIOD: - has_period = true; - break; + has_period = true; + break; case OP_BACK_REF: case OP_ALT: case END_OF_RE: @@ -1189,7 +1197,7 @@ analyze (regex_t *preg) { dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); if (BE (dfa->inveclosures == NULL, 0)) - return REG_ESPACE; + return REG_ESPACE; ret = calc_inveclosure (dfa); } @@ -1211,16 +1219,16 @@ postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), if that's the only child). */ while (node->left || node->right) if (node->left) - node = node->left; - else - node = node->right; + node = node->left; + else + node = node->right; do { reg_errcode_t err = fn (extra, node); if (BE (err != REG_NOERROR, 0)) return err; - if (node->parent == NULL) + if (node->parent == NULL) return REG_NOERROR; prev = node; node = node->parent; @@ -1254,7 +1262,7 @@ preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), prev = node; node = node->parent; if (!node) - return REG_NOERROR; + return REG_NOERROR; } node = node->right; } @@ -1277,13 +1285,13 @@ optimize_subexps (void *extra, bin_tree_t *node) } else if (node->token.type == SUBEXP - && node->left && node->left->token.type == SUBEXP) + && node->left && node->left->token.type == SUBEXP) { Idx other_idx = node->left->token.opr.idx; node->left = node->left->left; if (node->left) - node->left->parent = node; + node->left->parent = node; dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx]; if (other_idx < BITSET_WORD_BITS) @@ -1368,9 +1376,9 @@ calc_first (void *extra, bin_tree_t *node) node->first = node; node->node_idx = re_dfa_add_node (dfa, node->token); if (BE (node->node_idx == REG_MISSING, 0)) - return REG_ESPACE; + return REG_ESPACE; if (node->token.type == ANCHOR) - dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; + dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; } return REG_NOERROR; } @@ -1392,7 +1400,7 @@ calc_next (void *extra, bin_tree_t *node) if (node->left) node->left->next = node->next; if (node->right) - node->right->next = node->next; + node->right->next = node->next; break; } return REG_NOERROR; @@ -1443,7 +1451,7 @@ link_nfa_nodes (void *extra, bin_tree_t *node) case OP_BACK_REF: dfa->nexts[idx] = node->next->node_idx; if (node->token.type == OP_BACK_REF) - re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]); + err = re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]); break; default: @@ -1500,7 +1508,6 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, destination. */ org_dest = dfa->edests[org_node].elems[0]; re_node_set_empty (dfa->edests + clone_node); - clone_dest = search_duplicated_node (dfa, org_dest, constraint); /* If the node is root_node itself, it means the epsilon closure has a loop. Then tie it to the destination of the root_node. */ if (org_node == root_node && clone_node != org_node) @@ -1544,7 +1551,7 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, } else { - /* There is a duplicated node which satisfy the constraint, + /* There is a duplicated node which satisfies the constraint, use it to avoid infinite loop. */ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (! ok, 0)) @@ -1676,10 +1683,9 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) { reg_errcode_t err; Idx i; - bool incomplete; - bool ok; re_node_set eclosure; - incomplete = false; + bool ok; + bool incomplete = false; err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); if (BE (err != REG_NOERROR, 0)) return err; @@ -1724,7 +1730,9 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) else eclosure_elem = dfa->eclosures[edest]; /* Merge the epsilon closure of `edest'. */ - re_node_set_merge (&eclosure, &eclosure_elem); + err = re_node_set_merge (&eclosure, &eclosure_elem); + if (BE (err != REG_NOERROR, 0)) + return err; /* If the epsilon closure of `edest' is incomplete, the epsilon closure of this node is also incomplete. */ if (dfa->eclosures[edest].nelem == 0) @@ -1734,7 +1742,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) } } - /* Epsilon closures include itself. */ + /* An epsilon closure includes itself. */ ok = re_node_set_insert (&eclosure, node); if (BE (! ok, 0)) return REG_ESPACE; @@ -2321,7 +2329,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, && dfa->word_ops_used == 0) init_word_char (dfa); if (token->opr.ctx_type == WORD_DELIM - || token->opr.ctx_type == NOT_WORD_DELIM) + || token->opr.ctx_type == NOT_WORD_DELIM) { bin_tree_t *tree_first, *tree_last; if (token->opr.ctx_type == WORD_DELIM) @@ -2329,13 +2337,13 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, token->opr.ctx_type = WORD_FIRST; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = WORD_LAST; - } - else - { + } + else + { token->opr.ctx_type = INSIDE_WORD; tree_first = create_token_tree (dfa, NULL, NULL, token); token->opr.ctx_type = INSIDE_NOTWORD; - } + } tree_last = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree_first, tree_last, OP_ALT); if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0)) @@ -2446,7 +2454,7 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, { tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0)) - *err = REG_EPAREN; + *err = REG_EPAREN; if (BE (*err != REG_NOERROR, 0)) return NULL; } @@ -2517,7 +2525,8 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, return elem; } - if (BE (end != REG_MISSING && start > end, 0)) + if (BE ((end != REG_MISSING && start > end) + || token->type != OP_CLOSE_DUP_NUM, 0)) { /* First number greater than second. */ *err = REG_BADBR; @@ -2570,10 +2579,14 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, if (BE (tree == NULL, 0)) goto parse_dup_op_espace; +/* From gnulib's "intprops.h": + True if the arithmetic type T is signed. */ +#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) + /* This loop is actually executed only when end != REG_MISSING, to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?... We have already created the start+1-th copy. */ - if ((Idx) -1 < 0 || end != REG_MISSING) + if (TYPE_SIGNED (Idx) || end != REG_MISSING) for (i = start + 2; i <= end; ++i) { elem = duplicate_tree (elem, dfa); @@ -2664,9 +2677,9 @@ build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem, no MBCSET if dfa->mb_cur_max == 1. */ if (mbcset) { - /* Check the space of the arrays. */ - if (BE (*range_alloc == mbcset->nranges, 0)) - { + /* Check the space of the arrays. */ + if (BE (*range_alloc == mbcset->nranges, 0)) + { /* There is not enough space, need realloc. */ wchar_t *new_array_start, *new_array_end; Idx new_nranges; @@ -2676,9 +2689,9 @@ build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem, /* Use realloc since mbcset->range_starts and mbcset->range_ends are NULL if *range_alloc == 0. */ new_array_start = re_realloc (mbcset->range_starts, wchar_t, - new_nranges); + new_nranges); new_array_end = re_realloc (mbcset->range_ends, wchar_t, - new_nranges); + new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) return REG_ESPACE; @@ -2686,10 +2699,10 @@ build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem, mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; - } + } - mbcset->range_starts[mbcset->nranges] = start_wc; - mbcset->range_ends[mbcset->nranges++] = end_wc; + mbcset->range_starts[mbcset->nranges] = start_wc; + mbcset->range_ends[mbcset->nranges++] = end_wc; } /* Build the table for single byte characters. */ @@ -2801,7 +2814,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, return elem; } - /* Local function for parse_bracket_exp used in _LIBC environement. + /* Local function for parse_bracket_exp used in _LIBC environment. Look up the collation sequence value of BR_ELEM. Return the value if succeeded, UINT_MAX otherwise. */ @@ -2825,7 +2838,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, } else if (br_elem->type == MB_CHAR) { - return __collseq_table_lookup (collseqwc, br_elem->opr.wch); + if (nrules != 0) + return __collseq_table_lookup (collseqwc, br_elem->opr.wch); } else if (br_elem->type == COLL_SYM) { @@ -2906,8 +2920,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, build below suffices. */ if (nrules > 0 || dfa->mb_cur_max > 1) { - /* Check the space of the arrays. */ - if (BE (*range_alloc == mbcset->nranges, 0)) + /* Check the space of the arrays. */ + if (BE (*range_alloc == mbcset->nranges, 0)) { /* There is not enough space, need realloc. */ uint32_t *new_array_start; @@ -2919,18 +2933,18 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, new_array_start = re_realloc (mbcset->range_starts, uint32_t, new_nranges); new_array_end = re_realloc (mbcset->range_ends, uint32_t, - new_nranges); + new_nranges); if (BE (new_array_start == NULL || new_array_end == NULL, 0)) - return REG_ESPACE; + return REG_ESPACE; mbcset->range_starts = new_array_start; mbcset->range_ends = new_array_end; *range_alloc = new_nranges; } - mbcset->range_starts[mbcset->nranges] = start_collseq; - mbcset->range_ends[mbcset->nranges++] = end_collseq; + mbcset->range_starts[mbcset->nranges] = start_collseq; + mbcset->range_ends[mbcset->nranges++] = end_collseq; } /* Build the table for single byte characters. */ @@ -3264,17 +3278,17 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */ if (sbc_idx < BITSET_WORDS) { - /* Build a tree for simple bracket. */ - br_token.type = SIMPLE_BRACKET; - br_token.opr.sbcset = sbcset; - work_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (BE (work_tree == NULL, 0)) - goto parse_bracket_exp_espace; + /* Build a tree for simple bracket. */ + br_token.type = SIMPLE_BRACKET; + br_token.opr.sbcset = sbcset; + work_tree = create_token_tree (dfa, NULL, NULL, &br_token); + if (BE (work_tree == NULL, 0)) + goto parse_bracket_exp_espace; - /* Then join them by ALT node. */ - work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); - if (BE (work_tree == NULL, 0)) - goto parse_bracket_exp_espace; + /* Then join them by ALT node. */ + work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); + if (BE (work_tree == NULL, 0)) + goto parse_bracket_exp_espace; } else { @@ -3293,7 +3307,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (work_tree == NULL, 0)) - goto parse_bracket_exp_espace; + goto parse_bracket_exp_espace; } return work_tree; @@ -3432,7 +3446,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) /* Build single byte matcing table for this equivalence class. */ char_buf[1] = (unsigned char) '\0'; - len = weights[idx1]; + len = weights[idx1 & 0xffffff]; for (ch = 0; ch < SBC_MAX; ++ch) { char_buf[0] = ch; @@ -3444,11 +3458,15 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) if (idx2 == 0) /* This isn't a valid character. */ continue; - if (len == weights[idx2]) + /* Compare only if the length matches and the collation rule + index is the same. */ + if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24)) { int cnt = 0; + while (cnt <= len && - weights[idx1 + 1 + cnt] == weights[idx2 + 1 + cnt]) + weights[(idx1 & 0xffffff) + 1 + cnt] + == weights[(idx2 & 0xffffff) + 1 + cnt]) ++cnt; if (cnt > len) @@ -3844,7 +3862,7 @@ duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa) node = node->parent; dup_node = dup_node->parent; if (!node) - return dup_root; + return dup_root; } node = node->right; p_new = &dup_node->right; diff --git a/lib/regex.c b/gnu/regex.c similarity index 97% rename from lib/regex.c rename to gnu/regex.c index 4b13ec51f9d51ca2345b6c20889d6e15455b655f..5415c8f1c52d1ff20c314c24a6bc4f19e46fca96 100644 --- a/lib/regex.c +++ b/gnu/regex.c @@ -1,7 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2005, 2006, 2009, 2010 Free Software Foundation, + Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. diff --git a/lib/regex.h b/gnu/regex.h similarity index 99% rename from lib/regex.h rename to gnu/regex.h index f1d584d510f33aeab6195501a7cccaf0beb9d871..ef54b55cf8574f0f809fa9e1a7fd6306a13e5329 100644 --- a/lib/regex.h +++ b/gnu/regex.h @@ -2,8 +2,9 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Definitions for data structures and routines for the regular expression library. - Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006 - Free Software Foundation, Inc. + Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1998, + 2000, 2001, 2002, 2003, 2005, 2006, 2009, 2010 Free Software Foundation, + Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify diff --git a/lib/regex_internal.c b/gnu/regex_internal.c similarity index 96% rename from lib/regex_internal.c rename to gnu/regex_internal.c index 8a5a28696afebdca51fe912cd15efdb2f1acf114..c9648142b496502f86dbbe57f41f4ea3d8e9996c 100644 --- a/lib/regex_internal.c +++ b/gnu/regex_internal.c @@ -1,8 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free + Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -38,7 +38,7 @@ static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, re_string_reconstruct before using the object. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { @@ -66,7 +66,7 @@ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, /* This function allocate the buffers, and initialize them. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_string_construct (re_string_t *pstr, const char *str, Idx len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { @@ -129,7 +129,7 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len, /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) { #ifdef RE_ENABLE_I18N @@ -269,7 +269,7 @@ build_wcs_buffer (re_string_t *pstr) but for REG_ICASE. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; @@ -432,8 +432,8 @@ build_wcs_upper_buffer (re_string_t *pstr) src_idx += mbclen; continue; } - else - memcpy (pstr->mbs + byte_idx, p, mbclen); + else + memcpy (pstr->mbs + byte_idx, p, mbclen); } else memcpy (pstr->mbs + byte_idx, p, mbclen); @@ -571,7 +571,7 @@ re_string_translate_buffer (re_string_t *pstr) convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) { Idx offset; @@ -966,7 +966,7 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags) /* Functions for set operation. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_alloc (re_node_set *set, Idx size) { set->alloc = size; @@ -978,7 +978,7 @@ re_node_set_alloc (re_node_set *set, Idx size) } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_init_1 (re_node_set *set, Idx elem) { set->alloc = 1; @@ -994,7 +994,7 @@ re_node_set_init_1 (re_node_set *set, Idx elem) } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) { set->alloc = 2; @@ -1024,7 +1024,7 @@ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; @@ -1049,7 +1049,7 @@ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { @@ -1064,7 +1064,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, Idx new_alloc = src1->nelem + src2->nelem + dest->alloc; Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc); if (BE (new_elems == NULL, 0)) - return REG_ESPACE; + return REG_ESPACE; dest->elems = new_elems; dest->alloc = new_alloc; } @@ -1114,20 +1114,20 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, if (delta > 0 && REG_VALID_INDEX (id)) for (;;) { - if (dest->elems[is] > dest->elems[id]) - { - /* Copy from the top. */ - dest->elems[id + delta--] = dest->elems[is--]; - if (delta == 0) - break; - } - else - { - /* Slide from the bottom. */ - dest->elems[id + delta] = dest->elems[id]; - if (! REG_VALID_INDEX (--id)) - break; - } + if (dest->elems[is] > dest->elems[id]) + { + /* Copy from the top. */ + dest->elems[id + delta--] = dest->elems[is--]; + if (delta == 0) + break; + } + else + { + /* Slide from the bottom. */ + dest->elems[id + delta] = dest->elems[id]; + if (! REG_VALID_INDEX (--id)) + break; + } } /* Copy remaining SRC elements. */ @@ -1140,7 +1140,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { @@ -1193,7 +1193,7 @@ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx is, id, sbase, delta; @@ -1223,11 +1223,11 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) REG_VALID_INDEX (is) && REG_VALID_INDEX (id); ) { if (dest->elems[id] == src->elems[is]) - is--, id--; + is--, id--; else if (dest->elems[id] < src->elems[is]) - dest->elems[--sbase] = src->elems[is--]; + dest->elems[--sbase] = src->elems[is--]; else /* if (dest->elems[id] > src->elems[is]) */ - --id; + --id; } if (REG_VALID_INDEX (is)) @@ -1249,21 +1249,21 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) for (;;) { if (dest->elems[is] > dest->elems[id]) - { + { /* Copy from the top. */ - dest->elems[id + delta--] = dest->elems[is--]; + dest->elems[id + delta--] = dest->elems[is--]; if (delta == 0) break; } else - { - /* Slide from the bottom. */ - dest->elems[id + delta] = dest->elems[id]; + { + /* Slide from the bottom. */ + dest->elems[id + delta] = dest->elems[id]; if (! REG_VALID_INDEX (--id)) { /* Copy remaining SRC elements. */ memcpy (dest->elems, dest->elems + sbase, - delta * sizeof (Idx)); + delta * sizeof (Idx)); break; } } @@ -1277,7 +1277,7 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) Return true if successful. */ static bool -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_insert (re_node_set *set, Idx elem) { Idx idx; @@ -1310,12 +1310,12 @@ re_node_set_insert (re_node_set *set, Idx elem) { idx = 0; for (idx = set->nelem; idx > 0; idx--) - set->elems[idx] = set->elems[idx - 1]; + set->elems[idx] = set->elems[idx - 1]; } else { for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) - set->elems[idx] = set->elems[idx - 1]; + set->elems[idx] = set->elems[idx - 1]; } /* Insert the new element. */ @@ -1329,7 +1329,7 @@ re_node_set_insert (re_node_set *set, Idx elem) Return true if successful. */ static bool -internal_function +internal_function __attribute_warn_unused_result__ re_node_set_insert_last (re_node_set *set, Idx elem) { /* Realloc if we need. */ @@ -1475,7 +1475,7 @@ calc_state_hash (const re_node_set *nodes, unsigned int context) optimization. */ static re_dfastate_t * -internal_function +internal_function __attribute_warn_unused_result__ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes) { @@ -1523,7 +1523,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, optimization. */ static re_dfastate_t * -internal_function +internal_function __attribute_warn_unused_result__ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context) { @@ -1564,6 +1564,7 @@ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, indicates the error code if failed. */ static reg_errcode_t +__attribute_warn_unused_result__ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, re_hashval_t hash) { @@ -1618,7 +1619,7 @@ free_state (re_dfastate_t *state) Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -internal_function +internal_function __attribute_warn_unused_result__ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) { @@ -1668,7 +1669,7 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -internal_function +internal_function __attribute_warn_unused_result__ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) { @@ -1717,7 +1718,9 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, free_state (newstate); return NULL; } - re_node_set_init_copy (newstate->entrance_nodes, nodes); + if (re_node_set_init_copy (newstate->entrance_nodes, nodes) + != REG_NOERROR) + return NULL; nctx_nodes = 0; newstate->has_constraint = 1; } diff --git a/lib/regex_internal.h b/gnu/regex_internal.h similarity index 97% rename from lib/regex_internal.h rename to gnu/regex_internal.h index a5070dc3e35a5ea14e8fcf94b5bbf8747fc30a51..4305be3dbddc96b37eba6b65639101c84adb3716 100644 --- a/lib/regex_internal.h +++ b/gnu/regex_internal.h @@ -1,8 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free + Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -30,9 +30,8 @@ #include <stdlib.h> #include <string.h> -#ifdef _LIBC -# include <langinfo.h> -#else +#include <langinfo.h> +#ifndef _LIBC # include "localcharset.h" #endif #if defined HAVE_LOCALE_H || defined _LIBC @@ -854,4 +853,21 @@ re_string_elem_size_at (const re_string_t *pstr, Idx idx) } #endif /* RE_ENABLE_I18N */ +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + +#if __GNUC_PREREQ (3,4) +# undef __attribute_warn_unused_result__ +# define __attribute_warn_unused_result__ \ + __attribute__ ((__warn_unused_result__)) +#else +# define __attribute_warn_unused_result__ /* empty */ +#endif + #endif /* _REGEX_INTERNAL_H */ diff --git a/lib/regexec.c b/gnu/regexec.c similarity index 97% rename from lib/regexec.c rename to gnu/regexec.c index 48535510a23e6d71864185eb82cac01410de16ca..9c21f1294380104f825b85cb317f35c3ff985e5c 100644 --- a/lib/regexec.c +++ b/gnu/regexec.c @@ -1,8 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free + Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -639,7 +639,7 @@ re_exec (s) (0 <= LAST_START && LAST_START <= LENGTH) */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, @@ -835,10 +835,10 @@ re_search_internal (const regex_t *preg, break; match_first += incr; if (match_first < left_lim || match_first > right_lim) - { - err = REG_NOMATCH; - goto free_return; - } + { + err = REG_NOMATCH; + goto free_return; + } } break; } @@ -955,14 +955,14 @@ re_search_internal (const regex_t *preg, } if (dfa->subexp_map) - for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++) - if (dfa->subexp_map[reg_idx] != reg_idx) - { - pmatch[reg_idx + 1].rm_so - = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so; - pmatch[reg_idx + 1].rm_eo - = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo; - } + for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++) + if (dfa->subexp_map[reg_idx] != reg_idx) + { + pmatch[reg_idx + 1].rm_so + = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so; + pmatch[reg_idx + 1].rm_eo + = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo; + } } free_return: @@ -974,7 +974,7 @@ re_search_internal (const regex_t *preg, } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ prune_impossible_nodes (re_match_context_t *mctx) { const re_dfa_t *const dfa = mctx->dfa; @@ -1112,7 +1112,7 @@ acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, index of the buffer. */ static Idx -internal_function +internal_function __attribute_warn_unused_result__ check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) { @@ -1151,7 +1151,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, { err = transit_state_bkref (mctx, &cur_state->nodes); if (BE (err != REG_NOERROR, 0)) - return err; + return err; } } } @@ -1178,16 +1178,16 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1; if (BE (next_char_idx >= mctx->input.bufs_len, 0) - || (BE (next_char_idx >= mctx->input.valid_len, 0) - && mctx->input.valid_len < mctx->input.len)) - { - err = extend_buffers (mctx); - if (BE (err != REG_NOERROR, 0)) + || (BE (next_char_idx >= mctx->input.valid_len, 0) + && mctx->input.valid_len < mctx->input.len)) + { + err = extend_buffers (mctx); + if (BE (err != REG_NOERROR, 0)) { assert (err == REG_ESPACE); return REG_ERROR; } - } + } cur_state = transit_state (&err, mctx, cur_state); if (mctx->state_log != NULL) @@ -1311,17 +1311,17 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, if (dest_node == REG_MISSING) dest_node = candidate; - else + else { /* In order to avoid infinite loop like "(a*)*", return the second - epsilon-transition if the first was already considered. */ + epsilon-transition if the first was already considered. */ if (re_node_set_contains (eps_via_nodes, dest_node)) - return candidate; + return candidate; /* Otherwise, push the second epsilon-transition on the fail stack. */ else if (fs != NULL && push_fail_stack (fs, *pidx, candidate, nregs, regs, - eps_via_nodes)) + eps_via_nodes)) return REG_ERROR; /* We know we are going to exit. */ @@ -1387,7 +1387,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { @@ -1434,7 +1434,7 @@ pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, bool fl_backtrack) { @@ -1669,7 +1669,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) if (mctx->state_log[str_idx]) { err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); - if (BE (err != REG_NOERROR, 0)) + if (BE (err != REG_NOERROR, 0)) goto free_return; } @@ -1688,7 +1688,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) { @@ -1850,7 +1850,7 @@ update_cur_sifted_state (const re_match_context_t *mctx, } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) { @@ -1865,10 +1865,14 @@ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, { err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); if (BE (err != REG_NOERROR, 0)) - return REG_ESPACE; + return REG_ESPACE; for (i = 0; i < dest_nodes->nelem; i++) - re_node_set_merge (&state->inveclosure, - dfa->inveclosures + dest_nodes->elems[i]); + { + err = re_node_set_merge (&state->inveclosure, + dfa->inveclosures + dest_nodes->elems[i]); + if (BE (err != REG_NOERROR, 0)) + return REG_ESPACE; + } } return re_node_set_add_intersect (dest_nodes, candidates, &state->inveclosure); @@ -1980,7 +1984,7 @@ check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, { struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx; do - { + { Idx dst; int cpos; @@ -2002,9 +2006,9 @@ check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, if (dst == from_node) { if (boundaries & 1) - return -1; + return -1; else /* if (boundaries & 2) */ - return 0; + return 0; } cpos = @@ -2018,7 +2022,7 @@ check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, if (subexp_idx < BITSET_WORD_BITS) ent->eps_reachable_subexps_map &= ~((bitset_word_t) 1 << subexp_idx); - } + } while (ent++->more); } break; @@ -2160,7 +2164,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, } static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) { @@ -2243,7 +2247,7 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, re_node_set_remove (&local_sctx.limits, enabled_idx); /* mctx->bkref_ents may have changed, reload the pointer. */ - entry = mctx->bkref_ents + enabled_idx; + entry = mctx->bkref_ents + enabled_idx; } while (enabled_idx++, entry++->more); } @@ -2290,7 +2294,7 @@ sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, update the destination of STATE_LOG. */ static re_dfastate_t * -internal_function +internal_function __attribute_warn_unused_result__ transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { @@ -2324,7 +2328,7 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx, trtable = state->word_trtable; if (BE (trtable != NULL, 1)) - { + { unsigned int context; context = re_string_context_at (&mctx->input, @@ -2370,21 +2374,21 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, unsigned int context; re_node_set next_nodes, *log_nodes, *table_nodes = NULL; /* If (state_log[cur_idx] != 0), it implies that cur_idx is - the destination of a multibyte char/collating element/ - back reference. Then the next state is the union set of - these destinations and the results of the transition table. */ + the destination of a multibyte char/collating element/ + back reference. Then the next state is the union set of + these destinations and the results of the transition table. */ pstate = mctx->state_log[cur_idx]; log_nodes = pstate->entrance_nodes; if (next_state != NULL) - { - table_nodes = next_state->entrance_nodes; - *err = re_node_set_init_union (&next_nodes, table_nodes, + { + table_nodes = next_state->entrance_nodes; + *err = re_node_set_init_union (&next_nodes, table_nodes, log_nodes); - if (BE (*err != REG_NOERROR, 0)) + if (BE (*err != REG_NOERROR, 0)) return NULL; - } + } else - next_nodes = *log_nodes; + next_nodes = *log_nodes; /* Note: We already add the nodes of the initial state, then we don't need to add them here. */ @@ -2392,12 +2396,12 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_string_cur_idx (&mctx->input) - 1, mctx->eflags); next_state = mctx->state_log[cur_idx] - = re_acquire_state_context (err, dfa, &next_nodes, context); + = re_acquire_state_context (err, dfa, &next_nodes, context); /* We don't need to check errors here, since the return value of - this function is next_state and ERR is already set. */ + this function is next_state and ERR is already set. */ if (table_nodes != NULL) - re_node_set_free (&next_nodes); + re_node_set_free (&next_nodes); } if (BE (dfa->nbackref, 0) && next_state != NULL) @@ -2438,9 +2442,9 @@ find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) do { - if (++cur_str_idx > max) - return NULL; - re_string_skip_bytes (&mctx->input, 1); + if (++cur_str_idx > max) + return NULL; + re_string_skip_bytes (&mctx->input, 1); } while (mctx->state_log[cur_str_idx] == NULL); @@ -2548,7 +2552,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) re_dfastate_t *dest_state; if (!dfa->nodes[cur_node_idx].accept_mb) - continue; + continue; if (dfa->nodes[cur_node_idx].constraint) { @@ -2716,7 +2720,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) delay these checking for prune_impossible_nodes(). */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) { const re_dfa_t *const dfa = mctx->dfa; @@ -2729,7 +2733,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) const struct re_backref_cache_entry *entry = mctx->bkref_ents + cache_idx; do - if (entry->node == bkref_node) + if (entry->node == bkref_node) return REG_NOERROR; /* We already checked it. */ while (entry++->more); } @@ -2917,7 +2921,7 @@ find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) { @@ -3079,7 +3083,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Can't we unify them? */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) { @@ -3213,7 +3217,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, problematic append it to DST_NODES. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) { @@ -3258,7 +3262,7 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, in MCTX->BKREF_ENTS. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) { @@ -3624,7 +3628,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, } #ifdef RE_ENABLE_I18N else if (type == OP_UTF8_PERIOD) - { + { if (ASCII_CHARS % BITSET_WORD_BITS == 0) memset (accepts, -1, ASCII_CHARS / CHAR_BIT); else @@ -3633,7 +3637,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) bitset_clear (accepts, '\0'); - } + } #endif else continue; @@ -3838,7 +3842,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, if (node->type == OP_PERIOD) { if (char_len <= 1) - return 0; + return 0; /* FIXME: I don't think this if is needed, as both '\n' and '\0' are char_len == 1. */ /* '.' accepts any one character except the following two cases. */ @@ -3951,15 +3955,20 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); - idx = findidx (&cp); + int32_t idx = findidx (&cp); if (idx > 0) for (i = 0; i < cset->nequiv_classes; ++i) { int32_t equiv_class_idx = cset->equiv_classes[i]; - size_t weight_len = weights[idx]; - if (weight_len == weights[equiv_class_idx]) + size_t weight_len = weights[idx & 0xffffff]; + if (weight_len == weights[equiv_class_idx & 0xffffff] + && (idx >> 24) == (equiv_class_idx >> 24)) { Idx cnt = 0; + + idx &= 0xffffff; + equiv_class_idx &= 0xffffff; + while (cnt <= weight_len && (weights[equiv_class_idx + 1 + cnt] == weights[idx + 1 + cnt])) @@ -4125,7 +4134,7 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ extend_buffers (re_match_context_t *mctx) { reg_errcode_t ret; @@ -4188,7 +4197,7 @@ extend_buffers (re_match_context_t *mctx) /* Initialize MCTX. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) { mctx->eflags = eflags; @@ -4268,7 +4277,7 @@ match_ctx_free (re_match_context_t *mctx) */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, Idx to) { @@ -4340,7 +4349,7 @@ search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) at STR_IDX. */ static reg_errcode_t -internal_function +internal_function __attribute_warn_unused_result__ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) { #ifdef DEBUG diff --git a/gnu/rmdir.c b/gnu/rmdir.c new file mode 100644 index 0000000000000000000000000000000000000000..5b1c09554a207b3d300385d799ee96f81015c350 --- /dev/null +++ b/gnu/rmdir.c @@ -0,0 +1,101 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Work around rmdir bugs. + + Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2010 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/>. */ + +#include <config.h> + +#include <unistd.h> + +#include <errno.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> + +#undef rmdir + +/* Remove directory DIR. + Return 0 if successful, -1 if not. */ + +int +rpl_rmdir (char const *dir) +{ +#if HAVE_RMDIR + /* Work around cygwin 1.5.x bug where rmdir("dir/./") succeeds. */ + size_t len = strlen (dir); + int result; + while (len && ISSLASH (dir[len - 1])) + len--; + if (len && dir[len - 1] == '.' && (1 == len || ISSLASH (dir[len - 2]))) + { + errno = EINVAL; + return -1; + } + result = rmdir (dir); + /* Work around mingw bug, where rmdir("file/") fails with EINVAL + instead of ENOTDIR. We've already filtered out trailing ., the + only reason allowed by POSIX for EINVAL. */ + if (result == -1 && errno == EINVAL) + errno = ENOTDIR; + return result; + +#else /* !HAVE_RMDIR */ + /* rmdir adapted from GNU tar. FIXME: Delete this implementation in + 2010 if no one reports a system with missing rmdir. */ + pid_t cpid; + int status; + struct stat statbuf; + + if (stat (dir, &statbuf) != 0) + return -1; /* errno already set */ + + if (!S_ISDIR (statbuf.st_mode)) + { + errno = ENOTDIR; + return -1; + } + + cpid = fork (); + switch (cpid) + { + case -1: /* cannot fork */ + return -1; /* errno already set */ + + case 0: /* child process */ + execl ("/bin/rmdir", "rmdir", dir, (char *) 0); + _exit (1); + + default: /* parent process */ + + /* Wait for kid to finish. */ + + while (wait (&status) != cpid) + /* Do nothing. */ ; + + if (status) + { + + /* /bin/rmdir failed. */ + + errno = EIO; + return -1; + } + return 0; + } +#endif /* !HAVE_RMDIR */ +} diff --git a/lib/rpmatch.c b/gnu/rpmatch.c similarity index 89% rename from lib/rpmatch.c rename to gnu/rpmatch.c index 217e1710a2b1891ec11d45247a668acf9ddf47e8..d002a03e51f0120ba047b93825891dd508562f1c 100644 --- a/lib/rpmatch.c +++ b/gnu/rpmatch.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine whether string value is affirmation or negative response according to current locale's data. - Copyright (C) 1996, 1998, 2000, 2002, 2003, 2006-2008 Free Software + Copyright (C) 1996, 1998, 2000, 2002-2003, 2006-2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -43,7 +45,7 @@ The resulting string may only be used until the next nl_langinfo call. */ static const char * localized_pattern (const char *english_pattern, nl_item nl_index, - bool posixly_correct) + bool posixly_correct) { const char *translated_pattern; @@ -65,7 +67,7 @@ localized_pattern (const char *english_pattern, nl_item nl_index, translated_pattern = nl_langinfo (nl_index); /* Check against a broken system return value. */ if (translated_pattern != NULL && translated_pattern[0] != '\0') - return translated_pattern; + return translated_pattern; } /* Look in the gnulib message catalog. */ @@ -73,11 +75,11 @@ localized_pattern (const char *english_pattern, nl_item nl_index, if (translated_pattern == english_pattern) { /* The gnulib message catalog provides no translation. - Try the system's message catalog. */ + Try the system's message catalog. */ translated_pattern = nl_langinfo (nl_index); /* Check against a broken system return value. */ if (translated_pattern != NULL && translated_pattern[0] != '\0') - return translated_pattern; + return translated_pattern; /* Fall back to English. */ translated_pattern = english_pattern; } @@ -97,20 +99,20 @@ try (const char *response, const char *pattern, char **lastp, regex_t *re) /* The pattern has changed. */ if (*lastp != NULL) - { - /* Free the old compiled pattern. */ - regfree (re); - free (*lastp); - *lastp = NULL; - } + { + /* Free the old compiled pattern. */ + regfree (re); + free (*lastp); + *lastp = NULL; + } /* Put the PATTERN into safe memory before calling regcomp. - (regcomp may call nl_langinfo, overwriting PATTERN's storage. */ + (regcomp may call nl_langinfo, overwriting PATTERN's storage. */ safe_pattern = strdup (pattern); if (safe_pattern == NULL) - return -1; + return -1; /* Compile the pattern and cache it for future runs. */ if (regcomp (re, safe_pattern, REG_EXTENDED) != 0) - return -1; + return -1; *lastp = safe_pattern; } @@ -168,6 +170,6 @@ rpmatch (const char *response) #else /* Test against "^[yY]" and "^[nN]", hardcoded to avoid requiring regex */ return (*response == 'y' || *response == 'Y' ? 1 - : *response == 'n' || *response == 'N' ? 0 : -1); + : *response == 'n' || *response == 'N' ? 0 : -1); #endif } diff --git a/lib/safe-read.c b/gnu/safe-read.c similarity index 87% rename from lib/safe-read.c rename to gnu/safe-read.c index 0cb1edee8bc789ab6589d2cd93c7e265ce1a418a..6cfec2443d79fbc62eaffb8da98577ba70b45d27 100644 --- a/lib/safe-read.c +++ b/gnu/safe-read.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An interface to read and write that retries after interrupts. - Copyright (C) 1993, 1994, 1998, 2002, 2003, 2004, 2005, 2006 Free - Software Foundation, Inc. + Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2010 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 @@ -66,12 +68,12 @@ safe_rw (int fd, void const *buf, size_t count) ssize_t result = rw (fd, buf, count); if (0 <= result) - return result; + return result; else if (IS_EINTR (errno)) - continue; + continue; else if (errno == EINVAL && BUGGY_READ_MAXIMUM < count) - count = BUGGY_READ_MAXIMUM; + count = BUGGY_READ_MAXIMUM; else - return result; + return result; } } diff --git a/lib/safe-read.h b/gnu/safe-read.h similarity index 86% rename from lib/safe-read.h rename to gnu/safe-read.h index ba191713b681712ab85b59953e256a78a8b2d978..a6dddf4b096bb497fac19c1d02d1652608ab7ddd 100644 --- a/lib/safe-read.h +++ b/gnu/safe-read.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An interface to read() that retries after interrupts. - Copyright (C) 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, 2009-2010 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 diff --git a/lib/safe-write.c b/gnu/safe-write.c similarity index 82% rename from lib/safe-write.c rename to gnu/safe-write.c index b644f7cff3aae6127cd5bbddda40f161419d1e5a..d5e05c88e0afece0f71e0f113714289b63bb263b 100644 --- a/lib/safe-write.c +++ b/gnu/safe-write.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An interface to write that retries after interrupts. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2009-2010 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 diff --git a/lib/safe-write.h b/gnu/safe-write.h similarity index 86% rename from lib/safe-write.h rename to gnu/safe-write.h index da036a97a1054a600bf808f5b9ed89969996c4ae..3e74442d6269b54923e68589b75b782d0991ab46 100644 --- a/lib/safe-write.h +++ b/gnu/safe-write.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* An interface to write() that retries after interrupts. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2009-2010 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 diff --git a/lib/same-inode.h b/gnu/same-inode.h similarity index 85% rename from lib/same-inode.h rename to gnu/same-inode.h index 063271174cd99c9716e06f3a5276e340fb781f35..3db599a0a97feed58d5b15354a3a6515078c75b5 100644 --- a/lib/same-inode.h +++ b/gnu/same-inode.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine whether two stat buffers refer to the same file. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2010 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 diff --git a/gnu/same.c b/gnu/same.c new file mode 100644 index 0000000000000000000000000000000000000000..5d9c5856f11a80e3db20a6bab95dd7595f0f5fdf --- /dev/null +++ b/gnu/same.c @@ -0,0 +1,125 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Determine whether two file names refer to the same file. + + Copyright (C) 1997-2000, 2002-2006, 2009-2010 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 Jim Meyering */ + +#include <config.h> + +#include <stdbool.h> +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <ctype.h> +#include <errno.h> + +#include <string.h> + +#include <limits.h> +#ifndef _POSIX_NAME_MAX +# define _POSIX_NAME_MAX 14 +#endif + +#include "same.h" +#include "dirname.h" +#include "error.h" +#include "same-inode.h" + +#ifndef MIN +# define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + +/* Return nonzero if SOURCE and DEST point to the same name in the same + directory. */ + +bool +same_name (const char *source, const char *dest) +{ + /* Compare the basenames. */ + char const *source_basename = last_component (source); + char const *dest_basename = last_component (dest); + size_t source_baselen = base_len (source_basename); + size_t dest_baselen = base_len (dest_basename); + bool identical_basenames = + (source_baselen == dest_baselen + && memcmp (source_basename, dest_basename, dest_baselen) == 0); + bool compare_dirs = identical_basenames; + bool same = false; + +#if ! _POSIX_NO_TRUNC && HAVE_PATHCONF && defined _PC_NAME_MAX + /* This implementation silently truncates components of file names. If + the base names might be truncated, check whether the truncated + base names are the same, while checking the directories. */ + size_t slen_max = HAVE_LONG_FILE_NAMES ? 255 : _POSIX_NAME_MAX; + size_t min_baselen = MIN (source_baselen, dest_baselen); + if (slen_max <= min_baselen + && memcmp (source_basename, dest_basename, slen_max) == 0) + compare_dirs = true; +#endif + + if (compare_dirs) + { + struct stat source_dir_stats; + struct stat dest_dir_stats; + char *source_dirname, *dest_dirname; + + /* Compare the parent directories (via the device and inode numbers). */ + source_dirname = dir_name (source); + dest_dirname = dir_name (dest); + + if (stat (source_dirname, &source_dir_stats)) + { + /* Shouldn't happen. */ + error (1, errno, "%s", source_dirname); + } + + if (stat (dest_dirname, &dest_dir_stats)) + { + /* Shouldn't happen. */ + error (1, errno, "%s", dest_dirname); + } + + same = SAME_INODE (source_dir_stats, dest_dir_stats); + +#if ! _POSIX_NO_TRUNC && HAVE_PATHCONF && defined _PC_NAME_MAX + if (same && ! identical_basenames) + { + long name_max = (errno = 0, pathconf (dest_dirname, _PC_NAME_MAX)); + if (name_max < 0) + { + if (errno) + { + /* Shouldn't happen. */ + error (1, errno, "%s", dest_dirname); + } + same = false; + } + else + same = (name_max <= min_baselen + && memcmp (source_basename, dest_basename, name_max) == 0); + } +#endif + + free (source_dirname); + free (dest_dirname); + } + + return same; +} diff --git a/lib/creat-safer.c b/gnu/same.h similarity index 64% rename from lib/creat-safer.c rename to gnu/same.h index fc314ba43244bd641234d356929fc7fc7d02b89c..c4b58fd394d5c97f7dd4ed29bc59e2ee2d594dfd 100644 --- a/lib/creat-safer.c +++ b/gnu/same.h @@ -1,6 +1,8 @@ -/* Invoke creat, but avoid some glitches. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Determine whether two file names refer to the same file. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1997-2000, 2003-2004, 2009-2010 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 @@ -15,17 +17,11 @@ 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 Jim Meyering. */ +#ifndef SAME_H_ +# define SAME_H_ 1 -#include <config.h> +# include <stdbool.h> -#include "fcntl-safer.h" +bool same_name (const char *source, const char *dest); -#include <fcntl.h> -#include "unistd-safer.h" - -int -creat_safer (char const *file, mode_t mode) -{ - return fd_safer (creat (file, mode)); -} +#endif /* SAME_H_ */ diff --git a/lib/save-cwd.c b/gnu/save-cwd.c similarity index 88% rename from lib/save-cwd.c rename to gnu/save-cwd.c index e158e8b6b2c1dd021f367a803952ba9667d513fb..6cb3c36bbe8dc7b71d01d42f8ade5652b93f59af 100644 --- a/lib/save-cwd.c +++ b/gnu/save-cwd.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* save-cwd.c -- Save and restore current working directory. - Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005, 2006 Free - Software Foundation, Inc. + Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2010 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 @@ -23,15 +25,21 @@ #include "save-cwd.h" #include <errno.h> +#include <fcntl.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> -#include <unistd.h> #include "chdir-long.h" -#include "fcntl--.h" +#include "unistd--.h" #include "xgetcwd.h" +#if GNULIB_FCNTL_SAFER +# include "fcntl--.h" +#else +# define GNULIB_FCNTL_SAFER 0 +#endif + /* On systems without the fchdir function (WOE), pretend that open always returns -1 so that save_cwd resorts to using xgetcwd. Since chdir_long requires fchdir, use chdir instead. */ @@ -70,6 +78,8 @@ save_cwd (struct saved_cwd *cwd) cwd->name = NULL; cwd->desc = open (".", O_RDONLY); + if (!GNULIB_FCNTL_SAFER) + cwd->desc = fd_safer (cwd->desc); if (cwd->desc < 0) { cwd->name = xgetcwd (); diff --git a/lib/save-cwd.h b/gnu/save-cwd.h similarity index 84% rename from lib/save-cwd.h rename to gnu/save-cwd.h index e23eb725fd6d11429d23a1110cc2caa8dcb9e578..a3a03073d523465ee3e39cd3872f2f971bd794ff 100644 --- a/lib/save-cwd.h +++ b/gnu/save-cwd.h @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Save and restore current working directory. - Copyright (C) 1995, 1997, 1998, 2003 Free Software Foundation, Inc. + Copyright (C) 1995, 1997-1998, 2003, 2009-2010 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 diff --git a/lib/savedir.c b/gnu/savedir.c similarity index 76% rename from lib/savedir.c rename to gnu/savedir.c index b837414335c9ddfd7fffd2d41683d5393a1d9e2b..a1eaa4379c11abd02fdf358044d90d6ed231cfba 100644 --- a/lib/savedir.c +++ b/gnu/savedir.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* savedir.c -- save the list of files in a directory in a string - Copyright (C) 1990, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, - 2006 Free Software Foundation, Inc. + Copyright (C) 1990, 1997-2001, 2003-2006, 2009-2010 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 @@ -26,27 +28,21 @@ #include <errno.h> -#include <dirent.h> +#include "dirent--.h" #ifndef _D_EXACT_NAMLEN -# define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name) +# define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name) #endif #include <stddef.h> #include <stdlib.h> #include <string.h> -#include "openat.h" #include "xalloc.h" #ifndef NAME_SIZE_DEFAULT # define NAME_SIZE_DEFAULT 512 #endif -/* The results of opendir() in this file are not used with dirfd and fchdir, - therefore save some unnecessary work in fchdir.c. */ -#undef opendir -#undef closedir - /* Return a freshly allocated string containing the file names in directory DIRP, separated by '\0' characters; the end is marked by two '\0' characters in a row. @@ -74,31 +70,31 @@ savedirstream (DIR *dirp) errno = 0; dp = readdir (dirp); if (! dp) - break; + break; /* Skip "", ".", and "..". "" is returned by at least one buggy implementation: Solaris 2.4 readdir on NFS file systems. */ entry = dp->d_name; if (entry[entry[0] != '.' ? 0 : entry[1] != '.' ? 1 : 2] != '\0') - { - size_t entry_size = _D_EXACT_NAMLEN (dp) + 1; - if (used + entry_size < used) - xalloc_die (); - if (allocated <= used + entry_size) - { - do - { - if (2 * allocated < allocated) - xalloc_die (); - allocated *= 2; - } - while (allocated <= used + entry_size); - - name_space = xrealloc (name_space, allocated); - } - memcpy (name_space + used, entry, entry_size); - used += entry_size; - } + { + size_t entry_size = _D_EXACT_NAMLEN (dp) + 1; + if (used + entry_size < used) + xalloc_die (); + if (allocated <= used + entry_size) + { + do + { + if (2 * allocated < allocated) + xalloc_die (); + allocated *= 2; + } + while (allocated <= used + entry_size); + + name_space = xrealloc (name_space, allocated); + } + memcpy (name_space + used, entry, entry_size); + used += entry_size; + } } name_space[used] = '\0'; save_errno = errno; diff --git a/lib/savedir.h b/gnu/savedir.h similarity index 82% rename from lib/savedir.h rename to gnu/savedir.h index 0c696415b860c3c32285ea7d07304524bade8f80..ee50d80d00bf8e99c316979b8dffaee6454ec216 100644 --- a/lib/savedir.h +++ b/gnu/savedir.h @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Save the list of files in a directory in a string. - Copyright (C) 1997, 1999, 2001, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2001, 2003, 2005, 2009-2010 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 diff --git a/gnu/setenv.c b/gnu/setenv.c new file mode 100644 index 0000000000000000000000000000000000000000..d4670e5c99e8f1dffad18acc12acff60cf339833 --- /dev/null +++ b/gnu/setenv.c @@ -0,0 +1,385 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 1992, 1995-2003, 2005-2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + 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/>. */ + +#if !_LIBC +# include <config.h> +#endif + +/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc + optimizes away the name == NULL test below. */ +#define _GL_ARG_NONNULL(params) + +#include <alloca.h> + +/* Specification. */ +#include <stdlib.h> + +#include <errno.h> +#ifndef __set_errno +# define __set_errno(ev) ((errno) = (ev)) +#endif + +#include <string.h> +#if _LIBC || HAVE_UNISTD_H +# include <unistd.h> +#endif + +#if !_LIBC +# include "malloca.h" +#endif + +#if _LIBC || !HAVE_SETENV + +#if !_LIBC +# define __environ environ +#endif + +#if _LIBC +/* This lock protects against simultaneous modifications of `environ'. */ +# include <bits/libc-lock.h> +__libc_lock_define_initialized (static, envlock) +# define LOCK __libc_lock_lock (envlock) +# define UNLOCK __libc_lock_unlock (envlock) +#else +# define LOCK +# define UNLOCK +#endif + +/* In the GNU C library we must keep the namespace clean. */ +#ifdef _LIBC +# define setenv __setenv +# define clearenv __clearenv +# define tfind __tfind +# define tsearch __tsearch +#endif + +/* In the GNU C library implementation we try to be more clever and + allow arbitrarily many changes of the environment given that the used + values are from a small set. Outside glibc this will eat up all + memory after a while. */ +#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ + && defined __GNUC__) +# define USE_TSEARCH 1 +# include <search.h> +typedef int (*compar_fn_t) (const void *, const void *); + +/* This is a pointer to the root of the search tree with the known + values. */ +static void *known_values; + +# define KNOWN_VALUE(Str) \ + ({ \ + void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ + value != NULL ? *(char **) value : NULL; \ + }) +# define STORE_VALUE(Str) \ + tsearch (Str, &known_values, (compar_fn_t) strcmp) + +#else +# undef USE_TSEARCH + +# define KNOWN_VALUE(Str) NULL +# define STORE_VALUE(Str) do { } while (0) + +#endif + + +/* If this variable is not a null pointer we allocated the current + environment. */ +static char **last_environ; + + +/* This function is used by `setenv' and `putenv'. The difference between + the two functions is that for the former must create a new string which + is then placed in the environment, while the argument of `putenv' + must be used directly. This is all complicated by the fact that we try + to reuse values once generated for a `setenv' call since we can never + free the strings. */ +int +__add_to_environ (const char *name, const char *value, const char *combined, + int replace) +{ + register char **ep; + register size_t size; + const size_t namelen = strlen (name); + const size_t vallen = value != NULL ? strlen (value) + 1 : 0; + + LOCK; + + /* We have to get the pointer now that we have the lock and not earlier + since another thread might have created a new environment. */ + ep = __environ; + + size = 0; + if (ep != NULL) + { + for (; *ep != NULL; ++ep) + if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') + break; + else + ++size; + } + + if (ep == NULL || *ep == NULL) + { + char **new_environ; +#ifdef USE_TSEARCH + char *new_value; +#endif + + /* We allocated this space; we can extend it. */ + new_environ = + (char **) (last_environ == NULL + ? malloc ((size + 2) * sizeof (char *)) + : realloc (last_environ, (size + 2) * sizeof (char *))); + if (new_environ == NULL) + { + UNLOCK; + return -1; + } + + /* If the whole entry is given add it. */ + if (combined != NULL) + /* We must not add the string to the search tree since it belongs + to the user. */ + new_environ[size] = (char *) combined; + else + { + /* See whether the value is already known. */ +#ifdef USE_TSEARCH +# ifdef _LIBC + new_value = (char *) alloca (namelen + 1 + vallen); + __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), + value, vallen); +# else + new_value = (char *) malloca (namelen + 1 + vallen); + if (new_value == NULL) + { + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + memcpy (new_value, name, namelen); + new_value[namelen] = '='; + memcpy (&new_value[namelen + 1], value, vallen); +# endif + + new_environ[size] = KNOWN_VALUE (new_value); + if (new_environ[size] == NULL) +#endif + { + new_environ[size] = (char *) malloc (namelen + 1 + vallen); + if (new_environ[size] == NULL) + { +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + +#ifdef USE_TSEARCH + memcpy (new_environ[size], new_value, namelen + 1 + vallen); +#else + memcpy (new_environ[size], name, namelen); + new_environ[size][namelen] = '='; + memcpy (&new_environ[size][namelen + 1], value, vallen); +#endif + /* And save the value now. We cannot do this when we remove + the string since then we cannot decide whether it is a + user string or not. */ + STORE_VALUE (new_environ[size]); + } +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + } + + if (__environ != last_environ) + memcpy ((char *) new_environ, (char *) __environ, + size * sizeof (char *)); + + new_environ[size + 1] = NULL; + + last_environ = __environ = new_environ; + } + else if (replace) + { + char *np; + + /* Use the user string if given. */ + if (combined != NULL) + np = (char *) combined; + else + { +#ifdef USE_TSEARCH + char *new_value; +# ifdef _LIBC + new_value = alloca (namelen + 1 + vallen); + __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), + value, vallen); +# else + new_value = malloca (namelen + 1 + vallen); + if (new_value == NULL) + { + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + memcpy (new_value, name, namelen); + new_value[namelen] = '='; + memcpy (&new_value[namelen + 1], value, vallen); +# endif + + np = KNOWN_VALUE (new_value); + if (np == NULL) +#endif + { + np = malloc (namelen + 1 + vallen); + if (np == NULL) + { +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + __set_errno (ENOMEM); + UNLOCK; + return -1; + } + +#ifdef USE_TSEARCH + memcpy (np, new_value, namelen + 1 + vallen); +#else + memcpy (np, name, namelen); + np[namelen] = '='; + memcpy (&np[namelen + 1], value, vallen); +#endif + /* And remember the value. */ + STORE_VALUE (np); + } +#if defined USE_TSEARCH && !defined _LIBC + freea (new_value); +#endif + } + + *ep = np; + } + + UNLOCK; + + return 0; +} + +int +setenv (const char *name, const char *value, int replace) +{ + if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) + { + __set_errno (EINVAL); + return -1; + } + + return __add_to_environ (name, value, NULL, replace); +} + +/* The `clearenv' was planned to be added to POSIX.1 but probably + never made it. Nevertheless the POSIX.9 standard (POSIX bindings + for Fortran 77) requires this function. */ +int +clearenv (void) +{ + LOCK; + + if (__environ == last_environ && __environ != NULL) + { + /* We allocated this environment so we can free it. */ + free (__environ); + last_environ = NULL; + } + + /* Clear the environment pointer removes the whole environment. */ + __environ = NULL; + + UNLOCK; + + return 0; +} + +#ifdef _LIBC +static void +free_mem (void) +{ + /* Remove all traces. */ + clearenv (); + + /* Now remove the search tree. */ + __tdestroy (known_values, free); + known_values = NULL; +} +text_set_element (__libc_subfreeres, free_mem); + + +# undef setenv +# undef clearenv +weak_alias (__setenv, setenv) +weak_alias (__clearenv, clearenv) +#endif + +#endif /* _LIBC || !HAVE_SETENV */ + +/* The rest of this file is called into use when replacing an existing + but buggy setenv. Known bugs include failure to diagnose invalid + name, and consuming a leading '=' from value. */ +#if HAVE_SETENV + +# undef setenv +# define STREQ(a, b) (strcmp (a, b) == 0) + +int +rpl_setenv (const char *name, const char *value, int replace) +{ + int result; + if (!name || !*name || strchr (name, '=')) + { + errno = EINVAL; + return -1; + } + /* Call the real setenv even if replace is 0, in case implementation + has underlying data to update, such as when environ changes. */ + result = setenv (name, value, replace); + if (result == 0 && replace && *value == '=') + { + char *tmp = getenv (name); + if (!STREQ (tmp, value)) + { + int saved_errno; + size_t len = strlen (value); + tmp = malloca (len + 2); + /* Since leading '=' is eaten, double it up. */ + *tmp = '='; + memcpy (tmp + 1, value, len + 1); + result = setenv (name, tmp, replace); + saved_errno = errno; + freea (tmp); + errno = saved_errno; + } + } + return result; +} + +#endif /* HAVE_SETENV */ diff --git a/lib/size_max.h b/gnu/size_max.h similarity index 94% rename from lib/size_max.h rename to gnu/size_max.h index 09e6071dcbff8d6cedc6e7d3ce13f3bc18a2c768..58443ab660fa488823dc6ccd0c5ab4b7fd2e8831 100644 --- a/lib/size_max.h +++ b/gnu/size_max.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* size_max.h -- declare SIZE_MAX through system headers - Copyright (C) 2005-2006 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify diff --git a/lib/sleep.c b/gnu/sleep.c similarity index 62% rename from lib/sleep.c rename to gnu/sleep.c index 9c56b9b81d346a39fc4ac592813744d7c222bcea..4303d47af1c76bd39729fdf1b665dacd366eb2d0 100644 --- a/lib/sleep.c +++ b/gnu/sleep.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Pausing execution of the current thread. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2007. This program is free software: you can redistribute it and/or modify @@ -20,6 +22,10 @@ /* Specification. */ #include <unistd.h> +#include <limits.h> + +#include "verify.h" + #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ @@ -39,7 +45,32 @@ sleep (unsigned int seconds) return remaining; } -#else +#elif HAVE_SLEEP + +# undef sleep + +/* Guarantee unlimited sleep and a reasonable return value. Cygwin + 1.5.x rejects attempts to sleep more than 49.7 days (2**32 + milliseconds), but uses uninitialized memory which results in a + garbage answer. */ +unsigned int +rpl_sleep (unsigned int seconds) +{ + /* This requires int larger than 16 bits. */ + verify (UINT_MAX / 49 / 24 / 60 / 60); + const unsigned int limit = 49 * 24 * 60 * 60; + while (limit < seconds) + { + unsigned int result; + seconds -= limit; + result = sleep (limit); + if (result) + return seconds + result; + } + return sleep (seconds); +} + +#else /* !HAVE_SLEEP */ #error "Please port gnulib sleep.c to your platform, possibly using usleep() or select(), then report this to bug-gnulib." diff --git a/lib/snprintf.c b/gnu/snprintf.c similarity index 89% rename from lib/snprintf.c rename to gnu/snprintf.c index 6ebdaf313689da1a47d82bc2e795e772947df20e..2fb5c319412fc9cb9ca25a4c882ac8ddd03d6f58 100644 --- a/lib/snprintf.c +++ b/gnu/snprintf.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. - Copyright (C) 2004, 2006-2008 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2010 Free Software Foundation, Inc. Written by Simon Josefsson and Paul Eggert. This program is free software; you can redistribute it and/or modify @@ -55,11 +55,11 @@ snprintf (char *str, size_t size, const char *format, ...) if (output != str) { if (size) - { - size_t pruned_len = (len < size ? len : size - 1); - memcpy (str, output, pruned_len); - str[pruned_len] = '\0'; - } + { + size_t pruned_len = (len < size ? len : size - 1); + memcpy (str, output, pruned_len); + str[pruned_len] = '\0'; + } free (output); } diff --git a/lib/stat-macros.h b/gnu/stat-macros.h similarity index 61% rename from lib/stat-macros.h rename to gnu/stat-macros.h index 690216c74e264ea368fc7f70b180251e341d4149..00112cef10365b5e9e8eacc22f6c4de30f2c9085 100644 --- a/lib/stat-macros.h +++ b/gnu/stat-macros.h @@ -1,3 +1,5 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* All the mode bits that can be affected by chmod. */ #define CHMOD_MODE_BITS \ (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) diff --git a/lib/stat-time.h b/gnu/stat-time.h similarity index 97% rename from lib/stat-time.h rename to gnu/stat-time.h index 8957ab46083ccd3ad8784a773e41e9a307e4c2d0..3587fc24e85910c91eba93c430c3d44d77f17576 100644 --- a/lib/stat-time.h +++ b/gnu/stat-time.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* stat-related time functions. - Copyright (C) 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2005, 2007, 2009-2010 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 diff --git a/gnu/stat.c b/gnu/stat.c new file mode 100644 index 0000000000000000000000000000000000000000..8db01a49051b7d014b102725275652d668b7bac5 --- /dev/null +++ b/gnu/stat.c @@ -0,0 +1,106 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Work around platform bugs in stat. + Copyright (C) 2009, 2010 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 Eric Blake */ + +#include <config.h> + +/* Get the original definition of stat. It might be defined as a macro. */ +#define __need_system_sys_stat_h +#include <sys/types.h> +#include <sys/stat.h> +#undef __need_system_sys_stat_h + +static inline int +orig_stat (const char *filename, struct stat *buf) +{ + return stat (filename, buf); +} + +/* Specification. */ +#include <sys/stat.h> + +#include <errno.h> +#include <limits.h> +#include <stdbool.h> +#include <string.h> + +/* Store information about NAME into ST. Work around bugs with + trailing slashes. Mingw has other bugs (such as st_ino always + being 0 on success) which this wrapper does not work around. But + at least this implementation provides the ability to emulate fchdir + correctly. */ + +int +rpl_stat (char const *name, struct stat *st) +{ + int result = orig_stat (name, st); +#if REPLACE_FUNC_STAT_FILE + /* Solaris 9 mistakenly succeeds when given a non-directory with a + trailing slash. */ + if (result == 0 && !S_ISDIR (st->st_mode)) + { + size_t len = strlen (name); + if (ISSLASH (name[len - 1])) + { + errno = ENOTDIR; + return -1; + } + } +#endif /* REPLACE_FUNC_STAT_FILE */ +#if REPLACE_FUNC_STAT_DIR + if (result == -1 && errno == ENOENT) + { + /* Due to mingw's oddities, there are some directories (like + c:\) where stat() only succeeds with a trailing slash, and + other directories (like c:\windows) where stat() only + succeeds without a trailing slash. But we want the two to be + synonymous, since chdir() manages either style. Likewise, Mingw also + reports ENOENT for names longer than PATH_MAX, when we want + ENAMETOOLONG, and for stat("file/"), when we want ENOTDIR. + Fortunately, mingw PATH_MAX is small enough for stack + allocation. */ + char fixed_name[PATH_MAX + 1] = {0}; + size_t len = strlen (name); + bool check_dir = false; + if (PATH_MAX <= len) + errno = ENAMETOOLONG; + else if (len) + { + strcpy (fixed_name, name); + if (ISSLASH (fixed_name[len - 1])) + { + check_dir = true; + while (len && ISSLASH (fixed_name[len - 1])) + fixed_name[--len] = '\0'; + if (!len) + fixed_name[0] = '/'; + } + else + fixed_name[len++] = '/'; + result = orig_stat (fixed_name, st); + if (result == 0 && check_dir && !S_ISDIR (st->st_mode)) + { + result = -1; + errno = ENOTDIR; + } + } + } +#endif /* REPLACE_FUNC_STAT_DIR */ + return result; +} diff --git a/lib/stdarg.in.h b/gnu/stdarg.in.h similarity index 94% rename from lib/stdarg.in.h rename to gnu/stdarg.in.h index 6e1d4b563b27e4ccc5c191223f01b0158c6f0802..5a17d8ac53fb4812364b27d9b11a7e71f65fe00b 100644 --- a/lib/stdarg.in.h +++ b/gnu/stdarg.in.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Substitute for and wrapper around <stdarg.h>. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 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 diff --git a/lib/stdbool.in.h b/gnu/stdbool.in.h similarity index 98% rename from lib/stdbool.in.h rename to gnu/stdbool.in.h index d95f7235132f0c095f2faf6327770a62792a0886..39d1847dca8b5ec8f72f88a5b2a217f0b593b4e9 100644 --- a/lib/stdbool.in.h +++ b/gnu/stdbool.in.h @@ -1,6 +1,6 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc. +/* Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc. Written by Bruno Haible <haible@clisp.cons.org>, 2001. This program is free software; you can redistribute it and/or modify diff --git a/gnu/stddef.in.h b/gnu/stddef.in.h new file mode 100644 index 0000000000000000000000000000000000000000..2de616b88da33be8f84d68992d888248f0413606 --- /dev/null +++ b/gnu/stddef.in.h @@ -0,0 +1,88 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. + + Copyright (C) 2009, 2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Eric Blake. */ + +/* + * POSIX 2008 <stddef.h> for platforms that have issues. + * <http://www.opengroup.org/susv3xbd/stddef.h.html> + */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined __need_wchar_t || defined __need_size_t \ + || defined __need_ptrdiff_t || defined __need_NULL \ + || defined __need_wint_t +/* Special invocation convention inside gcc header files. In + particular, gcc provides a version of <stddef.h> that blindly + redefines NULL even when __need_wint_t was defined, even though + wint_t is not normally provided by <stddef.h>. Hence, we must + remember if special invocation has ever been used to obtain wint_t, + in which case we need to clean up NULL yet again. */ + +# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T) +# ifdef __need_wint_t +# undef _GL_STDDEF_H +# define _GL_STDDEF_WINT_T +# endif +# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ +# endif + +#else +/* Normal invocation convention. */ + +# ifndef _GL_STDDEF_H + +/* The include_next requires a split double-inclusion guard. */ + +# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ + +# ifndef _GL_STDDEF_H +# define _GL_STDDEF_H + +/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ +#if @REPLACE_NULL@ +# undef NULL +# ifdef __cplusplus + /* ISO C++ says that the macro NULL must expand to an integer constant + expression, hence '((void *) 0)' is not allowed in C++. */ +# if __GNUG__ >= 3 + /* GNU C++ has a __null macro that behaves like an integer ('int' or + 'long') but has the same size as a pointer. Use that, to avoid + warnings. */ +# define NULL __null +# else +# define NULL 0L +# endif +# else +# define NULL ((void *) 0) +# endif +#endif + +/* Some platforms lack wchar_t. */ +#if !@HAVE_WCHAR_T@ +# define wchar_t int +#endif + +# endif /* _GL_STDDEF_H */ +# endif /* _GL_STDDEF_H */ +#endif /* __need_XXX */ diff --git a/lib/stdint.in.h b/gnu/stdint.in.h similarity index 98% rename from lib/stdint.in.h rename to gnu/stdint.in.h index 74d4d3c1598789a9453c87788e7083a6d519956e..8fd48f086e0f513151c4b7cb5a23d3138d39e9ed 100644 --- a/lib/stdint.in.h +++ b/gnu/stdint.in.h @@ -1,6 +1,6 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 2001-2002, 2004-2009 Free Software Foundation, Inc. +/* Copyright (C) 2001-2002, 2004-2010 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. @@ -104,8 +104,8 @@ ((signed) \ ? ~ _STDINT_MIN (signed, bits, zero) \ : /* The expression for the unsigned case. The subtraction of (signed) \ - is a nop in the unsigned case and avoids "signed integer overflow" \ - warnings in the signed case. */ \ + is a nop in the unsigned case and avoids "signed integer overflow" \ + warnings in the signed case. */ \ ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) /* 7.18.1.1. Exact-width integer types */ @@ -437,7 +437,7 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - #undef PTRDIFF_MIN #undef PTRDIFF_MAX #if @APPLE_UNIVERSAL_BUILD@ -# if _LP64 +# ifdef _LP64 # define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else @@ -456,16 +456,16 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - #undef SIG_ATOMIC_MAX #define SIG_ATOMIC_MIN \ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ - 0@SIG_ATOMIC_T_SUFFIX@) + 0@SIG_ATOMIC_T_SUFFIX@) #define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ - 0@SIG_ATOMIC_T_SUFFIX@) + 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ #undef SIZE_MAX #if @APPLE_UNIVERSAL_BUILD@ -# if _LP64 +# ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) diff --git a/lib/stdio-impl.h b/gnu/stdio-impl.h similarity index 69% rename from lib/stdio-impl.h rename to gnu/stdio-impl.h index c803e88c97cd0f6f5bca3d41040422289c46d7f5..a05563f72d4b7d641193353d0f1bbd4619882a41 100644 --- a/lib/stdio-impl.h +++ b/gnu/stdio-impl.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Implementation details of FILE streams. - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2010 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 @@ -26,21 +28,21 @@ # if defined __DragonFly__ /* DragonFly */ /* See <http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>. */ # define fp_ ((struct { struct __FILE_public pub; \ - struct { unsigned char *_base; int _size; } _bf; \ - void *cookie; \ - void *_close; \ - void *_read; \ - void *_seek; \ - void *_write; \ - struct { unsigned char *_base; int _size; } _ub; \ - int _ur; \ - unsigned char _ubuf[3]; \ - unsigned char _nbuf[1]; \ - struct { unsigned char *_base; int _size; } _lb; \ - int _blksize; \ - fpos_t _offset; \ - /* More fields, not relevant here. */ \ - } *) fp) + struct { unsigned char *_base; int _size; } _bf; \ + void *cookie; \ + void *_close; \ + void *_read; \ + void *_seek; \ + void *_write; \ + struct { unsigned char *_base; int _size; } _ub; \ + int _ur; \ + unsigned char _ubuf[3]; \ + unsigned char _nbuf[1]; \ + struct { unsigned char *_base; int _size; } _lb; \ + int _blksize; \ + fpos_t _offset; \ + /* More fields, not relevant here. */ \ + } *) fp) /* See <http://www.dragonflybsd.org/cvsweb/src/include/stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>. */ # define _p pub._p # define _flags pub._flags @@ -74,12 +76,12 @@ # if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */ # define fp_ ((struct { unsigned char *_ptr; \ - unsigned char *_base; \ - unsigned char *_end; \ - long _cnt; \ - int _file; \ - unsigned int _flag; \ - } *) fp) + unsigned char *_base; \ + unsigned char *_end; \ + long _cnt; \ + int _file; \ + unsigned int _flag; \ + } *) fp) # else # define fp_ fp # endif diff --git a/lib/stdio-write.c b/gnu/stdio-write.c similarity index 60% rename from lib/stdio-write.c rename to gnu/stdio-write.c index f1d0fcb730566c30b61714d872ae0d51a048afff..06047b4936faab3fe140ebcdbfa2647ded595aa8 100644 --- a/lib/stdio-write.c +++ b/gnu/stdio-write.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* POSIX compatible FILE stream write function. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -39,30 +41,31 @@ # include <windows.h> # define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \ - if (ferror (stream)) \ - return (EXPRESSION); \ - else \ - { \ - RETTYPE ret; \ - SetLastError (0); \ - ret = (EXPRESSION); \ + if (ferror (stream)) \ + return (EXPRESSION); \ + else \ + { \ + RETTYPE ret; \ + SetLastError (0); \ + ret = (EXPRESSION); \ if (FAILED && GetLastError () == ERROR_NO_DATA && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0 \ - && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE)\ - { \ - /* Try to raise signal SIGPIPE. */ \ - raise (SIGPIPE); \ - /* If it is currently blocked or ignored, change errno from \ - EINVAL to EPIPE. */ \ - errno = EPIPE; \ - } \ - } \ - return ret; \ + { \ + int fd = fileno (stream); \ + if (fd >= 0 \ + && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE)\ + { \ + /* Try to raise signal SIGPIPE. */ \ + raise (SIGPIPE); \ + /* If it is currently blocked or ignored, change errno from \ + EINVAL to EPIPE. */ \ + errno = EPIPE; \ + } \ + } \ + return ret; \ } # if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */ +# if !DEPENDS_ON_LIBINTL /* avoid collision with intl/printf.c */ int printf (const char *format, ...) { @@ -75,6 +78,7 @@ printf (const char *format, ...) return retval; } +# endif # endif # if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */ @@ -92,7 +96,7 @@ fprintf (FILE *stream, const char *format, ...) } # endif -# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vprintf.c */ +# if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */ int vprintf (const char *format, va_list args) { @@ -100,7 +104,7 @@ vprintf (const char *format, va_list args) } # endif -# if !REPLACE_VPRINTF_POSIX /* avoid collision with vfprintf.c */ +# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */ int vfprintf (FILE *stream, const char *format, va_list args) #undef vfprintf diff --git a/gnu/stdio.in.h b/gnu/stdio.in.h new file mode 100644 index 0000000000000000000000000000000000000000..88b368be322aad6675d08a68c9043427cab3d9de --- /dev/null +++ b/gnu/stdio.in.h @@ -0,0 +1,1008 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A GNU-like <stdio.h>. + + Copyright (C) 2004, 2007-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined __need_FILE || defined __need___FILE +/* Special invocation convention inside glibc header files. */ + +#@INCLUDE_NEXT@ @NEXT_STDIO_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _GL_STDIO_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STDIO_H@ + +#ifndef _GL_STDIO_H +#define _GL_STDIO_H + +/* Get va_list. Needed on many systems, including glibc 2.8. */ +#include <stdarg.h> + +#include <stddef.h> + +/* Get off_t and ssize_t. Needed on many systems, including glibc 2.8. */ +#include <sys/types.h> + +#ifndef __attribute__ +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable __attribute__ only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +# define __attribute__(Spec) /* empty */ +# endif +#endif + + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +#if @GNULIB_DPRINTF@ +# if @REPLACE_DPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define dprintf rpl_dprintf +# endif +_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); +# else +# if !@HAVE_DPRINTF@ +_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); +# endif +_GL_CXXALIASWARN (dprintf); +#elif defined GNULIB_POSIXCHECK +# undef dprintf +# if HAVE_RAW_DECL_DPRINTF +_GL_WARN_ON_USE (dprintf, "dprintf is unportable - " + "use gnulib module dprintf for portability"); +# endif +#endif + +#if @GNULIB_FCLOSE@ +/* Close STREAM and its underlying file descriptor. */ +# if @REPLACE_FCLOSE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fclose rpl_fclose +# endif +_GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); +# else +_GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); +# endif +_GL_CXXALIASWARN (fclose); +#elif defined GNULIB_POSIXCHECK +# undef fclose +/* Assume fclose is always declared. */ +_GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " + "use gnulib module fclose for portable POSIX compliance"); +#endif + +#if @GNULIB_FFLUSH@ +/* Flush all pending data on STREAM according to POSIX rules. Both + output and seekable input streams are supported. + Note! LOSS OF DATA can occur if fflush is applied on an input stream + that is _not_seekable_ or on an update stream that is _not_seekable_ + and in which the most recent operation was input. Seekability can + be tested with lseek(fileno(fp),0,SEEK_CUR). */ +# if @REPLACE_FFLUSH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fflush rpl_fflush +# endif +_GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); +_GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); +# else +_GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); +# endif +_GL_CXXALIASWARN (fflush); +#elif defined GNULIB_POSIXCHECK +# undef fflush +/* Assume fflush is always declared. */ +_GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " + "use gnulib module fflush for portable POSIX compliance"); +#endif + +/* It is very rare that the developer ever has full control of stdin, + so any use of gets warrants an unconditional warning. Assume it is + always declared, since it is required by C89. */ +#undef gets +_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + +#if @GNULIB_FOPEN@ +# if @REPLACE_FOPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fopen +# define fopen rpl_fopen +# endif +_GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode)); +# else +_GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode)); +# endif +_GL_CXXALIASWARN (fopen); +#elif defined GNULIB_POSIXCHECK +# undef fopen +/* Assume fopen is always declared. */ +_GL_WARN_ON_USE (fopen, "fopen on Win32 platforms is not POSIX compatible - " + "use gnulib module fopen for portability"); +#endif + +#if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ +# if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ + || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fprintf rpl_fprintf +# endif +# define GNULIB_overrides_fprintf 1 +_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); +# else +_GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); +# endif +_GL_CXXALIASWARN (fprintf); +#endif +#if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_fprintf +# undef fprintf +# endif +/* Assume fprintf is always declared. */ +_GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " + "use gnulib module fprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_FPURGE@ +/* Discard all pending buffered I/O data on STREAM. + STREAM must not be wide-character oriented. + When discarding pending output, the file position is set back to where it + was before the write calls. When discarding pending input, the file + position is advanced to match the end of the previously read input. + Return 0 if successful. Upon error, return -1 and set errno. */ +# if @REPLACE_FPURGE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fpurge rpl_fpurge +# endif +_GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); +# else +# if !@HAVE_DECL_FPURGE@ +_GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); +# endif +_GL_CXXALIASWARN (fpurge); +#elif defined GNULIB_POSIXCHECK +# undef fpurge +# if HAVE_RAW_DECL_FPURGE +_GL_WARN_ON_USE (fpurge, "fpurge is not always present - " + "use gnulib module fpurge for portability"); +# endif +#endif + +#if @GNULIB_FPUTC@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fputc +# define fputc rpl_fputc +# endif +_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); +# else +_GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); +# endif +_GL_CXXALIASWARN (fputc); +#endif + +#if @GNULIB_FPUTS@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fputs +# define fputs rpl_fputs +# endif +_GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream)); +# else +_GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream)); +# endif +_GL_CXXALIASWARN (fputs); +#endif + +#if @GNULIB_FREOPEN@ +# if @REPLACE_FREOPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef freopen +# define freopen rpl_freopen +# endif +_GL_FUNCDECL_RPL (freopen, FILE *, + (const char *filename, const char *mode, FILE *stream) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (freopen, FILE *, + (const char *filename, const char *mode, FILE *stream)); +# else +_GL_CXXALIAS_SYS (freopen, FILE *, + (const char *filename, const char *mode, FILE *stream)); +# endif +_GL_CXXALIASWARN (freopen); +#elif defined GNULIB_POSIXCHECK +# undef freopen +/* Assume freopen is always declared. */ +_GL_WARN_ON_USE (freopen, "freopen on Win32 platforms is not POSIX compatible - " + "use gnulib module freopen for portability"); +#endif + + +/* Set up the following warnings, based on which modules are in use. + GNU Coding Standards discourage the use of fseek, since it imposes + an arbitrary limitation on some 32-bit hosts. Remember that the + fseek module depends on the fseeko module, so we only have three + cases to consider: + + 1. The developer is not using either module. Issue a warning under + GNULIB_POSIXCHECK for both functions, to remind them that both + functions have bugs on some systems. _GL_NO_LARGE_FILES has no + impact on this warning. + + 2. The developer is using both modules. They may be unaware of the + arbitrary limitations of fseek, so issue a warning under + GNULIB_POSIXCHECK. On the other hand, they may be using both + modules intentionally, so the developer can define + _GL_NO_LARGE_FILES in the compilation units where the use of fseek + is safe, to silence the warning. + + 3. The developer is using the fseeko module, but not fseek. Gnulib + guarantees that fseek will still work around platform bugs in that + case, but we presume that the developer is aware of the pitfalls of + fseek and was trying to avoid it, so issue a warning even when + GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be + defined to silence the warning in particular compilation units. + In C++ compilations with GNULIB_NAMESPACE, in order to avoid that + fseek gets defined as a macro, it is recommended that the developer + uses the fseek module, even if he is not calling the fseek function. + + Most gnulib clients that perform stream operations should fall into + category 3. */ + +#if @GNULIB_FSEEK@ +# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES +# define _GL_FSEEK_WARN /* Category 2, above. */ +# undef fseek +# endif +# if @REPLACE_FSEEK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fseek +# define fseek rpl_fseek +# endif +_GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); +# else +_GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); +# endif +_GL_CXXALIASWARN (fseek); +#endif + +#if @GNULIB_FSEEKO@ +# if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES +# define _GL_FSEEK_WARN /* Category 3, above. */ +# undef fseek +# endif +# if @REPLACE_FSEEKO@ +/* Provide fseek, fseeko functions that are aware of a preceding + fflush(), and which detect pipes. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fseeko +# define fseeko rpl_fseeko +# endif +_GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) + _GL_ARG_NONNULL ((1))); +# if !@GNULIB_FSEEK@ + /* In order to avoid that fseek gets defined as a macro here, the + developer can request the 'fseek' module. */ +# undef fseek +# define fseek rpl_fseek +static inline int _GL_ARG_NONNULL ((1)) +rpl_fseek (FILE *fp, long offset, int whence) +{ + return fseeko (fp, offset, whence); +} +# endif +_GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); +# else +_GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); +# endif +_GL_CXXALIASWARN (fseeko); +#elif defined GNULIB_POSIXCHECK +# define _GL_FSEEK_WARN /* Category 1, above. */ +# undef fseek +# undef fseeko +# if HAVE_RAW_DECL_FSEEKO +_GL_WARN_ON_USE (fseeko, "fseeko is unportable - " + "use gnulib module fseeko for portability"); +# endif +#endif + +#ifdef _GL_FSEEK_WARN +# undef _GL_FSEEK_WARN +/* Here, either fseek is undefined (but C89 guarantees that it is + declared), or it is defined as rpl_fseek (declared above). */ +_GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " + "on 32-bit platforms - " + "use fseeko function for handling of large files"); +#endif + + +/* ftell, ftello. See the comments on fseek/fseeko. */ + +#if @GNULIB_FTELL@ +# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES +# define _GL_FTELL_WARN /* Category 2, above. */ +# undef ftell +# endif +# if @REPLACE_FTELL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ftell +# define ftell rpl_ftell +# endif +_GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); +# else +_GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); +# endif +_GL_CXXALIASWARN (ftell); +#endif + +#if @GNULIB_FTELLO@ +# if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES +# define _GL_FTELL_WARN /* Category 3, above. */ +# undef ftell +# endif +# if @REPLACE_FTELLO@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ftello +# define ftello rpl_ftello +# endif +_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); +# if !@GNULIB_FTELL@ + /* In order to avoid that ftell gets defined as a macro here, the + developer can request the 'ftell' module. */ +# undef ftell +# define ftell rpl_ftell +static inline long _GL_ARG_NONNULL ((1)) +rpl_ftell (FILE *f) +{ + return ftello (f); +} +# endif +_GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); +# else +_GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); +# endif +_GL_CXXALIASWARN (ftello); +#elif defined GNULIB_POSIXCHECK +# define _GL_FTELL_WARN /* Category 1, above. */ +# undef ftell +# undef ftello +# if HAVE_RAW_DECL_FTELLO +_GL_WARN_ON_USE (ftello, "ftello is unportable - " + "use gnulib module ftello for portability"); +# endif +#endif + +#ifdef _GL_FTELL_WARN +# undef _GL_FTELL_WARN +/* Here, either ftell is undefined (but C89 guarantees that it is + declared), or it is defined as rpl_ftell (declared above). */ +_GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " + "on 32-bit platforms - " + "use ftello function for handling of large files"); +#endif + + +#if @GNULIB_FWRITE@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fwrite +# define fwrite rpl_fwrite +# endif +_GL_FUNCDECL_RPL (fwrite, size_t, + (const void *ptr, size_t s, size_t n, FILE *stream) + _GL_ARG_NONNULL ((1, 4))); +_GL_CXXALIAS_RPL (fwrite, size_t, + (const void *ptr, size_t s, size_t n, FILE *stream)); +# else +_GL_CXXALIAS_SYS (fwrite, size_t, + (const void *ptr, size_t s, size_t n, FILE *stream)); +# endif +_GL_CXXALIASWARN (fwrite); +#endif + +#if @GNULIB_GETDELIM@ +/* Read input, up to (and including) the next occurrence of DELIMITER, from + STREAM, store it in *LINEPTR (and NUL-terminate it). + *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE + bytes of space. It is realloc'd as necessary. + Return the number of bytes read and stored at *LINEPTR (not including the + NUL terminator), or -1 on error or EOF. */ +# if @REPLACE_GETDELIM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getdelim +# define getdelim rpl_getdelim +# endif +_GL_FUNCDECL_RPL (getdelim, ssize_t, + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream) + _GL_ARG_NONNULL ((1, 2, 4))); +_GL_CXXALIAS_RPL (getdelim, ssize_t, + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream)); +# else +# if !@HAVE_DECL_GETDELIM@ +_GL_FUNCDECL_SYS (getdelim, ssize_t, + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream) + _GL_ARG_NONNULL ((1, 2, 4))); +# endif +_GL_CXXALIAS_SYS (getdelim, ssize_t, + (char **lineptr, size_t *linesize, int delimiter, + FILE *stream)); +# endif +_GL_CXXALIASWARN (getdelim); +#elif defined GNULIB_POSIXCHECK +# undef getdelim +# if HAVE_RAW_DECL_GETDELIM +_GL_WARN_ON_USE (getdelim, "getdelim is unportable - " + "use gnulib module getdelim for portability"); +# endif +#endif + +#if @GNULIB_GETLINE@ +/* Read a line, up to (and including) the next newline, from STREAM, store it + in *LINEPTR (and NUL-terminate it). + *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE + bytes of space. It is realloc'd as necessary. + Return the number of bytes read and stored at *LINEPTR (not including the + NUL terminator), or -1 on error or EOF. */ +# if @REPLACE_GETLINE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getline +# define getline rpl_getline +# endif +_GL_FUNCDECL_RPL (getline, ssize_t, + (char **lineptr, size_t *linesize, FILE *stream) + _GL_ARG_NONNULL ((1, 2, 3))); +_GL_CXXALIAS_RPL (getline, ssize_t, + (char **lineptr, size_t *linesize, FILE *stream)); +# else +# if !@HAVE_DECL_GETLINE@ +_GL_FUNCDECL_SYS (getline, ssize_t, + (char **lineptr, size_t *linesize, FILE *stream) + _GL_ARG_NONNULL ((1, 2, 3))); +# endif +_GL_CXXALIAS_SYS (getline, ssize_t, + (char **lineptr, size_t *linesize, FILE *stream)); +# endif +_GL_CXXALIASWARN (getline); +#elif defined GNULIB_POSIXCHECK +# undef getline +# if HAVE_RAW_DECL_GETLINE +_GL_WARN_ON_USE (getline, "getline is unportable - " + "use gnulib module getline for portability"); +# endif +#endif + +#if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ +struct obstack; +/* Grow an obstack with formatted output. Return the number of + bytes added to OBS. No trailing nul byte is added, and the + object should be closed with obstack_finish before use. Upon + memory allocation error, call obstack_alloc_failed_handler. Upon + other error, return -1. */ +# if @REPLACE_OBSTACK_PRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define obstack_printf rpl_obstack_printf +# endif +_GL_FUNCDECL_RPL (obstack_printf, int, + (struct obstack *obs, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (obstack_printf, int, + (struct obstack *obs, const char *format, ...)); +# else +# if !@HAVE_DECL_OBSTACK_PRINTF@ +_GL_FUNCDECL_SYS (obstack_printf, int, + (struct obstack *obs, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (obstack_printf, int, + (struct obstack *obs, const char *format, ...)); +# endif +_GL_CXXALIASWARN (obstack_printf); +# if @REPLACE_OBSTACK_PRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define obstack_vprintf rpl_obstack_vprintf +# endif +_GL_FUNCDECL_RPL (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args)); +# else +# if !@HAVE_DECL_OBSTACK_PRINTF@ +_GL_FUNCDECL_SYS (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (obstack_vprintf, int, + (struct obstack *obs, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (obstack_vprintf); +#endif + +#if @GNULIB_PERROR@ +/* Print a message to standard error, describing the value of ERRNO, + (if STRING is not NULL and not empty) prefixed with STRING and ": ", + and terminated with a newline. */ +# if @REPLACE_PERROR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define perror rpl_perror +# endif +_GL_FUNCDECL_RPL (perror, void, (const char *string)); +_GL_CXXALIAS_RPL (perror, void, (const char *string)); +# else +_GL_CXXALIAS_SYS (perror, void, (const char *string)); +# endif +_GL_CXXALIASWARN (perror); +#elif defined GNULIB_POSIXCHECK +# undef perror +/* Assume perror is always declared. */ +_GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " + "use gnulib module perror for portability"); +#endif + +#if @GNULIB_POPEN@ +# if @REPLACE_POPEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef popen +# define popen rpl_popen +# endif +_GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); +# else +_GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); +# endif +_GL_CXXALIASWARN (popen); +#elif defined GNULIB_POSIXCHECK +# undef popen +# if HAVE_RAW_DECL_POPEN +_GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " + "use gnulib module popen or pipe for more portability"); +# endif +#endif + +#if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ +# if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ + || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +/* Don't break __attribute__((format(printf,M,N))). */ +# define printf __printf__ +# endif +# define GNULIB_overrides_printf 1 +_GL_FUNCDECL_RPL_1 (__printf__, int, + (const char *format, ...) + __attribute__ ((__format__ (__printf__, 1, 2))) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); +# else +_GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); +# endif +_GL_CXXALIASWARN (printf); +#endif +#if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_printf +# undef printf +# endif +/* Assume printf is always declared. */ +_GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " + "use gnulib module printf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_PUTC@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putc +# define putc rpl_fputc +# endif +_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); +# else +_GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); +# endif +_GL_CXXALIASWARN (putc); +#endif + +#if @GNULIB_PUTCHAR@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putchar +# define putchar rpl_putchar +# endif +_GL_FUNCDECL_RPL (putchar, int, (int c)); +_GL_CXXALIAS_RPL (putchar, int, (int c)); +# else +_GL_CXXALIAS_SYS (putchar, int, (int c)); +# endif +_GL_CXXALIASWARN (putchar); +#endif + +#if @GNULIB_PUTS@ +# if @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef puts +# define puts rpl_puts +# endif +_GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (puts, int, (const char *string)); +# else +_GL_CXXALIAS_SYS (puts, int, (const char *string)); +# endif +_GL_CXXALIASWARN (puts); +#endif + +#if @GNULIB_REMOVE@ +# if @REPLACE_REMOVE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef remove +# define remove rpl_remove +# endif +_GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (remove, int, (const char *name)); +# else +_GL_CXXALIAS_SYS (remove, int, (const char *name)); +# endif +_GL_CXXALIASWARN (remove); +#elif defined GNULIB_POSIXCHECK +# undef remove +/* Assume remove is always declared. */ +_GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " + "use gnulib module remove for more portability"); +#endif + +#if @GNULIB_RENAME@ +# if @REPLACE_RENAME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef rename +# define rename rpl_rename +# endif +_GL_FUNCDECL_RPL (rename, int, + (const char *old_filename, const char *new_filename) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (rename, int, + (const char *old_filename, const char *new_filename)); +# else +_GL_CXXALIAS_SYS (rename, int, + (const char *old_filename, const char *new_filename)); +# endif +_GL_CXXALIASWARN (rename); +#elif defined GNULIB_POSIXCHECK +# undef rename +/* Assume rename is always declared. */ +_GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " + "use gnulib module rename for more portability"); +#endif + +#if @GNULIB_RENAMEAT@ +# if @REPLACE_RENAMEAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef renameat +# define renameat rpl_renameat +# endif +_GL_FUNCDECL_RPL (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2) + _GL_ARG_NONNULL ((2, 4))); +_GL_CXXALIAS_RPL (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2)); +# else +# if !@HAVE_RENAMEAT@ +_GL_FUNCDECL_SYS (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2) + _GL_ARG_NONNULL ((2, 4))); +# endif +_GL_CXXALIAS_SYS (renameat, int, + (int fd1, char const *file1, int fd2, char const *file2)); +# endif +_GL_CXXALIASWARN (renameat); +#elif defined GNULIB_POSIXCHECK +# undef renameat +# if HAVE_RAW_DECL_RENAMEAT +_GL_WARN_ON_USE (renameat, "renameat is not portable - " + "use gnulib module renameat for portability"); +# endif +#endif + +#if @GNULIB_SNPRINTF@ +# if @REPLACE_SNPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define snprintf rpl_snprintf +# endif +_GL_FUNCDECL_RPL (snprintf, int, + (char *str, size_t size, const char *format, ...) + __attribute__ ((__format__ (__printf__, 3, 4))) + _GL_ARG_NONNULL ((3))); +_GL_CXXALIAS_RPL (snprintf, int, + (char *str, size_t size, const char *format, ...)); +# else +# if !@HAVE_DECL_SNPRINTF@ +_GL_FUNCDECL_SYS (snprintf, int, + (char *str, size_t size, const char *format, ...) + __attribute__ ((__format__ (__printf__, 3, 4))) + _GL_ARG_NONNULL ((3))); +# endif +_GL_CXXALIAS_SYS (snprintf, int, + (char *str, size_t size, const char *format, ...)); +# endif +_GL_CXXALIASWARN (snprintf); +#elif defined GNULIB_POSIXCHECK +# undef snprintf +# if HAVE_RAW_DECL_SNPRINTF +_GL_WARN_ON_USE (snprintf, "snprintf is unportable - " + "use gnulib module snprintf for portability"); +# endif +#endif + +/* Some people would argue that sprintf should be handled like gets + (for example, OpenBSD issues a link warning for both functions), + since both can cause security holes due to buffer overruns. + However, we believe that sprintf can be used safely, and is more + efficient than snprintf in those safe cases; and as proof of our + belief, we use sprintf in several gnulib modules. So this header + intentionally avoids adding a warning to sprintf except when + GNULIB_POSIXCHECK is defined. */ + +#if @GNULIB_SPRINTF_POSIX@ +# if @REPLACE_SPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define sprintf rpl_sprintf +# endif +_GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); +# else +_GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...)); +# endif +_GL_CXXALIASWARN (sprintf); +#elif defined GNULIB_POSIXCHECK +# undef sprintf +/* Assume sprintf is always declared. */ +_GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " + "use gnulib module sprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_VASPRINTF@ +/* Write formatted output to a string dynamically allocated with malloc(). + If the memory allocation succeeds, store the address of the string in + *RESULT and return the number of resulting bytes, excluding the trailing + NUL. Upon memory allocation error, or some other error, return -1. */ +# if @REPLACE_VASPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define asprintf rpl_asprintf +# endif +_GL_FUNCDECL_RPL (asprintf, int, + (char **result, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (asprintf, int, + (char **result, const char *format, ...)); +# else +# if !@HAVE_VASPRINTF@ +_GL_FUNCDECL_SYS (asprintf, int, + (char **result, const char *format, ...) + __attribute__ ((__format__ (__printf__, 2, 3))) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (asprintf, int, + (char **result, const char *format, ...)); +# endif +_GL_CXXALIASWARN (asprintf); +# if @REPLACE_VASPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vasprintf rpl_vasprintf +# endif +_GL_FUNCDECL_RPL (vasprintf, int, + (char **result, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (vasprintf, int, + (char **result, const char *format, va_list args)); +# else +# if !@HAVE_VASPRINTF@ +_GL_FUNCDECL_SYS (vasprintf, int, + (char **result, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (vasprintf, int, + (char **result, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (vasprintf); +#endif + +#if @GNULIB_VDPRINTF@ +# if @REPLACE_VDPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vdprintf rpl_vdprintf +# endif +_GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); +# else +# if !@HAVE_VDPRINTF@ +_GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (vdprintf, int, (int fd, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (vdprintf); +#elif defined GNULIB_POSIXCHECK +# undef vdprintf +# if HAVE_RAW_DECL_VDPRINTF +_GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " + "use gnulib module vdprintf for portability"); +# endif +#endif + +#if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ +# if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ + || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vfprintf rpl_vfprintf +# endif +# define GNULIB_overrides_vfprintf 1 +_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); +# else +_GL_CXXALIAS_SYS (vfprintf, int, (FILE *fp, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (vfprintf); +#endif +#if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_vfprintf +# undef vfprintf +# endif +/* Assume vfprintf is always declared. */ +_GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " + "use gnulib module vfprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ +# if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ + || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@) +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vprintf rpl_vprintf +# endif +# define GNULIB_overrides_vprintf 1 +_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 1, 0))) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); +# else +_GL_CXXALIAS_SYS (vprintf, int, (const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (vprintf); +#endif +#if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK +# if !GNULIB_overrides_vprintf +# undef vprintf +# endif +/* Assume vprintf is always declared. */ +_GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " + "use gnulib module vprintf-posix for portable " + "POSIX compliance"); +#endif + +#if @GNULIB_VSNPRINTF@ +# if @REPLACE_VSNPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vsnprintf rpl_vsnprintf +# endif +_GL_FUNCDECL_RPL (vsnprintf, int, + (char *str, size_t size, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 3, 0))) + _GL_ARG_NONNULL ((3))); +_GL_CXXALIAS_RPL (vsnprintf, int, + (char *str, size_t size, const char *format, va_list args)); +# else +# if !@HAVE_DECL_VSNPRINTF@ +_GL_FUNCDECL_SYS (vsnprintf, int, + (char *str, size_t size, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 3, 0))) + _GL_ARG_NONNULL ((3))); +# endif +_GL_CXXALIAS_SYS (vsnprintf, int, + (char *str, size_t size, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (vsnprintf); +#elif defined GNULIB_POSIXCHECK +# undef vsnprintf +# if HAVE_RAW_DECL_VSNPRINTF +_GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " + "use gnulib module vsnprintf for portability"); +# endif +#endif + +#if @GNULIB_VSPRINTF_POSIX@ +# if @REPLACE_VSPRINTF@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define vsprintf rpl_vsprintf +# endif +_GL_FUNCDECL_RPL (vsprintf, int, + (char *str, const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 2, 0))) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (vsprintf, int, + (char *str, const char *format, va_list args)); +# else +_GL_CXXALIAS_SYS (vsprintf, int, + (char *str, const char *format, va_list args)); +# endif +_GL_CXXALIASWARN (vsprintf); +#elif defined GNULIB_POSIXCHECK +# undef vsprintf +/* Assume vsprintf is always declared. */ +_GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " + "use gnulib module vsprintf-posix for portable " + "POSIX compliance"); +#endif + + +#endif /* _GL_STDIO_H */ +#endif /* _GL_STDIO_H */ +#endif diff --git a/gnu/stdlib.in.h b/gnu/stdlib.in.h new file mode 100644 index 0000000000000000000000000000000000000000..9b407752a728cc15b434386077d0e1b0540797aa --- /dev/null +++ b/gnu/stdlib.in.h @@ -0,0 +1,638 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A GNU-like <stdlib.h>. + + Copyright (C) 1995, 2001-2004, 2006-2010 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/>. */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined __need_malloc_and_calloc +/* Special invocation convention inside glibc header files. */ + +#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _GL_STDLIB_H + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ + +#ifndef _GL_STDLIB_H +#define _GL_STDLIB_H + +/* NetBSD 5.0 mis-defines NULL. */ +#include <stddef.h> + +/* Solaris declares getloadavg() in <sys/loadavg.h>. */ +#if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ +# include <sys/loadavg.h> +#endif + +/* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included + from <stdlib.h> if _REENTRANT is defined. Include it always. */ +#if @HAVE_RANDOM_H@ +# include <random.h> +#endif + +#if !@HAVE_STRUCT_RANDOM_DATA@ || (@GNULIB_RANDOM_R@ && !@HAVE_RANDOM_R@) \ + || defined GNULIB_POSIXCHECK +# include <stdint.h> +#endif + +#if !@HAVE_STRUCT_RANDOM_DATA@ +struct random_data +{ + int32_t *fptr; /* Front pointer. */ + int32_t *rptr; /* Rear pointer. */ + int32_t *state; /* Array of state values. */ + int rand_type; /* Type of random number generator. */ + int rand_deg; /* Degree of random number generator. */ + int rand_sep; /* Distance between front and rear. */ + int32_t *end_ptr; /* Pointer behind state table. */ +}; +#endif + +#if (@GNULIB_MKSTEMP@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ +/* On MacOS X 10.3, only <unistd.h> declares mkstemp. */ +/* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */ +/* But avoid namespace pollution on glibc systems. */ +# include <unistd.h> +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Some systems do not define EXIT_*, despite otherwise supporting C89. */ +#ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +#endif +/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere + with proper operation of xargs. */ +#ifndef EXIT_FAILURE +# define EXIT_FAILURE 1 +#elif EXIT_FAILURE != 1 +# undef EXIT_FAILURE +# define EXIT_FAILURE 1 +#endif + + +#if @GNULIB_ATOLL@ +/* Parse a signed decimal integer. + Returns the value of the integer. Errors are not detected. */ +# if !@HAVE_ATOLL@ +_GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (atoll, long long, (const char *string)); +_GL_CXXALIASWARN (atoll); +#elif defined GNULIB_POSIXCHECK +# undef atoll +# if HAVE_RAW_DECL_ATOLL +_GL_WARN_ON_USE (atoll, "atoll is unportable - " + "use gnulib module atoll for portability"); +# endif +#endif + +#if @GNULIB_CALLOC_POSIX@ +# if !@HAVE_CALLOC_POSIX@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef calloc +# define calloc rpl_calloc +# endif +_GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); +_GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); +# else +_GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); +# endif +_GL_CXXALIASWARN (calloc); +#elif defined GNULIB_POSIXCHECK +# undef calloc +/* Assume calloc is always declared. */ +_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " + "use gnulib module calloc-posix for portability"); +#endif + +#if @GNULIB_CANONICALIZE_FILE_NAME@ +# if @REPLACE_CANONICALIZE_FILE_NAME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define canonicalize_file_name rpl_canonicalize_file_name +# endif +_GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); +# else +# if !@HAVE_CANONICALIZE_FILE_NAME@ +_GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); +# endif +_GL_CXXALIASWARN (canonicalize_file_name); +#elif defined GNULIB_POSIXCHECK +# undef canonicalize_file_name +# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME +_GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " + "use gnulib module canonicalize-lgpl for portability"); +# endif +#endif + +#if @GNULIB_GETLOADAVG@ +/* Store max(NELEM,3) load average numbers in LOADAVG[]. + The three numbers are the load average of the last 1 minute, the last 5 + minutes, and the last 15 minutes, respectively. + LOADAVG is an array of NELEM numbers. */ +# if !@HAVE_DECL_GETLOADAVG@ +_GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); +_GL_CXXALIASWARN (getloadavg); +#elif defined GNULIB_POSIXCHECK +# undef getloadavg +# if HAVE_RAW_DECL_GETLOADAVG +_GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " + "use gnulib module getloadavg for portability"); +# endif +#endif + +#if @GNULIB_GETSUBOPT@ +/* Assuming *OPTIONP is a comma separated list of elements of the form + "token" or "token=value", getsubopt parses the first of these elements. + If the first element refers to a "token" that is member of the given + NULL-terminated array of tokens: + - It replaces the comma with a NUL byte, updates *OPTIONP to point past + the first option and the comma, sets *VALUEP to the value of the + element (or NULL if it doesn't contain an "=" sign), + - It returns the index of the "token" in the given array of tokens. + Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. + For more details see the POSIX:2001 specification. + http://www.opengroup.org/susv3xsh/getsubopt.html */ +# if !@HAVE_GETSUBOPT@ +_GL_FUNCDECL_SYS (getsubopt, int, + (char **optionp, char *const *tokens, char **valuep) + _GL_ARG_NONNULL ((1, 2, 3))); +# endif +_GL_CXXALIAS_SYS (getsubopt, int, + (char **optionp, char *const *tokens, char **valuep)); +_GL_CXXALIASWARN (getsubopt); +#elif defined GNULIB_POSIXCHECK +# undef getsubopt +# if HAVE_RAW_DECL_GETSUBOPT +_GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " + "use gnulib module getsubopt for portability"); +# endif +#endif + +#if @GNULIB_MALLOC_POSIX@ +# if !@HAVE_MALLOC_POSIX@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef malloc +# define malloc rpl_malloc +# endif +_GL_FUNCDECL_RPL (malloc, void *, (size_t size)); +_GL_CXXALIAS_RPL (malloc, void *, (size_t size)); +# else +_GL_CXXALIAS_SYS (malloc, void *, (size_t size)); +# endif +_GL_CXXALIASWARN (malloc); +#elif defined GNULIB_POSIXCHECK +# undef malloc +/* Assume malloc is always declared. */ +_GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " + "use gnulib module malloc-posix for portability"); +#endif + +#if @GNULIB_MKDTEMP@ +/* Create a unique temporary directory from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the directory name unique. + Returns TEMPLATE, or a null pointer if it cannot get a unique name. + The directory is created mode 700. */ +# if !@HAVE_MKDTEMP@ +_GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); +_GL_CXXALIASWARN (mkdtemp); +#elif defined GNULIB_POSIXCHECK +# undef mkdtemp +# if HAVE_RAW_DECL_MKDTEMP +_GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " + "use gnulib module mkdtemp for portability"); +# endif +#endif + +#if @GNULIB_MKOSTEMP@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + The file is then created, with the specified flags, ensuring it didn't exist + before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if !@HAVE_MKOSTEMP@ +_GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); +_GL_CXXALIASWARN (mkostemp); +#elif defined GNULIB_POSIXCHECK +# undef mkostemp +# if HAVE_RAW_DECL_MKOSTEMP +_GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " + "use gnulib module mkostemp for portability"); +# endif +#endif + +#if @GNULIB_MKOSTEMPS@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE before a suffix of length + SUFFIXLEN must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + The file is then created, with the specified flags, ensuring it didn't exist + before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if !@HAVE_MKOSTEMPS@ +_GL_FUNCDECL_SYS (mkostemps, int, + (char * /*template*/, int /*suffixlen*/, int /*flags*/) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkostemps, int, + (char * /*template*/, int /*suffixlen*/, int /*flags*/)); +_GL_CXXALIASWARN (mkostemps); +#elif defined GNULIB_POSIXCHECK +# undef mkostemps +# if HAVE_RAW_DECL_MKOSTEMPS +_GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " + "use gnulib module mkostemps for portability"); +# endif +#endif + +#if @GNULIB_MKSTEMP@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The file is then created, ensuring it didn't exist before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if @REPLACE_MKSTEMP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mkstemp rpl_mkstemp +# endif +_GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); +# else +_GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); +# endif +_GL_CXXALIASWARN (mkstemp); +#elif defined GNULIB_POSIXCHECK +# undef mkstemp +# if HAVE_RAW_DECL_MKSTEMP +_GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " + "use gnulib module mkstemp for portability"); +# endif +#endif + +#if @GNULIB_MKSTEMPS@ +/* Create a unique temporary file from TEMPLATE. + The last six characters of TEMPLATE prior to a suffix of length + SUFFIXLEN must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + The file is then created, ensuring it didn't exist before. + The file is created read-write (mask at least 0600 & ~umask), but it may be + world-readable and world-writable (mask 0666 & ~umask), depending on the + implementation. + Returns the open file descriptor if successful, otherwise -1 and errno + set. */ +# if !@HAVE_MKSTEMPS@ +_GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); +_GL_CXXALIASWARN (mkstemps); +#elif defined GNULIB_POSIXCHECK +# undef mkstemps +# if HAVE_RAW_DECL_MKSTEMPS +_GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " + "use gnulib module mkstemps for portability"); +# endif +#endif + +#if @GNULIB_PUTENV@ +# if @REPLACE_PUTENV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef putenv +# define putenv rpl_putenv +# endif +_GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (putenv, int, (char *string)); +# else +_GL_CXXALIAS_SYS (putenv, int, (char *string)); +# endif +_GL_CXXALIASWARN (putenv); +#endif + + +#if @GNULIB_RANDOM_R@ +# if !@HAVE_RANDOM_R@ +# ifndef RAND_MAX +# define RAND_MAX 2147483647 +# endif +# endif +#endif + +#if @GNULIB_RANDOM_R@ +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); +_GL_CXXALIASWARN (random_r); +#elif defined GNULIB_POSIXCHECK +# undef random_r +# if HAVE_RAW_DECL_RANDOM_R +_GL_WARN_ON_USE (random_r, "random_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + +#if @GNULIB_RANDOM_R@ +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (srandom_r, int, + (unsigned int seed, struct random_data *rand_state) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (srandom_r, int, + (unsigned int seed, struct random_data *rand_state)); +_GL_CXXALIASWARN (srandom_r); +#elif defined GNULIB_POSIXCHECK +# undef srandom_r +# if HAVE_RAW_DECL_SRANDOM_R +_GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + +#if @GNULIB_RANDOM_R@ +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state) + _GL_ARG_NONNULL ((2, 4))); +# endif +_GL_CXXALIAS_SYS (initstate_r, int, + (unsigned int seed, char *buf, size_t buf_size, + struct random_data *rand_state)); +_GL_CXXALIASWARN (initstate_r); +#elif defined GNULIB_POSIXCHECK +# undef initstate_r +# if HAVE_RAW_DECL_INITSTATE_R +_GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + +#if @GNULIB_RANDOM_R@ +# if !@HAVE_RANDOM_R@ +_GL_FUNCDECL_SYS (setstate_r, int, + (char *arg_state, struct random_data *rand_state) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (setstate_r, int, + (char *arg_state, struct random_data *rand_state)); +_GL_CXXALIASWARN (setstate_r); +#elif defined GNULIB_POSIXCHECK +# undef setstate_r +# if HAVE_RAW_DECL_SETSTATE_R +_GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " + "use gnulib module random_r for portability"); +# endif +#endif + + +#if @GNULIB_REALLOC_POSIX@ +# if !@HAVE_REALLOC_POSIX@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef realloc +# define realloc rpl_realloc +# endif +_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); +_GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); +# else +_GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); +# endif +_GL_CXXALIASWARN (realloc); +#elif defined GNULIB_POSIXCHECK +# undef realloc +/* Assume realloc is always declared. */ +_GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " + "use gnulib module realloc-posix for portability"); +#endif + +#if @GNULIB_REALPATH@ +# if @REPLACE_REALPATH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define realpath rpl_realpath +# endif +_GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved)); +# else +# if !@HAVE_REALPATH@ +_GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved)); +# endif +_GL_CXXALIASWARN (realpath); +#elif defined GNULIB_POSIXCHECK +# undef realpath +# if HAVE_RAW_DECL_REALPATH +_GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " + "canonicalize or canonicalize-lgpl for portability"); +# endif +#endif + +#if @GNULIB_RPMATCH@ +/* Test a user response to a question. + Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ +# if !@HAVE_RPMATCH@ +_GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); +_GL_CXXALIASWARN (rpmatch); +#elif defined GNULIB_POSIXCHECK +# undef rpmatch +# if HAVE_RAW_DECL_RPMATCH +_GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " + "use gnulib module rpmatch for portability"); +# endif +#endif + +#if @GNULIB_SETENV@ +/* Set NAME to VALUE in the environment. + If REPLACE is nonzero, overwrite an existing value. */ +# if @REPLACE_SETENV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef setenv +# define setenv rpl_setenv +# endif +_GL_FUNCDECL_RPL (setenv, int, + (const char *name, const char *value, int replace) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (setenv, int, + (const char *name, const char *value, int replace)); +# else +# if !@HAVE_SETENV@ +_GL_FUNCDECL_SYS (setenv, int, + (const char *name, const char *value, int replace) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (setenv, int, + (const char *name, const char *value, int replace)); +# endif +_GL_CXXALIASWARN (setenv); +#elif defined GNULIB_POSIXCHECK +# undef setenv +# if HAVE_RAW_DECL_SETENV +_GL_WARN_ON_USE (setenv, "setenv is unportable - " + "use gnulib module setenv for portability"); +# endif +#endif + +#if @GNULIB_STRTOD@ + /* Parse a double from STRING, updating ENDP if appropriate. */ +# if @REPLACE_STRTOD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strtod rpl_strtod +# endif +_GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); +# else +# if !@HAVE_STRTOD@ +_GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp)); +# endif +_GL_CXXALIASWARN (strtod); +#elif defined GNULIB_POSIXCHECK +# undef strtod +# if HAVE_RAW_DECL_STRTOD +_GL_WARN_ON_USE (strtod, "strtod is unportable - " + "use gnulib module strtod for portability"); +# endif +#endif + +#if @GNULIB_STRTOLL@ +/* Parse a signed integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, + it may be decimal or octal (with prefix "0") or hexadecimal (with prefix + "0x"). + If ENDPTR is not NULL, the address of the first byte after the integer is + stored in *ENDPTR. + Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set + to ERANGE. */ +# if !@HAVE_STRTOLL@ +_GL_FUNCDECL_SYS (strtoll, long long, + (const char *string, char **endptr, int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoll, long long, + (const char *string, char **endptr, int base)); +_GL_CXXALIASWARN (strtoll); +#elif defined GNULIB_POSIXCHECK +# undef strtoll +# if HAVE_RAW_DECL_STRTOLL +_GL_WARN_ON_USE (strtoll, "strtoll is unportable - " + "use gnulib module strtoll for portability"); +# endif +#endif + +#if @GNULIB_STRTOULL@ +/* Parse an unsigned integer whose textual representation starts at STRING. + The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, + it may be decimal or octal (with prefix "0") or hexadecimal (with prefix + "0x"). + If ENDPTR is not NULL, the address of the first byte after the integer is + stored in *ENDPTR. + Upon overflow, the return value is ULLONG_MAX, and errno is set to + ERANGE. */ +# if !@HAVE_STRTOULL@ +_GL_FUNCDECL_SYS (strtoull, unsigned long long, + (const char *string, char **endptr, int base) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strtoull, unsigned long long, + (const char *string, char **endptr, int base)); +_GL_CXXALIASWARN (strtoull); +#elif defined GNULIB_POSIXCHECK +# undef strtoull +# if HAVE_RAW_DECL_STRTOULL +_GL_WARN_ON_USE (strtoull, "strtoull is unportable - " + "use gnulib module strtoull for portability"); +# endif +#endif + +#if @GNULIB_UNSETENV@ +/* Remove the variable NAME from the environment. */ +# if @REPLACE_UNSETENV@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unsetenv +# define unsetenv rpl_unsetenv +# endif +_GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); +# else +# if !@HAVE_UNSETENV@ +_GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); +# endif +_GL_CXXALIASWARN (unsetenv); +#elif defined GNULIB_POSIXCHECK +# undef unsetenv +# if HAVE_RAW_DECL_UNSETENV +_GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " + "use gnulib module unsetenv for portability"); +# endif +#endif + + +#endif /* _GL_STDLIB_H */ +#endif /* _GL_STDLIB_H */ +#endif diff --git a/lib/stpcpy.c b/gnu/stpcpy.c similarity index 87% rename from lib/stpcpy.c rename to gnu/stpcpy.c index 1e70013382e8aef981d952bfaf954085e946f0a3..cd7fad0355f44730242c08301df597b0b3ec9380 100644 --- a/lib/stpcpy.c +++ b/gnu/stpcpy.c @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* stpcpy.c -- copy a string and return pointer to end of new string - Copyright (C) 1992, 1995, 1997-1998, 2006 Free Software Foundation, Inc. + Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2010 Free Software + Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. diff --git a/lib/strcasecmp.c b/gnu/strcasecmp.c similarity index 95% rename from lib/strcasecmp.c rename to gnu/strcasecmp.c index 82270acc9632e1e3c1babb9c0ea468cd28d8f1cd..d9547142bf6710dc35593ae836b3206d25decaea 100644 --- a/lib/strcasecmp.c +++ b/gnu/strcasecmp.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007, 2009-2010 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 @@ -48,7 +48,7 @@ strcasecmp (const char *s1, const char *s2) c2 = TOLOWER (*p2); if (c1 == '\0') - break; + break; ++p1; ++p2; diff --git a/lib/strchrnul.c b/gnu/strchrnul.c similarity index 97% rename from lib/strchrnul.c rename to gnu/strchrnul.c index 5ed237c3e0f415ea7139f59e66e157e562d27352..eb431da4b8c71887e2d6c6674c3afce7229831b9 100644 --- a/lib/strchrnul.c +++ b/gnu/strchrnul.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Searching in a string. - Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2003, 2007, 2008, 2009, 2010 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 diff --git a/lib/strchrnul.valgrind b/gnu/strchrnul.valgrind similarity index 100% rename from lib/strchrnul.valgrind rename to gnu/strchrnul.valgrind diff --git a/lib/strdup.c b/gnu/strdup.c similarity index 96% rename from lib/strdup.c rename to gnu/strdup.c index faa2aeee8e839a6daecbb34fec8730c424fd1d38..223ac7f583390824792ce3bb22a4f5b2fe0d2fb4 100644 --- a/lib/strdup.c +++ b/gnu/strdup.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006, 2007 Free - Software Foundation, Inc. +/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006, 2007, 2009, + 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/lib/streq.h b/gnu/streq.h similarity index 98% rename from lib/streq.h rename to gnu/streq.h index e3b0c3f80338807ad108f8bea4c7b2186767df3e..97ebcbe0e91668ac2763d7d1a4fc9ff46331477c 100644 --- a/lib/streq.h +++ b/gnu/streq.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Optimized string comparison. - Copyright (C) 2001-2002, 2007 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2007, 2009-2010 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 diff --git a/lib/strerror.c b/gnu/strerror.c similarity index 94% rename from lib/strerror.c rename to gnu/strerror.c index 798d854005e99f46b0b8800f0ee654f04d4ac37e..26ef483e4b3288fc09a9422eca81529ecaf6cd73 100644 --- a/lib/strerror.c +++ b/gnu/strerror.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* strerror.c --- POSIX compatible system error routine - Copyright (C) 2007-2009 Free Software Foundation, Inc. + Copyright (C) 2007-2010 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 @@ -313,7 +315,13 @@ rpl_strerror (int n) break; # endif -# if GNULIB_defined_ +# if GNULIB_defined_ESTALE + case ESTALE: + msg = "Stale NFS file handle"; + break; +# endif + +# if GNULIB_defined_ECANCELED case ECANCELED: msg = "Operation canceled"; break; @@ -328,10 +336,10 @@ rpl_strerror (int n) if (result == NULL || result[0] == '\0') { - static char const fmt[] = "Unknown error (%d)"; - static char msg_buf[sizeof fmt + INT_STRLEN_BOUND (n)]; - sprintf (msg_buf, fmt, n); - return msg_buf; + static char const fmt[] = "Unknown error (%d)"; + static char msg_buf[sizeof fmt + INT_STRLEN_BOUND (n)]; + sprintf (msg_buf, fmt, n); + return msg_buf; } return result; diff --git a/gnu/string.in.h b/gnu/string.in.h new file mode 100644 index 0000000000000000000000000000000000000000..8b414ad84a3b93d6b552861a9be2ef2c7f8ae174 --- /dev/null +++ b/gnu/string.in.h @@ -0,0 +1,831 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A GNU-like <string.h>. + + Copyright (C) 1995-1996, 2001-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _GL_STRING_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_STRING_H@ + +#ifndef _GL_STRING_H +#define _GL_STRING_H + +/* NetBSD 5.0 mis-defines NULL. */ +#include <stddef.h> + +/* MirBSD defines mbslen as a macro. */ +#if @GNULIB_MBSLEN@ && defined __MirBSD__ +# include <wchar.h> +#endif + +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) +# define __attribute__(Spec) /* empty */ +# endif +/* The attribute __pure__ was added in gcc 2.96. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) +# define __pure__ /* empty */ +# endif +#endif + + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Return the first instance of C within N bytes of S, or NULL. */ +#if @GNULIB_MEMCHR@ +# if @REPLACE_MEMCHR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define memchr rpl_memchr +# endif +_GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) + __attribute__ ((__pure__)) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); +# else +# if defined __SUNPRO_CC + /* This compiler defines an overloaded function + extern "C" { const void * std::memchr (const void *, int, size_t); } + extern "C++" { inline void * std::memchr (void *, int, size_t); } + and diagnoses an error + "Error: Could not find a match for std::memchr(const void*, int, unsigned)" + */ +_GL_CXXALIAS_SYS_CAST2 (memchr, + void *, (void const *__s, int __c, size_t __n), + void const *, (void const *__s, int __c, size_t __n)); +# else +_GL_CXXALIAS_SYS (memchr, void *, (void const *__s, int __c, size_t __n)); +# endif +# endif +_GL_CXXALIASWARN (memchr); +#elif defined GNULIB_POSIXCHECK +# undef memchr +/* Assume memchr is always declared. */ +_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " + "use gnulib module memchr for portability" ); +#endif + +/* Return the first occurrence of NEEDLE in HAYSTACK. */ +#if @GNULIB_MEMMEM@ +# if @REPLACE_MEMMEM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define memmem rpl_memmem +# endif +_GL_FUNCDECL_RPL (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len) + __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 3))); +_GL_CXXALIAS_RPL (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len)); +# else +# if ! @HAVE_DECL_MEMMEM@ +_GL_FUNCDECL_SYS (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len) + __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 3))); +# endif +_GL_CXXALIAS_SYS (memmem, void *, + (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len)); +# endif +_GL_CXXALIASWARN (memmem); +#elif defined GNULIB_POSIXCHECK +# undef memmem +# if HAVE_RAW_DECL_MEMMEM +_GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " + "use gnulib module memmem-simple for portability, " + "and module memmem for speed" ); +# endif +#endif + +/* Copy N bytes of SRC to DEST, return pointer to bytes after the + last written byte. */ +#if @GNULIB_MEMPCPY@ +# if ! @HAVE_MEMPCPY@ +_GL_FUNCDECL_SYS (mempcpy, void *, + (void *restrict __dest, void const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (mempcpy, void *, + (void *restrict __dest, void const *restrict __src, + size_t __n)); +_GL_CXXALIASWARN (mempcpy); +#elif defined GNULIB_POSIXCHECK +# undef mempcpy +# if HAVE_RAW_DECL_MEMPCPY +_GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " + "use gnulib module mempcpy for portability"); +# endif +#endif + +/* Search backwards through a block for a byte (specified as an int). */ +#if @GNULIB_MEMRCHR@ +# if ! @HAVE_DECL_MEMRCHR@ +_GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) + __attribute__ ((__pure__)) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (memrchr, void *, (void const *, int, size_t)); +_GL_CXXALIASWARN (memrchr); +#elif defined GNULIB_POSIXCHECK +# undef memrchr +# if HAVE_RAW_DECL_MEMRCHR +_GL_WARN_ON_USE (memrchr, "memrchr is unportable - " + "use gnulib module memrchr for portability"); +# endif +#endif + +/* Find the first occurrence of C in S. More efficient than + memchr(S,C,N), at the expense of undefined behavior if C does not + occur within N bytes. */ +#if @GNULIB_RAWMEMCHR@ +# if ! @HAVE_RAWMEMCHR@ +_GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) + __attribute__ ((__pure__)) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (rawmemchr, void *, (void const *__s, int __c_in)); +_GL_CXXALIASWARN (rawmemchr); +#elif defined GNULIB_POSIXCHECK +# undef rawmemchr +# if HAVE_RAW_DECL_RAWMEMCHR +_GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " + "use gnulib module rawmemchr for portability"); +# endif +#endif + +/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ +#if @GNULIB_STPCPY@ +# if ! @HAVE_STPCPY@ +_GL_FUNCDECL_SYS (stpcpy, char *, + (char *restrict __dst, char const *restrict __src) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (stpcpy, char *, + (char *restrict __dst, char const *restrict __src)); +_GL_CXXALIASWARN (stpcpy); +#elif defined GNULIB_POSIXCHECK +# undef stpcpy +# if HAVE_RAW_DECL_STPCPY +_GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " + "use gnulib module stpcpy for portability"); +# endif +#endif + +/* Copy no more than N bytes of SRC to DST, returning a pointer past the + last non-NUL byte written into DST. */ +#if @GNULIB_STPNCPY@ +# if ! @HAVE_STPNCPY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define stpncpy rpl_stpncpy +# endif +_GL_FUNCDECL_RPL (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n)); +# else +_GL_CXXALIAS_SYS (stpncpy, char *, + (char *restrict __dst, char const *restrict __src, + size_t __n)); +# endif +_GL_CXXALIASWARN (stpncpy); +#elif defined GNULIB_POSIXCHECK +# undef stpncpy +# if HAVE_RAW_DECL_STPNCPY +_GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " + "use gnulib module stpncpy for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strchr +/* Assume strchr is always declared. */ +_GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbschr if you care about internationalization"); +#endif + +/* Find the first occurrence of C in S or the final NUL byte. */ +#if @GNULIB_STRCHRNUL@ +# if ! @HAVE_STRCHRNUL@ +_GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) + __attribute__ ((__pure__)) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strchrnul, char *, (char const *__s, int __c_in)); +_GL_CXXALIASWARN (strchrnul); +#elif defined GNULIB_POSIXCHECK +# undef strchrnul +# if HAVE_RAW_DECL_STRCHRNUL +_GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " + "use gnulib module strchrnul for portability"); +# endif +#endif + +/* Duplicate S, returning an identical malloc'd string. */ +#if @GNULIB_STRDUP@ +# if @REPLACE_STRDUP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strdup +# define strdup rpl_strdup +# endif +_GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); +# else +# if !(@HAVE_DECL_STRDUP@ || defined strdup) +_GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); +# endif +_GL_CXXALIASWARN (strdup); +#elif defined GNULIB_POSIXCHECK +# undef strdup +# if HAVE_RAW_DECL_STRDUP +_GL_WARN_ON_USE (strdup, "strdup is unportable - " + "use gnulib module strdup for portability"); +# endif +#endif + +/* Return a newly allocated copy of at most N bytes of STRING. */ +#if @GNULIB_STRNDUP@ +# if @REPLACE_STRNDUP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strndup +# define strndup rpl_strndup +# endif +_GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); +# else +# if ! @HAVE_DECL_STRNDUP@ +_GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n)); +# endif +_GL_CXXALIASWARN (strndup); +#elif defined GNULIB_POSIXCHECK +# undef strndup +# if HAVE_RAW_DECL_STRNDUP +_GL_WARN_ON_USE (strndup, "strndup is unportable - " + "use gnulib module strndup for portability"); +# endif +#endif + +/* Find the length (number of bytes) of STRING, but scan at most + MAXLEN bytes. If no '\0' terminator is found in that many bytes, + return MAXLEN. */ +#if @GNULIB_STRNLEN@ +# if ! @HAVE_DECL_STRNLEN@ +_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) + __attribute__ ((__pure__)) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)); +_GL_CXXALIASWARN (strnlen); +#elif defined GNULIB_POSIXCHECK +# undef strnlen +# if HAVE_RAW_DECL_STRNLEN +_GL_WARN_ON_USE (strnlen, "strnlen is unportable - " + "use gnulib module strnlen for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strcspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strcspn +/* Assume strcspn is always declared. */ +_GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " + "in multibyte locales - " + "use mbscspn if you care about internationalization"); +#endif + +/* Find the first occurrence in S of any character in ACCEPT. */ +#if @GNULIB_STRPBRK@ +# if ! @HAVE_STRPBRK@ +_GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) + __attribute__ ((__pure__)) + _GL_ARG_NONNULL ((1, 2))); +# endif +# if defined __SUNPRO_CC + /* This compiler defines an overloaded function + extern "C" { const char * strpbrk (const char *, const char *); } + extern "C++" { inline char * strpbrk (char *, const char *); } + and diagnoses an error + "Error: Could not find a match for std::strpbrk(const char*, const char*)" + */ +_GL_CXXALIAS_SYS_CAST2 (strpbrk, + char *, (char const *__s, char const *__accept), + const char *, (char const *__s, char const *__accept)); +# else +_GL_CXXALIAS_SYS (strpbrk, char *, (char const *__s, char const *__accept)); +# endif +_GL_CXXALIASWARN (strpbrk); +# if defined GNULIB_POSIXCHECK +/* strpbrk() assumes the second argument is a list of single-byte characters. + Even in this simple case, it does not work with multibyte strings if the + locale encoding is GB18030 and one of the characters to be searched is a + digit. */ +# undef strpbrk +_GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " + "in multibyte locales - " + "use mbspbrk if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strpbrk +# if HAVE_RAW_DECL_STRPBRK +_GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " + "use gnulib module strpbrk for portability"); +# endif +#endif + +#if defined GNULIB_POSIXCHECK +/* strspn() assumes the second argument is a list of single-byte characters. + Even in this simple case, it cannot work with multibyte strings. */ +# undef strspn +/* Assume strspn is always declared. */ +_GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " + "in multibyte locales - " + "use mbsspn if you care about internationalization"); +#endif + +#if defined GNULIB_POSIXCHECK +/* strrchr() does not work with multibyte strings if the locale encoding is + GB18030 and the character to be searched is a digit. */ +# undef strrchr +/* Assume strrchr is always declared. */ +_GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " + "in some multibyte locales - " + "use mbsrchr if you care about internationalization"); +#endif + +/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP + to point to the next char after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of strtok() that is multithread-safe and supports + empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strtok_r(). */ +#if @GNULIB_STRSEP@ +# if ! @HAVE_STRSEP@ +_GL_FUNCDECL_SYS (strsep, char *, + (char **restrict __stringp, char const *restrict __delim) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (strsep, char *, + (char **restrict __stringp, char const *restrict __delim)); +_GL_CXXALIASWARN (strsep); +# if defined GNULIB_POSIXCHECK +# undef strsep +_GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " + "in multibyte locales - " + "use mbssep if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strsep +# if HAVE_RAW_DECL_STRSEP +_GL_WARN_ON_USE (strsep, "strsep is unportable - " + "use gnulib module strsep for portability"); +# endif +#endif + +#if @GNULIB_STRSTR@ +# if @REPLACE_STRSTR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strstr rpl_strstr +# endif +_GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) + __attribute__ ((__pure__)) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); +# else +_GL_CXXALIAS_SYS (strstr, char *, (const char *haystack, const char *needle)); +# endif +_GL_CXXALIASWARN (strstr); +#elif defined GNULIB_POSIXCHECK +/* strstr() does not work with multibyte strings if the locale encoding is + different from UTF-8: + POSIX says that it operates on "strings", and "string" in POSIX is defined + as a sequence of bytes, not of characters. */ +# undef strstr +/* Assume strstr is always declared. */ +_GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " + "work correctly on character strings in most " + "multibyte locales - " + "use mbsstr if you care about internationalization, " + "or use strstr if you care about speed"); +#endif + +/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive + comparison. */ +#if @GNULIB_STRCASESTR@ +# if @REPLACE_STRCASESTR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strcasestr rpl_strcasestr +# endif +_GL_FUNCDECL_RPL (strcasestr, char *, + (const char *haystack, const char *needle) + __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (strcasestr, char *, + (const char *haystack, const char *needle)); +# else +# if ! @HAVE_STRCASESTR@ +_GL_FUNCDECL_SYS (strcasestr, char *, + (const char *haystack, const char *needle) + __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (strcasestr, char *, + (const char *haystack, const char *needle)); +# endif +_GL_CXXALIASWARN (strcasestr); +#elif defined GNULIB_POSIXCHECK +/* strcasestr() does not work with multibyte strings: + It is a glibc extension, and glibc implements it only for unibyte + locales. */ +# undef strcasestr +# if HAVE_RAW_DECL_STRCASESTR +_GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " + "strings in multibyte locales - " + "use mbscasestr if you care about " + "internationalization, or use c-strcasestr if you want " + "a locale independent function"); +# endif +#endif + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + This is a variant of strtok() that is multithread-safe. + + For the POSIX documentation for this function, see: + http://www.opengroup.org/susv3xsh/strtok.html + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strsep(). */ +#if @GNULIB_STRTOK_R@ +# if @REPLACE_STRTOK_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strtok_r +# define strtok_r rpl_strtok_r +# endif +_GL_FUNCDECL_RPL (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr)); +# else +# if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK +# undef strtok_r +# endif +# if ! @HAVE_DECL_STRTOK_R@ +_GL_FUNCDECL_SYS (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr) + _GL_ARG_NONNULL ((2, 3))); +# endif +_GL_CXXALIAS_SYS (strtok_r, char *, + (char *restrict s, char const *restrict delim, + char **restrict save_ptr)); +# endif +_GL_CXXALIASWARN (strtok_r); +# if defined GNULIB_POSIXCHECK +_GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " + "strings in multibyte locales - " + "use mbstok_r if you care about internationalization"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef strtok_r +# if HAVE_RAW_DECL_STRTOK_R +_GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " + "use gnulib module strtok_r for portability"); +# endif +#endif + + +/* The following functions are not specified by POSIX. They are gnulib + extensions. */ + +#if @GNULIB_MBSLEN@ +/* Return the number of multibyte characters in the character string STRING. + This considers multibyte characters, unlike strlen, which counts bytes. */ +# ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ +# undef mbslen +# endif +# if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbslen rpl_mbslen +# endif +_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); +# else +_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); +# endif +_GL_CXXALIASWARN (mbslen); +#endif + +#if @GNULIB_MBSNLEN@ +/* Return the number of multibyte characters in the character string starting + at STRING and ending at STRING + LEN. */ +_GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) + _GL_ARG_NONNULL ((1)); +#endif + +#if @GNULIB_MBSCHR@ +/* Locate the first single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# if defined __hpux +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbschr rpl_mbschr /* avoid collision with HP-UX function */ +# endif +_GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); +# else +_GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); +# endif +_GL_CXXALIASWARN (mbschr); +#endif + +#if @GNULIB_MBSRCHR@ +/* Locate the last single-byte character C in the character string STRING, + and return a pointer to it. Return NULL if C is not found in STRING. + Unlike strrchr(), this function works correctly in multibyte locales with + encodings such as GB18030. */ +# if defined __hpux +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */ +# endif +_GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); +# else +_GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); +# endif +_GL_CXXALIASWARN (mbsrchr); +#endif + +#if @GNULIB_MBSSTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. + Unlike strstr(), this function works correctly in multibyte locales with + encodings different from UTF-8. */ +_GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCASECMP@ +/* Compare the character strings S1 and S2, ignoring case, returning less than, + equal to or greater than zero if S1 is lexicographically less than, equal to + or greater than S2. + Note: This function may, in multibyte locales, return 0 for strings of + different lengths! + Unlike strcasecmp(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSNCASECMP@ +/* Compare the initial segment of the character string S1 consisting of at most + N characters with the initial segment of the character string S2 consisting + of at most N characters, ignoring case, returning less than, equal to or + greater than zero if the initial segment of S1 is lexicographically less + than, equal to or greater than the initial segment of S2. + Note: This function may, in multibyte locales, return 0 for initial segments + of different lengths! + Unlike strncasecmp(), this function works correctly in multibyte locales. + But beware that N is not a byte count but a character count! */ +_GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSPCASECMP@ +/* Compare the initial segment of the character string STRING consisting of + at most mbslen (PREFIX) characters with the character string PREFIX, + ignoring case, returning less than, equal to or greater than zero if this + initial segment is lexicographically less than, equal to or greater than + PREFIX. + Note: This function may, in multibyte locales, return 0 if STRING is of + smaller length than PREFIX! + Unlike strncasecmp(), this function works correctly in multibyte + locales. */ +_GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCASESTR@ +/* Find the first occurrence of the character string NEEDLE in the character + string HAYSTACK, using case-insensitive comparison. + Note: This function may, in multibyte locales, return success even if + strlen (haystack) < strlen (needle) ! + Unlike strcasestr(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSCSPN@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strcspn(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSPBRK@ +/* Find the first occurrence in the character string STRING of any character + in the character string ACCEPT. Return the pointer to it, or NULL if none + exists. + Unlike strpbrk(), this function works correctly in multibyte locales. */ +# if defined __hpux +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ +# endif +_GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); +# else +_GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); +# endif +_GL_CXXALIASWARN (mbspbrk); +#endif + +#if @GNULIB_MBSSPN@ +/* Find the first occurrence in the character string STRING of any character + not in the character string REJECT. Return the number of bytes from the + beginning of the string to this occurrence, or to the end of the string + if none exists. + Unlike strspn(), this function works correctly in multibyte locales. */ +_GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSSEP@ +/* Search the next delimiter (multibyte character listed in the character + string DELIM) starting at the character string *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP to point + to the next multibyte character after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of mbstok_r() that supports empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbstok_r(). */ +_GL_EXTERN_C char * mbssep (char **stringp, const char *delim) + _GL_ARG_NONNULL ((1, 2)); +#endif + +#if @GNULIB_MBSTOK_R@ +/* Parse the character string STRING into tokens separated by characters in + the character string DELIM. + If STRING is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = mbstok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + + See also mbssep(). */ +_GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) + _GL_ARG_NONNULL ((2, 3)); +#endif + +/* Map any int, typically from errno, into an error message. */ +#if @GNULIB_STRERROR@ +# if @REPLACE_STRERROR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strerror +# define strerror rpl_strerror +# endif +_GL_FUNCDECL_RPL (strerror, char *, (int)); +_GL_CXXALIAS_RPL (strerror, char *, (int)); +# else +_GL_CXXALIAS_SYS (strerror, char *, (int)); +# endif +_GL_CXXALIASWARN (strerror); +#elif defined GNULIB_POSIXCHECK +# undef strerror +/* Assume strerror is always declared. */ +_GL_WARN_ON_USE (strerror, "strerror is unportable - " + "use gnulib module strerror to guarantee non-NULL result"); +#endif + +#if @GNULIB_STRSIGNAL@ +# if @REPLACE_STRSIGNAL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define strsignal rpl_strsignal +# endif +_GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); +_GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); +# else +# if ! @HAVE_DECL_STRSIGNAL@ +_GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); +# endif +/* Need to cast, because on Cygwin 1.5.x systems, the return type is + 'const char *'. */ +_GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); +# endif +_GL_CXXALIASWARN (strsignal); +#elif defined GNULIB_POSIXCHECK +# undef strsignal +# if HAVE_RAW_DECL_STRSIGNAL +_GL_WARN_ON_USE (strsignal, "strsignal is unportable - " + "use gnulib module strsignal for portability"); +# endif +#endif + +#if @GNULIB_STRVERSCMP@ +# if !@HAVE_STRVERSCMP@ +_GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); +_GL_CXXALIASWARN (strverscmp); +#elif defined GNULIB_POSIXCHECK +# undef strverscmp +# if HAVE_RAW_DECL_STRVERSCMP +_GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " + "use gnulib module strverscmp for portability"); +# endif +#endif + + +#endif /* _GL_STRING_H */ +#endif /* _GL_STRING_H */ diff --git a/lib/strings.in.h b/gnu/strings.in.h similarity index 67% rename from lib/strings.in.h rename to gnu/strings.in.h index 33070df0a3ae01f4a01bdaa785bf411d32334ad3..e1d772556d6245c22f8178f7d75f91f9fce5fab4 100644 --- a/lib/strings.in.h +++ b/gnu/strings.in.h @@ -2,7 +2,7 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A substitute <strings.h>. - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2010 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 @@ -31,8 +31,9 @@ #define _GL_STRINGS_H -/* The definition of GL_LINK_WARNING is copied here. */ +/* The definition of _GL_ARG_NONNULL is copied here. */ +/* The definition of _GL_WARN_ON_USE is copied here. */ #ifdef __cplusplus extern "C" { @@ -44,21 +45,22 @@ extern "C" { than S2. Note: This function does not work in multibyte locales. */ #if ! @HAVE_STRCASECMP@ -extern int strcasecmp (char const *s1, char const *s2); +extern int strcasecmp (char const *s1, char const *s2) + _GL_ARG_NONNULL ((1, 2)); #endif #if defined GNULIB_POSIXCHECK /* strcasecmp() does not work with multibyte strings: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strcasecmp -# define strcasecmp(a,b) \ - (GL_LINK_WARNING ("strcasecmp cannot work correctly on character strings " \ - "in multibyte locales - " \ - "use mbscasecmp if you care about " \ - "internationalization, or use c_strcasecmp (from " \ - "gnulib module c-strcase) if you want a locale " \ - "independent function"), \ - strcasecmp (a, b)) +# if HAVE_RAW_DECL_STRCASECMP +_GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character " + "strings in multibyte locales - " + "use mbscasecmp if you care about " + "internationalization, or use c_strcasecmp , " + "gnulib module c-strcase) if you want a locale " + "independent function"); +# endif #endif /* Compare no more than N bytes of strings S1 and S2, ignoring case, @@ -66,21 +68,22 @@ extern int strcasecmp (char const *s1, char const *s2); lexicographically less than, equal to or greater than S2. Note: This function cannot work correctly in multibyte locales. */ #if ! @HAVE_DECL_STRNCASECMP@ -extern int strncasecmp (char const *s1, char const *s2, size_t n); +extern int strncasecmp (char const *s1, char const *s2, size_t n) + _GL_ARG_NONNULL ((1, 2)); #endif #if defined GNULIB_POSIXCHECK /* strncasecmp() does not work with multibyte strings: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strncasecmp -# define strncasecmp(a,b,n) \ - (GL_LINK_WARNING ("strncasecmp cannot work correctly on character " \ - "strings in multibyte locales - " \ - "use mbsncasecmp or mbspcasecmp if you care about " \ - "internationalization, or use c_strncasecmp (from " \ - "gnulib module c-strcase) if you want a locale " \ - "independent function"), \ - strncasecmp (a, b, n)) +# if HAVE_RAW_DECL_STRNCASECMP +_GL_WARN_ON_USE (strncasecmp, "strncasecmp cannot work correctly on character " + "strings in multibyte locales - " + "use mbsncasecmp or mbspcasecmp if you care about " + "internationalization, or use c_strncasecmp , " + "gnulib module c-strcase) if you want a locale " + "independent function"); +# endif #endif diff --git a/lib/stripslash.c b/gnu/stripslash.c similarity index 89% rename from lib/stripslash.c rename to gnu/stripslash.c index 40844102ff4460df6b402991c3cffb53f50d935f..c52a910b8694ab9e14a346ff8ee7e121e28acab2 100644 --- a/lib/stripslash.c +++ b/gnu/stripslash.c @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* stripslash.c -- remove redundant trailing slashes from a file name - Copyright (C) 1990, 2001, 2003-2006 Free Software Foundation, Inc. + Copyright (C) 1990, 2001, 2003-2006, 2009-2010 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 diff --git a/lib/strncasecmp.c b/gnu/strncasecmp.c similarity index 95% rename from lib/strncasecmp.c rename to gnu/strncasecmp.c index c26b75e33b43ecb803949287b4d6f18d741f1f8c..c0972ab96416ced989620c35ac00d55ab9a6dc99 100644 --- a/lib/strncasecmp.c +++ b/gnu/strncasecmp.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* strncasecmp.c -- case insensitive string comparator - Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007, 2009-2010 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 @@ -48,7 +48,7 @@ strncasecmp (const char *s1, const char *s2, size_t n) c2 = TOLOWER (*p2); if (--n == 0 || c1 == '\0') - break; + break; ++p1; ++p2; diff --git a/lib/strndup.c b/gnu/strndup.c similarity index 95% rename from lib/strndup.c rename to gnu/strndup.c index 239c625abac96fb9b971ced075b7fd8bf53942f1..a7e03efb19162c2b0ce9b64c7d3ac5d7d49636ff 100644 --- a/lib/strndup.c +++ b/gnu/strndup.c @@ -2,8 +2,8 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A replacement function, for systems that lack strndup. - Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007 - Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007, 2009, + 2010 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 diff --git a/lib/strnlen.c b/gnu/strnlen.c similarity index 94% rename from lib/strnlen.c rename to gnu/strnlen.c index dec95876bc45fbcae1d6b8a43a4fd8bf0066d3ec..2455d5c1afcb1acad3f7b689351baeedcc4f0657 100644 --- a/lib/strnlen.c +++ b/gnu/strnlen.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify diff --git a/lib/strnlen1.c b/gnu/strnlen1.c similarity index 88% rename from lib/strnlen1.c rename to gnu/strnlen1.c index 752d4fe8fdd7634b0d3e6f648c431bfe40c3d58e..c0fa0625f3214d2b4cdb05d0df1692246800e25e 100644 --- a/lib/strnlen1.c +++ b/gnu/strnlen1.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005-2006 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 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 diff --git a/lib/strnlen1.h b/gnu/strnlen1.h similarity index 88% rename from lib/strnlen1.h rename to gnu/strnlen1.h index c0ea357046b600e441a46276d6737132fa1ab79d..df1ea80af85b4cb9ac8d43a002cc99cb28508227 100644 --- a/lib/strnlen1.h +++ b/gnu/strnlen1.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2009, 2010 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 diff --git a/lib/strtoimax.c b/gnu/strtoimax.c similarity index 89% rename from lib/strtoimax.c rename to gnu/strtoimax.c index ab9bcff3c70705332f0ae62a3cce03c3ac640972..bbdb9c612d8720686c72d7e3b4c0c59c8932dd3e 100644 --- a/lib/strtoimax.c +++ b/gnu/strtoimax.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert string representation of a number into an intmax_t value. - Copyright (C) 1999, 2001, 2002, 2003, 2004, 2006 Free Software + Copyright (C) 1999, 2001, 2002, 2003, 2004, 2006, 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -63,7 +65,7 @@ strtoimax (char const *ptr, char **endptr, int base) { #if Have_long_long verify (sizeof (Int) == sizeof (Unsigned long int) - || sizeof (Int) == sizeof (Unsigned long long int)); + || sizeof (Int) == sizeof (Unsigned long long int)); if (sizeof (Int) != sizeof (Unsigned long int)) return strtoll (ptr, endptr, base); diff --git a/lib/strtol.c b/gnu/strtol.c similarity index 85% rename from lib/strtol.c rename to gnu/strtol.c index 0b2c82a01cffc4d61a3423c230a648e4f55d72c3..7e3519d605c90e83a35bcc8bdf951b6fb7836cac 100644 --- a/lib/strtol.c +++ b/gnu/strtol.c @@ -1,8 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert string representation of a number into an integer value. Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005, - 2006, 2007 - Free Software Foundation, Inc. + 2006, 2007, 2009, 2010 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. @@ -139,14 +140,14 @@ your host. */ # define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ - : TYPE_SIGNED_MAGNITUDE (t) \ - ? ~ (t) 0 \ - : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) + ? (t) 0 \ + : TYPE_SIGNED_MAGNITUDE (t) \ + ? ~ (t) 0 \ + : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) # define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) + ? (t) -1 \ + : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) # ifndef ULONG_LONG_MAX # define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long) @@ -238,7 +239,7 @@ INT INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, - int base, int group LOCALE_PARAM_PROTO) + int base, int group LOCALE_PARAM_PROTO) { int negative; register unsigned LONG int cutoff; @@ -263,18 +264,18 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, { grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); if (*grouping <= 0 || *grouping == CHAR_MAX) - grouping = NULL; + grouping = NULL; else - { - /* Figure out the thousands separator character. */ + { + /* Figure out the thousands separator character. */ # if defined _LIBC || defined _HAVE_BTOWC - thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP)); - if (thousands == WEOF) - thousands = L'\0'; + thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP)); + if (thousands == WEOF) + thousands = L'\0'; # endif - if (thousands == L'\0') - grouping = NULL; - } + if (thousands == L'\0') + grouping = NULL; + } } else grouping = NULL; @@ -312,12 +313,12 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, if (*s == L_('0')) { if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X')) - { - s += 2; - base = 16; - } + { + s += 2; + base = 16; + } else if (base == 0) - base = 8; + base = 8; } else if (base == 0) base = 10; @@ -331,14 +332,14 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, /* Find the end of the digit string and check its grouping. */ end = s; for (c = *end; c != L_('\0'); c = *++end) - if ((wchar_t) c != thousands - && ((wchar_t) c < L_('0') || (wchar_t) c > L_('9')) - && (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base)) - break; + if ((wchar_t) c != thousands + && ((wchar_t) c < L_('0') || (wchar_t) c > L_('9')) + && (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base)) + break; if (*s == thousands) - end = s; + end = s; else - end = correctly_grouped_prefix (s, end, thousands, grouping); + end = correctly_grouped_prefix (s, end, thousands, grouping); } else #endif @@ -352,23 +353,23 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, for (c = *s; c != L_('\0'); c = *++s) { if (s == end) - break; + break; if (c >= L_('0') && c <= L_('9')) - c -= L_('0'); + c -= L_('0'); else if (ISALPHA (c)) - c = TOUPPER (c) - L_('A') + 10; + c = TOUPPER (c) - L_('A') + 10; else - break; + break; if ((int) c >= base) - break; + break; /* Check for overflow. */ if (i > cutoff || (i == cutoff && c > cutlim)) - overflow = 1; + overflow = 1; else - { - i *= (unsigned LONG int) base; - i += c; - } + { + i *= (unsigned LONG int) base; + i += c; + } } /* Check if anything actually happened. */ @@ -385,8 +386,8 @@ INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr, `unsigned LONG int', but outside the range of `LONG int'. */ if (overflow == 0 && i > (negative - ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1 - : (unsigned LONG int) STRTOL_LONG_MAX)) + ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1 + : (unsigned LONG int) STRTOL_LONG_MAX)) overflow = 1; #endif @@ -411,11 +412,11 @@ noconv: if (endptr != NULL) { if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X') - && save[-2] == L_('0')) - *endptr = (STRING_TYPE *) &save[-1]; + && save[-2] == L_('0')) + *endptr = (STRING_TYPE *) &save[-1]; else - /* There was no number to convert. */ - *endptr = (STRING_TYPE *) nptr; + /* There was no number to convert. */ + *endptr = (STRING_TYPE *) nptr; } return 0L; @@ -429,7 +430,7 @@ INT weak_function #endif strtol (const STRING_TYPE *nptr, STRING_TYPE **endptr, - int base LOCALE_PARAM_PROTO) + int base LOCALE_PARAM_PROTO) { return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM); } diff --git a/lib/strtoll.c b/gnu/strtoll.c similarity index 83% rename from lib/strtoll.c rename to gnu/strtoll.c index ccc99cb43c1971f4675d38572c9553a8db4eebc3..09e7272796168845315a92e5d02f6b68f565dc1c 100644 --- a/lib/strtoll.c +++ b/gnu/strtoll.c @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Function to parse a `long long int' from text. - Copyright (C) 1995, 1996, 1997, 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999, 2001, 2009, 2010 Free Software + Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -15,7 +18,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#define QUAD 1 +#define QUAD 1 #include <strtol.c> diff --git a/lib/strtoul.c b/gnu/strtoul.c similarity index 79% rename from lib/strtoul.c rename to gnu/strtoul.c index 88dbfc0741093895787e5725c4c58a2470351dc6..d16d3b93dbd74c98e887b895973a30d4ff339893 100644 --- a/lib/strtoul.c +++ b/gnu/strtoul.c @@ -1,4 +1,6 @@ -/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 1991, 1997, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -14,6 +16,6 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#define UNSIGNED 1 +#define UNSIGNED 1 #include "strtol.c" diff --git a/lib/strtoull.c b/gnu/strtoull.c similarity index 84% rename from lib/strtoull.c rename to gnu/strtoull.c index eda4a70697a1f3affa4fe9b22c3e15fbe6c69dc8..5082c31213da4396ec11d75380b6c1270b31c813 100644 --- a/lib/strtoull.c +++ b/gnu/strtoull.c @@ -1,5 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Function to parse an `unsigned long long int' from text. - Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999, 2009, 2010 Free Software Foundation, + Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. diff --git a/gnu/strtoumax.c b/gnu/strtoumax.c new file mode 100644 index 0000000000000000000000000000000000000000..44a2f8bba410dc8079a779457045c5e904213bc4 --- /dev/null +++ b/gnu/strtoumax.c @@ -0,0 +1,4 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#define UNSIGNED 1 +#include "strtoimax.c" diff --git a/gnu/sys_stat.in.h b/gnu/sys_stat.in.h new file mode 100644 index 0000000000000000000000000000000000000000..75e38ed6a6e9f8d441751f980c19da4c6a75d876 --- /dev/null +++ b/gnu/sys_stat.in.h @@ -0,0 +1,633 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Provide a more complete sys/stat header file. + Copyright (C) 2005-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ + +/* This file is supposed to be used on platforms where <sys/stat.h> is + incomplete. It is intended to provide definitions and prototypes + needed by an application. Start with what the system provides. */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined __need_system_sys_stat_h +/* Special invocation convention. */ + +#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _GL_SYS_STAT_H + +/* Get nlink_t. */ +#include <sys/types.h> + +/* Get struct timespec. */ +#include <time.h> + +/* The include_next requires a split double-inclusion guard. */ +#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ + +#ifndef _GL_SYS_STAT_H +#define _GL_SYS_STAT_H + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* Before doing "#define mkdir rpl_mkdir" below, we need to include all + headers that may declare mkdir(). */ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# include <io.h> +#endif + +#ifndef S_IFMT +# define S_IFMT 0170000 +#endif + +#if STAT_MACROS_BROKEN +# undef S_ISBLK +# undef S_ISCHR +# undef S_ISDIR +# undef S_ISFIFO +# undef S_ISLNK +# undef S_ISNAM +# undef S_ISMPB +# undef S_ISMPC +# undef S_ISNWK +# undef S_ISREG +# undef S_ISSOCK +#endif + +#ifndef S_ISBLK +# ifdef S_IFBLK +# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +# else +# define S_ISBLK(m) 0 +# endif +#endif + +#ifndef S_ISCHR +# ifdef S_IFCHR +# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +# else +# define S_ISCHR(m) 0 +# endif +#endif + +#ifndef S_ISDIR +# ifdef S_IFDIR +# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +# else +# define S_ISDIR(m) 0 +# endif +#endif + +#ifndef S_ISDOOR /* Solaris 2.5 and up */ +# define S_ISDOOR(m) 0 +#endif + +#ifndef S_ISFIFO +# ifdef S_IFIFO +# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +# else +# define S_ISFIFO(m) 0 +# endif +#endif + +#ifndef S_ISLNK +# ifdef S_IFLNK +# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) +# else +# define S_ISLNK(m) 0 +# endif +#endif + +#ifndef S_ISMPB /* V7 */ +# ifdef S_IFMPB +# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) +# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) +# else +# define S_ISMPB(m) 0 +# define S_ISMPC(m) 0 +# endif +#endif + +#ifndef S_ISNAM /* Xenix */ +# ifdef S_IFNAM +# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) +# else +# define S_ISNAM(m) 0 +# endif +#endif + +#ifndef S_ISNWK /* HP/UX */ +# ifdef S_IFNWK +# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) +# else +# define S_ISNWK(m) 0 +# endif +#endif + +#ifndef S_ISPORT /* Solaris 10 and up */ +# define S_ISPORT(m) 0 +#endif + +#ifndef S_ISREG +# ifdef S_IFREG +# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +# else +# define S_ISREG(m) 0 +# endif +#endif + +#ifndef S_ISSOCK +# ifdef S_IFSOCK +# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) +# else +# define S_ISSOCK(m) 0 +# endif +#endif + + +#ifndef S_TYPEISMQ +# define S_TYPEISMQ(p) 0 +#endif + +#ifndef S_TYPEISTMO +# define S_TYPEISTMO(p) 0 +#endif + + +#ifndef S_TYPEISSEM +# ifdef S_INSEM +# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) +# else +# define S_TYPEISSEM(p) 0 +# endif +#endif + +#ifndef S_TYPEISSHM +# ifdef S_INSHD +# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) +# else +# define S_TYPEISSHM(p) 0 +# endif +#endif + +/* high performance ("contiguous data") */ +#ifndef S_ISCTG +# define S_ISCTG(p) 0 +#endif + +/* Cray DMF (data migration facility): off line, with data */ +#ifndef S_ISOFD +# define S_ISOFD(p) 0 +#endif + +/* Cray DMF (data migration facility): off line, with no data */ +#ifndef S_ISOFL +# define S_ISOFL(p) 0 +#endif + +/* 4.4BSD whiteout */ +#ifndef S_ISWHT +# define S_ISWHT(m) 0 +#endif + +/* If any of the following are undefined, + define them to their de facto standard values. */ +#if !S_ISUID +# define S_ISUID 04000 +#endif +#if !S_ISGID +# define S_ISGID 02000 +#endif + +/* S_ISVTX is a common extension to POSIX. */ +#ifndef S_ISVTX +# define S_ISVTX 01000 +#endif + +#if !S_IRUSR && S_IREAD +# define S_IRUSR S_IREAD +#endif +#if !S_IRUSR +# define S_IRUSR 00400 +#endif +#if !S_IRGRP +# define S_IRGRP (S_IRUSR >> 3) +#endif +#if !S_IROTH +# define S_IROTH (S_IRUSR >> 6) +#endif + +#if !S_IWUSR && S_IWRITE +# define S_IWUSR S_IWRITE +#endif +#if !S_IWUSR +# define S_IWUSR 00200 +#endif +#if !S_IWGRP +# define S_IWGRP (S_IWUSR >> 3) +#endif +#if !S_IWOTH +# define S_IWOTH (S_IWUSR >> 6) +#endif + +#if !S_IXUSR && S_IEXEC +# define S_IXUSR S_IEXEC +#endif +#if !S_IXUSR +# define S_IXUSR 00100 +#endif +#if !S_IXGRP +# define S_IXGRP (S_IXUSR >> 3) +#endif +#if !S_IXOTH +# define S_IXOTH (S_IXUSR >> 6) +#endif + +#if !S_IRWXU +# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) +#endif +#if !S_IRWXG +# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) +#endif +#if !S_IRWXO +# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) +#endif + +/* S_IXUGO is a common extension to POSIX. */ +#if !S_IXUGO +# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) +#endif + +#ifndef S_IRWXUGO +# define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) +#endif + +/* Macros for futimens and utimensat. */ +#ifndef UTIME_NOW +# define UTIME_NOW (-1) +# define UTIME_OMIT (-2) +#endif + + +#if @GNULIB_FCHMODAT@ +# if !@HAVE_FCHMODAT@ +_GL_FUNCDECL_SYS (fchmodat, int, + (int fd, char const *file, mode_t mode, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (fchmodat, int, + (int fd, char const *file, mode_t mode, int flag)); +_GL_CXXALIASWARN (fchmodat); +#elif defined GNULIB_POSIXCHECK +# undef fchmodat +# if HAVE_RAW_DECL_FCHMODAT +_GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @REPLACE_FSTAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fstat rpl_fstat +# endif +_GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); +#else +_GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); +#endif +_GL_CXXALIASWARN (fstat); + + +#if @GNULIB_FSTATAT@ +# if @REPLACE_FSTATAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fstatat +# define fstatat rpl_fstatat +# endif +_GL_FUNCDECL_RPL (fstatat, int, + (int fd, char const *name, struct stat *st, int flags) + _GL_ARG_NONNULL ((2, 3))); +_GL_CXXALIAS_RPL (fstatat, int, + (int fd, char const *name, struct stat *st, int flags)); +# else +# if !@HAVE_FSTATAT@ +_GL_FUNCDECL_SYS (fstatat, int, + (int fd, char const *name, struct stat *st, int flags) + _GL_ARG_NONNULL ((2, 3))); +# endif +_GL_CXXALIAS_SYS (fstatat, int, + (int fd, char const *name, struct stat *st, int flags)); +# endif +_GL_CXXALIASWARN (fstatat); +#elif defined GNULIB_POSIXCHECK +# undef fstatat +# if HAVE_RAW_DECL_FSTATAT +_GL_WARN_ON_USE (fstatat, "fstatat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @GNULIB_FUTIMENS@ +# if @REPLACE_FUTIMENS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef futimens +# define futimens rpl_futimens +# endif +_GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); +_GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); +# else +# if !@HAVE_FUTIMENS@ +_GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); +# endif +_GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); +# endif +_GL_CXXALIASWARN (futimens); +#elif defined GNULIB_POSIXCHECK +# undef futimens +# if HAVE_RAW_DECL_FUTIMENS +_GL_WARN_ON_USE (futimens, "futimens is not portable - " + "use gnulib module futimens for portability"); +# endif +#endif + + +#if @GNULIB_LCHMOD@ +/* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME + denotes a symbolic link. */ +# if !@HAVE_LCHMOD@ +/* The lchmod replacement follows symbolic links. Callers should take + this into account; lchmod should be applied only to arguments that + are known to not be symbolic links. On hosts that lack lchmod, + this can lead to race conditions between the check and the + invocation of lchmod, but we know of no workarounds that are + reliable in general. You might try requesting support for lchmod + from your operating system supplier. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define lchmod chmod +# endif +_GL_CXXALIAS_RPL_1 (lchmod, chmod, int, (const char *filename, mode_t mode)); +# else +# if 0 /* assume already declared */ +_GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); +# endif +_GL_CXXALIASWARN (lchmod); +#elif defined GNULIB_POSIXCHECK +# undef lchmod +# if HAVE_RAW_DECL_LCHMOD +_GL_WARN_ON_USE (lchmod, "lchmod is unportable - " + "use gnulib module lchmod for portability"); +# endif +#endif + + +#if @GNULIB_LSTAT@ +# if ! @HAVE_LSTAT@ +/* mingw does not support symlinks, therefore it does not have lstat. But + without links, stat does just fine. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define lstat stat +# endif +_GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *name, struct stat *buf)); +# elif @REPLACE_LSTAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef lstat +# define lstat rpl_lstat +# endif +_GL_FUNCDECL_RPL (lstat, int, (const char *name, struct stat *buf) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (lstat, int, (const char *name, struct stat *buf)); +# else +_GL_CXXALIAS_SYS (lstat, int, (const char *name, struct stat *buf)); +# endif +_GL_CXXALIASWARN (lstat); +#elif defined GNULIB_POSIXCHECK +# undef lstat +# if HAVE_RAW_DECL_LSTAT +_GL_WARN_ON_USE (lstat, "lstat is unportable - " + "use gnulib module lstat for portability"); +# endif +#endif + + +#if @REPLACE_MKDIR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mkdir +# define mkdir rpl_mkdir +# endif +_GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); +#else +/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. + Additionally, it declares _mkdir (and depending on compile flags, an + alias mkdir), only in the nonstandard <io.h>, which is included above. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + +static inline int +rpl_mkdir (char const *name, mode_t mode) +{ + return _mkdir (name); +} + +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mkdir rpl_mkdir +# endif +_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); +# else +_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); +# endif +#endif +_GL_CXXALIASWARN (mkdir); + + +#if @GNULIB_MKDIRAT@ +# if !@HAVE_MKDIRAT@ +_GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); +_GL_CXXALIASWARN (mkdirat); +#elif defined GNULIB_POSIXCHECK +# undef mkdirat +# if HAVE_RAW_DECL_MKDIRAT +_GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @GNULIB_MKFIFO@ +# if @REPLACE_MKFIFO@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mkfifo +# define mkfifo rpl_mkfifo +# endif +_GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); +# else +# if !@HAVE_MKFIFO@ +_GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); +# endif +_GL_CXXALIASWARN (mkfifo); +#elif defined GNULIB_POSIXCHECK +# undef mkfifo +# if HAVE_RAW_DECL_MKFIFO +_GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " + "use gnulib module mkfifo for portability"); +# endif +#endif + + +#if @GNULIB_MKFIFOAT@ +# if !@HAVE_MKFIFOAT@ +_GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); +_GL_CXXALIASWARN (mkfifoat); +#elif defined GNULIB_POSIXCHECK +# undef mkfifoat +# if HAVE_RAW_DECL_MKFIFOAT +_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " + "use gnulib module mkfifoat for portability"); +# endif +#endif + + +#if @GNULIB_MKNOD@ +# if @REPLACE_MKNOD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mknod +# define mknod rpl_mknod +# endif +_GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); +# else +# if !@HAVE_MKNOD@ +_GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev)); +# endif +_GL_CXXALIASWARN (mknod); +#elif defined GNULIB_POSIXCHECK +# undef mknod +# if HAVE_RAW_DECL_MKNOD +_GL_WARN_ON_USE (mknod, "mknod is not portable - " + "use gnulib module mknod for portability"); +# endif +#endif + + +#if @GNULIB_MKNODAT@ +# if !@HAVE_MKNODAT@ +_GL_FUNCDECL_SYS (mknodat, int, + (int fd, char const *file, mode_t mode, dev_t dev) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mknodat, int, + (int fd, char const *file, mode_t mode, dev_t dev)); +_GL_CXXALIASWARN (mknodat); +#elif defined GNULIB_POSIXCHECK +# undef mknodat +# if HAVE_RAW_DECL_MKNODAT +_GL_WARN_ON_USE (mknodat, "mknodat is not portable - " + "use gnulib module mkfifoat for portability"); +# endif +#endif + + +#if @GNULIB_STAT@ +# if @REPLACE_STAT@ +/* We can't use the object-like #define stat rpl_stat, because of + struct stat. This means that rpl_stat will not be used if the user + does (stat)(a,b). Oh well. */ +# undef stat +# ifdef _LARGE_FILES + /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, + so we have to replace stat64() instead of stat(). */ +# define stat stat64 +# undef stat64 +# define stat64(name, st) rpl_stat (name, st) +# else /* !_LARGE_FILES */ +# define stat(name, st) rpl_stat (name, st) +# endif /* !_LARGE_FILES */ +_GL_EXTERN_C int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2)); +# endif +#elif defined GNULIB_POSIXCHECK +# undef stat +# if HAVE_RAW_DECL_STAT +_GL_WARN_ON_USE (stat, "stat is unportable - " + "use gnulib module stat for portability"); +# endif +#endif + + +#if @GNULIB_UTIMENSAT@ +# if @REPLACE_UTIMENSAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef utimensat +# define utimensat rpl_utimensat +# endif +_GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag)); +# else +# if !@HAVE_UTIMENSAT@ +_GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, + struct timespec const times[2], int flag)); +# endif +_GL_CXXALIASWARN (utimensat); +#elif defined GNULIB_POSIXCHECK +# undef utimensat +# if HAVE_RAW_DECL_UTIMENSAT +_GL_WARN_ON_USE (utimensat, "utimensat is not portable - " + "use gnulib module utimensat for portability"); +# endif +#endif + + +#endif /* _GL_SYS_STAT_H */ +#endif /* _GL_SYS_STAT_H */ +#endif diff --git a/gnu/sys_time.in.h b/gnu/sys_time.in.h new file mode 100644 index 0000000000000000000000000000000000000000..ea9bb26e65e28145214e9ed5737bc2d1654d8c6c --- /dev/null +++ b/gnu/sys_time.in.h @@ -0,0 +1,97 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Provide a more complete sys/time.h. + + Copyright (C) 2007-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Paul Eggert. */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined _GL_SYS_TIME_H + +/* Simply delegate to the system's header, without adding anything. */ +# if @HAVE_SYS_TIME_H@ +# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ +# endif + +#else + +# define _GL_SYS_TIME_H + +# if @HAVE_SYS_TIME_H@ +# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ +# else +# include <time.h> +# endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +# ifdef __cplusplus +extern "C" { +# endif + +# if ! @HAVE_STRUCT_TIMEVAL@ +struct timeval +{ + time_t tv_sec; + long int tv_usec; +}; +# endif + +# ifdef __cplusplus +} +# endif + +# if @GNULIB_GETTIMEOFDAY@ +# if @REPLACE_GETTIMEOFDAY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gettimeofday +# define gettimeofday rpl_gettimeofday +# endif +_GL_FUNCDECL_RPL (gettimeofday, int, + (struct timeval *restrict, void *restrict) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (gettimeofday, int, + (struct timeval *restrict, void *restrict)); +# else +# if !@HAVE_GETTIMEOFDAY@ +_GL_FUNCDECL_SYS (gettimeofday, int, + (struct timeval *restrict, void *restrict) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on glibc systems, by default, the second argument is + struct timezone *. */ +_GL_CXXALIAS_SYS_CAST (gettimeofday, int, + (struct timeval *restrict, void *restrict)); +# endif +_GL_CXXALIASWARN (gettimeofday); +# elif defined GNULIB_POSIXCHECK +# undef gettimeofday +# if HAVE_RAW_DECL_GETTIMEOFDAY +_GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - " + "use gnulib module gettimeofday for portability"); +# endif +# endif + +#endif /* _GL_SYS_TIME_H */ diff --git a/lib/sysexits.in.h b/gnu/sysexits.in.h similarity index 92% rename from lib/sysexits.in.h rename to gnu/sysexits.in.h index 73da88db72925db9bddd03f01e647566c3537e32..da13faa2f1e6034cd8ce7b3c349969d579ae2dc9 100644 --- a/lib/sysexits.in.h +++ b/gnu/sysexits.in.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* exit() exit codes for some BSD system programs. - Copyright (C) 2003, 2006-2008 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2010 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 diff --git a/lib/tempname.c b/gnu/tempname.c similarity index 63% rename from lib/tempname.c rename to gnu/tempname.c index 5a3a3260c4e232fc87c3cf6fda9cf7c688932da9..4686f26c5698bb4b4ad5fec51dfd309f03786331 100644 --- a/lib/tempname.c +++ b/gnu/tempname.c @@ -1,8 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* tempname.c - generate the name of a temporary file. - Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, - Inc. + Copyright (C) 1991-2003, 2005-2007, 2009-2010 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 @@ -40,10 +40,13 @@ # define TMP_MAX 238328 #endif #ifndef __GT_FILE -# define __GT_FILE 0 -# define __GT_BIGFILE 1 -# define __GT_DIR 2 -# define __GT_NOCREATE 3 +# define __GT_FILE 0 +# define __GT_DIR 1 +# define __GT_NOCREATE 2 +#endif +#if !_LIBC && (GT_FILE != __GT_FILE || GT_DIR != __GT_DIR \ + || GT_NOCREATE != __GT_NOCREATE) +# error report this to bug-gnulib@gnu.org #endif #include <stddef.h> @@ -59,16 +62,14 @@ #if _LIBC # define struct_stat64 struct stat64 -# define small_open __open -# define large_open __open64 #else # define struct_stat64 struct stat -# define small_open open -# define large_open open # define __gen_tempname gen_tempname # define __getpid getpid # define __gettimeofday gettimeofday # define __mkdir mkdir +# define __open open +# define __open64 open # define __lxstat64(version, file, buf) lstat (file, buf) # define __xstat64(version, file, buf) stat (file, buf) #endif @@ -81,17 +82,17 @@ # include <hp-timing.h> # if HP_TIMING_AVAIL # define RANDOM_BITS(Var) \ - if (__builtin_expect (value == UINT64_C (0), 0)) \ - { \ - /* If this is the first time this function is used initialize \ - the variable we accumulate the value in to some somewhat \ - random value. If we'd not do this programs at startup time \ - might have a reduced set of possible names, at least on slow \ - machines. */ \ - struct timeval tv; \ - __gettimeofday (&tv, NULL); \ - value = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; \ - } \ + if (__builtin_expect (value == UINT64_C (0), 0)) \ + { \ + /* If this is the first time this function is used initialize \ + the variable we accumulate the value in to some somewhat \ + random value. If we'd not do this programs at startup time \ + might have a reduced set of possible names, at least on slow \ + machines. */ \ + struct timeval tv; \ + __gettimeofday (&tv, NULL); \ + value = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; \ + } \ HP_TIMING_NOW (Var) # endif #endif @@ -122,7 +123,7 @@ direxists (const char *dir) enough space in TMPL. */ int __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, - int try_tmpdir) + int try_tmpdir) { const char *d; size_t dlen, plen; @@ -136,35 +137,35 @@ __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, { plen = strlen (pfx); if (plen > 5) - plen = 5; + plen = 5; } if (try_tmpdir) { d = __secure_getenv ("TMPDIR"); if (d != NULL && direxists (d)) - dir = d; + dir = d; else if (dir != NULL && direxists (dir)) - /* nothing */ ; + /* nothing */ ; else - dir = NULL; + dir = NULL; } if (dir == NULL) { if (direxists (P_tmpdir)) - dir = P_tmpdir; + dir = P_tmpdir; else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp")) - dir = "/tmp"; + dir = "/tmp"; else - { - __set_errno (ENOENT); - return -1; - } + { + __set_errno (ENOENT); + return -1; + } } dlen = strlen (dir); while (dlen > 1 && dir[dlen - 1] == '/') - dlen--; /* remove trailing slashes */ + dlen--; /* remove trailing slashes */ /* check we have room for "${dir}/${pfx}XXXXXX\0" */ if (tmpl_len < dlen + 1 + plen + 6 + 1) @@ -183,21 +184,20 @@ static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; /* Generate a temporary file name based on TMPL. TMPL must match the - rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed - does not exist at the time of the call to __gen_tempname. TMPL is - overwritten with the result. + rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix). + The name constructed does not exist at the time of the call to + __gen_tempname. TMPL is overwritten with the result. KIND may be one of: - __GT_NOCREATE: simply verify that the name does not exist - at the time of the call. - __GT_FILE: create the file using open(O_CREAT|O_EXCL) - and return a read-write fd. The file is mode 0600. - __GT_BIGFILE: same as __GT_FILE but use open64(). - __GT_DIR: create a directory, which will be mode 0700. + __GT_NOCREATE: simply verify that the name does not exist + at the time of the call. + __GT_FILE: create the file using open(O_CREAT|O_EXCL) + and return a read-write fd. The file is mode 0600. + __GT_DIR: create a directory, which will be mode 0700. We use a clever algorithm to get hard-to-predict names. */ int -__gen_tempname (char *tmpl, int kind) +__gen_tempname (char *tmpl, int suffixlen, int flags, int kind) { int len; char *XXXXXX; @@ -225,14 +225,14 @@ __gen_tempname (char *tmpl, int kind) #endif len = strlen (tmpl); - if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) + if (len < 6 + suffixlen || memcmp (&tmpl[len - 6 - suffixlen], "XXXXXX", 6)) { __set_errno (EINVAL); return -1; } /* This is where the Xs start. */ - XXXXXX = &tmpl[len - 6]; + XXXXXX = &tmpl[len - 6 - suffixlen]; /* Get some more or less random data. */ #ifdef RANDOM_BITS @@ -264,48 +264,47 @@ __gen_tempname (char *tmpl, int kind) XXXXXX[5] = letters[v % 62]; switch (kind) - { - case __GT_FILE: - fd = small_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); - break; - - case __GT_BIGFILE: - fd = large_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); - break; - - case __GT_DIR: - fd = __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR); - break; - - case __GT_NOCREATE: - /* This case is backward from the other three. __gen_tempname - succeeds if __xstat fails because the name does not exist. - Note the continue to bypass the common logic at the bottom - of the loop. */ - if (__lxstat64 (_STAT_VER, tmpl, &st) < 0) - { - if (errno == ENOENT) - { - __set_errno (save_errno); - return 0; - } - else - /* Give up now. */ - return -1; - } - continue; - - default: - assert (! "invalid KIND in __gen_tempname"); - } + { + case __GT_FILE: + fd = __open (tmpl, + (flags & ~O_ACCMODE) + | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); + break; + + case __GT_DIR: + fd = __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR); + break; + + case __GT_NOCREATE: + /* This case is backward from the other three. __gen_tempname + succeeds if __xstat fails because the name does not exist. + Note the continue to bypass the common logic at the bottom + of the loop. */ + if (__lxstat64 (_STAT_VER, tmpl, &st) < 0) + { + if (errno == ENOENT) + { + __set_errno (save_errno); + return 0; + } + else + /* Give up now. */ + return -1; + } + continue; + + default: + assert (! "invalid KIND in __gen_tempname"); + abort (); + } if (fd >= 0) - { - __set_errno (save_errno); - return fd; - } + { + __set_errno (save_errno); + return fd; + } else if (errno != EEXIST) - return -1; + return -1; } /* We got out of the loop because we ran out of combinations to try. */ diff --git a/gnu/tempname.h b/gnu/tempname.h new file mode 100644 index 0000000000000000000000000000000000000000..4de561d3966613c3e5782fc15055a94887dcf534 --- /dev/null +++ b/gnu/tempname.h @@ -0,0 +1,52 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Create a temporary file or directory. + + Copyright (C) 2006, 2009-2010 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/>. */ + +/* header written by Eric Blake */ + +#ifndef GL_TEMPNAME_H +# define GL_TEMPNAME_H + +# include <stdio.h> + +# ifdef __GT_FILE +# define GT_FILE __GT_FILE +# define GT_DIR __GT_DIR +# define GT_NOCREATE __GT_NOCREATE +# else +# define GT_FILE 0 +# define GT_DIR 1 +# define GT_NOCREATE 2 +# endif + +/* Generate a temporary file name based on TMPL. TMPL must match the + rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix). + The name constructed does not exist at the time of the call to + gen_tempname. TMPL is overwritten with the result. + + KIND may be one of: + GT_NOCREATE: simply verify that the name does not exist + at the time of the call. + GT_FILE: create a large file using open(O_CREAT|O_EXCL) + and return a read-write fd. The file is mode 0600. + GT_DIR: create a directory, which will be mode 0700. + + We use a clever algorithm to get hard-to-predict names. */ +extern int gen_tempname (char *tmpl, int suffixlen, int flags, int kind); + +#endif /* GL_TEMPNAME_H */ diff --git a/gnu/time.in.h b/gnu/time.in.h new file mode 100644 index 0000000000000000000000000000000000000000..816f732209eabd8224714bf8695441db995d58df --- /dev/null +++ b/gnu/time.in.h @@ -0,0 +1,197 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A more-standard <time.h>. + + Copyright (C) 2007-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +/* Don't get in the way of glibc when it includes time.h merely to + declare a few standard symbols, rather than to declare all the + symbols. Also, Solaris 8 <time.h> eventually includes itself + recursively; if that is happening, just include the system <time.h> + without adding our own declarations. */ +#if (defined __need_time_t || defined __need_clock_t \ + || defined __need_timespec \ + || defined _GL_TIME_H) + +# @INCLUDE_NEXT@ @NEXT_TIME_H@ + +#else + +# define _GL_TIME_H + +# @INCLUDE_NEXT@ @NEXT_TIME_H@ + +/* NetBSD 5.0 mis-defines NULL. */ +#include <stddef.h> + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +# ifdef __cplusplus +extern "C" { +# endif + +/* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). + Or they define it with the wrong member names or define it in <sys/time.h> + (e.g., FreeBSD circa 1997). */ +# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ +# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +# include <sys/time.h> +# else +# undef timespec +# define timespec rpl_timespec +struct timespec +{ + time_t tv_sec; + long int tv_nsec; +}; +# endif +# endif + +# ifdef __cplusplus +} +# endif + +/* Sleep for at least RQTP seconds unless interrupted, If interrupted, + return -1 and store the remaining time into RMTP. See + <http://www.opengroup.org/susv3xsh/nanosleep.html>. */ +# if @GNULIB_NANOSLEEP@ +# if @REPLACE_NANOSLEEP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define nanosleep rpl_nanosleep +# endif +_GL_FUNCDECL_RPL (nanosleep, int, + (struct timespec const *__rqtp, struct timespec *__rmtp) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (nanosleep, int, + (struct timespec const *__rqtp, struct timespec *__rmtp)); +# else +_GL_CXXALIAS_SYS (nanosleep, int, + (struct timespec const *__rqtp, struct timespec *__rmtp)); +# endif +_GL_CXXALIASWARN (nanosleep); +# endif + +/* Return the 'time_t' representation of TP and normalize TP. */ +# if @GNULIB_MKTIME@ +# if @REPLACE_MKTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define mktime rpl_mktime +# endif +_GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); +# else +_GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); +# endif +_GL_CXXALIASWARN (mktime); +# endif + +/* Convert TIMER to RESULT, assuming local time and UTC respectively. See + <http://www.opengroup.org/susv3xsh/localtime_r.html> and + <http://www.opengroup.org/susv3xsh/gmtime_r.html>. */ +# if @REPLACE_LOCALTIME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef localtime_r +# define localtime_r rpl_localtime_r +# endif +_GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# else +_GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# endif +_GL_CXXALIASWARN (localtime_r); +# if @REPLACE_LOCALTIME_R@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gmtime_r +# define gmtime_r rpl_gmtime_r +# endif +_GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# else +_GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, + struct tm *restrict __result)); +# endif +_GL_CXXALIASWARN (gmtime_r); + +/* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store + the resulting broken-down time into TM. See + <http://www.opengroup.org/susv3xsh/strptime.html>. */ +# if @GNULIB_STRPTIME@ +# if @REPLACE_STRPTIME@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef strptime +# define strptime rpl_strptime +# endif +_GL_FUNCDECL_RPL (strptime, char *, (char const *restrict __buf, + char const *restrict __format, + struct tm *restrict __tm) + _GL_ARG_NONNULL ((1, 2, 3))); +_GL_CXXALIAS_RPL (strptime, char *, (char const *restrict __buf, + char const *restrict __format, + struct tm *restrict __tm)); +# else +_GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, + char const *restrict __format, + struct tm *restrict __tm)); +# endif +_GL_CXXALIASWARN (strptime); +# endif + +/* Convert TM to a time_t value, assuming UTC. */ +# if @GNULIB_TIMEGM@ +# if @REPLACE_TIMEGM@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef timegm +# define timegm rpl_timegm +# endif +_GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); +# else +_GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); +# endif +_GL_CXXALIASWARN (timegm); +# endif + +/* Encourage applications to avoid unsafe functions that can overrun + buffers when given outlandish struct tm values. Portable + applications should use strftime (or even sprintf) instead. */ +# if GNULIB_PORTCHECK +# undef asctime +# define asctime eschew_asctime +# undef asctime_r +# define asctime_r eschew_asctime_r +# undef ctime +# define ctime eschew_ctime +# undef ctime_r +# define ctime_r eschew_ctime_r +# endif + +#endif diff --git a/lib/time_r.c b/gnu/time_r.c similarity index 94% rename from lib/time_r.c rename to gnu/time_r.c index 35b0ed48136ba6cd1edff7f7307b8dcdfd3fc108..0c3477a1c1573eb1f883da7a1041e51f42f0302a 100644 --- a/lib/time_r.c +++ b/gnu/time_r.c @@ -2,7 +2,7 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Reentrant time functions like localtime_r. - Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2007, 2009, 2010 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 diff --git a/lib/timespec.h b/gnu/timespec.h similarity index 77% rename from lib/timespec.h rename to gnu/timespec.h index 3f51db8e4d9382bc2763b41fc0e01d6c26a10a39..ce94b7105c371a3d7ca1f9d29fb2f8ec8b11d8d9 100644 --- a/lib/timespec.h +++ b/gnu/timespec.h @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* timespec -- System time interface - Copyright (C) 2000, 2002, 2004, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2010 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 @@ -26,8 +29,10 @@ static inline int timespec_cmp (struct timespec a, struct timespec b) { return (a.tv_sec < b.tv_sec ? -1 - : a.tv_sec > b.tv_sec ? 1 - : a.tv_nsec - b.tv_nsec); + : a.tv_sec > b.tv_sec ? 1 + : a.tv_nsec < b.tv_nsec ? -1 + : a.tv_nsec > b.tv_nsec ? 1 + : 0); } void gettime (struct timespec *); diff --git a/gnu/uinttostr.c b/gnu/uinttostr.c new file mode 100644 index 0000000000000000000000000000000000000000..7ccafebbb500d66052d1455313f10601bd8ea33b --- /dev/null +++ b/gnu/uinttostr.c @@ -0,0 +1,6 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#define inttostr uinttostr +#define inttype unsigned int +#define inttype_is_signed 0 +#include "inttostr.c" diff --git a/gnu/umaxtostr.c b/gnu/umaxtostr.c new file mode 100644 index 0000000000000000000000000000000000000000..94a9cc59967b78325173312a7ac543b8e2af445f --- /dev/null +++ b/gnu/umaxtostr.c @@ -0,0 +1,6 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#define inttostr umaxtostr +#define inttype uintmax_t +#define inttype_is_signed 0 +#include "inttostr.c" diff --git a/lib/unistd--.h b/gnu/unistd--.h similarity index 79% rename from lib/unistd--.h rename to gnu/unistd--.h index 1a7fd785b087e3914acfc417c2a4c205db297850..27a12b7865e756b25f3d07598dafe8dcefcbf0f4 100644 --- a/lib/unistd--.h +++ b/gnu/unistd--.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Like unistd.h, but redefine some names to avoid glitches. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2010 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 @@ -25,3 +27,8 @@ #undef pipe #define pipe pipe_safer + +#if GNULIB_PIPE2_SAFER +# undef pipe2 +# define pipe2 pipe2_safer +#endif diff --git a/lib/unistd-safer.h b/gnu/unistd-safer.h similarity index 67% rename from lib/unistd-safer.h rename to gnu/unistd-safer.h index 033e857d7ae650b00d0ffddf68fa155540867c3a..93475f64b2f009d0b8f78733851ea9b66845f824 100644 --- a/lib/unistd-safer.h +++ b/gnu/unistd-safer.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Invoke unistd-like functions, but avoid some glitches. - Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2003, 2005, 2009-2010 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 @@ -15,8 +17,17 @@ 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. */ +/* Written by Paul Eggert and Eric Blake. */ int dup_safer (int); int fd_safer (int); int pipe_safer (int[2]); + +#if GNULIB_FD_SAFER_FLAG +int dup_safer_flag (int, int); +int fd_safer_flag (int, int); +#endif + +#if GNULIB_PIPE2_SAFER +int pipe2_safer (int[2], int); +#endif diff --git a/gnu/unistd.in.h b/gnu/unistd.in.h new file mode 100644 index 0000000000000000000000000000000000000000..316c51e8f522e0e41599a07933131380b5198508 --- /dev/null +++ b/gnu/unistd.in.h @@ -0,0 +1,1199 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Substitute for and wrapper around <unistd.h>. + Copyright (C) 2003-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _GL_UNISTD_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_UNISTD_H@ +# @INCLUDE_NEXT@ @NEXT_UNISTD_H@ +#endif + +#ifndef _GL_UNISTD_H +#define _GL_UNISTD_H + +/* NetBSD 5.0 mis-defines NULL. Also get size_t. */ +#include <stddef.h> + +/* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */ +/* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>. */ +/* But avoid namespace pollution on glibc systems. */ +#if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ + || (@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK)) \ + && ! defined __GLIBC__ +# include <stdio.h> +#endif + +/* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>. */ +/* But avoid namespace pollution on glibc systems. */ +#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ +# include <fcntl.h> +#endif + +/* mingw fails to declare _exit in <unistd.h>. */ +/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ +/* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>. */ +/* But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include <stdlib.h> +#endif + +/* mingw declares getcwd in <io.h>, not in <unistd.h>. */ +#if ((@GNULIB_GETCWD@ || defined GNULIB_POSIXCHECK) \ + && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) +# include <io.h> +#endif + +#if (@GNULIB_WRITE@ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ + || @GNULIB_PREAD@ || defined GNULIB_POSIXCHECK) +/* Get ssize_t. */ +# include <sys/types.h> +#endif + +/* Get getopt(), optarg, optind, opterr, optopt. + But avoid namespace pollution on glibc systems. */ +#if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT +# include <getopt.h> +#endif + +#if @GNULIB_GETHOSTNAME@ +/* Get all possible declarations of gethostname(). */ +# if @UNISTD_H_HAVE_WINSOCK2_H@ +# include <winsock2.h> +# if !defined _GL_SYS_SOCKET_H +# undef socket +# define socket socket_used_without_including_sys_socket_h +# undef connect +# define connect connect_used_without_including_sys_socket_h +# undef accept +# define accept accept_used_without_including_sys_socket_h +# undef bind +# define bind bind_used_without_including_sys_socket_h +# undef getpeername +# define getpeername getpeername_used_without_including_sys_socket_h +# undef getsockname +# define getsockname getsockname_used_without_including_sys_socket_h +# undef getsockopt +# define getsockopt getsockopt_used_without_including_sys_socket_h +# undef listen +# define listen listen_used_without_including_sys_socket_h +# undef recv +# define recv recv_used_without_including_sys_socket_h +# undef send +# define send send_used_without_including_sys_socket_h +# undef recvfrom +# define recvfrom recvfrom_used_without_including_sys_socket_h +# undef sendto +# define sendto sendto_used_without_including_sys_socket_h +# undef setsockopt +# define setsockopt setsockopt_used_without_including_sys_socket_h +# undef shutdown +# define shutdown shutdown_used_without_including_sys_socket_h +# endif +# if !defined _GL_SYS_SELECT_H +# undef select +# define select select_used_without_including_sys_select_h +# endif +# endif +#endif + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* OS/2 EMX lacks these macros. */ +#ifndef STDIN_FILENO +# define STDIN_FILENO 0 +#endif +#ifndef STDOUT_FILENO +# define STDOUT_FILENO 1 +#endif +#ifndef STDERR_FILENO +# define STDERR_FILENO 2 +#endif + +/* Ensure *_OK macros exist. */ +#ifndef F_OK +# define F_OK 0 +# define X_OK 1 +# define W_OK 2 +# define R_OK 4 +#endif + + +/* Declare overridden functions. */ + + +#if defined GNULIB_POSIXCHECK +/* The access() function is a security risk. */ +_GL_WARN_ON_USE (access, "the access function is a security risk - " + "use the gnulib module faccessat instead"); +#endif + + +#if @GNULIB_CHOWN@ +/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE + to GID (if GID is not -1). Follow symbolic links. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/chown.html>. */ +# if @REPLACE_CHOWN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef chown +# define chown rpl_chown +# endif +_GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)); +# else +# if !@HAVE_CHOWN@ +_GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)); +# endif +_GL_CXXALIASWARN (chown); +#elif defined GNULIB_POSIXCHECK +# undef chown +# if HAVE_RAW_DECL_CHOWN +_GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and " + "doesn't treat a uid or gid of -1 on some systems - " + "use gnulib module chown for portability"); +# endif +#endif + + +#if @GNULIB_CLOSE@ +# if @REPLACE_CLOSE@ +/* Automatically included by modules that need a replacement for close. */ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef close +# define close rpl_close +# endif +_GL_FUNCDECL_RPL (close, int, (int fd)); +_GL_CXXALIAS_RPL (close, int, (int fd)); +# else +_GL_CXXALIAS_SYS (close, int, (int fd)); +# endif +_GL_CXXALIASWARN (close); +#elif @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +# undef close +# define close close_used_without_requesting_gnulib_module_close +#elif defined GNULIB_POSIXCHECK +# undef close +/* Assume close is always declared. */ +_GL_WARN_ON_USE (close, "close does not portably work on sockets - " + "use gnulib module close for portability"); +#endif + + +#if @REPLACE_DUP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define dup rpl_dup +# endif +_GL_FUNCDECL_RPL (dup, int, (int oldfd)); +_GL_CXXALIAS_RPL (dup, int, (int oldfd)); +#else +_GL_CXXALIAS_SYS (dup, int, (int oldfd)); +#endif +_GL_CXXALIASWARN (dup); + + +#if @GNULIB_DUP2@ +/* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if + NEWFD = OLDFD, otherwise close NEWFD first if it is open. + Return newfd if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/dup2.html>. */ +# if @REPLACE_DUP2@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define dup2 rpl_dup2 +# endif +_GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); +_GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); +# else +# if !@HAVE_DUP2@ +_GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd)); +# endif +_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); +# endif +_GL_CXXALIASWARN (dup2); +#elif defined GNULIB_POSIXCHECK +# undef dup2 +# if HAVE_RAW_DECL_DUP2 +_GL_WARN_ON_USE (dup2, "dup2 is unportable - " + "use gnulib module dup2 for portability"); +# endif +#endif + + +#if @GNULIB_DUP3@ +/* Copy the file descriptor OLDFD into file descriptor NEWFD, with the + specified flags. + The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + Close NEWFD first if it is open. + Return newfd if successful, otherwise -1 and errno set. + See the Linux man page at + <http://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>. */ +# if @HAVE_DUP3@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define dup3 rpl_dup3 +# endif +_GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); +_GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); +# else +_GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); +_GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); +# endif +_GL_CXXALIASWARN (dup3); +#elif defined GNULIB_POSIXCHECK +# undef dup3 +# if HAVE_RAW_DECL_DUP3 +_GL_WARN_ON_USE (dup3, "dup3 is unportable - " + "use gnulib module dup3 for portability"); +# endif +#endif + + +#if @GNULIB_ENVIRON@ +# if !@HAVE_DECL_ENVIRON@ +/* Set of environment variables and values. An array of strings of the form + "VARIABLE=VALUE", terminated with a NULL. */ +# if defined __APPLE__ && defined __MACH__ +# include <crt_externs.h> +# define environ (*_NSGetEnviron ()) +# else +# ifdef __cplusplus +extern "C" { +# endif +extern char **environ; +# ifdef __cplusplus +} +# endif +# endif +# endif +#elif defined GNULIB_POSIXCHECK +# if HAVE_RAW_DECL_ENVIRON +static inline char *** +rpl_environ (void) +{ + return &environ; +} +_GL_WARN_ON_USE (rpl_environ, "environ is unportable - " + "use gnulib module environ for portability"); +# undef environ +# define environ (*rpl_environ ()) +# endif +#endif + + +#if @GNULIB_EUIDACCESS@ +/* Like access(), except that it uses the effective user id and group id of + the current process. */ +# if !@HAVE_EUIDACCESS@ +_GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); +_GL_CXXALIASWARN (euidaccess); +# if defined GNULIB_POSIXCHECK +/* Like access(), this function is a security risk. */ +_GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " + "use the gnulib module faccessat instead"); +# endif +#elif defined GNULIB_POSIXCHECK +# undef euidaccess +# if HAVE_RAW_DECL_EUIDACCESS +_GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " + "use gnulib module euidaccess for portability"); +# endif +#endif + + +#if @GNULIB_FACCESSAT@ +# if !@HAVE_FACCESSAT@ +_GL_FUNCDECL_SYS (faccessat, int, + (int fd, char const *file, int mode, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (faccessat, int, + (int fd, char const *file, int mode, int flag)); +_GL_CXXALIASWARN (faccessat); +#elif defined GNULIB_POSIXCHECK +# undef faccessat +# if HAVE_RAW_DECL_FACCESSAT +_GL_WARN_ON_USE (faccessat, "faccessat is not portable - " + "use gnulib module faccessat for portability"); +# endif +#endif + + +#if @GNULIB_FCHDIR@ +/* Change the process' current working directory to the directory on which + the given file descriptor is open. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/fchdir.html>. */ +# if @REPLACE_FCHDIR@ +_GL_FUNCDECL_RPL (fchdir, int, (int /*fd*/)); +_GL_CXXALIAS_RPL (fchdir, int, (int /*fd*/)); + +/* Gnulib internal hooks needed to maintain the fchdir metadata. */ +_GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) + _GL_ARG_NONNULL ((2)); +_GL_EXTERN_C void _gl_unregister_fd (int fd); +_GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); +_GL_EXTERN_C const char *_gl_directory_name (int fd); + +# else +_GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); +# endif +_GL_CXXALIASWARN (fchdir); +#elif defined GNULIB_POSIXCHECK +# undef fchdir +# if HAVE_RAW_DECL_FCHDIR +_GL_WARN_ON_USE (fchdir, "fchdir is unportable - " + "use gnulib module fchdir for portability"); +# endif +#endif + + +#if @GNULIB_FCHOWNAT@ +# if @REPLACE_FCHOWNAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef fchownat +# define fchownat rpl_fchownat +# endif +_GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag)); +# else +# if !@HAVE_FCHOWNAT@ +_GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, + uid_t owner, gid_t group, int flag)); +# endif +_GL_CXXALIASWARN (fchownat); +#elif defined GNULIB_POSIXCHECK +# undef fchownat +# if HAVE_RAW_DECL_FCHOWNAT +_GL_WARN_ON_USE (fchownat, "fchownat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @GNULIB_FSYNC@ +/* Synchronize changes to a file. + Return 0 if successful, otherwise -1 and errno set. + See POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/fsync.html>. */ +# if !@HAVE_FSYNC@ +_GL_FUNCDECL_SYS (fsync, int, (int fd)); +# endif +_GL_CXXALIAS_SYS (fsync, int, (int fd)); +_GL_CXXALIASWARN (fsync); +#elif defined GNULIB_POSIXCHECK +# undef fsync +# if HAVE_RAW_DECL_FSYNC +_GL_WARN_ON_USE (fsync, "fsync is unportable - " + "use gnulib module fsync for portability"); +# endif +#endif + + +#if @GNULIB_FTRUNCATE@ +/* Change the size of the file to which FD is opened to become equal to LENGTH. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/ftruncate.html>. */ +# if !@HAVE_FTRUNCATE@ +_GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); +# endif +_GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); +_GL_CXXALIASWARN (ftruncate); +#elif defined GNULIB_POSIXCHECK +# undef ftruncate +# if HAVE_RAW_DECL_FTRUNCATE +_GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " + "use gnulib module ftruncate for portability"); +# endif +#endif + + +#if @GNULIB_GETCWD@ +/* Get the name of the current working directory, and put it in SIZE bytes + of BUF. + Return BUF if successful, or NULL if the directory couldn't be determined + or SIZE was too small. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/getcwd.html>. + Additionally, the gnulib module 'getcwd' guarantees the following GNU + extension: If BUF is NULL, an array is allocated with 'malloc'; the array + is SIZE bytes long, unless SIZE == 0, in which case it is as big as + necessary. */ +# if @REPLACE_GETCWD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define getcwd rpl_getcwd +# endif +_GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); +_GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); +# else +_GL_CXXALIAS_SYS (getcwd, char *, (char *buf, size_t size)); +# endif +_GL_CXXALIASWARN (getcwd); +#elif defined GNULIB_POSIXCHECK +# undef getcwd +# if HAVE_RAW_DECL_GETCWD +_GL_WARN_ON_USE (getcwd, "getcwd is unportable - " + "use gnulib module getcwd for portability"); +# endif +#endif + + +#if @GNULIB_GETDOMAINNAME@ +/* Return the NIS domain name of the machine. + WARNING! The NIS domain name is unrelated to the fully qualified host name + of the machine. It is also unrelated to email addresses. + WARNING! The NIS domain name is usually the empty string or "(none)" when + not using NIS. + + Put up to LEN bytes of the NIS domain name into NAME. + Null terminate it if the name is shorter than LEN. + If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. + Return 0 if successful, otherwise set errno and return -1. */ +# if !@HAVE_GETDOMAINNAME@ +_GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on MacOS X 10.5 systems, the second parameter is + int len. */ +_GL_CXXALIAS_SYS_CAST (getdomainname, int, (char *name, size_t len)); +_GL_CXXALIASWARN (getdomainname); +#elif defined GNULIB_POSIXCHECK +# undef getdomainname +# if HAVE_RAW_DECL_GETDOMAINNAME +_GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " + "use gnulib module getdomainname for portability"); +# endif +#endif + + +#if @GNULIB_GETDTABLESIZE@ +/* Return the maximum number of file descriptors in the current process. + In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ +# if !@HAVE_GETDTABLESIZE@ +_GL_FUNCDECL_SYS (getdtablesize, int, (void)); +# endif +_GL_CXXALIAS_SYS (getdtablesize, int, (void)); +_GL_CXXALIASWARN (getdtablesize); +#elif defined GNULIB_POSIXCHECK +# undef getdtablesize +# if HAVE_RAW_DECL_GETDTABLESIZE +_GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " + "use gnulib module getdtablesize for portability"); +# endif +#endif + + +#if @GNULIB_GETGROUPS@ +/* Return the supplemental groups that the current process belongs to. + It is unspecified whether the effective group id is in the list. + If N is 0, return the group count; otherwise, N describes how many + entries are available in GROUPS. Return -1 and set errno if N is + not 0 and not large enough. Fails with ENOSYS on some systems. */ +# if @REPLACE_GETGROUPS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getgroups +# define getgroups rpl_getgroups +# endif +_GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); +_GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); +# else +# if !@HAVE_GETGROUPS@ +_GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); +# endif +_GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); +# endif +_GL_CXXALIASWARN (getgroups); +#elif defined GNULIB_POSIXCHECK +# undef getgroups +# if HAVE_RAW_DECL_GETGROUPS +_GL_WARN_ON_USE (getgroups, "getgroups is unportable - " + "use gnulib module getgroups for portability"); +# endif +#endif + + +#if @GNULIB_GETHOSTNAME@ +/* Return the standard host name of the machine. + WARNING! The host name may or may not be fully qualified. + + Put up to LEN bytes of the host name into NAME. + Null terminate it if the name is shorter than LEN. + If the host name is longer than LEN, set errno = EINVAL and return -1. + Return 0 if successful, otherwise set errno and return -1. */ +# if @UNISTD_H_HAVE_WINSOCK2_H@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gethostname +# define gethostname rpl_gethostname +# endif +_GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); +# else +# if !@HAVE_GETHOSTNAME@ +_GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on Solaris 10 systems, the second parameter is + int len. */ +_GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); +# endif +_GL_CXXALIASWARN (gethostname); +#elif @UNISTD_H_HAVE_WINSOCK2_H@ +# undef gethostname +# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname +#elif defined GNULIB_POSIXCHECK +# undef gethostname +# if HAVE_RAW_DECL_GETHOSTNAME +_GL_WARN_ON_USE (gethostname, "gethostname is unportable - " + "use gnulib module gethostname for portability"); +# endif +#endif + + +#if @GNULIB_GETLOGIN@ +/* Returns the user's login name, or NULL if it cannot be found. Upon error, + returns NULL with errno set. + + See <http://www.opengroup.org/susv3xsh/getlogin.html>. + + Most programs don't need to use this function, because the information is + available through environment variables: + ${LOGNAME-$USER} on Unix platforms, + $USERNAME on native Windows platforms. + */ +# if !@HAVE_GETLOGIN@ +_GL_FUNCDECL_SYS (getlogin, char *, (void)); +# endif +_GL_CXXALIAS_SYS (getlogin, char *, (void)); +_GL_CXXALIASWARN (getlogin); +#elif defined GNULIB_POSIXCHECK +# undef getlogin +# if HAVE_RAW_DECL_GETLOGIN +_GL_WARN_ON_USE (getlogin, "getlogin is unportable - " + "use gnulib module getlogin for portability"); +# endif +#endif + + +#if @GNULIB_GETLOGIN_R@ +/* Copies the user's login name to NAME. + The array pointed to by NAME has room for SIZE bytes. + + Returns 0 if successful. Upon error, an error number is returned, or -1 in + the case that the login name cannot be found but no specific error is + provided (this case is hopefully rare but is left open by the POSIX spec). + + See <http://www.opengroup.org/susv3xsh/getlogin.html>. + + Most programs don't need to use this function, because the information is + available through environment variables: + ${LOGNAME-$USER} on Unix platforms, + $USERNAME on native Windows platforms. + */ +# if !@HAVE_DECL_GETLOGIN_R@ +_GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on Solaris 10 systems, the second argument is + int size. */ +_GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); +_GL_CXXALIASWARN (getlogin_r); +#elif defined GNULIB_POSIXCHECK +# undef getlogin_r +# if HAVE_RAW_DECL_GETLOGIN_R +_GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " + "use gnulib module getlogin_r for portability"); +# endif +#endif + + +#if @GNULIB_GETPAGESIZE@ +# if @REPLACE_GETPAGESIZE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define getpagesize rpl_getpagesize +# endif +_GL_FUNCDECL_RPL (getpagesize, int, (void)); +_GL_CXXALIAS_RPL (getpagesize, int, (void)); +# else +# if !@HAVE_GETPAGESIZE@ +# if !defined getpagesize +/* This is for POSIX systems. */ +# if !defined _gl_getpagesize && defined _SC_PAGESIZE +# if ! (defined __VMS && __VMS_VER < 70000000) +# define _gl_getpagesize() sysconf (_SC_PAGESIZE) +# endif +# endif +/* This is for older VMS. */ +# if !defined _gl_getpagesize && defined __VMS +# ifdef __ALPHA +# define _gl_getpagesize() 8192 +# else +# define _gl_getpagesize() 512 +# endif +# endif +/* This is for BeOS. */ +# if !defined _gl_getpagesize && @HAVE_OS_H@ +# include <OS.h> +# if defined B_PAGE_SIZE +# define _gl_getpagesize() B_PAGE_SIZE +# endif +# endif +/* This is for AmigaOS4.0. */ +# if !defined _gl_getpagesize && defined __amigaos4__ +# define _gl_getpagesize() 2048 +# endif +/* This is for older Unix systems. */ +# if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ +# include <sys/param.h> +# ifdef EXEC_PAGESIZE +# define _gl_getpagesize() EXEC_PAGESIZE +# else +# ifdef NBPG +# ifndef CLSIZE +# define CLSIZE 1 +# endif +# define _gl_getpagesize() (NBPG * CLSIZE) +# else +# ifdef NBPC +# define _gl_getpagesize() NBPC +# endif +# endif +# endif +# endif +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define getpagesize() _gl_getpagesize () +# else +static inline int +getpagesize () +{ + return _gl_getpagesize (); +} +# endif +# endif +# endif +/* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ +_GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); +# endif +_GL_CXXALIASWARN (getpagesize); +#elif defined GNULIB_POSIXCHECK +# undef getpagesize +# if HAVE_RAW_DECL_GETPAGESIZE +_GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " + "use gnulib module getpagesize for portability"); +# endif +#endif + + +#if @GNULIB_GETUSERSHELL@ +/* Return the next valid login shell on the system, or NULL when the end of + the list has been reached. */ +# if !@HAVE_GETUSERSHELL@ +_GL_FUNCDECL_SYS (getusershell, char *, (void)); +# endif +_GL_CXXALIAS_SYS (getusershell, char *, (void)); +_GL_CXXALIASWARN (getusershell); +#elif defined GNULIB_POSIXCHECK +# undef getusershell +# if HAVE_RAW_DECL_GETUSERSHELL +_GL_WARN_ON_USE (getusershell, "getusershell is unportable - " + "use gnulib module getusershell for portability"); +# endif +#endif + +#if @GNULIB_GETUSERSHELL@ +/* Rewind to pointer that is advanced at each getusershell() call. */ +# if !@HAVE_GETUSERSHELL@ +_GL_FUNCDECL_SYS (setusershell, void, (void)); +# endif +_GL_CXXALIAS_SYS (setusershell, void, (void)); +_GL_CXXALIASWARN (setusershell); +#elif defined GNULIB_POSIXCHECK +# undef setusershell +# if HAVE_RAW_DECL_SETUSERSHELL +_GL_WARN_ON_USE (setusershell, "setusershell is unportable - " + "use gnulib module getusershell for portability"); +# endif +#endif + +#if @GNULIB_GETUSERSHELL@ +/* Free the pointer that is advanced at each getusershell() call and + associated resources. */ +# if !@HAVE_GETUSERSHELL@ +_GL_FUNCDECL_SYS (endusershell, void, (void)); +# endif +_GL_CXXALIAS_SYS (endusershell, void, (void)); +_GL_CXXALIASWARN (endusershell); +#elif defined GNULIB_POSIXCHECK +# undef endusershell +# if HAVE_RAW_DECL_ENDUSERSHELL +_GL_WARN_ON_USE (endusershell, "endusershell is unportable - " + "use gnulib module getusershell for portability"); +# endif +#endif + + +#if @GNULIB_LCHOWN@ +/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE + to GID (if GID is not -1). Do not follow symbolic links. + Return 0 if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/lchown.html>. */ +# if @REPLACE_LCHOWN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef lchown +# define lchown rpl_lchown +# endif +_GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); +# else +# if !@HAVE_LCHOWN@ +_GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); +# endif +_GL_CXXALIASWARN (lchown); +#elif defined GNULIB_POSIXCHECK +# undef lchown +# if HAVE_RAW_DECL_LCHOWN +_GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " + "use gnulib module lchown for portability"); +# endif +#endif + + +#if @GNULIB_LINK@ +/* Create a new hard link for an existing file. + Return 0 if successful, otherwise -1 and errno set. + See POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/link.html>. */ +# if @REPLACE_LINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define link rpl_link +# endif +_GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); +# else +# if !@HAVE_LINK@ +_GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); +# endif +_GL_CXXALIASWARN (link); +#elif defined GNULIB_POSIXCHECK +# undef link +# if HAVE_RAW_DECL_LINK +_GL_WARN_ON_USE (link, "link is unportable - " + "use gnulib module link for portability"); +# endif +#endif + + +#if @GNULIB_LINKAT@ +/* Create a new hard link for an existing file, relative to two + directories. FLAG controls whether symlinks are followed. + Return 0 if successful, otherwise -1 and errno set. */ +# if @REPLACE_LINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef linkat +# define linkat rpl_linkat +# endif +_GL_FUNCDECL_RPL (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag) + _GL_ARG_NONNULL ((2, 4))); +_GL_CXXALIAS_RPL (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag)); +# else +# if !@HAVE_LINKAT@ +_GL_FUNCDECL_SYS (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag) + _GL_ARG_NONNULL ((2, 4))); +# endif +_GL_CXXALIAS_SYS (linkat, int, + (int fd1, const char *path1, int fd2, const char *path2, + int flag)); +# endif +_GL_CXXALIASWARN (linkat); +#elif defined GNULIB_POSIXCHECK +# undef linkat +# if HAVE_RAW_DECL_LINKAT +_GL_WARN_ON_USE (linkat, "linkat is unportable - " + "use gnulib module linkat for portability"); +# endif +#endif + + +#if @GNULIB_LSEEK@ +/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. + Return the new offset if successful, otherwise -1 and errno set. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/lseek.html>. */ +# if @REPLACE_LSEEK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define lseek rpl_lseek +# endif +_GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); +_GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); +# else +_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); +# endif +_GL_CXXALIASWARN (lseek); +#elif defined GNULIB_POSIXCHECK +# undef lseek +# if HAVE_RAW_DECL_LSEEK +_GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " + "systems - use gnulib module lseek for portability"); +# endif +#endif + + +#if @GNULIB_PIPE2@ +/* Create a pipe, applying the given flags when opening the read-end of the + pipe and the write-end of the pipe. + The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>) + and O_TEXT, O_BINARY (defined in "binary-io.h"). + Store the read-end as fd[0] and the write-end as fd[1]. + Return 0 upon success, or -1 with errno set upon failure. + See also the Linux man page at + <http://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>. */ +# if @HAVE_PIPE2@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define pipe2 rpl_pipe2 +# endif +_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); +# else +_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); +# endif +_GL_CXXALIASWARN (pipe2); +#elif defined GNULIB_POSIXCHECK +# undef pipe2 +# if HAVE_RAW_DECL_PIPE2 +_GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " + "use gnulib module pipe2 for portability"); +# endif +#endif + + +#if @GNULIB_PREAD@ +/* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. + Return the number of bytes placed into BUF if successful, otherwise + set errno and return -1. 0 indicates EOF. See the POSIX:2001 + specification <http://www.opengroup.org/susv3xsh/pread.html>. */ +# if @REPLACE_PREAD@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define pread rpl_pread +# endif +_GL_FUNCDECL_RPL (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset)); +# else +# if !@HAVE_PREAD@ +_GL_FUNCDECL_SYS (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (pread, ssize_t, + (int fd, void *buf, size_t bufsize, off_t offset)); +# endif +_GL_CXXALIASWARN (pread); +#elif defined GNULIB_POSIXCHECK +# undef pread +# if HAVE_RAW_DECL_PREAD +_GL_WARN_ON_USE (pread, "pread is unportable - " + "use gnulib module pread for portability"); +# endif +#endif + + +#if @GNULIB_READLINK@ +/* Read the contents of the symbolic link FILE and place the first BUFSIZE + bytes of it into BUF. Return the number of bytes placed into BUF if + successful, otherwise -1 and errno set. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/readlink.html>. */ +# if @REPLACE_READLINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define readlink rpl_readlink +# endif +_GL_FUNCDECL_RPL (readlink, ssize_t, + (const char *file, char *buf, size_t bufsize) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (readlink, ssize_t, + (const char *file, char *buf, size_t bufsize)); +# else +# if !@HAVE_READLINK@ +_GL_FUNCDECL_SYS (readlink, ssize_t, + (const char *file, char *buf, size_t bufsize) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (readlink, ssize_t, + (const char *file, char *buf, size_t bufsize)); +# endif +_GL_CXXALIASWARN (readlink); +#elif defined GNULIB_POSIXCHECK +# undef readlink +# if HAVE_RAW_DECL_READLINK +_GL_WARN_ON_USE (readlink, "readlink is unportable - " + "use gnulib module readlink for portability"); +# endif +#endif + + +#if @GNULIB_READLINKAT@ +# if !@HAVE_READLINKAT@ +_GL_FUNCDECL_SYS (readlinkat, ssize_t, + (int fd, char const *file, char *buf, size_t len) + _GL_ARG_NONNULL ((2, 3))); +# endif +_GL_CXXALIAS_SYS (readlinkat, ssize_t, + (int fd, char const *file, char *buf, size_t len)); +_GL_CXXALIASWARN (readlinkat); +#elif defined GNULIB_POSIXCHECK +# undef readlinkat +# if HAVE_RAW_DECL_READLINKAT +_GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " + "use gnulib module symlinkat for portability"); +# endif +#endif + + +#if @GNULIB_RMDIR@ +/* Remove the directory DIR. */ +# if @REPLACE_RMDIR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define rmdir rpl_rmdir +# endif +_GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (rmdir, int, (char const *name)); +# else +_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); +# endif +_GL_CXXALIASWARN (rmdir); +#elif defined GNULIB_POSIXCHECK +# undef rmdir +# if HAVE_RAW_DECL_RMDIR +_GL_WARN_ON_USE (rmdir, "rmdir is unportable - " + "use gnulib module rmdir for portability"); +# endif +#endif + + +#if @GNULIB_SLEEP@ +/* Pause the execution of the current thread for N seconds. + Returns the number of seconds left to sleep. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/sleep.html>. */ +# if @REPLACE_SLEEP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef sleep +# define sleep rpl_sleep +# endif +_GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); +_GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); +# else +# if !@HAVE_SLEEP@ +_GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); +# endif +_GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); +# endif +_GL_CXXALIASWARN (sleep); +#elif defined GNULIB_POSIXCHECK +# undef sleep +# if HAVE_RAW_DECL_SLEEP +_GL_WARN_ON_USE (sleep, "sleep is unportable - " + "use gnulib module sleep for portability"); +# endif +#endif + + +#if @GNULIB_SYMLINK@ +# if @REPLACE_SYMLINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef symlink +# define symlink rpl_symlink +# endif +_GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); +# else +# if !@HAVE_SYMLINK@ +_GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); +# endif +_GL_CXXALIASWARN (symlink); +#elif defined GNULIB_POSIXCHECK +# undef symlink +# if HAVE_RAW_DECL_SYMLINK +_GL_WARN_ON_USE (symlink, "symlink is not portable - " + "use gnulib module symlink for portability"); +# endif +#endif + + +#if @GNULIB_SYMLINKAT@ +# if !@HAVE_SYMLINKAT@ +_GL_FUNCDECL_SYS (symlinkat, int, + (char const *contents, int fd, char const *file) + _GL_ARG_NONNULL ((1, 3))); +# endif +_GL_CXXALIAS_SYS (symlinkat, int, + (char const *contents, int fd, char const *file)); +_GL_CXXALIASWARN (symlinkat); +#elif defined GNULIB_POSIXCHECK +# undef symlinkat +# if HAVE_RAW_DECL_SYMLINKAT +_GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " + "use gnulib module symlinkat for portability"); +# endif +#endif + + +#if @GNULIB_UNLINK@ +# if @REPLACE_UNLINK@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unlink +# define unlink rpl_unlink +# endif +_GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (unlink, int, (char const *file)); +# else +_GL_CXXALIAS_SYS (unlink, int, (char const *file)); +# endif +_GL_CXXALIASWARN (unlink); +#elif defined GNULIB_POSIXCHECK +# undef unlink +# if HAVE_RAW_DECL_UNLINK +_GL_WARN_ON_USE (unlink, "unlink is not portable - " + "use gnulib module unlink for portability"); +# endif +#endif + + +#if @GNULIB_UNLINKAT@ +# if @REPLACE_UNLINKAT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef unlinkat +# define unlinkat rpl_unlinkat +# endif +_GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); +# else +# if !@HAVE_UNLINKAT@ +_GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); +# endif +_GL_CXXALIASWARN (unlinkat); +#elif defined GNULIB_POSIXCHECK +# undef unlinkat +# if HAVE_RAW_DECL_UNLINKAT +_GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " + "use gnulib module openat for portability"); +# endif +#endif + + +#if @GNULIB_USLEEP@ +/* Pause the execution of the current thread for N microseconds. + Returns 0 on completion, or -1 on range error. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/sleep.html>. */ +# if @REPLACE_USLEEP@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef usleep +# define usleep rpl_usleep +# endif +_GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); +_GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); +# else +# if !@HAVE_USLEEP@ +_GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); +# endif +_GL_CXXALIAS_SYS (usleep, int, (useconds_t n)); +# endif +_GL_CXXALIASWARN (usleep); +#elif defined GNULIB_POSIXCHECK +# undef usleep +# if HAVE_RAW_DECL_USLEEP +_GL_WARN_ON_USE (usleep, "usleep is unportable - " + "use gnulib module usleep for portability"); +# endif +#endif + + +#if @GNULIB_WRITE@ +/* Write up to COUNT bytes starting at BUF to file descriptor FD. + See the POSIX:2001 specification + <http://www.opengroup.org/susv3xsh/write.html>. */ +# if @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef write +# define write rpl_write +# endif +_GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); +# else +_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); +# endif +_GL_CXXALIASWARN (write); +#endif + + +#endif /* _GL_UNISTD_H */ +#endif /* _GL_UNISTD_H */ diff --git a/lib/unitypes.h b/gnu/unitypes.h similarity index 92% rename from lib/unitypes.h rename to gnu/unitypes.h index aa96393579dac77ba85c7104822cbf7ee7f9c741..61571c3c47c0e244967f7ff38c9a0d3351bb41f6 100644 --- a/lib/unitypes.h +++ b/gnu/unitypes.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Elementary types for the GNU UniString library. - Copyright (C) 2002, 2005-2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2005-2006, 2009-2010 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 diff --git a/lib/uniwidth.h b/gnu/uniwidth.h similarity index 95% rename from lib/uniwidth.h rename to gnu/uniwidth.h index 81e7b929d152d703adc0dca3c5159cb04c9a3daa..30e19235672f9c4c3aed68bcc94c1a4056b7c378 100644 --- a/lib/uniwidth.h +++ b/gnu/uniwidth.h @@ -1,7 +1,8 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Display width functions. - Copyright (C) 2001-2002, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2005, 2007, 2009-2010 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 diff --git a/lib/uniwidth/cjk.h b/gnu/uniwidth/cjk.h similarity index 95% rename from lib/uniwidth/cjk.h rename to gnu/uniwidth/cjk.h index c4ed036301ccd5bc6dc6b34fec0cbc4b06833cee..c2b69cc6c3d1565a3d5799806eb2e848b1745d39 100644 --- a/lib/uniwidth/cjk.h +++ b/gnu/uniwidth/cjk.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Test for CJK encoding. - Copyright (C) 2001-2002, 2005-2007 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2005-2007, 2009-2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2002. This program is free software: you can redistribute it and/or modify it diff --git a/lib/uniwidth/width.c b/gnu/uniwidth/width.c similarity index 94% rename from lib/uniwidth/width.c rename to gnu/uniwidth/width.c index 0c29da653c1fae40d3f152bb56b4ece851675114..2dba811d626dd912409b8932347b7f6f011724d8 100644 --- a/lib/uniwidth/width.c +++ b/gnu/uniwidth/width.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine display width of Unicode character. - Copyright (C) 2001-2002, 2006-2009 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2006-2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2002. This program is free software: you can redistribute it and/or modify it @@ -312,26 +312,26 @@ uc_width (ucs4_t uc, const char *encoding) { int ind = nonspacing_table_ind[uc >> 9]; if (ind >= 0) - if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1) - { - if (uc > 0 && uc < 0xa0) - return -1; - else - return 0; - } + if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1) + { + if (uc > 0 && uc < 0xa0) + return -1; + else + return 0; + } } else if ((uc >> 9) == (0xe0000 >> 9)) { if (uc >= 0xe0100) - { - if (uc <= 0xe01ef) - return 0; - } + { + if (uc <= 0xe01ef) + return 0; + } else - { - if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001) - return 0; - } + { + if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001) + return 0; + } } /* Test for double-width character. * Generated from "grep '^....;[WF]' EastAsianWidth.txt" @@ -339,17 +339,17 @@ uc_width (ucs4_t uc, const char *encoding) */ if (uc >= 0x1100 && ((uc < 0x1160) /* Hangul Jamo */ - || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */ - || (uc >= 0x2e80 && uc < 0xa4d0 /* CJK ... Yi */ - && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00)) - || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */ - || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */ - || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */ - || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */ - || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */ - || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */ - || (uc >= 0x20000 && uc <= 0x2a6d6) /* CJK */ - || (uc >= 0x2f800 && uc <= 0x2fa1d) /* CJK Compatibility Ideographs */ + || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */ + || (uc >= 0x2e80 && uc < 0xa4d0 /* CJK ... Yi */ + && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00)) + || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */ + || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */ + || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */ + || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */ + || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */ + || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */ + || (uc >= 0x20000 && uc <= 0x2a6d6) /* CJK */ + || (uc >= 0x2f800 && uc <= 0x2fa1d) /* CJK Compatibility Ideographs */ ) ) return 2; /* In ancient CJK encodings, Cyrillic and most other characters are diff --git a/gnu/unlink.c b/gnu/unlink.c new file mode 100644 index 0000000000000000000000000000000000000000..568d2cdce4a58caa2516a5943cfc18dc7f08fa5a --- /dev/null +++ b/gnu/unlink.c @@ -0,0 +1,87 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Work around unlink bugs. + + Copyright (C) 2009, 2010 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/>. */ + +#include <config.h> + +#include <unistd.h> + +#include <errno.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> + +#undef unlink + +/* Remove file NAME. + Return 0 if successful, -1 if not. */ + +int +rpl_unlink (char const *name) +{ + /* Work around Solaris 9 bug where unlink("file/") succeeds. */ + size_t len = strlen (name); + int result = 0; + if (len && ISSLASH (name[len - 1])) + { + /* We can't unlink(2) something if it doesn't exist. If it does + exist, then it resolved to a directory, due to the trailing + slash, and POSIX requires that the unlink attempt to remove + that directory (which would leave the symlink dangling). + Unfortunately, Solaris 9 is one of the platforms where the + root user can unlink directories, and we don't want to + cripple this behavior on real directories, even if it is + seldom needed (at any rate, it's nicer to let coreutils' + unlink(1) give the correct errno for non-root users). But we + don't know whether name was an actual directory, or a symlink + to a directory; and due to the bug of ignoring trailing + slash, Solaris 9 would end up successfully unlinking the + symlink instead of the directory. Technically, we could use + realpath to find the canonical directory name to attempt + deletion on. But that is a lot of work for a corner case; so + we instead just use an lstat on the shortened name, and + reject symlinks with trailing slashes. The root user of + unlink(1) will just have to live with the rule that they + can't delete a directory via a symlink. */ + struct stat st; + result = lstat (name, &st); + if (result == 0) + { + /* Trailing NUL will overwrite the trailing slash. */ + char *short_name = malloc (len); + if (!short_name) + { + errno = EPERM; + return -1; + } + memcpy (short_name, name, len); + while (len && ISSLASH (short_name[len - 1])) + short_name[--len] = '\0'; + if (len && (lstat (short_name, &st) || S_ISLNK (st.st_mode))) + { + free (short_name); + errno = EPERM; + return -1; + } + free (short_name); + } + } + if (!result) + result = unlink (name); + return result; +} diff --git a/gnu/unlinkat.c b/gnu/unlinkat.c new file mode 100644 index 0000000000000000000000000000000000000000..0d68213ee4cad4b736a79da442a4dba9da95fcc4 --- /dev/null +++ b/gnu/unlinkat.c @@ -0,0 +1,107 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Work around unlinkat bugs on Solaris 9. + + Copyright (C) 2009-2010 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 Eric Blake. */ + +#include <config.h> + +#include <unistd.h> + +#include <errno.h> +#include <fcntl.h> +#include <string.h> +#include <sys/stat.h> + +#include "openat.h" + +#if HAVE_UNLINKAT + +# undef unlinkat + +/* unlinkat without AT_REMOVEDIR does not honor trailing / on Solaris + 9. Solve it in a similar manner to unlink. */ + +int +rpl_unlinkat (int fd, char const *name, int flag) +{ + size_t len; + int result = 0; + /* rmdir behavior has no problems with trailing slash. */ + if (flag & AT_REMOVEDIR) + return unlinkat (fd, name, flag); + + len = strlen (name); + if (len && ISSLASH (name[len - 1])) + { + /* See the lengthy comment in unlink.c why we disobey the POSIX + rule of letting unlink("link-to-dir/") attempt to unlink a + directory. */ + struct stat st; + result = lstatat (fd, name, &st); + if (result == 0) + { + /* Trailing NUL will overwrite the trailing slash. */ + char *short_name = malloc (len); + if (!short_name) + { + errno = EPERM; + return -1; + } + memcpy (short_name, name, len); + while (len && ISSLASH (short_name[len - 1])) + short_name[--len] = '\0'; + if (len && (lstatat (fd, short_name, &st) || S_ISLNK (st.st_mode))) + { + free (short_name); + errno = EPERM; + return -1; + } + free (short_name); + } + } + if (!result) + result = unlinkat (fd, name, flag); + return result; +} + +#else /* !HAVE_UNLINKAT */ + +/* Replacement for Solaris' function by the same name. + <http://www.google.com/search?q=unlinkat+site:docs.sun.com> + First, try to simulate it via (unlink|rmdir) ("/proc/self/fd/FD/FILE"). + Failing that, simulate it via save_cwd/fchdir/(unlink|rmdir)/restore_cwd. + If either the save_cwd or the restore_cwd fails (relatively unlikely), + then give a diagnostic and exit nonzero. + Otherwise, this function works just like Solaris' unlinkat. */ + +# define AT_FUNC_NAME unlinkat +# define AT_FUNC_F1 rmdir +# define AT_FUNC_F2 unlink +# define AT_FUNC_USE_F1_COND AT_REMOVEDIR +# define AT_FUNC_POST_FILE_PARAM_DECLS , int flag +# define AT_FUNC_POST_FILE_ARGS /* empty */ +# include "at-func.c" +# undef AT_FUNC_NAME +# undef AT_FUNC_F1 +# undef AT_FUNC_F2 +# undef AT_FUNC_USE_F1_COND +# undef AT_FUNC_POST_FILE_PARAM_DECLS +# undef AT_FUNC_POST_FILE_ARGS + +#endif /* !HAVE_UNLINKAT */ diff --git a/lib/unlinkdir.c b/gnu/unlinkdir.c similarity index 58% rename from lib/unlinkdir.c rename to gnu/unlinkdir.c index 12e669e752bfd7c0da80cace0d4a5bac7a2d4543..1473b3c41c676adb445949613fa8b700bc744b7c 100644 --- a/lib/unlinkdir.c +++ b/gnu/unlinkdir.c @@ -1,6 +1,8 @@ -/* unlinkdir.c - determine (and maybe change) whether we can unlink directories +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* unlinkdir.c - determine whether we can unlink directories - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 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 @@ -15,22 +17,18 @@ 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. */ +/* Written by Paul Eggert, Jim Meyering, and David Bartley. */ #include <config.h> #include "unlinkdir.h" - -#if HAVE_PRIV_H -# include <priv.h> -#endif +#include "priv-set.h" #include <unistd.h> #if ! UNLINK_CANNOT_UNLINK_DIR /* Return true if we cannot unlink directories, false if we might be - able to unlink directories. If possible, tell the kernel we don't - want to be able to unlink directories, so that we can return true. */ + able to unlink directories. */ bool cannot_unlink_dir (void) @@ -40,20 +38,11 @@ cannot_unlink_dir (void) if (! initialized) { -# if defined PRIV_EFFECTIVE && defined PRIV_SYS_LINKDIR +# if defined PRIV_SYS_LINKDIR /* We might be able to unlink directories if we cannot - determine our privileges, or if we have the - PRIV_SYS_LINKDIR privilege and cannot delete it. */ - priv_set_t *pset = priv_allocset (); - if (pset) - { - cannot = - (getppriv (PRIV_EFFECTIVE, pset) == 0 - && (! priv_ismember (pset, PRIV_SYS_LINKDIR) - || (priv_delset (pset, PRIV_SYS_LINKDIR) == 0 - && setppriv (PRIV_SET, PRIV_EFFECTIVE, pset) == 0))); - priv_freeset (pset); - } + determine our privileges, or if we have the + PRIV_SYS_LINKDIR privilege. */ + cannot = (priv_set_ismember (PRIV_SYS_LINKDIR) == 0); # else /* In traditional Unix, only root can unlink directories. */ cannot = (geteuid () != 0); diff --git a/lib/unlinkdir.h b/gnu/unlinkdir.h similarity index 85% rename from lib/unlinkdir.h rename to gnu/unlinkdir.h index 10c4e5f6560b7365a422ec94393a266b9b67df8f..5c64afe595945b01df8149d2c62b91c9493688a6 100644 --- a/lib/unlinkdir.h +++ b/gnu/unlinkdir.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* unlinkdir.h - determine (and maybe change) whether we can unlink directories - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2010 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 diff --git a/lib/unlocked-io.h b/gnu/unlocked-io.h similarity index 95% rename from lib/unlocked-io.h rename to gnu/unlocked-io.h index 6b2939e1ba0a72f7d1e1f1665e6925ea4d7ce52b..cf11ece3296f6df4e755fea8d86229ba8b37e286 100644 --- a/lib/unlocked-io.h +++ b/gnu/unlocked-io.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Prefer faster, non-thread-safe stdio functions if available. - Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2009-2010 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 diff --git a/lib/unsetenv.c b/gnu/unsetenv.c similarity index 59% rename from lib/unsetenv.c rename to gnu/unsetenv.c index 73ea878a688c52bc7d0063cb7096fef2704faed9..d22a29a2851cdea3e2ad495ded6345b71ecd23f3 100644 --- a/lib/unsetenv.c +++ b/gnu/unsetenv.c @@ -1,4 +1,6 @@ -/* Copyright (C) 1992,1995-1999,2000-2002,2005-2008 Free Software Foundation, Inc. +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Copyright (C) 1992, 1995-2002, 2005-2010 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software: you can redistribute it and/or modify @@ -16,6 +18,10 @@ #include <config.h> +/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc + optimizes away the name == NULL test below. */ +#define _GL_ARG_NONNULL(params) + /* Specification. */ #include <stdlib.h> @@ -28,15 +34,15 @@ #include <unistd.h> #if !_LIBC -# define __environ environ +# define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of `environ'. */ # include <bits/libc-lock.h> __libc_lock_define_initialized (static, envlock) -# define LOCK __libc_lock_lock (envlock) -# define UNLOCK __libc_lock_unlock (envlock) +# define LOCK __libc_lock_lock (envlock) +# define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK @@ -47,6 +53,7 @@ __libc_lock_define_initialized (static, envlock) # define unsetenv __unsetenv #endif +#if _LIBC || !HAVE_UNSETENV int unsetenv (const char *name) @@ -68,13 +75,13 @@ unsetenv (const char *name) while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { - /* Found it. Remove this pointer by moving later ones back. */ - char **dp = ep; + /* Found it. Remove this pointer by moving later ones back. */ + char **dp = ep; - do - dp[0] = dp[1]; - while (*dp++); - /* Continue the loop in case NAME appears again. */ + do + dp[0] = dp[1]; + while (*dp++); + /* Continue the loop in case NAME appears again. */ } else ++ep; @@ -88,3 +95,28 @@ unsetenv (const char *name) # undef unsetenv weak_alias (__unsetenv, unsetenv) #endif + +#else /* HAVE_UNSETENV */ + +# undef unsetenv + +/* Call the underlying unsetenv, in case there is hidden bookkeeping + that needs updating beyond just modifying environ. */ +int +rpl_unsetenv (const char *name) +{ + int result = 0; + if (!name || !*name || strchr (name, '=')) + { + errno = EINVAL; + return -1; + } + while (getenv (name)) +# if !VOID_UNSETENV + result = +# endif + unsetenv (name); + return result; +} + +#endif /* HAVE_UNSETENV */ diff --git a/gnu/utimens.c b/gnu/utimens.c new file mode 100644 index 0000000000000000000000000000000000000000..8ce10d104874144165ba7a1b8d446431352a177a --- /dev/null +++ b/gnu/utimens.c @@ -0,0 +1,515 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Set file access and modification times. + + Copyright (C) 2003-2010 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 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. */ + +/* derived from a function in touch.c */ + +#include <config.h> + +#include "utimens.h" + +#include <assert.h> +#include <errno.h> +#include <fcntl.h> +#include <stdbool.h> +#include <sys/stat.h> +#include <sys/time.h> +#include <unistd.h> + +#include "stat-time.h" +#include "timespec.h" + +#if HAVE_UTIME_H +# include <utime.h> +#endif + +/* Some systems (even some that do have <utime.h>) don't declare this + structure anywhere. */ +#ifndef HAVE_STRUCT_UTIMBUF +struct utimbuf +{ + long actime; + long modtime; +}; +#endif + +/* Avoid recursion with rpl_futimens or rpl_utimensat. */ +#undef futimens +#undef utimensat + +/* Solaris 9 mistakenly succeeds when given a non-directory with a + trailing slash. Force the use of rpl_stat for a fix. */ +#ifndef REPLACE_FUNC_STAT_FILE +# define REPLACE_FUNC_STAT_FILE 0 +#endif + +#if HAVE_UTIMENSAT || HAVE_FUTIMENS +/* Cache variables for whether the utimensat syscall works; used to + avoid calling the syscall if we know it will just fail with ENOSYS, + and to avoid unnecessary work in massaging timestamps if the + syscall will work. Multiple variables are needed, to distinguish + between the following scenarios on Linux: + utimensat doesn't exist, or is in glibc but kernel 2.6.18 fails with ENOSYS + kernel 2.6.22 and earlier rejects AT_SYMLINK_NOFOLLOW + kernel 2.6.25 and earlier reject UTIME_NOW/UTIME_OMIT with non-zero tv_sec + kernel 2.6.32 used with xfs or ntfs-3g fail to honor UTIME_OMIT + utimensat completely works + For each cache variable: 0 = unknown, 1 = yes, -1 = no. */ +static int utimensat_works_really; +static int lutimensat_works_really; +#endif /* HAVE_UTIMENSAT || HAVE_FUTIMENS */ + +/* Validate the requested timestamps. Return 0 if the resulting + timespec can be used for utimensat (after possibly modifying it to + work around bugs in utimensat). Return a positive value if the + timespec needs further adjustment based on stat results: 1 if any + adjustment is needed for utimes, and 2 if any adjustment is needed + for Linux utimensat. Return -1, with errno set to EINVAL, if + timespec is out of range. */ +static int +validate_timespec (struct timespec timespec[2]) +{ + int result = 0; + int utime_omit_count = 0; + assert (timespec); + if ((timespec[0].tv_nsec != UTIME_NOW + && timespec[0].tv_nsec != UTIME_OMIT + && (timespec[0].tv_nsec < 0 || 1000000000 <= timespec[0].tv_nsec)) + || (timespec[1].tv_nsec != UTIME_NOW + && timespec[1].tv_nsec != UTIME_OMIT + && (timespec[1].tv_nsec < 0 || 1000000000 <= timespec[1].tv_nsec))) + { + errno = EINVAL; + return -1; + } + /* Work around Linux kernel 2.6.25 bug, where utimensat fails with + EINVAL if tv_sec is not 0 when using the flag values of tv_nsec. + Flag a Linux kernel 2.6.32 bug, where an mtime of UTIME_OMIT + fails to bump ctime. */ + if (timespec[0].tv_nsec == UTIME_NOW + || timespec[0].tv_nsec == UTIME_OMIT) + { + timespec[0].tv_sec = 0; + result = 1; + if (timespec[0].tv_nsec == UTIME_OMIT) + utime_omit_count++; + } + if (timespec[1].tv_nsec == UTIME_NOW + || timespec[1].tv_nsec == UTIME_OMIT) + { + timespec[1].tv_sec = 0; + result = 1; + if (timespec[1].tv_nsec == UTIME_OMIT) + utime_omit_count++; + } + return result + (utime_omit_count == 1); +} + +/* Normalize any UTIME_NOW or UTIME_OMIT values in *TS, using stat + buffer STATBUF to obtain the current timestamps of the file. If + both times are UTIME_NOW, set *TS to NULL (as this can avoid some + permissions issues). If both times are UTIME_OMIT, return true + (nothing further beyond the prior collection of STATBUF is + necessary); otherwise return false. */ +static bool +update_timespec (struct stat const *statbuf, struct timespec *ts[2]) +{ + struct timespec *timespec = *ts; + if (timespec[0].tv_nsec == UTIME_OMIT + && timespec[1].tv_nsec == UTIME_OMIT) + return true; + if (timespec[0].tv_nsec == UTIME_NOW + && timespec[1].tv_nsec == UTIME_NOW) + { + *ts = NULL; + return false; + } + + if (timespec[0].tv_nsec == UTIME_OMIT) + timespec[0] = get_stat_atime (statbuf); + else if (timespec[0].tv_nsec == UTIME_NOW) + gettime (×pec[0]); + + if (timespec[1].tv_nsec == UTIME_OMIT) + timespec[1] = get_stat_mtime (statbuf); + else if (timespec[1].tv_nsec == UTIME_NOW) + gettime (×pec[1]); + + return false; +} + +/* Set the access and modification time stamps of FD (a.k.a. FILE) to be + TIMESPEC[0] and TIMESPEC[1], respectively. + FD must be either negative -- in which case it is ignored -- + or a file descriptor that is open on FILE. + If FD is nonnegative, then FILE can be NULL, which means + use just futimes (or equivalent) instead of utimes (or equivalent), + and fail if on an old system without futimes (or equivalent). + If TIMESPEC is null, set the time stamps to the current time. + Return 0 on success, -1 (setting errno) on failure. */ + +int +fdutimens (char const *file, int fd, struct timespec const timespec[2]) +{ + struct timespec adjusted_timespec[2]; + struct timespec *ts = timespec ? adjusted_timespec : NULL; + int adjustment_needed = 0; + struct stat st; + + if (ts) + { + adjusted_timespec[0] = timespec[0]; + adjusted_timespec[1] = timespec[1]; + adjustment_needed = validate_timespec (ts); + } + if (adjustment_needed < 0) + return -1; + + /* Require that at least one of FD or FILE are valid. Works around + a Linux bug where futimens (AT_FDCWD, NULL) changes "." rather + than failing. */ + if (!file) + { + if (fd < 0) + { + errno = EBADF; + return -1; + } + if (dup2 (fd, fd) != fd) + return -1; + } + + /* Some Linux-based NFS clients are buggy, and mishandle time stamps + of files in NFS file systems in some cases. We have no + configure-time test for this, but please see + <http://bugs.gentoo.org/show_bug.cgi?id=132673> for references to + some of the problems with Linux 2.6.16. If this affects you, + compile with -DHAVE_BUGGY_NFS_TIME_STAMPS; this is reported to + help in some cases, albeit at a cost in performance. But you + really should upgrade your kernel to a fixed version, since the + problem affects many applications. */ + +#if HAVE_BUGGY_NFS_TIME_STAMPS + if (fd < 0) + sync (); + else + fsync (fd); +#endif + + /* POSIX 2008 added two interfaces to set file timestamps with + nanosecond resolution; newer Linux implements both functions via + a single syscall. We provide a fallback for ENOSYS (for example, + compiling against Linux 2.6.25 kernel headers and glibc 2.7, but + running on Linux 2.6.18 kernel). */ +#if HAVE_UTIMENSAT || HAVE_FUTIMENS + if (0 <= utimensat_works_really) + { + int result; +# if __linux__ + /* As recently as Linux kernel 2.6.32 (Dec 2009), several file + systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT, + but work if both times are either explicitly specified or + UTIME_NOW. Work around it with a preparatory [f]stat prior + to calling futimens/utimensat; fortunately, there is not much + timing impact due to the extra syscall even on file systems + where UTIME_OMIT would have worked. FIXME: Simplify this in + 2012, when file system bugs are no longer common. */ + if (adjustment_needed == 2) + { + if (fd < 0 ? stat (file, &st) : fstat (fd, &st)) + return -1; + if (ts[0].tv_nsec == UTIME_OMIT) + ts[0] = get_stat_atime (&st); + else if (ts[1].tv_nsec == UTIME_OMIT) + ts[1] = get_stat_mtime (&st); + /* Note that st is good, in case utimensat gives ENOSYS. */ + adjustment_needed++; + } +# endif /* __linux__ */ +# if HAVE_UTIMENSAT + if (fd < 0) + { + result = utimensat (AT_FDCWD, file, ts, 0); +# ifdef __linux__ + /* Work around a kernel bug: + http://bugzilla.redhat.com/442352 + http://bugzilla.redhat.com/449910 + It appears that utimensat can mistakenly return 280 rather + than -1 upon ENOSYS failure. + FIXME: remove in 2010 or whenever the offending kernels + are no longer in common use. */ + if (0 < result) + errno = ENOSYS; +# endif /* __linux__ */ + if (result == 0 || errno != ENOSYS) + { + utimensat_works_really = 1; + return result; + } + } +# endif /* HAVE_UTIMENSAT */ +# if HAVE_FUTIMENS + if (0 <= fd) + { + result = futimens (fd, ts); +# ifdef __linux__ + /* Work around the same bug as above. */ + if (0 < result) + errno = ENOSYS; +# endif /* __linux__ */ + if (result == 0 || errno != ENOSYS) + { + utimensat_works_really = 1; + return result; + } + } +# endif /* HAVE_FUTIMENS */ + } + utimensat_works_really = -1; + lutimensat_works_really = -1; +#endif /* HAVE_UTIMENSAT || HAVE_FUTIMENS */ + + /* The platform lacks an interface to set file timestamps with + nanosecond resolution, so do the best we can, discarding any + fractional part of the timestamp. */ + + if (adjustment_needed || (REPLACE_FUNC_STAT_FILE && fd < 0)) + { + if (adjustment_needed != 3 + && (fd < 0 ? stat (file, &st) : fstat (fd, &st))) + return -1; + if (ts && update_timespec (&st, &ts)) + return 0; + } + + { +#if HAVE_FUTIMESAT || HAVE_WORKING_UTIMES + struct timeval timeval[2]; + struct timeval const *t; + if (ts) + { + timeval[0].tv_sec = ts[0].tv_sec; + timeval[0].tv_usec = ts[0].tv_nsec / 1000; + timeval[1].tv_sec = ts[1].tv_sec; + timeval[1].tv_usec = ts[1].tv_nsec / 1000; + t = timeval; + } + else + t = NULL; + + if (fd < 0) + { +# if HAVE_FUTIMESAT + return futimesat (AT_FDCWD, file, t); +# endif + } + else + { + /* If futimesat or futimes fails here, don't try to speed things + up by returning right away. glibc can incorrectly fail with + errno == ENOENT if /proc isn't mounted. Also, Mandrake 10.0 + in high security mode doesn't allow ordinary users to read + /proc/self, so glibc incorrectly fails with errno == EACCES. + If errno == EIO, EPERM, or EROFS, it's probably safe to fail + right away, but these cases are rare enough that they're not + worth optimizing, and who knows what other messed-up systems + are out there? So play it safe and fall back on the code + below. */ +# if HAVE_FUTIMESAT && !FUTIMESAT_NULL_BUG + if (futimesat (fd, NULL, t) == 0) + return 0; +# elif HAVE_FUTIMES + if (futimes (fd, t) == 0) + return 0; +# endif + } +#endif /* HAVE_FUTIMESAT || HAVE_WORKING_UTIMES */ + + if (!file) + { +#if ! ((HAVE_FUTIMESAT && !FUTIMESAT_NULL_BUG) \ + || (HAVE_WORKING_UTIMES && HAVE_FUTIMES)) + errno = ENOSYS; +#endif + return -1; + } + +#if HAVE_WORKING_UTIMES + return utimes (file, t); +#else + { + struct utimbuf utimbuf; + struct utimbuf *ut; + if (ts) + { + utimbuf.actime = ts[0].tv_sec; + utimbuf.modtime = ts[1].tv_sec; + ut = &utimbuf; + } + else + ut = NULL; + + return utime (file, ut); + } +#endif /* !HAVE_WORKING_UTIMES */ + } +} + +/* Set the access and modification time stamps of FD (a.k.a. FILE) to be + TIMESPEC[0] and TIMESPEC[1], respectively. + FD must be either negative -- in which case it is ignored -- + or a file descriptor that is open on FILE. + If FD is nonnegative, then FILE can be NULL, which means + use just futimes (or equivalent) instead of utimes (or equivalent), + and fail if on an old system without futimes (or equivalent). + If TIMESPEC is null, set the time stamps to the current time. + Return 0 on success, -1 (setting errno) on failure. */ + +int +gl_futimens (int fd, char const *file, struct timespec const timespec[2]) +{ + return fdutimens (file, fd, timespec); +} + +/* Set the access and modification time stamps of FILE to be + TIMESPEC[0] and TIMESPEC[1], respectively. */ +int +utimens (char const *file, struct timespec const timespec[2]) +{ + return fdutimens (file, -1, timespec); +} + +/* Set the access and modification time stamps of FILE to be + TIMESPEC[0] and TIMESPEC[1], respectively, without dereferencing + symlinks. Fail with ENOSYS if the platform does not support + changing symlink timestamps, but FILE was a symlink. */ +int +lutimens (char const *file, struct timespec const timespec[2]) +{ + struct timespec adjusted_timespec[2]; + struct timespec *ts = timespec ? adjusted_timespec : NULL; + int adjustment_needed = 0; + struct stat st; + + if (ts) + { + adjusted_timespec[0] = timespec[0]; + adjusted_timespec[1] = timespec[1]; + adjustment_needed = validate_timespec (ts); + } + if (adjustment_needed < 0) + return -1; + + /* The Linux kernel did not support symlink timestamps until + utimensat, in version 2.6.22, so we don't need to mimic + gl_futimens' worry about buggy NFS clients. But we do have to + worry about bogus return values. */ + +#if HAVE_UTIMENSAT + if (0 <= lutimensat_works_really) + { + int result; +# if __linux__ + /* As recently as Linux kernel 2.6.32 (Dec 2009), several file + systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT, + but work if both times are either explicitly specified or + UTIME_NOW. Work around it with a preparatory lstat prior to + calling utimensat; fortunately, there is not much timing + impact due to the extra syscall even on file systems where + UTIME_OMIT would have worked. FIXME: Simplify this in 2012, + when file system bugs are no longer common. */ + if (adjustment_needed == 2) + { + if (lstat (file, &st)) + return -1; + if (ts[0].tv_nsec == UTIME_OMIT) + ts[0] = get_stat_atime (&st); + else if (ts[1].tv_nsec == UTIME_OMIT) + ts[1] = get_stat_mtime (&st); + /* Note that st is good, in case utimensat gives ENOSYS. */ + adjustment_needed++; + } +# endif /* __linux__ */ + result = utimensat (AT_FDCWD, file, ts, AT_SYMLINK_NOFOLLOW); +# ifdef __linux__ + /* Work around a kernel bug: + http://bugzilla.redhat.com/442352 + http://bugzilla.redhat.com/449910 + It appears that utimensat can mistakenly return 280 rather + than -1 upon ENOSYS failure. + FIXME: remove in 2010 or whenever the offending kernels + are no longer in common use. */ + if (0 < result) + errno = ENOSYS; +# endif + if (result == 0 || errno != ENOSYS) + { + utimensat_works_really = 1; + lutimensat_works_really = 1; + return result; + } + } + lutimensat_works_really = -1; +#endif /* HAVE_UTIMENSAT */ + + /* The platform lacks an interface to set file timestamps with + nanosecond resolution, so do the best we can, discarding any + fractional part of the timestamp. */ + + if (adjustment_needed || REPLACE_FUNC_STAT_FILE) + { + if (adjustment_needed != 3 && lstat (file, &st)) + return -1; + if (ts && update_timespec (&st, &ts)) + return 0; + } + + /* On Linux, lutimes is a thin wrapper around utimensat, so there is + no point trying lutimes if utimensat failed with ENOSYS. */ +#if HAVE_LUTIMES && !HAVE_UTIMENSAT + { + struct timeval timeval[2]; + struct timeval const *t; + int result; + if (ts) + { + timeval[0].tv_sec = ts[0].tv_sec; + timeval[0].tv_usec = ts[0].tv_nsec / 1000; + timeval[1].tv_sec = ts[1].tv_sec; + timeval[1].tv_usec = ts[1].tv_nsec / 1000; + t = timeval; + } + else + t = NULL; + + result = lutimes (file, t); + if (result == 0 || errno != ENOSYS) + return result; + } +#endif /* HAVE_LUTIMES && !HAVE_UTIMENSAT */ + + /* Out of luck for symlinks, but we still handle regular files. */ + if (!(adjustment_needed || REPLACE_FUNC_STAT_FILE) && lstat (file, &st)) + return -1; + if (!S_ISLNK (st.st_mode)) + return fdutimens (file, -1, ts); + errno = ENOSYS; + return -1; +} diff --git a/gnu/utimens.h b/gnu/utimens.h new file mode 100644 index 0000000000000000000000000000000000000000..37f92b734db3c438b31a9f48ba6df578667e83eb --- /dev/null +++ b/gnu/utimens.h @@ -0,0 +1,21 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#include <time.h> +int fdutimens (char const *, int, struct timespec const [2]); +int gl_futimens (int, char const *, struct timespec const [2]); +int utimens (char const *, struct timespec const [2]); +int lutimens (char const *, struct timespec const [2]); + +#if GNULIB_FDUTIMENSAT +# include <fcntl.h> +# include <sys/stat.h> + +int fdutimensat (int dir, char const *name, int fd, struct timespec const [2]); + +/* Using this function makes application code slightly more readable. */ +static inline int +lutimensat (int fd, char const *file, struct timespec const times[2]) +{ + return utimensat (fd, file, times, AT_SYMLINK_NOFOLLOW); +} +#endif diff --git a/gnu/vasnprintf.c b/gnu/vasnprintf.c new file mode 100644 index 0000000000000000000000000000000000000000..3fbba53e2359f6f51cb703854c0273b92b2939bf --- /dev/null +++ b/gnu/vasnprintf.c @@ -0,0 +1,5490 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* vsprintf with automatic memory allocation. + Copyright (C) 1999, 2002-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* This file can be parametrized with the following macros: + VASNPRINTF The name of the function being defined. + FCHAR_T The element type of the format string. + DCHAR_T The element type of the destination (result) string. + FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters + in the format string are ASCII. MUST be set if + FCHAR_T and DCHAR_T are not the same type. + DIRECTIVE Structure denoting a format directive. + Depends on FCHAR_T. + DIRECTIVES Structure denoting the set of format directives of a + format string. Depends on FCHAR_T. + PRINTF_PARSE Function that parses a format string. + Depends on FCHAR_T. + DCHAR_CPY memcpy like function for DCHAR_T[] arrays. + DCHAR_SET memset like function for DCHAR_T[] arrays. + DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays. + SNPRINTF The system's snprintf (or similar) function. + This may be either snprintf or swprintf. + TCHAR_T The element type of the argument and result string + of the said SNPRINTF function. This may be either + char or wchar_t. The code exploits that + sizeof (TCHAR_T) | sizeof (DCHAR_T) and + alignof (TCHAR_T) <= alignof (DCHAR_T). + DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type. + DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. + DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. + DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. + DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ + +/* Tell glibc's <stdio.h> to provide a prototype for snprintf(). + This must come before <config.h> because <config.h> may include + <features.h>, and once <features.h> has been included, it's too late. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif + +#ifndef VASNPRINTF +# include <config.h> +#endif +#ifndef IN_LIBINTL +# include <alloca.h> +#endif + +/* Specification. */ +#ifndef VASNPRINTF +# if WIDE_CHAR_VERSION +# include "vasnwprintf.h" +# else +# include "vasnprintf.h" +# endif +#endif + +#include <locale.h> /* localeconv() */ +#include <stdio.h> /* snprintf(), sprintf() */ +#include <stdlib.h> /* abort(), malloc(), realloc(), free() */ +#include <string.h> /* memcpy(), strlen() */ +#include <errno.h> /* errno */ +#include <limits.h> /* CHAR_BIT */ +#include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */ +#if HAVE_NL_LANGINFO +# include <langinfo.h> +#endif +#ifndef VASNPRINTF +# if WIDE_CHAR_VERSION +# include "wprintf-parse.h" +# else +# include "printf-parse.h" +# endif +#endif + +/* Checked size_t computations. */ +#include "xsize.h" + +#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL +# include <math.h> +# include "float+.h" +#endif + +#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL +# include <math.h> +# include "isnand-nolibm.h" +#endif + +#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL +# include <math.h> +# include "isnanl-nolibm.h" +# include "fpucw.h" +#endif + +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL +# include <math.h> +# include "isnand-nolibm.h" +# include "printf-frexp.h" +#endif + +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL +# include <math.h> +# include "isnanl-nolibm.h" +# include "printf-frexpl.h" +# include "fpucw.h" +#endif + +/* Default parameters. */ +#ifndef VASNPRINTF +# if WIDE_CHAR_VERSION +# define VASNPRINTF vasnwprintf +# define FCHAR_T wchar_t +# define DCHAR_T wchar_t +# define TCHAR_T wchar_t +# define DCHAR_IS_TCHAR 1 +# define DIRECTIVE wchar_t_directive +# define DIRECTIVES wchar_t_directives +# define PRINTF_PARSE wprintf_parse +# define DCHAR_CPY wmemcpy +# define DCHAR_SET wmemset +# else +# define VASNPRINTF vasnprintf +# define FCHAR_T char +# define DCHAR_T char +# define TCHAR_T char +# define DCHAR_IS_TCHAR 1 +# define DIRECTIVE char_directive +# define DIRECTIVES char_directives +# define PRINTF_PARSE printf_parse +# define DCHAR_CPY memcpy +# define DCHAR_SET memset +# endif +#endif +#if WIDE_CHAR_VERSION + /* TCHAR_T is wchar_t. */ +# define USE_SNPRINTF 1 +# if HAVE_DECL__SNWPRINTF + /* On Windows, the function swprintf() has a different signature than + on Unix; we use the _snwprintf() function instead. */ +# define SNPRINTF _snwprintf +# else + /* Unix. */ +# define SNPRINTF swprintf +# endif +#else + /* TCHAR_T is char. */ + /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. + But don't use it on BeOS, since BeOS snprintf produces no output if the + size argument is >= 0x3000000. + Also don't use it on Linux libc5, since there snprintf with size = 1 + writes any output without bounds, like sprintf. */ +# if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ && !(__GNU_LIBRARY__ == 1) +# define USE_SNPRINTF 1 +# else +# define USE_SNPRINTF 0 +# endif +# if HAVE_DECL__SNPRINTF + /* Windows. */ +# define SNPRINTF _snprintf +# else + /* Unix. */ +# define SNPRINTF snprintf + /* Here we need to call the native snprintf, not rpl_snprintf. */ +# undef snprintf +# endif +#endif +/* Here we need to call the native sprintf, not rpl_sprintf. */ +#undef sprintf + +/* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized" + warnings in this file. Use -Dlint to suppress them. */ +#ifdef lint +# define IF_LINT(Code) Code +#else +# define IF_LINT(Code) /* empty */ +#endif + +/* Avoid some warnings from "gcc -Wshadow". + This file doesn't use the exp() and remainder() functions. */ +#undef exp +#define exp expo +#undef remainder +#define remainder rem + +#if !USE_SNPRINTF && !WIDE_CHAR_VERSION +# if (HAVE_STRNLEN && !defined _AIX) +# define local_strnlen strnlen +# else +# ifndef local_strnlen_defined +# define local_strnlen_defined 1 +static size_t +local_strnlen (const char *string, size_t maxlen) +{ + const char *end = memchr (string, '\0', maxlen); + return end ? (size_t) (end - string) : maxlen; +} +# endif +# endif +#endif + +#if (!USE_SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T && (WIDE_CHAR_VERSION || DCHAR_IS_TCHAR) +# if HAVE_WCSLEN +# define local_wcslen wcslen +# else + /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid + a dependency towards this library, here is a local substitute. + Define this substitute only once, even if this file is included + twice in the same compilation unit. */ +# ifndef local_wcslen_defined +# define local_wcslen_defined 1 +static size_t +local_wcslen (const wchar_t *s) +{ + const wchar_t *ptr; + + for (ptr = s; *ptr != (wchar_t) 0; ptr++) + ; + return ptr - s; +} +# endif +# endif +#endif + +#if !USE_SNPRINTF && HAVE_WCHAR_T && WIDE_CHAR_VERSION +# if HAVE_WCSNLEN +# define local_wcsnlen wcsnlen +# else +# ifndef local_wcsnlen_defined +# define local_wcsnlen_defined 1 +static size_t +local_wcsnlen (const wchar_t *s, size_t maxlen) +{ + const wchar_t *ptr; + + for (ptr = s; maxlen > 0 && *ptr != (wchar_t) 0; ptr++, maxlen--) + ; + return ptr - s; +} +# endif +# endif +#endif + +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL +/* Determine the decimal-point character according to the current locale. */ +# ifndef decimal_point_char_defined +# define decimal_point_char_defined 1 +static char +decimal_point_char (void) +{ + const char *point; + /* Determine it in a multithread-safe way. We know nl_langinfo is + multithread-safe on glibc systems and MacOS X systems, but is not required + to be multithread-safe by POSIX. sprintf(), however, is multithread-safe. + localeconv() is rarely multithread-safe. */ +# if HAVE_NL_LANGINFO && (__GLIBC__ || (defined __APPLE__ && defined __MACH__)) + point = nl_langinfo (RADIXCHAR); +# elif 1 + char pointbuf[5]; + sprintf (pointbuf, "%#.0f", 1.0); + point = &pointbuf[1]; +# else + point = localeconv () -> decimal_point; +# endif + /* The decimal point is always a single byte: either '.' or ','. */ + return (point[0] != '\0' ? point[0] : '.'); +} +# endif +#endif + +#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL + +/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ +static int +is_infinite_or_zero (double x) +{ + return isnand (x) || x + x == x; +} + +#endif + +#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL + +/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ +static int +is_infinite_or_zerol (long double x) +{ + return isnanl (x) || x + x == x; +} + +#endif + +#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL + +/* Converting 'long double' to decimal without rare rounding bugs requires + real bignums. We use the naming conventions of GNU gmp, but vastly simpler + (and slower) algorithms. */ + +typedef unsigned int mp_limb_t; +# define GMP_LIMB_BITS 32 +typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1]; + +typedef unsigned long long mp_twolimb_t; +# define GMP_TWOLIMB_BITS 64 +typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1]; + +/* Representation of a bignum >= 0. */ +typedef struct +{ + size_t nlimbs; + mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */ +} mpn_t; + +/* Compute the product of two bignums >= 0. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +multiply (mpn_t src1, mpn_t src2, mpn_t *dest) +{ + const mp_limb_t *p1; + const mp_limb_t *p2; + size_t len1; + size_t len2; + + if (src1.nlimbs <= src2.nlimbs) + { + len1 = src1.nlimbs; + p1 = src1.limbs; + len2 = src2.nlimbs; + p2 = src2.limbs; + } + else + { + len1 = src2.nlimbs; + p1 = src2.limbs; + len2 = src1.nlimbs; + p2 = src1.limbs; + } + /* Now 0 <= len1 <= len2. */ + if (len1 == 0) + { + /* src1 or src2 is zero. */ + dest->nlimbs = 0; + dest->limbs = (mp_limb_t *) malloc (1); + } + else + { + /* Here 1 <= len1 <= len2. */ + size_t dlen; + mp_limb_t *dp; + size_t k, i, j; + + dlen = len1 + len2; + dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t)); + if (dp == NULL) + return NULL; + for (k = len2; k > 0; ) + dp[--k] = 0; + for (i = 0; i < len1; i++) + { + mp_limb_t digit1 = p1[i]; + mp_twolimb_t carry = 0; + for (j = 0; j < len2; j++) + { + mp_limb_t digit2 = p2[j]; + carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; + carry += dp[i + j]; + dp[i + j] = (mp_limb_t) carry; + carry = carry >> GMP_LIMB_BITS; + } + dp[i + len2] = (mp_limb_t) carry; + } + /* Normalise. */ + while (dlen > 0 && dp[dlen - 1] == 0) + dlen--; + dest->nlimbs = dlen; + dest->limbs = dp; + } + return dest->limbs; +} + +/* Compute the quotient of a bignum a >= 0 and a bignum b > 0. + a is written as a = q * b + r with 0 <= r < b. q is the quotient, r + the remainder. + Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd, + q is incremented. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +divide (mpn_t a, mpn_t b, mpn_t *q) +{ + /* Algorithm: + First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]] + with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS). + If m<n, then q:=0 and r:=a. + If m>=n=1, perform a single-precision division: + r:=0, j:=m, + while j>0 do + {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j = + = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r<b[0]<beta} + j:=j-1, r:=r*beta+a[j], q[j]:=floor(r/b[0]), r:=r-b[0]*q[j]. + Normalise [q[m-1],...,q[0]], yields q. + If m>=n>1, perform a multiple-precision division: + We have a/b < beta^(m-n+1). + s:=intDsize-1-(highest bit in b[n-1]), 0<=s<intDsize. + Shift a and b left by s bits, copying them. r:=a. + r=[r[m],...,r[0]], b=[b[n-1],...,b[0]] with b[n-1]>=beta/2. + For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).} + Compute q* : + q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]). + In case of overflow (q* >= beta) set q* := beta-1. + Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2] + and c3 := b[n-2] * q*. + {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow + occurred. Furthermore 0 <= c3 < beta^2. + If there was overflow and + r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2, + the next test can be skipped.} + While c3 > c2, {Here 0 <= c2 < c3 < beta^2} + Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2]. + If q* > 0: + Put r := r - b * q* * beta^j. In detail: + [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]]. + hence: u:=0, for i:=0 to n-1 do + u := u + q* * b[i], + r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry), + u:=u div beta (+ 1, if carry in subtraction) + r[n+j]:=r[n+j]-u. + {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1 + < q* + 1 <= beta, + the carry u does not overflow.} + If a negative carry occurs, put q* := q* - 1 + and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]]. + Set q[j] := q*. + Normalise [q[m-n],..,q[0]]; this yields the quotient q. + Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the + rest r. + The room for q[j] can be allocated at the memory location of r[n+j]. + Finally, round-to-even: + Shift r left by 1 bit. + If r > b or if r = b and q[0] is odd, q := q+1. + */ + const mp_limb_t *a_ptr = a.limbs; + size_t a_len = a.nlimbs; + const mp_limb_t *b_ptr = b.limbs; + size_t b_len = b.nlimbs; + mp_limb_t *roomptr; + mp_limb_t *tmp_roomptr = NULL; + mp_limb_t *q_ptr; + size_t q_len; + mp_limb_t *r_ptr; + size_t r_len; + + /* Allocate room for a_len+2 digits. + (Need a_len+1 digits for the real division and 1 more digit for the + final rounding of q.) */ + roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t)); + if (roomptr == NULL) + return NULL; + + /* Normalise a. */ + while (a_len > 0 && a_ptr[a_len - 1] == 0) + a_len--; + + /* Normalise b. */ + for (;;) + { + if (b_len == 0) + /* Division by zero. */ + abort (); + if (b_ptr[b_len - 1] == 0) + b_len--; + else + break; + } + + /* Here m = a_len >= 0 and n = b_len > 0. */ + + if (a_len < b_len) + { + /* m<n: trivial case. q=0, r := copy of a. */ + r_ptr = roomptr; + r_len = a_len; + memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); + q_ptr = roomptr + a_len; + q_len = 0; + } + else if (b_len == 1) + { + /* n=1: single precision division. + beta^(m-1) <= a < beta^m ==> beta^(m-2) <= a/b < beta^m */ + r_ptr = roomptr; + q_ptr = roomptr + 1; + { + mp_limb_t den = b_ptr[0]; + mp_limb_t remainder = 0; + const mp_limb_t *sourceptr = a_ptr + a_len; + mp_limb_t *destptr = q_ptr + a_len; + size_t count; + for (count = a_len; count > 0; count--) + { + mp_twolimb_t num = + ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr; + *--destptr = num / den; + remainder = num % den; + } + /* Normalise and store r. */ + if (remainder > 0) + { + r_ptr[0] = remainder; + r_len = 1; + } + else + r_len = 0; + /* Normalise q. */ + q_len = a_len; + if (q_ptr[q_len - 1] == 0) + q_len--; + } + } + else + { + /* n>1: multiple precision division. + beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==> + beta^(m-n-1) <= a/b < beta^(m-n+1). */ + /* Determine s. */ + size_t s; + { + mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ + s = 31; + if (msd >= 0x10000) + { + msd = msd >> 16; + s -= 16; + } + if (msd >= 0x100) + { + msd = msd >> 8; + s -= 8; + } + if (msd >= 0x10) + { + msd = msd >> 4; + s -= 4; + } + if (msd >= 0x4) + { + msd = msd >> 2; + s -= 2; + } + if (msd >= 0x2) + { + msd = msd >> 1; + s -= 1; + } + } + /* 0 <= s < GMP_LIMB_BITS. + Copy b, shifting it left by s bits. */ + if (s > 0) + { + tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t)); + if (tmp_roomptr == NULL) + { + free (roomptr); + return NULL; + } + { + const mp_limb_t *sourceptr = b_ptr; + mp_limb_t *destptr = tmp_roomptr; + mp_twolimb_t accu = 0; + size_t count; + for (count = b_len; count > 0; count--) + { + accu += (mp_twolimb_t) *sourceptr++ << s; + *destptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + /* accu must be zero, since that was how s was determined. */ + if (accu != 0) + abort (); + } + b_ptr = tmp_roomptr; + } + /* Copy a, shifting it left by s bits, yields r. + Memory layout: + At the beginning: r = roomptr[0..a_len], + at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */ + r_ptr = roomptr; + if (s == 0) + { + memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); + r_ptr[a_len] = 0; + } + else + { + const mp_limb_t *sourceptr = a_ptr; + mp_limb_t *destptr = r_ptr; + mp_twolimb_t accu = 0; + size_t count; + for (count = a_len; count > 0; count--) + { + accu += (mp_twolimb_t) *sourceptr++ << s; + *destptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + *destptr++ = (mp_limb_t) accu; + } + q_ptr = roomptr + b_len; + q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */ + { + size_t j = a_len - b_len; /* m-n */ + mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */ + mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */ + mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */ + ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd; + /* Division loop, traversed m-n+1 times. + j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */ + for (;;) + { + mp_limb_t q_star; + mp_limb_t c1; + if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */ + { + /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */ + mp_twolimb_t num = + ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS) + | r_ptr[j + b_len - 1]; + q_star = num / b_msd; + c1 = num % b_msd; + } + else + { + /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */ + q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */ + /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta + <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta + <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) + {<= beta !}. + If yes, jump directly to the subtraction loop. + (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta + <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */ + if (r_ptr[j + b_len] > b_msd + || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd) + /* r[j+n] >= b[n-1]+1 or + r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a + carry. */ + goto subtract; + } + /* q_star = q*, + c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, <beta). */ + { + mp_twolimb_t c2 = /* c1*beta+r[j+n-2] */ + ((mp_twolimb_t) c1 << GMP_LIMB_BITS) | r_ptr[j + b_len - 2]; + mp_twolimb_t c3 = /* b[n-2] * q* */ + (mp_twolimb_t) b_2msd * (mp_twolimb_t) q_star; + /* While c2 < c3, increase c2 and decrease c3. + Consider c3-c2. While it is > 0, decrease it by + b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2 + this can happen only twice. */ + if (c3 > c2) + { + q_star = q_star - 1; /* q* := q* - 1 */ + if (c3 - c2 > b_msdd) + q_star = q_star - 1; /* q* := q* - 1 */ + } + } + if (q_star > 0) + subtract: + { + /* Subtract r := r - b * q* * beta^j. */ + mp_limb_t cr; + { + const mp_limb_t *sourceptr = b_ptr; + mp_limb_t *destptr = r_ptr + j; + mp_twolimb_t carry = 0; + size_t count; + for (count = b_len; count > 0; count--) + { + /* Here 0 <= carry <= q*. */ + carry = + carry + + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++ + + (mp_limb_t) ~(*destptr); + /* Here 0 <= carry <= beta*q* + beta-1. */ + *destptr++ = ~(mp_limb_t) carry; + carry = carry >> GMP_LIMB_BITS; /* <= q* */ + } + cr = (mp_limb_t) carry; + } + /* Subtract cr from r_ptr[j + b_len], then forget about + r_ptr[j + b_len]. */ + if (cr > r_ptr[j + b_len]) + { + /* Subtraction gave a carry. */ + q_star = q_star - 1; /* q* := q* - 1 */ + /* Add b back. */ + { + const mp_limb_t *sourceptr = b_ptr; + mp_limb_t *destptr = r_ptr + j; + mp_limb_t carry = 0; + size_t count; + for (count = b_len; count > 0; count--) + { + mp_limb_t source1 = *sourceptr++; + mp_limb_t source2 = *destptr; + *destptr++ = source1 + source2 + carry; + carry = + (carry + ? source1 >= (mp_limb_t) ~source2 + : source1 > (mp_limb_t) ~source2); + } + } + /* Forget about the carry and about r[j+n]. */ + } + } + /* q* is determined. Store it as q[j]. */ + q_ptr[j] = q_star; + if (j == 0) + break; + j--; + } + } + r_len = b_len; + /* Normalise q. */ + if (q_ptr[q_len - 1] == 0) + q_len--; +# if 0 /* Not needed here, since we need r only to compare it with b/2, and + b is shifted left by s bits. */ + /* Shift r right by s bits. */ + if (s > 0) + { + mp_limb_t ptr = r_ptr + r_len; + mp_twolimb_t accu = 0; + size_t count; + for (count = r_len; count > 0; count--) + { + accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS; + accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s); + *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS); + } + } +# endif + /* Normalise r. */ + while (r_len > 0 && r_ptr[r_len - 1] == 0) + r_len--; + } + /* Compare r << 1 with b. */ + if (r_len > b_len) + goto increment_q; + { + size_t i; + for (i = b_len;;) + { + mp_limb_t r_i = + (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0) + | (i < r_len ? r_ptr[i] << 1 : 0); + mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0); + if (r_i > b_i) + goto increment_q; + if (r_i < b_i) + goto keep_q; + if (i == 0) + break; + i--; + } + } + if (q_len > 0 && ((q_ptr[0] & 1) != 0)) + /* q is odd. */ + increment_q: + { + size_t i; + for (i = 0; i < q_len; i++) + if (++(q_ptr[i]) != 0) + goto keep_q; + q_ptr[q_len++] = 1; + } + keep_q: + if (tmp_roomptr != NULL) + free (tmp_roomptr); + q->limbs = q_ptr; + q->nlimbs = q_len; + return roomptr; +} + +/* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal + representation. + Destroys the contents of a. + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +convert_to_decimal (mpn_t a, size_t extra_zeroes) +{ + mp_limb_t *a_ptr = a.limbs; + size_t a_len = a.nlimbs; + /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ + size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); + char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); + if (c_ptr != NULL) + { + char *d_ptr = c_ptr; + for (; extra_zeroes > 0; extra_zeroes--) + *d_ptr++ = '0'; + while (a_len > 0) + { + /* Divide a by 10^9, in-place. */ + mp_limb_t remainder = 0; + mp_limb_t *ptr = a_ptr + a_len; + size_t count; + for (count = a_len; count > 0; count--) + { + mp_twolimb_t num = + ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr; + *ptr = num / 1000000000; + remainder = num % 1000000000; + } + /* Store the remainder as 9 decimal digits. */ + for (count = 9; count > 0; count--) + { + *d_ptr++ = '0' + (remainder % 10); + remainder = remainder / 10; + } + /* Normalize a. */ + if (a_ptr[a_len - 1] == 0) + a_len--; + } + /* Remove leading zeroes. */ + while (d_ptr > c_ptr && d_ptr[-1] == '0') + d_ptr--; + /* But keep at least one zero. */ + if (d_ptr == c_ptr) + *d_ptr++ = '0'; + /* Terminate the string. */ + *d_ptr = '\0'; + } + return c_ptr; +} + +# if NEED_PRINTF_LONG_DOUBLE + +/* Assuming x is finite and >= 0: + write x as x = 2^e * m, where m is a bignum. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +decode_long_double (long double x, int *ep, mpn_t *mp) +{ + mpn_t m; + int exp; + long double y; + size_t i; + + /* Allocate memory for result. */ + m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; + m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); + if (m.limbs == NULL) + return NULL; + /* Split into exponential part and mantissa. */ + y = frexpl (x, &exp); + if (!(y >= 0.0L && y < 1.0L)) + abort (); + /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the + latter is an integer. */ + /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs. + I'm not sure whether it's safe to cast a 'long double' value between + 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only + 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int', + doesn't matter). */ +# if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0 +# if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2)); + hi = (int) y; + y -= hi; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } +# else + { + mp_limb_t d; + y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS); + d = (int) y; + y -= d; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d; + } +# endif +# endif + for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + hi = (int) y; + y -= hi; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0L && y < 1.0L)) + abort (); + m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } +#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess + precision. */ + if (!(y == 0.0L)) + abort (); +#endif + /* Normalise. */ + while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) + m.nlimbs--; + *mp = m; + *ep = exp - LDBL_MANT_BIT; + return m.limbs; +} + +# endif + +# if NEED_PRINTF_DOUBLE + +/* Assuming x is finite and >= 0: + write x as x = 2^e * m, where m is a bignum. + Return the allocated memory in case of success, NULL in case of memory + allocation failure. */ +static void * +decode_double (double x, int *ep, mpn_t *mp) +{ + mpn_t m; + int exp; + double y; + size_t i; + + /* Allocate memory for result. */ + m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; + m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); + if (m.limbs == NULL) + return NULL; + /* Split into exponential part and mantissa. */ + y = frexp (x, &exp); + if (!(y >= 0.0 && y < 1.0)) + abort (); + /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the + latter is an integer. */ + /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs. + I'm not sure whether it's safe to cast a 'double' value between + 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only + 'double' values between 0 and 2^16 (to 'unsigned int' or 'int', + doesn't matter). */ +# if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0 +# if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2)); + hi = (int) y; + y -= hi; + if (!(y >= 0.0 && y < 1.0)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0 && y < 1.0)) + abort (); + m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } +# else + { + mp_limb_t d; + y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS); + d = (int) y; + y -= d; + if (!(y >= 0.0 && y < 1.0)) + abort (); + m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d; + } +# endif +# endif + for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) + { + mp_limb_t hi, lo; + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + hi = (int) y; + y -= hi; + if (!(y >= 0.0 && y < 1.0)) + abort (); + y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); + lo = (int) y; + y -= lo; + if (!(y >= 0.0 && y < 1.0)) + abort (); + m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; + } + if (!(y == 0.0)) + abort (); + /* Normalise. */ + while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) + m.nlimbs--; + *mp = m; + *ep = exp - DBL_MANT_BIT; + return m.limbs; +} + +# endif + +/* Assuming x = 2^e * m is finite and >= 0, and n is an integer: + Returns the decimal representation of round (x * 10^n). + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n) +{ + int s; + size_t extra_zeroes; + unsigned int abs_n; + unsigned int abs_s; + mp_limb_t *pow5_ptr; + size_t pow5_len; + unsigned int s_limbs; + unsigned int s_bits; + mpn_t pow5; + mpn_t z; + void *z_memory; + char *digits; + + if (memory == NULL) + return NULL; + /* x = 2^e * m, hence + y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m) + = round (2^s * 5^n * m). */ + s = e + n; + extra_zeroes = 0; + /* Factor out a common power of 10 if possible. */ + if (s > 0 && n > 0) + { + extra_zeroes = (s < n ? s : n); + s -= extra_zeroes; + n -= extra_zeroes; + } + /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes. + Before converting to decimal, we need to compute + z = round (2^s * 5^n * m). */ + /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same + sign. 2.322 is slightly larger than log(5)/log(2). */ + abs_n = (n >= 0 ? n : -n); + abs_s = (s >= 0 ? s : -s); + pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1 + + abs_s / GMP_LIMB_BITS + 1) + * sizeof (mp_limb_t)); + if (pow5_ptr == NULL) + { + free (memory); + return NULL; + } + /* Initialize with 1. */ + pow5_ptr[0] = 1; + pow5_len = 1; + /* Multiply with 5^|n|. */ + if (abs_n > 0) + { + static mp_limb_t const small_pow5[13 + 1] = + { + 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, + 48828125, 244140625, 1220703125 + }; + unsigned int n13; + for (n13 = 0; n13 <= abs_n; n13 += 13) + { + mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13]; + size_t j; + mp_twolimb_t carry = 0; + for (j = 0; j < pow5_len; j++) + { + mp_limb_t digit2 = pow5_ptr[j]; + carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; + pow5_ptr[j] = (mp_limb_t) carry; + carry = carry >> GMP_LIMB_BITS; + } + if (carry > 0) + pow5_ptr[pow5_len++] = (mp_limb_t) carry; + } + } + s_limbs = abs_s / GMP_LIMB_BITS; + s_bits = abs_s % GMP_LIMB_BITS; + if (n >= 0 ? s >= 0 : s <= 0) + { + /* Multiply with 2^|s|. */ + if (s_bits > 0) + { + mp_limb_t *ptr = pow5_ptr; + mp_twolimb_t accu = 0; + size_t count; + for (count = pow5_len; count > 0; count--) + { + accu += (mp_twolimb_t) *ptr << s_bits; + *ptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + if (accu > 0) + { + *ptr = (mp_limb_t) accu; + pow5_len++; + } + } + if (s_limbs > 0) + { + size_t count; + for (count = pow5_len; count > 0;) + { + count--; + pow5_ptr[s_limbs + count] = pow5_ptr[count]; + } + for (count = s_limbs; count > 0;) + { + count--; + pow5_ptr[count] = 0; + } + pow5_len += s_limbs; + } + pow5.limbs = pow5_ptr; + pow5.nlimbs = pow5_len; + if (n >= 0) + { + /* Multiply m with pow5. No division needed. */ + z_memory = multiply (m, pow5, &z); + } + else + { + /* Divide m by pow5 and round. */ + z_memory = divide (m, pow5, &z); + } + } + else + { + pow5.limbs = pow5_ptr; + pow5.nlimbs = pow5_len; + if (n >= 0) + { + /* n >= 0, s < 0. + Multiply m with pow5, then divide by 2^|s|. */ + mpn_t numerator; + mpn_t denominator; + void *tmp_memory; + tmp_memory = multiply (m, pow5, &numerator); + if (tmp_memory == NULL) + { + free (pow5_ptr); + free (memory); + return NULL; + } + /* Construct 2^|s|. */ + { + mp_limb_t *ptr = pow5_ptr + pow5_len; + size_t i; + for (i = 0; i < s_limbs; i++) + ptr[i] = 0; + ptr[s_limbs] = (mp_limb_t) 1 << s_bits; + denominator.limbs = ptr; + denominator.nlimbs = s_limbs + 1; + } + z_memory = divide (numerator, denominator, &z); + free (tmp_memory); + } + else + { + /* n < 0, s > 0. + Multiply m with 2^s, then divide by pow5. */ + mpn_t numerator; + mp_limb_t *num_ptr; + num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1) + * sizeof (mp_limb_t)); + if (num_ptr == NULL) + { + free (pow5_ptr); + free (memory); + return NULL; + } + { + mp_limb_t *destptr = num_ptr; + { + size_t i; + for (i = 0; i < s_limbs; i++) + *destptr++ = 0; + } + if (s_bits > 0) + { + const mp_limb_t *sourceptr = m.limbs; + mp_twolimb_t accu = 0; + size_t count; + for (count = m.nlimbs; count > 0; count--) + { + accu += (mp_twolimb_t) *sourceptr++ << s_bits; + *destptr++ = (mp_limb_t) accu; + accu = accu >> GMP_LIMB_BITS; + } + if (accu > 0) + *destptr++ = (mp_limb_t) accu; + } + else + { + const mp_limb_t *sourceptr = m.limbs; + size_t count; + for (count = m.nlimbs; count > 0; count--) + *destptr++ = *sourceptr++; + } + numerator.limbs = num_ptr; + numerator.nlimbs = destptr - num_ptr; + } + z_memory = divide (numerator, pow5, &z); + free (num_ptr); + } + } + free (pow5_ptr); + free (memory); + + /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */ + + if (z_memory == NULL) + return NULL; + digits = convert_to_decimal (z, extra_zeroes); + free (z_memory); + return digits; +} + +# if NEED_PRINTF_LONG_DOUBLE + +/* Assuming x is finite and >= 0, and n is an integer: + Returns the decimal representation of round (x * 10^n). + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +scale10_round_decimal_long_double (long double x, int n) +{ + int e IF_LINT(= 0); + mpn_t m; + void *memory = decode_long_double (x, &e, &m); + return scale10_round_decimal_decoded (e, m, memory, n); +} + +# endif + +# if NEED_PRINTF_DOUBLE + +/* Assuming x is finite and >= 0, and n is an integer: + Returns the decimal representation of round (x * 10^n). + Return the allocated memory - containing the decimal digits in low-to-high + order, terminated with a NUL character - in case of success, NULL in case + of memory allocation failure. */ +static char * +scale10_round_decimal_double (double x, int n) +{ + int e IF_LINT(= 0); + mpn_t m; + void *memory = decode_double (x, &e, &m); + return scale10_round_decimal_decoded (e, m, memory, n); +} + +# endif + +# if NEED_PRINTF_LONG_DOUBLE + +/* Assuming x is finite and > 0: + Return an approximation for n with 10^n <= x < 10^(n+1). + The approximation is usually the right n, but may be off by 1 sometimes. */ +static int +floorlog10l (long double x) +{ + int exp; + long double y; + double z; + double l; + + /* Split into exponential part and mantissa. */ + y = frexpl (x, &exp); + if (!(y >= 0.0L && y < 1.0L)) + abort (); + if (y == 0.0L) + return INT_MIN; + if (y < 0.5L) + { + while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) + { + y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); + exp -= GMP_LIMB_BITS; + } + if (y < (1.0L / (1 << 16))) + { + y *= 1.0L * (1 << 16); + exp -= 16; + } + if (y < (1.0L / (1 << 8))) + { + y *= 1.0L * (1 << 8); + exp -= 8; + } + if (y < (1.0L / (1 << 4))) + { + y *= 1.0L * (1 << 4); + exp -= 4; + } + if (y < (1.0L / (1 << 2))) + { + y *= 1.0L * (1 << 2); + exp -= 2; + } + if (y < (1.0L / (1 << 1))) + { + y *= 1.0L * (1 << 1); + exp -= 1; + } + } + if (!(y >= 0.5L && y < 1.0L)) + abort (); + /* Compute an approximation for l = log2(x) = exp + log2(y). */ + l = exp; + z = y; + if (z < 0.70710678118654752444) + { + z *= 1.4142135623730950488; + l -= 0.5; + } + if (z < 0.8408964152537145431) + { + z *= 1.1892071150027210667; + l -= 0.25; + } + if (z < 0.91700404320467123175) + { + z *= 1.0905077326652576592; + l -= 0.125; + } + if (z < 0.9576032806985736469) + { + z *= 1.0442737824274138403; + l -= 0.0625; + } + /* Now 0.95 <= z <= 1.01. */ + z = 1 - z; + /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) + Four terms are enough to get an approximation with error < 10^-7. */ + l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); + /* Finally multiply with log(2)/log(10), yields an approximation for + log10(x). */ + l *= 0.30102999566398119523; + /* Round down to the next integer. */ + return (int) l + (l < 0 ? -1 : 0); +} + +# endif + +# if NEED_PRINTF_DOUBLE + +/* Assuming x is finite and > 0: + Return an approximation for n with 10^n <= x < 10^(n+1). + The approximation is usually the right n, but may be off by 1 sometimes. */ +static int +floorlog10 (double x) +{ + int exp; + double y; + double z; + double l; + + /* Split into exponential part and mantissa. */ + y = frexp (x, &exp); + if (!(y >= 0.0 && y < 1.0)) + abort (); + if (y == 0.0) + return INT_MIN; + if (y < 0.5) + { + while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) + { + y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); + exp -= GMP_LIMB_BITS; + } + if (y < (1.0 / (1 << 16))) + { + y *= 1.0 * (1 << 16); + exp -= 16; + } + if (y < (1.0 / (1 << 8))) + { + y *= 1.0 * (1 << 8); + exp -= 8; + } + if (y < (1.0 / (1 << 4))) + { + y *= 1.0 * (1 << 4); + exp -= 4; + } + if (y < (1.0 / (1 << 2))) + { + y *= 1.0 * (1 << 2); + exp -= 2; + } + if (y < (1.0 / (1 << 1))) + { + y *= 1.0 * (1 << 1); + exp -= 1; + } + } + if (!(y >= 0.5 && y < 1.0)) + abort (); + /* Compute an approximation for l = log2(x) = exp + log2(y). */ + l = exp; + z = y; + if (z < 0.70710678118654752444) + { + z *= 1.4142135623730950488; + l -= 0.5; + } + if (z < 0.8408964152537145431) + { + z *= 1.1892071150027210667; + l -= 0.25; + } + if (z < 0.91700404320467123175) + { + z *= 1.0905077326652576592; + l -= 0.125; + } + if (z < 0.9576032806985736469) + { + z *= 1.0442737824274138403; + l -= 0.0625; + } + /* Now 0.95 <= z <= 1.01. */ + z = 1 - z; + /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) + Four terms are enough to get an approximation with error < 10^-7. */ + l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); + /* Finally multiply with log(2)/log(10), yields an approximation for + log10(x). */ + l *= 0.30102999566398119523; + /* Round down to the next integer. */ + return (int) l + (l < 0 ? -1 : 0); +} + +# endif + +/* Tests whether a string of digits consists of exactly PRECISION zeroes and + a single '1' digit. */ +static int +is_borderline (const char *digits, size_t precision) +{ + for (; precision > 0; precision--, digits++) + if (*digits != '0') + return 0; + if (*digits != '1') + return 0; + digits++; + return *digits == '\0'; +} + +#endif + +DCHAR_T * +VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, + const FCHAR_T *format, va_list args) +{ + DIRECTIVES d; + arguments a; + + if (PRINTF_PARSE (format, &d, &a) < 0) + /* errno is already set. */ + return NULL; + +#define CLEANUP() \ + free (d.dir); \ + if (a.arg) \ + free (a.arg); + + if (PRINTF_FETCHARGS (args, &a) < 0) + { + CLEANUP (); + errno = EINVAL; + return NULL; + } + + { + size_t buf_neededlength; + TCHAR_T *buf; + TCHAR_T *buf_malloced; + const FCHAR_T *cp; + size_t i; + DIRECTIVE *dp; + /* Output string accumulator. */ + DCHAR_T *result; + size_t allocated; + size_t length; + + /* Allocate a small buffer that will hold a directive passed to + sprintf or snprintf. */ + buf_neededlength = + xsum4 (7, d.max_width_length, d.max_precision_length, 6); +#if HAVE_ALLOCA + if (buf_neededlength < 4000 / sizeof (TCHAR_T)) + { + buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T)); + buf_malloced = NULL; + } + else +#endif + { + size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T)); + if (size_overflow_p (buf_memsize)) + goto out_of_memory_1; + buf = (TCHAR_T *) malloc (buf_memsize); + if (buf == NULL) + goto out_of_memory_1; + buf_malloced = buf; + } + + if (resultbuf != NULL) + { + result = resultbuf; + allocated = *lengthp; + } + else + { + result = NULL; + allocated = 0; + } + length = 0; + /* Invariants: + result is either == resultbuf or == NULL or malloc-allocated. + If length > 0, then result != NULL. */ + + /* Ensures that allocated >= needed. Aborts through a jump to + out_of_memory if needed is SIZE_MAX or otherwise too big. */ +#define ENSURE_ALLOCATION(needed) \ + if ((needed) > allocated) \ + { \ + size_t memory_size; \ + DCHAR_T *memory; \ + \ + allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \ + if ((needed) > allocated) \ + allocated = (needed); \ + memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ + if (size_overflow_p (memory_size)) \ + goto out_of_memory; \ + if (result == resultbuf || result == NULL) \ + memory = (DCHAR_T *) malloc (memory_size); \ + else \ + memory = (DCHAR_T *) realloc (result, memory_size); \ + if (memory == NULL) \ + goto out_of_memory; \ + if (result == resultbuf && length > 0) \ + DCHAR_CPY (memory, result, length); \ + result = memory; \ + } + + for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) + { + if (cp != dp->dir_start) + { + size_t n = dp->dir_start - cp; + size_t augmented_length = xsum (length, n); + + ENSURE_ALLOCATION (augmented_length); + /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we + need that the format string contains only ASCII characters + if FCHAR_T and DCHAR_T are not the same type. */ + if (sizeof (FCHAR_T) == sizeof (DCHAR_T)) + { + DCHAR_CPY (result + length, (const DCHAR_T *) cp, n); + length = augmented_length; + } + else + { + do + result[length++] = (unsigned char) *cp++; + while (--n > 0); + } + } + if (i == d.count) + break; + + /* Execute a single directive. */ + if (dp->conversion == '%') + { + size_t augmented_length; + + if (!(dp->arg_index == ARG_NONE)) + abort (); + augmented_length = xsum (length, 1); + ENSURE_ALLOCATION (augmented_length); + result[length] = '%'; + length = augmented_length; + } + else + { + if (!(dp->arg_index != ARG_NONE)) + abort (); + + if (dp->conversion == 'n') + { + switch (a.arg[dp->arg_index].type) + { + case TYPE_COUNT_SCHAR_POINTER: + *a.arg[dp->arg_index].a.a_count_schar_pointer = length; + break; + case TYPE_COUNT_SHORT_POINTER: + *a.arg[dp->arg_index].a.a_count_short_pointer = length; + break; + case TYPE_COUNT_INT_POINTER: + *a.arg[dp->arg_index].a.a_count_int_pointer = length; + break; + case TYPE_COUNT_LONGINT_POINTER: + *a.arg[dp->arg_index].a.a_count_longint_pointer = length; + break; +#if HAVE_LONG_LONG_INT + case TYPE_COUNT_LONGLONGINT_POINTER: + *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; + break; +#endif + default: + abort (); + } + } +#if ENABLE_UNISTDIO + /* The unistdio extensions. */ + else if (dp->conversion == 'U') + { + arg_type type = a.arg[dp->arg_index].type; + int flags = dp->flags; + int has_width; + size_t width; + int has_precision; + size_t precision; + + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } + + has_precision = 0; + precision = 0; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } + + switch (type) + { + case TYPE_U8_STRING: + { + const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string; + const uint8_t *arg_end; + size_t characters; + + if (has_precision) + { + /* Use only PRECISION characters, from the left. */ + arg_end = arg; + characters = 0; + for (; precision > 0; precision--) + { + int count = u8_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else if (has_width) + { + /* Use the entire string, and count the number of + characters. */ + arg_end = arg; + characters = 0; + for (;;) + { + int count = u8_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else + { + /* Use the entire string. */ + arg_end = arg + u8_strlen (arg); + /* The number of characters doesn't matter. */ + characters = 0; + } + + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + +# if DCHAR_IS_UINT8_T + { + size_t n = arg_end - arg; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_CPY (result + length, arg, n); + length += n; + } +# else + { /* Convert. */ + DCHAR_T *converted = result + length; + size_t converted_len = allocated - length; +# if DCHAR_IS_TCHAR + /* Convert from UTF-8 to locale encoding. */ + converted = + u8_conv_to_encoding (locale_charset (), + iconveh_question_mark, + arg, arg_end - arg, NULL, + converted, &converted_len); +# else + /* Convert from UTF-8 to UTF-16/UTF-32. */ + converted = + U8_TO_DCHAR (arg, arg_end - arg, + converted, &converted_len); +# endif + if (converted == NULL) + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + if (converted != result + length) + { + ENSURE_ALLOCATION (xsum (length, converted_len)); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } + length += converted_len; + } +# endif + + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } + break; + + case TYPE_U16_STRING: + { + const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string; + const uint16_t *arg_end; + size_t characters; + + if (has_precision) + { + /* Use only PRECISION characters, from the left. */ + arg_end = arg; + characters = 0; + for (; precision > 0; precision--) + { + int count = u16_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else if (has_width) + { + /* Use the entire string, and count the number of + characters. */ + arg_end = arg; + characters = 0; + for (;;) + { + int count = u16_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else + { + /* Use the entire string. */ + arg_end = arg + u16_strlen (arg); + /* The number of characters doesn't matter. */ + characters = 0; + } + + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + +# if DCHAR_IS_UINT16_T + { + size_t n = arg_end - arg; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_CPY (result + length, arg, n); + length += n; + } +# else + { /* Convert. */ + DCHAR_T *converted = result + length; + size_t converted_len = allocated - length; +# if DCHAR_IS_TCHAR + /* Convert from UTF-16 to locale encoding. */ + converted = + u16_conv_to_encoding (locale_charset (), + iconveh_question_mark, + arg, arg_end - arg, NULL, + converted, &converted_len); +# else + /* Convert from UTF-16 to UTF-8/UTF-32. */ + converted = + U16_TO_DCHAR (arg, arg_end - arg, + converted, &converted_len); +# endif + if (converted == NULL) + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + if (converted != result + length) + { + ENSURE_ALLOCATION (xsum (length, converted_len)); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } + length += converted_len; + } +# endif + + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } + break; + + case TYPE_U32_STRING: + { + const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string; + const uint32_t *arg_end; + size_t characters; + + if (has_precision) + { + /* Use only PRECISION characters, from the left. */ + arg_end = arg; + characters = 0; + for (; precision > 0; precision--) + { + int count = u32_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else if (has_width) + { + /* Use the entire string, and count the number of + characters. */ + arg_end = arg; + characters = 0; + for (;;) + { + int count = u32_strmblen (arg_end); + if (count == 0) + break; + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else + { + /* Use the entire string. */ + arg_end = arg + u32_strlen (arg); + /* The number of characters doesn't matter. */ + characters = 0; + } + + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + +# if DCHAR_IS_UINT32_T + { + size_t n = arg_end - arg; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_CPY (result + length, arg, n); + length += n; + } +# else + { /* Convert. */ + DCHAR_T *converted = result + length; + size_t converted_len = allocated - length; +# if DCHAR_IS_TCHAR + /* Convert from UTF-32 to locale encoding. */ + converted = + u32_conv_to_encoding (locale_charset (), + iconveh_question_mark, + arg, arg_end - arg, NULL, + converted, &converted_len); +# else + /* Convert from UTF-32 to UTF-8/UTF-16. */ + converted = + U32_TO_DCHAR (arg, arg_end - arg, + converted, &converted_len); +# endif + if (converted == NULL) + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + if (converted != result + length) + { + ENSURE_ALLOCATION (xsum (length, converted_len)); + DCHAR_CPY (result + length, converted, converted_len); + free (converted); + } + length += converted_len; + } +# endif + + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } + break; + + default: + abort (); + } + } +#endif +#if (!USE_SNPRINTF || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && HAVE_WCHAR_T + else if (dp->conversion == 's' +# if WIDE_CHAR_VERSION + && a.arg[dp->arg_index].type != TYPE_WIDE_STRING +# else + && a.arg[dp->arg_index].type == TYPE_WIDE_STRING +# endif + ) + { + /* The normal handling of the 's' directive below requires + allocating a temporary buffer. The determination of its + length (tmp_length), in the case when a precision is + specified, below requires a conversion between a char[] + string and a wchar_t[] wide string. It could be done, but + we have no guarantee that the implementation of sprintf will + use the exactly same algorithm. Without this guarantee, it + is possible to have buffer overrun bugs. In order to avoid + such bugs, we implement the entire processing of the 's' + directive ourselves. */ + int flags = dp->flags; + int has_width; + size_t width; + int has_precision; + size_t precision; + + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } + + has_precision = 0; + precision = 6; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } + +# if WIDE_CHAR_VERSION + /* %s in vasnwprintf. See the specification of fwprintf. */ + { + const char *arg = a.arg[dp->arg_index].a.a_string; + const char *arg_end; + size_t characters; + + if (has_precision) + { + /* Use only as many bytes as needed to produce PRECISION + wide characters, from the left. */ +# if HAVE_MBRTOWC + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + arg_end = arg; + characters = 0; + for (; precision > 0; precision--) + { + int count; +# if HAVE_MBRTOWC + count = mbrlen (arg_end, MB_CUR_MAX, &state); +# else + count = mblen (arg_end, MB_CUR_MAX); +# endif + if (count == 0) + /* Found the terminating NUL. */ + break; + if (count < 0) + { + /* Invalid or incomplete multibyte character. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else if (has_width) + { + /* Use the entire string, and count the number of wide + characters. */ +# if HAVE_MBRTOWC + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + arg_end = arg; + characters = 0; + for (;;) + { + int count; +# if HAVE_MBRTOWC + count = mbrlen (arg_end, MB_CUR_MAX, &state); +# else + count = mblen (arg_end, MB_CUR_MAX); +# endif + if (count == 0) + /* Found the terminating NUL. */ + break; + if (count < 0) + { + /* Invalid or incomplete multibyte character. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end += count; + characters++; + } + } + else + { + /* Use the entire string. */ + arg_end = arg + strlen (arg); + /* The number of characters doesn't matter. */ + characters = 0; + } + + if (has_width && width > characters + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + + if (has_precision || has_width) + { + /* We know the number of wide characters in advance. */ + size_t remaining; +# if HAVE_MBRTOWC + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + ENSURE_ALLOCATION (xsum (length, characters)); + for (remaining = characters; remaining > 0; remaining--) + { + wchar_t wc; + int count; +# if HAVE_MBRTOWC + count = mbrtowc (&wc, arg, arg_end - arg, &state); +# else + count = mbtowc (&wc, arg, arg_end - arg); +# endif + if (count <= 0) + /* mbrtowc not consistent with mbrlen, or mbtowc + not consistent with mblen. */ + abort (); + result[length++] = wc; + arg += count; + } + if (!(arg == arg_end)) + abort (); + } + else + { +# if HAVE_MBRTOWC + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + while (arg < arg_end) + { + wchar_t wc; + int count; +# if HAVE_MBRTOWC + count = mbrtowc (&wc, arg, arg_end - arg, &state); +# else + count = mbtowc (&wc, arg, arg_end - arg); +# endif + if (count <= 0) + /* mbrtowc not consistent with mbrlen, or mbtowc + not consistent with mblen. */ + abort (); + ENSURE_ALLOCATION (xsum (length, 1)); + result[length++] = wc; + arg += count; + } + } + + if (has_width && width > characters + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - characters; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } +# else + /* %ls in vasnprintf. See the specification of fprintf. */ + { + const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; + const wchar_t *arg_end; + size_t characters; +# if !DCHAR_IS_TCHAR + /* This code assumes that TCHAR_T is 'char'. */ + typedef int TCHAR_T_verify[2 * (sizeof (TCHAR_T) == 1) - 1]; + TCHAR_T *tmpsrc; + DCHAR_T *tmpdst; + size_t tmpdst_len; +# endif + size_t w; + + if (has_precision) + { + /* Use only as many wide characters as needed to produce + at most PRECISION bytes, from the left. */ +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + arg_end = arg; + characters = 0; + while (precision > 0) + { + char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ + int count; + + if (*arg_end == 0) + /* Found the terminating null wide character. */ + break; +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg_end, &state); +# else + count = wctomb (cbuf, *arg_end); +# endif + if (count < 0) + { + /* Cannot convert. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + if (precision < count) + break; + arg_end++; + characters += count; + precision -= count; + } + } +# if DCHAR_IS_TCHAR + else if (has_width) +# else + else +# endif + { + /* Use the entire string, and count the number of + bytes. */ +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + arg_end = arg; + characters = 0; + for (;;) + { + char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ + int count; + + if (*arg_end == 0) + /* Found the terminating null wide character. */ + break; +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg_end, &state); +# else + count = wctomb (cbuf, *arg_end); +# endif + if (count < 0) + { + /* Cannot convert. */ + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EILSEQ; + return NULL; + } + arg_end++; + characters += count; + } + } +# if DCHAR_IS_TCHAR + else + { + /* Use the entire string. */ + arg_end = arg + local_wcslen (arg); + /* The number of bytes doesn't matter. */ + characters = 0; + } +# endif + +# if !DCHAR_IS_TCHAR + /* Convert the string into a piece of temporary memory. */ + tmpsrc = (TCHAR_T *) malloc (characters * sizeof (TCHAR_T)); + if (tmpsrc == NULL) + goto out_of_memory; + { + TCHAR_T *tmpptr = tmpsrc; + size_t remaining; +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + for (remaining = characters; remaining > 0; ) + { + char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ + int count; + + if (*arg == 0) + abort (); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg, &state); +# else + count = wctomb (cbuf, *arg); +# endif + if (count <= 0) + /* Inconsistency. */ + abort (); + memcpy (tmpptr, cbuf, count); + tmpptr += count; + arg++; + remaining -= count; + } + if (!(arg == arg_end)) + abort (); + } + + /* Convert from TCHAR_T[] to DCHAR_T[]. */ + tmpdst = + DCHAR_CONV_FROM_ENCODING (locale_charset (), + iconveh_question_mark, + tmpsrc, characters, + NULL, + NULL, &tmpdst_len); + if (tmpdst == NULL) + { + int saved_errno = errno; + free (tmpsrc); + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + free (tmpsrc); +# endif + + if (has_width) + { +# if ENABLE_UNISTDIO + /* Outside POSIX, it's preferrable to compare the width + against the number of _characters_ of the converted + value. */ + w = DCHAR_MBSNLEN (result + length, characters); +# else + /* The width is compared against the number of _bytes_ + of the converted value, says POSIX. */ + w = characters; +# endif + } + else + /* w doesn't matter. */ + w = 0; + + if (has_width && width > w + && !(dp->flags & FLAG_LEFT)) + { + size_t n = width - w; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + +# if DCHAR_IS_TCHAR + if (has_precision || has_width) + { + /* We know the number of bytes in advance. */ + size_t remaining; +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + ENSURE_ALLOCATION (xsum (length, characters)); + for (remaining = characters; remaining > 0; ) + { + char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ + int count; + + if (*arg == 0) + abort (); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg, &state); +# else + count = wctomb (cbuf, *arg); +# endif + if (count <= 0) + /* Inconsistency. */ + abort (); + memcpy (result + length, cbuf, count); + length += count; + arg++; + remaining -= count; + } + if (!(arg == arg_end)) + abort (); + } + else + { +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + mbstate_t state; + memset (&state, '\0', sizeof (mbstate_t)); +# endif + while (arg < arg_end) + { + char cbuf[64]; /* Assume MB_CUR_MAX <= 64. */ + int count; + + if (*arg == 0) + abort (); +# if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t + count = wcrtomb (cbuf, *arg, &state); +# else + count = wctomb (cbuf, *arg); +# endif + if (count <= 0) + /* Inconsistency. */ + abort (); + ENSURE_ALLOCATION (xsum (length, count)); + memcpy (result + length, cbuf, count); + length += count; + arg++; + } + } +# else + ENSURE_ALLOCATION (xsum (length, tmpdst_len)); + DCHAR_CPY (result + length, tmpdst, tmpdst_len); + free (tmpdst); + length += tmpdst_len; +# endif + + if (has_width && width > w + && (dp->flags & FLAG_LEFT)) + { + size_t n = width - w; + ENSURE_ALLOCATION (xsum (length, n)); + DCHAR_SET (result + length, ' ', n); + length += n; + } + } + } +# endif +#endif +#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL + else if ((dp->conversion == 'a' || dp->conversion == 'A') +# if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) + && (0 +# if NEED_PRINTF_DOUBLE + || a.arg[dp->arg_index].type == TYPE_DOUBLE +# endif +# if NEED_PRINTF_LONG_DOUBLE + || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE +# endif + ) +# endif + ) + { + arg_type type = a.arg[dp->arg_index].type; + int flags = dp->flags; + int has_width; + size_t width; + int has_precision; + size_t precision; + size_t tmp_length; + DCHAR_T tmpbuf[700]; + DCHAR_T *tmp; + DCHAR_T *pad_ptr; + DCHAR_T *p; + + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } + + has_precision = 0; + precision = 0; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } + + /* Allocate a temporary buffer of sufficient size. */ + if (type == TYPE_LONGDOUBLE) + tmp_length = + (unsigned int) ((LDBL_DIG + 1) + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + else + tmp_length = + (unsigned int) ((DBL_DIG + 1) + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + if (tmp_length < precision) + tmp_length = precision; + /* Account for sign, decimal point etc. */ + tmp_length = xsum (tmp_length, 12); + + if (tmp_length < width) + tmp_length = width; + + tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ + + if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) + tmp = tmpbuf; + else + { + size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); + + if (size_overflow_p (tmp_memsize)) + /* Overflow, would lead to out of memory. */ + goto out_of_memory; + tmp = (DCHAR_T *) malloc (tmp_memsize); + if (tmp == NULL) + /* Out of memory. */ + goto out_of_memory; + } + + pad_ptr = NULL; + p = tmp; + if (type == TYPE_LONGDOUBLE) + { +# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE + long double arg = a.arg[dp->arg_index].a.a_longdouble; + + if (isnanl (arg)) + { + if (dp->conversion == 'A') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + DECL_LONG_DOUBLE_ROUNDING + + BEGIN_LONG_DOUBLE_ROUNDING (); + + if (signbit (arg)) /* arg < 0.0L or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0L && arg + arg == arg) + { + if (dp->conversion == 'A') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { + int exponent; + long double mantissa; + + if (arg > 0.0L) + mantissa = printf_frexpl (arg, &exponent); + else + { + exponent = 0; + mantissa = 0.0L; + } + + if (has_precision + && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1) + { + /* Round the mantissa. */ + long double tail = mantissa; + size_t q; + + for (q = precision; ; q--) + { + int digit = (int) tail; + tail -= digit; + if (q == 0) + { + if (digit & 1 ? tail >= 0.5L : tail > 0.5L) + tail = 1 - tail; + else + tail = - tail; + break; + } + tail *= 16.0L; + } + if (tail != 0.0L) + for (q = precision; q > 0; q--) + tail *= 0.0625L; + mantissa += tail; + } + + *p++ = '0'; + *p++ = dp->conversion - 'A' + 'X'; + pad_ptr = p; + { + int digit; + + digit = (int) mantissa; + mantissa -= digit; + *p++ = '0' + digit; + if ((flags & FLAG_ALT) + || mantissa > 0.0L || precision > 0) + { + *p++ = decimal_point_char (); + /* This loop terminates because we assume + that FLT_RADIX is a power of 2. */ + while (mantissa > 0.0L) + { + mantissa *= 16.0L; + digit = (int) mantissa; + mantissa -= digit; + *p++ = digit + + (digit < 10 + ? '0' + : dp->conversion - 10); + if (precision > 0) + precision--; + } + while (precision > 0) + { + *p++ = '0'; + precision--; + } + } + } + *p++ = dp->conversion - 'A' + 'P'; +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + + END_LONG_DOUBLE_ROUNDING (); + } +# else + abort (); +# endif + } + else + { +# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE + double arg = a.arg[dp->arg_index].a.a_double; + + if (isnand (arg)) + { + if (dp->conversion == 'A') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + + if (signbit (arg)) /* arg < 0.0 or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0 && arg + arg == arg) + { + if (dp->conversion == 'A') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { + int exponent; + double mantissa; + + if (arg > 0.0) + mantissa = printf_frexp (arg, &exponent); + else + { + exponent = 0; + mantissa = 0.0; + } + + if (has_precision + && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1) + { + /* Round the mantissa. */ + double tail = mantissa; + size_t q; + + for (q = precision; ; q--) + { + int digit = (int) tail; + tail -= digit; + if (q == 0) + { + if (digit & 1 ? tail >= 0.5 : tail > 0.5) + tail = 1 - tail; + else + tail = - tail; + break; + } + tail *= 16.0; + } + if (tail != 0.0) + for (q = precision; q > 0; q--) + tail *= 0.0625; + mantissa += tail; + } + + *p++ = '0'; + *p++ = dp->conversion - 'A' + 'X'; + pad_ptr = p; + { + int digit; + + digit = (int) mantissa; + mantissa -= digit; + *p++ = '0' + digit; + if ((flags & FLAG_ALT) + || mantissa > 0.0 || precision > 0) + { + *p++ = decimal_point_char (); + /* This loop terminates because we assume + that FLT_RADIX is a power of 2. */ + while (mantissa > 0.0) + { + mantissa *= 16.0; + digit = (int) mantissa; + mantissa -= digit; + *p++ = digit + + (digit < 10 + ? '0' + : dp->conversion - 10); + if (precision > 0) + precision--; + } + while (precision > 0) + { + *p++ = '0'; + precision--; + } + } + } + *p++ = dp->conversion - 'A' + 'P'; +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + } +# else + abort (); +# endif + } + /* The generated string now extends from tmp to p, with the + zero padding insertion point being at pad_ptr. */ + if (has_width && p - tmp < width) + { + size_t pad = width - (p - tmp); + DCHAR_T *end = p + pad; + + if (flags & FLAG_LEFT) + { + /* Pad with spaces on the right. */ + for (; pad > 0; pad--) + *p++ = ' '; + } + else if ((flags & FLAG_ZERO) && pad_ptr != NULL) + { + /* Pad with zeroes. */ + DCHAR_T *q = end; + + while (p > pad_ptr) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = '0'; + } + else + { + /* Pad with spaces on the left. */ + DCHAR_T *q = end; + + while (p > tmp) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = ' '; + } + + p = end; + } + + { + size_t count = p - tmp; + + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); + + /* Make room for the result. */ + if (count >= allocated - length) + { + size_t n = xsum (length, count); + + ENSURE_ALLOCATION (n); + } + + /* Append the result. */ + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); + if (tmp != tmpbuf) + free (tmp); + length += count; + } + } +#endif +#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL + else if ((dp->conversion == 'f' || dp->conversion == 'F' + || dp->conversion == 'e' || dp->conversion == 'E' + || dp->conversion == 'g' || dp->conversion == 'G' + || dp->conversion == 'a' || dp->conversion == 'A') + && (0 +# if NEED_PRINTF_DOUBLE + || a.arg[dp->arg_index].type == TYPE_DOUBLE +# elif NEED_PRINTF_INFINITE_DOUBLE + || (a.arg[dp->arg_index].type == TYPE_DOUBLE + /* The systems (mingw) which produce wrong output + for Inf, -Inf, and NaN also do so for -0.0. + Therefore we treat this case here as well. */ + && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double)) +# endif +# if NEED_PRINTF_LONG_DOUBLE + || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE +# elif NEED_PRINTF_INFINITE_LONG_DOUBLE + || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE + /* Some systems produce wrong output for Inf, + -Inf, and NaN. Some systems in this category + (IRIX 5.3) also do so for -0.0. Therefore we + treat this case here as well. */ + && is_infinite_or_zerol (a.arg[dp->arg_index].a.a_longdouble)) +# endif + )) + { +# if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) + arg_type type = a.arg[dp->arg_index].type; +# endif + int flags = dp->flags; + int has_width; + size_t width; + int has_precision; + size_t precision; + size_t tmp_length; + DCHAR_T tmpbuf[700]; + DCHAR_T *tmp; + DCHAR_T *pad_ptr; + DCHAR_T *p; + + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } + + has_precision = 0; + precision = 0; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } + + /* POSIX specifies the default precision to be 6 for %f, %F, + %e, %E, but not for %g, %G. Implementations appear to use + the same default precision also for %g, %G. But for %a, %A, + the default precision is 0. */ + if (!has_precision) + if (!(dp->conversion == 'a' || dp->conversion == 'A')) + precision = 6; + + /* Allocate a temporary buffer of sufficient size. */ +# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE + tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1); +# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE + tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0); +# elif NEED_PRINTF_LONG_DOUBLE + tmp_length = LDBL_DIG + 1; +# elif NEED_PRINTF_DOUBLE + tmp_length = DBL_DIG + 1; +# else + tmp_length = 0; +# endif + if (tmp_length < precision) + tmp_length = precision; +# if NEED_PRINTF_LONG_DOUBLE +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + if (type == TYPE_LONGDOUBLE) +# endif + if (dp->conversion == 'f' || dp->conversion == 'F') + { + long double arg = a.arg[dp->arg_index].a.a_longdouble; + if (!(isnanl (arg) || arg + arg == arg)) + { + /* arg is finite and nonzero. */ + int exponent = floorlog10l (arg < 0 ? -arg : arg); + if (exponent >= 0 && tmp_length < exponent + precision) + tmp_length = exponent + precision; + } + } +# endif +# if NEED_PRINTF_DOUBLE +# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE + if (type == TYPE_DOUBLE) +# endif + if (dp->conversion == 'f' || dp->conversion == 'F') + { + double arg = a.arg[dp->arg_index].a.a_double; + if (!(isnand (arg) || arg + arg == arg)) + { + /* arg is finite and nonzero. */ + int exponent = floorlog10 (arg < 0 ? -arg : arg); + if (exponent >= 0 && tmp_length < exponent + precision) + tmp_length = exponent + precision; + } + } +# endif + /* Account for sign, decimal point etc. */ + tmp_length = xsum (tmp_length, 12); + + if (tmp_length < width) + tmp_length = width; + + tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ + + if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) + tmp = tmpbuf; + else + { + size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); + + if (size_overflow_p (tmp_memsize)) + /* Overflow, would lead to out of memory. */ + goto out_of_memory; + tmp = (DCHAR_T *) malloc (tmp_memsize); + if (tmp == NULL) + /* Out of memory. */ + goto out_of_memory; + } + + pad_ptr = NULL; + p = tmp; + +# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + if (type == TYPE_LONGDOUBLE) +# endif + { + long double arg = a.arg[dp->arg_index].a.a_longdouble; + + if (isnanl (arg)) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + DECL_LONG_DOUBLE_ROUNDING + + BEGIN_LONG_DOUBLE_ROUNDING (); + + if (signbit (arg)) /* arg < 0.0L or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0L && arg + arg == arg) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { +# if NEED_PRINTF_LONG_DOUBLE + pad_ptr = p; + + if (dp->conversion == 'f' || dp->conversion == 'F') + { + char *digits; + size_t ndigits; + + digits = + scale10_round_decimal_long_double (arg, precision); + if (digits == NULL) + { + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + ndigits = strlen (digits); + + if (ndigits > precision) + do + { + --ndigits; + *p++ = digits[ndigits]; + } + while (ndigits > precision); + else + *p++ = '0'; + /* Here ndigits <= precision. */ + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > ndigits; precision--) + *p++ = '0'; + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + else if (dp->conversion == 'e' || dp->conversion == 'E') + { + int exponent; + + if (arg == 0.0L) + { + exponent = 0; + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + } + else + { + /* arg > 0.0L. */ + int adjusted; + char *digits; + size_t ndigits; + + exponent = floorlog10l (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_long_double (arg, + (int)precision - exponent); + if (digits == NULL) + { + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + ndigits = strlen (digits); + + if (ndigits == precision + 1) + break; + if (ndigits < precision + || ndigits > precision + 2) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits == precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + /* Here ndigits = precision+1. */ + if (is_borderline (digits, precision)) + { + /* Maybe the exponent guess was too high + and a smaller exponent can be reached + by turning a 10...0 into 9...9x. */ + char *digits2 = + scale10_round_decimal_long_double (arg, + (int)precision - exponent + 1); + if (digits2 == NULL) + { + free (digits); + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + if (strlen (digits2) == precision + 1) + { + free (digits); + digits = digits2; + exponent -= 1; + } + else + free (digits2); + } + /* Here ndigits = precision+1. */ + + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + + *p++ = dp->conversion; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', '.', '2', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+.2d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+.2d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + else if (dp->conversion == 'g' || dp->conversion == 'G') + { + if (precision == 0) + precision = 1; + /* precision >= 1. */ + + if (arg == 0.0L) + /* The exponent is 0, >= -4, < precision. + Use fixed-point notation. */ + { + size_t ndigits = precision; + /* Number of trailing zeroes that have to be + dropped. */ + size_t nzeroes = + (flags & FLAG_ALT ? 0 : precision - 1); + + --ndigits; + *p++ = '0'; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = '0'; + } + } + } + else + { + /* arg > 0.0L. */ + int exponent; + int adjusted; + char *digits; + size_t ndigits; + size_t nzeroes; + + exponent = floorlog10l (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_long_double (arg, + (int)(precision - 1) - exponent); + if (digits == NULL) + { + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + ndigits = strlen (digits); + + if (ndigits == precision) + break; + if (ndigits < precision - 1 + || ndigits > precision + 1) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits < precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + /* Here ndigits = precision. */ + if (is_borderline (digits, precision - 1)) + { + /* Maybe the exponent guess was too high + and a smaller exponent can be reached + by turning a 10...0 into 9...9x. */ + char *digits2 = + scale10_round_decimal_long_double (arg, + (int)(precision - 1) - exponent + 1); + if (digits2 == NULL) + { + free (digits); + END_LONG_DOUBLE_ROUNDING (); + goto out_of_memory; + } + if (strlen (digits2) == precision) + { + free (digits); + digits = digits2; + exponent -= 1; + } + else + free (digits2); + } + /* Here ndigits = precision. */ + + /* Determine the number of trailing zeroes + that have to be dropped. */ + nzeroes = 0; + if ((flags & FLAG_ALT) == 0) + while (nzeroes < ndigits + && digits[nzeroes] == '0') + nzeroes++; + + /* The exponent is now determined. */ + if (exponent >= -4 + && exponent < (long)precision) + { + /* Fixed-point notation: + max(exponent,0)+1 digits, then the + decimal point, then the remaining + digits without trailing zeroes. */ + if (exponent >= 0) + { + size_t count = exponent + 1; + /* Note: count <= precision = ndigits. */ + for (; count > 0; count--) + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + size_t count = -exponent - 1; + *p++ = '0'; + *p++ = decimal_point_char (); + for (; count > 0; count--) + *p++ = '0'; + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + /* Exponential notation. */ + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + { '%', '+', '.', '2', 'd', '\0' }; + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, "%+.2d", exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, "%+.2d", exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } +# endif + } + + free (digits); + } + } + else + abort (); +# else + /* arg is finite. */ + if (!(arg == 0.0L)) + abort (); + + pad_ptr = p; + + if (dp->conversion == 'f' || dp->conversion == 'F') + { + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + } + else if (dp->conversion == 'e' || dp->conversion == 'E') + { + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + *p++ = dp->conversion; /* 'e' or 'E' */ + *p++ = '+'; + *p++ = '0'; + *p++ = '0'; + } + else if (dp->conversion == 'g' || dp->conversion == 'G') + { + *p++ = '0'; + if (flags & FLAG_ALT) + { + size_t ndigits = + (precision > 0 ? precision - 1 : 0); + *p++ = decimal_point_char (); + for (; ndigits > 0; --ndigits) + *p++ = '0'; + } + } + else if (dp->conversion == 'a' || dp->conversion == 'A') + { + *p++ = '0'; + *p++ = dp->conversion - 'A' + 'X'; + pad_ptr = p; + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + *p++ = dp->conversion - 'A' + 'P'; + *p++ = '+'; + *p++ = '0'; + } + else + abort (); +# endif + } + + END_LONG_DOUBLE_ROUNDING (); + } + } +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + else +# endif +# endif +# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE + { + double arg = a.arg[dp->arg_index].a.a_double; + + if (isnand (arg)) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; + } + else + { + *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; + } + } + else + { + int sign = 0; + + if (signbit (arg)) /* arg < 0.0 or negative zero */ + { + sign = -1; + arg = -arg; + } + + if (sign < 0) + *p++ = '-'; + else if (flags & FLAG_SHOWSIGN) + *p++ = '+'; + else if (flags & FLAG_SPACE) + *p++ = ' '; + + if (arg > 0.0 && arg + arg == arg) + { + if (dp->conversion >= 'A' && dp->conversion <= 'Z') + { + *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; + } + else + { + *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; + } + } + else + { +# if NEED_PRINTF_DOUBLE + pad_ptr = p; + + if (dp->conversion == 'f' || dp->conversion == 'F') + { + char *digits; + size_t ndigits; + + digits = + scale10_round_decimal_double (arg, precision); + if (digits == NULL) + goto out_of_memory; + ndigits = strlen (digits); + + if (ndigits > precision) + do + { + --ndigits; + *p++ = digits[ndigits]; + } + while (ndigits > precision); + else + *p++ = '0'; + /* Here ndigits <= precision. */ + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > ndigits; precision--) + *p++ = '0'; + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + else if (dp->conversion == 'e' || dp->conversion == 'E') + { + int exponent; + + if (arg == 0.0) + { + exponent = 0; + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + } + else + { + /* arg > 0.0. */ + int adjusted; + char *digits; + size_t ndigits; + + exponent = floorlog10 (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_double (arg, + (int)precision - exponent); + if (digits == NULL) + goto out_of_memory; + ndigits = strlen (digits); + + if (ndigits == precision + 1) + break; + if (ndigits < precision + || ndigits > precision + 2) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits == precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + /* Here ndigits = precision+1. */ + if (is_borderline (digits, precision)) + { + /* Maybe the exponent guess was too high + and a smaller exponent can be reached + by turning a 10...0 into 9...9x. */ + char *digits2 = + scale10_round_decimal_double (arg, + (int)precision - exponent + 1); + if (digits2 == NULL) + { + free (digits); + goto out_of_memory; + } + if (strlen (digits2) == precision + 1) + { + free (digits); + digits = digits2; + exponent -= 1; + } + else + free (digits2); + } + /* Here ndigits = precision+1. */ + + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + while (ndigits > 0) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + + free (digits); + } + + *p++ = dp->conversion; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { '%', '+', '.', '3', 'd', '\0' }; +# else + { '%', '+', '.', '2', 'd', '\0' }; +# endif + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + { + static const char decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + "%+.3d"; +# else + "%+.2d"; +# endif + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, decimal_format, exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, decimal_format, exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } + } +# endif + } + else if (dp->conversion == 'g' || dp->conversion == 'G') + { + if (precision == 0) + precision = 1; + /* precision >= 1. */ + + if (arg == 0.0) + /* The exponent is 0, >= -4, < precision. + Use fixed-point notation. */ + { + size_t ndigits = precision; + /* Number of trailing zeroes that have to be + dropped. */ + size_t nzeroes = + (flags & FLAG_ALT ? 0 : precision - 1); + + --ndigits; + *p++ = '0'; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = '0'; + } + } + } + else + { + /* arg > 0.0. */ + int exponent; + int adjusted; + char *digits; + size_t ndigits; + size_t nzeroes; + + exponent = floorlog10 (arg); + adjusted = 0; + for (;;) + { + digits = + scale10_round_decimal_double (arg, + (int)(precision - 1) - exponent); + if (digits == NULL) + goto out_of_memory; + ndigits = strlen (digits); + + if (ndigits == precision) + break; + if (ndigits < precision - 1 + || ndigits > precision + 1) + /* The exponent was not guessed + precisely enough. */ + abort (); + if (adjusted) + /* None of two values of exponent is + the right one. Prevent an endless + loop. */ + abort (); + free (digits); + if (ndigits < precision) + exponent -= 1; + else + exponent += 1; + adjusted = 1; + } + /* Here ndigits = precision. */ + if (is_borderline (digits, precision - 1)) + { + /* Maybe the exponent guess was too high + and a smaller exponent can be reached + by turning a 10...0 into 9...9x. */ + char *digits2 = + scale10_round_decimal_double (arg, + (int)(precision - 1) - exponent + 1); + if (digits2 == NULL) + { + free (digits); + goto out_of_memory; + } + if (strlen (digits2) == precision) + { + free (digits); + digits = digits2; + exponent -= 1; + } + else + free (digits2); + } + /* Here ndigits = precision. */ + + /* Determine the number of trailing zeroes + that have to be dropped. */ + nzeroes = 0; + if ((flags & FLAG_ALT) == 0) + while (nzeroes < ndigits + && digits[nzeroes] == '0') + nzeroes++; + + /* The exponent is now determined. */ + if (exponent >= -4 + && exponent < (long)precision) + { + /* Fixed-point notation: + max(exponent,0)+1 digits, then the + decimal point, then the remaining + digits without trailing zeroes. */ + if (exponent >= 0) + { + size_t count = exponent + 1; + /* Note: count <= precision = ndigits. */ + for (; count > 0; count--) + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + size_t count = -exponent - 1; + *p++ = '0'; + *p++ = decimal_point_char (); + for (; count > 0; count--) + *p++ = '0'; + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + } + else + { + /* Exponential notation. */ + *p++ = digits[--ndigits]; + if ((flags & FLAG_ALT) || ndigits > nzeroes) + { + *p++ = decimal_point_char (); + while (ndigits > nzeroes) + { + --ndigits; + *p++ = digits[ndigits]; + } + } + *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ +# if WIDE_CHAR_VERSION + { + static const wchar_t decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + { '%', '+', '.', '3', 'd', '\0' }; +# else + { '%', '+', '.', '2', 'd', '\0' }; +# endif + SNPRINTF (p, 6 + 1, decimal_format, exponent); + } + while (*p != '\0') + p++; +# else + { + static const char decimal_format[] = + /* Produce the same number of exponent digits + as the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + "%+.3d"; +# else + "%+.2d"; +# endif + if (sizeof (DCHAR_T) == 1) + { + sprintf ((char *) p, decimal_format, exponent); + while (*p != '\0') + p++; + } + else + { + char expbuf[6 + 1]; + const char *ep; + sprintf (expbuf, decimal_format, exponent); + for (ep = expbuf; (*p = *ep) != '\0'; ep++) + p++; + } + } +# endif + } + + free (digits); + } + } + else + abort (); +# else + /* arg is finite. */ + if (!(arg == 0.0)) + abort (); + + pad_ptr = p; + + if (dp->conversion == 'f' || dp->conversion == 'F') + { + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + } + else if (dp->conversion == 'e' || dp->conversion == 'E') + { + *p++ = '0'; + if ((flags & FLAG_ALT) || precision > 0) + { + *p++ = decimal_point_char (); + for (; precision > 0; precision--) + *p++ = '0'; + } + *p++ = dp->conversion; /* 'e' or 'E' */ + *p++ = '+'; + /* Produce the same number of exponent digits as + the native printf implementation. */ +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + *p++ = '0'; +# endif + *p++ = '0'; + *p++ = '0'; + } + else if (dp->conversion == 'g' || dp->conversion == 'G') + { + *p++ = '0'; + if (flags & FLAG_ALT) + { + size_t ndigits = + (precision > 0 ? precision - 1 : 0); + *p++ = decimal_point_char (); + for (; ndigits > 0; --ndigits) + *p++ = '0'; + } + } + else + abort (); +# endif + } + } + } +# endif + + /* The generated string now extends from tmp to p, with the + zero padding insertion point being at pad_ptr. */ + if (has_width && p - tmp < width) + { + size_t pad = width - (p - tmp); + DCHAR_T *end = p + pad; + + if (flags & FLAG_LEFT) + { + /* Pad with spaces on the right. */ + for (; pad > 0; pad--) + *p++ = ' '; + } + else if ((flags & FLAG_ZERO) && pad_ptr != NULL) + { + /* Pad with zeroes. */ + DCHAR_T *q = end; + + while (p > pad_ptr) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = '0'; + } + else + { + /* Pad with spaces on the left. */ + DCHAR_T *q = end; + + while (p > tmp) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = ' '; + } + + p = end; + } + + { + size_t count = p - tmp; + + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); + + /* Make room for the result. */ + if (count >= allocated - length) + { + size_t n = xsum (length, count); + + ENSURE_ALLOCATION (n); + } + + /* Append the result. */ + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); + if (tmp != tmpbuf) + free (tmp); + length += count; + } + } +#endif + else + { + arg_type type = a.arg[dp->arg_index].type; + int flags = dp->flags; +#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + int has_width; + size_t width; +#endif +#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION + int has_precision; + size_t precision; +#endif +#if NEED_PRINTF_UNBOUNDED_PRECISION + int prec_ourselves; +#else +# define prec_ourselves 0 +#endif +#if NEED_PRINTF_FLAG_LEFTADJUST +# define pad_ourselves 1 +#elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + int pad_ourselves; +#else +# define pad_ourselves 0 +#endif + TCHAR_T *fbp; + unsigned int prefix_count; + int prefixes[2] IF_LINT (= { 0 }); +#if !USE_SNPRINTF + size_t tmp_length; + TCHAR_T tmpbuf[700]; + TCHAR_T *tmp; +#endif + +#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + has_width = 0; + width = 0; + if (dp->width_start != dp->width_end) + { + if (dp->width_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->width_arg_index].a.a_int; + if (arg < 0) + { + /* "A negative field width is taken as a '-' flag + followed by a positive field width." */ + flags |= FLAG_LEFT; + width = (unsigned int) (-arg); + } + else + width = arg; + } + else + { + const FCHAR_T *digitp = dp->width_start; + + do + width = xsum (xtimes (width, 10), *digitp++ - '0'); + while (digitp != dp->width_end); + } + has_width = 1; + } +#endif + +#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION + has_precision = 0; + precision = 6; + if (dp->precision_start != dp->precision_end) + { + if (dp->precision_arg_index != ARG_NONE) + { + int arg; + + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + arg = a.arg[dp->precision_arg_index].a.a_int; + /* "A negative precision is taken as if the precision + were omitted." */ + if (arg >= 0) + { + precision = arg; + has_precision = 1; + } + } + else + { + const FCHAR_T *digitp = dp->precision_start + 1; + + precision = 0; + while (digitp != dp->precision_end) + precision = xsum (xtimes (precision, 10), *digitp++ - '0'); + has_precision = 1; + } + } +#endif + + /* Decide whether to handle the precision ourselves. */ +#if NEED_PRINTF_UNBOUNDED_PRECISION + switch (dp->conversion) + { + case 'd': case 'i': case 'u': + case 'o': + case 'x': case 'X': case 'p': + prec_ourselves = has_precision && (precision > 0); + break; + default: + prec_ourselves = 0; + break; + } +#endif + + /* Decide whether to perform the padding ourselves. */ +#if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION) + switch (dp->conversion) + { +# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO + /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need + to perform the padding after this conversion. Functions + with unistdio extensions perform the padding based on + character count rather than element count. */ + case 'c': case 's': +# endif +# if NEED_PRINTF_FLAG_ZERO + case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': + case 'a': case 'A': +# endif + pad_ourselves = 1; + break; + default: + pad_ourselves = prec_ourselves; + break; + } +#endif + +#if !USE_SNPRINTF + /* Allocate a temporary buffer of sufficient size for calling + sprintf. */ + { + switch (dp->conversion) + { + + case 'd': case 'i': case 'u': +# if HAVE_LONG_LONG_INT + if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) + tmp_length = + (unsigned int) (sizeof (unsigned long long) * CHAR_BIT + * 0.30103 /* binary -> decimal */ + ) + + 1; /* turn floor into ceil */ + else +# endif + if (type == TYPE_LONGINT || type == TYPE_ULONGINT) + tmp_length = + (unsigned int) (sizeof (unsigned long) * CHAR_BIT + * 0.30103 /* binary -> decimal */ + ) + + 1; /* turn floor into ceil */ + else + tmp_length = + (unsigned int) (sizeof (unsigned int) * CHAR_BIT + * 0.30103 /* binary -> decimal */ + ) + + 1; /* turn floor into ceil */ + if (tmp_length < precision) + tmp_length = precision; + /* Multiply by 2, as an estimate for FLAG_GROUP. */ + tmp_length = xsum (tmp_length, tmp_length); + /* Add 1, to account for a leading sign. */ + tmp_length = xsum (tmp_length, 1); + break; + + case 'o': +# if HAVE_LONG_LONG_INT + if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) + tmp_length = + (unsigned int) (sizeof (unsigned long long) * CHAR_BIT + * 0.333334 /* binary -> octal */ + ) + + 1; /* turn floor into ceil */ + else +# endif + if (type == TYPE_LONGINT || type == TYPE_ULONGINT) + tmp_length = + (unsigned int) (sizeof (unsigned long) * CHAR_BIT + * 0.333334 /* binary -> octal */ + ) + + 1; /* turn floor into ceil */ + else + tmp_length = + (unsigned int) (sizeof (unsigned int) * CHAR_BIT + * 0.333334 /* binary -> octal */ + ) + + 1; /* turn floor into ceil */ + if (tmp_length < precision) + tmp_length = precision; + /* Add 1, to account for a leading sign. */ + tmp_length = xsum (tmp_length, 1); + break; + + case 'x': case 'X': +# if HAVE_LONG_LONG_INT + if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) + tmp_length = + (unsigned int) (sizeof (unsigned long long) * CHAR_BIT + * 0.25 /* binary -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + else +# endif + if (type == TYPE_LONGINT || type == TYPE_ULONGINT) + tmp_length = + (unsigned int) (sizeof (unsigned long) * CHAR_BIT + * 0.25 /* binary -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + else + tmp_length = + (unsigned int) (sizeof (unsigned int) * CHAR_BIT + * 0.25 /* binary -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + if (tmp_length < precision) + tmp_length = precision; + /* Add 2, to account for a leading sign or alternate form. */ + tmp_length = xsum (tmp_length, 2); + break; + + case 'f': case 'F': + if (type == TYPE_LONGDOUBLE) + tmp_length = + (unsigned int) (LDBL_MAX_EXP + * 0.30103 /* binary -> decimal */ + * 2 /* estimate for FLAG_GROUP */ + ) + + 1 /* turn floor into ceil */ + + 10; /* sign, decimal point etc. */ + else + tmp_length = + (unsigned int) (DBL_MAX_EXP + * 0.30103 /* binary -> decimal */ + * 2 /* estimate for FLAG_GROUP */ + ) + + 1 /* turn floor into ceil */ + + 10; /* sign, decimal point etc. */ + tmp_length = xsum (tmp_length, precision); + break; + + case 'e': case 'E': case 'g': case 'G': + tmp_length = + 12; /* sign, decimal point, exponent etc. */ + tmp_length = xsum (tmp_length, precision); + break; + + case 'a': case 'A': + if (type == TYPE_LONGDOUBLE) + tmp_length = + (unsigned int) (LDBL_DIG + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + else + tmp_length = + (unsigned int) (DBL_DIG + * 0.831 /* decimal -> hexadecimal */ + ) + + 1; /* turn floor into ceil */ + if (tmp_length < precision) + tmp_length = precision; + /* Account for sign, decimal point etc. */ + tmp_length = xsum (tmp_length, 12); + break; + + case 'c': +# if HAVE_WINT_T && !WIDE_CHAR_VERSION + if (type == TYPE_WIDE_CHAR) + tmp_length = MB_CUR_MAX; + else +# endif + tmp_length = 1; + break; + + case 's': +# if HAVE_WCHAR_T + if (type == TYPE_WIDE_STRING) + { +# if WIDE_CHAR_VERSION + /* ISO C says about %ls in fwprintf: + "If the precision is not specified or is greater + than the size of the array, the array shall + contain a null wide character." + So if there is a precision, we must not use + wcslen. */ + const wchar_t *arg = + a.arg[dp->arg_index].a.a_wide_string; + + if (has_precision) + tmp_length = local_wcsnlen (arg, precision); + else + tmp_length = local_wcslen (arg); +# else + /* ISO C says about %ls in fprintf: + "If a precision is specified, no more than that + many bytes are written (including shift + sequences, if any), and the array shall contain + a null wide character if, to equal the + multibyte character sequence length given by + the precision, the function would need to + access a wide character one past the end of the + array." + So if there is a precision, we must not use + wcslen. */ + /* This case has already been handled above. */ + abort (); +# endif + } + else +# endif + { +# if WIDE_CHAR_VERSION + /* ISO C says about %s in fwprintf: + "If the precision is not specified or is greater + than the size of the converted array, the + converted array shall contain a null wide + character." + So if there is a precision, we must not use + strlen. */ + /* This case has already been handled above. */ + abort (); +# else + /* ISO C says about %s in fprintf: + "If the precision is not specified or greater + than the size of the array, the array shall + contain a null character." + So if there is a precision, we must not use + strlen. */ + const char *arg = a.arg[dp->arg_index].a.a_string; + + if (has_precision) + tmp_length = local_strnlen (arg, precision); + else + tmp_length = strlen (arg); +# endif + } + break; + + case 'p': + tmp_length = + (unsigned int) (sizeof (void *) * CHAR_BIT + * 0.25 /* binary -> hexadecimal */ + ) + + 1 /* turn floor into ceil */ + + 2; /* account for leading 0x */ + break; + + default: + abort (); + } + + if (!pad_ourselves) + { +# if ENABLE_UNISTDIO + /* Padding considers the number of characters, therefore + the number of elements after padding may be + > max (tmp_length, width) + but is certainly + <= tmp_length + width. */ + tmp_length = xsum (tmp_length, width); +# else + /* Padding considers the number of elements, + says POSIX. */ + if (tmp_length < width) + tmp_length = width; +# endif + } + + tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ + } + + if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T)) + tmp = tmpbuf; + else + { + size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T)); + + if (size_overflow_p (tmp_memsize)) + /* Overflow, would lead to out of memory. */ + goto out_of_memory; + tmp = (TCHAR_T *) malloc (tmp_memsize); + if (tmp == NULL) + /* Out of memory. */ + goto out_of_memory; + } +#endif + + /* Construct the format string for calling snprintf or + sprintf. */ + fbp = buf; + *fbp++ = '%'; +#if NEED_PRINTF_FLAG_GROUPING + /* The underlying implementation doesn't support the ' flag. + Produce no grouping characters in this case; this is + acceptable because the grouping is locale dependent. */ +#else + if (flags & FLAG_GROUP) + *fbp++ = '\''; +#endif + if (flags & FLAG_LEFT) + *fbp++ = '-'; + if (flags & FLAG_SHOWSIGN) + *fbp++ = '+'; + if (flags & FLAG_SPACE) + *fbp++ = ' '; + if (flags & FLAG_ALT) + *fbp++ = '#'; + if (!pad_ourselves) + { + if (flags & FLAG_ZERO) + *fbp++ = '0'; + if (dp->width_start != dp->width_end) + { + size_t n = dp->width_end - dp->width_start; + /* The width specification is known to consist only + of standard ASCII characters. */ + if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) + { + memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T)); + fbp += n; + } + else + { + const FCHAR_T *mp = dp->width_start; + do + *fbp++ = (unsigned char) *mp++; + while (--n > 0); + } + } + } + if (!prec_ourselves) + { + if (dp->precision_start != dp->precision_end) + { + size_t n = dp->precision_end - dp->precision_start; + /* The precision specification is known to consist only + of standard ASCII characters. */ + if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) + { + memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T)); + fbp += n; + } + else + { + const FCHAR_T *mp = dp->precision_start; + do + *fbp++ = (unsigned char) *mp++; + while (--n > 0); + } + } + } + + switch (type) + { +#if HAVE_LONG_LONG_INT + case TYPE_LONGLONGINT: + case TYPE_ULONGLONGINT: +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + *fbp++ = 'I'; + *fbp++ = '6'; + *fbp++ = '4'; + break; +# else + *fbp++ = 'l'; + /*FALLTHROUGH*/ +# endif +#endif + case TYPE_LONGINT: + case TYPE_ULONGINT: +#if HAVE_WINT_T + case TYPE_WIDE_CHAR: +#endif +#if HAVE_WCHAR_T + case TYPE_WIDE_STRING: +#endif + *fbp++ = 'l'; + break; + case TYPE_LONGDOUBLE: + *fbp++ = 'L'; + break; + default: + break; + } +#if NEED_PRINTF_DIRECTIVE_F + if (dp->conversion == 'F') + *fbp = 'f'; + else +#endif + *fbp = dp->conversion; +#if USE_SNPRINTF +# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + fbp[1] = '%'; + fbp[2] = 'n'; + fbp[3] = '\0'; +# else + /* On glibc2 systems from glibc >= 2.3 - probably also older + ones - we know that snprintf's returns value conforms to + ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes. + Therefore we can avoid using %n in this situation. + On glibc2 systems from 2004-10-18 or newer, the use of %n + in format strings in writable memory may crash the program + (if compiled with _FORTIFY_SOURCE=2), so we should avoid it + in this situation. */ + /* On native Win32 systems (such as mingw), we can avoid using + %n because: + - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, + snprintf does not write more than the specified number + of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes + '4', '5', '6' into buf, not '4', '5', '\0'.) + - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf + allows us to recognize the case of an insufficient + buffer size: it returns -1 in this case. + On native Win32 systems (such as mingw) where the OS is + Windows Vista, the use of %n in format strings by default + crashes the program. See + <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and + <http://msdn2.microsoft.com/en-us/library/ms175782(VS.80).aspx> + So we should avoid %n in this situation. */ + fbp[1] = '\0'; +# endif +#else + fbp[1] = '\0'; +#endif + + /* Construct the arguments for calling snprintf or sprintf. */ + prefix_count = 0; + if (!pad_ourselves && dp->width_arg_index != ARG_NONE) + { + if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) + abort (); + prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int; + } + if (!prec_ourselves && dp->precision_arg_index != ARG_NONE) + { + if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) + abort (); + prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int; + } + +#if USE_SNPRINTF + /* The SNPRINTF result is appended after result[0..length]. + The latter is an array of DCHAR_T; SNPRINTF appends an + array of TCHAR_T to it. This is possible because + sizeof (TCHAR_T) divides sizeof (DCHAR_T) and + alignof (TCHAR_T) <= alignof (DCHAR_T). */ +# define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T)) + /* Ensure that maxlen below will be >= 2. Needed on BeOS, + where an snprintf() with maxlen==1 acts like sprintf(). */ + ENSURE_ALLOCATION (xsum (length, + (2 + TCHARS_PER_DCHAR - 1) + / TCHARS_PER_DCHAR)); + /* Prepare checking whether snprintf returns the count + via %n. */ + *(TCHAR_T *) (result + length) = '\0'; +#endif + + for (;;) + { + int count = -1; + +#if USE_SNPRINTF + int retcount = 0; + size_t maxlen = allocated - length; + /* SNPRINTF can fail if its second argument is + > INT_MAX. */ + if (maxlen > INT_MAX / TCHARS_PER_DCHAR) + maxlen = INT_MAX / TCHARS_PER_DCHAR; + maxlen = maxlen * TCHARS_PER_DCHAR; +# define SNPRINTF_BUF(arg) \ + switch (prefix_count) \ + { \ + case 0: \ + retcount = SNPRINTF ((TCHAR_T *) (result + length), \ + maxlen, buf, \ + arg, &count); \ + break; \ + case 1: \ + retcount = SNPRINTF ((TCHAR_T *) (result + length), \ + maxlen, buf, \ + prefixes[0], arg, &count); \ + break; \ + case 2: \ + retcount = SNPRINTF ((TCHAR_T *) (result + length), \ + maxlen, buf, \ + prefixes[0], prefixes[1], arg, \ + &count); \ + break; \ + default: \ + abort (); \ + } +#else +# define SNPRINTF_BUF(arg) \ + switch (prefix_count) \ + { \ + case 0: \ + count = sprintf (tmp, buf, arg); \ + break; \ + case 1: \ + count = sprintf (tmp, buf, prefixes[0], arg); \ + break; \ + case 2: \ + count = sprintf (tmp, buf, prefixes[0], prefixes[1],\ + arg); \ + break; \ + default: \ + abort (); \ + } +#endif + + switch (type) + { + case TYPE_SCHAR: + { + int arg = a.arg[dp->arg_index].a.a_schar; + SNPRINTF_BUF (arg); + } + break; + case TYPE_UCHAR: + { + unsigned int arg = a.arg[dp->arg_index].a.a_uchar; + SNPRINTF_BUF (arg); + } + break; + case TYPE_SHORT: + { + int arg = a.arg[dp->arg_index].a.a_short; + SNPRINTF_BUF (arg); + } + break; + case TYPE_USHORT: + { + unsigned int arg = a.arg[dp->arg_index].a.a_ushort; + SNPRINTF_BUF (arg); + } + break; + case TYPE_INT: + { + int arg = a.arg[dp->arg_index].a.a_int; + SNPRINTF_BUF (arg); + } + break; + case TYPE_UINT: + { + unsigned int arg = a.arg[dp->arg_index].a.a_uint; + SNPRINTF_BUF (arg); + } + break; + case TYPE_LONGINT: + { + long int arg = a.arg[dp->arg_index].a.a_longint; + SNPRINTF_BUF (arg); + } + break; + case TYPE_ULONGINT: + { + unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint; + SNPRINTF_BUF (arg); + } + break; +#if HAVE_LONG_LONG_INT + case TYPE_LONGLONGINT: + { + long long int arg = a.arg[dp->arg_index].a.a_longlongint; + SNPRINTF_BUF (arg); + } + break; + case TYPE_ULONGLONGINT: + { + unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint; + SNPRINTF_BUF (arg); + } + break; +#endif + case TYPE_DOUBLE: + { + double arg = a.arg[dp->arg_index].a.a_double; + SNPRINTF_BUF (arg); + } + break; + case TYPE_LONGDOUBLE: + { + long double arg = a.arg[dp->arg_index].a.a_longdouble; + SNPRINTF_BUF (arg); + } + break; + case TYPE_CHAR: + { + int arg = a.arg[dp->arg_index].a.a_char; + SNPRINTF_BUF (arg); + } + break; +#if HAVE_WINT_T + case TYPE_WIDE_CHAR: + { + wint_t arg = a.arg[dp->arg_index].a.a_wide_char; + SNPRINTF_BUF (arg); + } + break; +#endif + case TYPE_STRING: + { + const char *arg = a.arg[dp->arg_index].a.a_string; + SNPRINTF_BUF (arg); + } + break; +#if HAVE_WCHAR_T + case TYPE_WIDE_STRING: + { + const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; + SNPRINTF_BUF (arg); + } + break; +#endif + case TYPE_POINTER: + { + void *arg = a.arg[dp->arg_index].a.a_pointer; + SNPRINTF_BUF (arg); + } + break; + default: + abort (); + } + +#if USE_SNPRINTF + /* Portability: Not all implementations of snprintf() + are ISO C 99 compliant. Determine the number of + bytes that snprintf() has produced or would have + produced. */ + if (count >= 0) + { + /* Verify that snprintf() has NUL-terminated its + result. */ + if (count < maxlen + && ((TCHAR_T *) (result + length)) [count] != '\0') + abort (); + /* Portability hack. */ + if (retcount > count) + count = retcount; + } + else + { + /* snprintf() doesn't understand the '%n' + directive. */ + if (fbp[1] != '\0') + { + /* Don't use the '%n' directive; instead, look + at the snprintf() return value. */ + fbp[1] = '\0'; + continue; + } + else + { + /* Look at the snprintf() return value. */ + if (retcount < 0) + { + /* HP-UX 10.20 snprintf() is doubly deficient: + It doesn't understand the '%n' directive, + *and* it returns -1 (rather than the length + that would have been required) when the + buffer is too small. */ + size_t bigger_need = + xsum (xtimes (allocated, 2), 12); + ENSURE_ALLOCATION (bigger_need); + continue; + } + else + count = retcount; + } + } +#endif + + /* Attempt to handle failure. */ + if (count < 0) + { + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EINVAL; + return NULL; + } + +#if USE_SNPRINTF + /* Handle overflow of the allocated buffer. + If such an overflow occurs, a C99 compliant snprintf() + returns a count >= maxlen. However, a non-compliant + snprintf() function returns only count = maxlen - 1. To + cover both cases, test whether count >= maxlen - 1. */ + if ((unsigned int) count + 1 >= maxlen) + { + /* If maxlen already has attained its allowed maximum, + allocating more memory will not increase maxlen. + Instead of looping, bail out. */ + if (maxlen == INT_MAX / TCHARS_PER_DCHAR) + goto overflow; + else + { + /* Need at least (count + 1) * sizeof (TCHAR_T) + bytes. (The +1 is for the trailing NUL.) + But ask for (count + 2) * sizeof (TCHAR_T) + bytes, so that in the next round, we likely get + maxlen > (unsigned int) count + 1 + and so we don't get here again. + And allocate proportionally, to avoid looping + eternally if snprintf() reports a too small + count. */ + size_t n = + xmax (xsum (length, + ((unsigned int) count + 2 + + TCHARS_PER_DCHAR - 1) + / TCHARS_PER_DCHAR), + xtimes (allocated, 2)); + + ENSURE_ALLOCATION (n); + continue; + } + } +#endif + +#if NEED_PRINTF_UNBOUNDED_PRECISION + if (prec_ourselves) + { + /* Handle the precision. */ + TCHAR_T *prec_ptr = +# if USE_SNPRINTF + (TCHAR_T *) (result + length); +# else + tmp; +# endif + size_t prefix_count; + size_t move; + + prefix_count = 0; + /* Put the additional zeroes after the sign. */ + if (count >= 1 + && (*prec_ptr == '-' || *prec_ptr == '+' + || *prec_ptr == ' ')) + prefix_count = 1; + /* Put the additional zeroes after the 0x prefix if + (flags & FLAG_ALT) || (dp->conversion == 'p'). */ + else if (count >= 2 + && prec_ptr[0] == '0' + && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X')) + prefix_count = 2; + + move = count - prefix_count; + if (precision > move) + { + /* Insert zeroes. */ + size_t insert = precision - move; + TCHAR_T *prec_end; + +# if USE_SNPRINTF + size_t n = + xsum (length, + (count + insert + TCHARS_PER_DCHAR - 1) + / TCHARS_PER_DCHAR); + length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; + ENSURE_ALLOCATION (n); + length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; + prec_ptr = (TCHAR_T *) (result + length); +# endif + + prec_end = prec_ptr + count; + prec_ptr += prefix_count; + + while (prec_end > prec_ptr) + { + prec_end--; + prec_end[insert] = prec_end[0]; + } + + prec_end += insert; + do + *--prec_end = '0'; + while (prec_end > prec_ptr); + + count += insert; + } + } +#endif + +#if !USE_SNPRINTF + if (count >= tmp_length) + /* tmp_length was incorrectly calculated - fix the + code above! */ + abort (); +#endif + +#if !DCHAR_IS_TCHAR + /* Convert from TCHAR_T[] to DCHAR_T[]. */ + if (dp->conversion == 'c' || dp->conversion == 's') + { + /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING + TYPE_WIDE_STRING. + The result string is not certainly ASCII. */ + const TCHAR_T *tmpsrc; + DCHAR_T *tmpdst; + size_t tmpdst_len; + /* This code assumes that TCHAR_T is 'char'. */ + typedef int TCHAR_T_verify + [2 * (sizeof (TCHAR_T) == 1) - 1]; +# if USE_SNPRINTF + tmpsrc = (TCHAR_T *) (result + length); +# else + tmpsrc = tmp; +# endif + tmpdst = + DCHAR_CONV_FROM_ENCODING (locale_charset (), + iconveh_question_mark, + tmpsrc, count, + NULL, + NULL, &tmpdst_len); + if (tmpdst == NULL) + { + int saved_errno = errno; + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = saved_errno; + return NULL; + } + ENSURE_ALLOCATION (xsum (length, tmpdst_len)); + DCHAR_CPY (result + length, tmpdst, tmpdst_len); + free (tmpdst); + count = tmpdst_len; + } + else + { + /* The result string is ASCII. + Simple 1:1 conversion. */ +# if USE_SNPRINTF + /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a + no-op conversion, in-place on the array starting + at (result + length). */ + if (sizeof (DCHAR_T) != sizeof (TCHAR_T)) +# endif + { + const TCHAR_T *tmpsrc; + DCHAR_T *tmpdst; + size_t n; + +# if USE_SNPRINTF + if (result == resultbuf) + { + tmpsrc = (TCHAR_T *) (result + length); + /* ENSURE_ALLOCATION will not move tmpsrc + (because it's part of resultbuf). */ + ENSURE_ALLOCATION (xsum (length, count)); + } + else + { + /* ENSURE_ALLOCATION will move the array + (because it uses realloc(). */ + ENSURE_ALLOCATION (xsum (length, count)); + tmpsrc = (TCHAR_T *) (result + length); + } +# else + tmpsrc = tmp; + ENSURE_ALLOCATION (xsum (length, count)); +# endif + tmpdst = result + length; + /* Copy backwards, because of overlapping. */ + tmpsrc += count; + tmpdst += count; + for (n = count; n > 0; n--) + *--tmpdst = (unsigned char) *--tmpsrc; + } + } +#endif + +#if DCHAR_IS_TCHAR && !USE_SNPRINTF + /* Make room for the result. */ + if (count > allocated - length) + { + /* Need at least count elements. But allocate + proportionally. */ + size_t n = + xmax (xsum (length, count), xtimes (allocated, 2)); + + ENSURE_ALLOCATION (n); + } +#endif + + /* Here count <= allocated - length. */ + + /* Perform padding. */ +#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION + if (pad_ourselves && has_width) + { + size_t w; +# if ENABLE_UNISTDIO + /* Outside POSIX, it's preferrable to compare the width + against the number of _characters_ of the converted + value. */ + w = DCHAR_MBSNLEN (result + length, count); +# else + /* The width is compared against the number of _bytes_ + of the converted value, says POSIX. */ + w = count; +# endif + if (w < width) + { + size_t pad = width - w; + + /* Make room for the result. */ + if (xsum (count, pad) > allocated - length) + { + /* Need at least count + pad elements. But + allocate proportionally. */ + size_t n = + xmax (xsum3 (length, count, pad), + xtimes (allocated, 2)); + +# if USE_SNPRINTF + length += count; + ENSURE_ALLOCATION (n); + length -= count; +# else + ENSURE_ALLOCATION (n); +# endif + } + /* Here count + pad <= allocated - length. */ + + { +# if !DCHAR_IS_TCHAR || USE_SNPRINTF + DCHAR_T * const rp = result + length; +# else + DCHAR_T * const rp = tmp; +# endif + DCHAR_T *p = rp + count; + DCHAR_T *end = p + pad; + DCHAR_T *pad_ptr; +# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO + if (dp->conversion == 'c' + || dp->conversion == 's') + /* No zero-padding for string directives. */ + pad_ptr = NULL; + else +# endif + { + pad_ptr = (*rp == '-' ? rp + 1 : rp); + /* No zero-padding of "inf" and "nan". */ + if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z') + || (*pad_ptr >= 'a' && *pad_ptr <= 'z')) + pad_ptr = NULL; + } + /* The generated string now extends from rp to p, + with the zero padding insertion point being at + pad_ptr. */ + + count = count + pad; /* = end - rp */ + + if (flags & FLAG_LEFT) + { + /* Pad with spaces on the right. */ + for (; pad > 0; pad--) + *p++ = ' '; + } + else if ((flags & FLAG_ZERO) && pad_ptr != NULL) + { + /* Pad with zeroes. */ + DCHAR_T *q = end; + + while (p > pad_ptr) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = '0'; + } + else + { + /* Pad with spaces on the left. */ + DCHAR_T *q = end; + + while (p > rp) + *--q = *--p; + for (; pad > 0; pad--) + *p++ = ' '; + } + } + } + } +#endif + + /* Here still count <= allocated - length. */ + +#if !DCHAR_IS_TCHAR || USE_SNPRINTF + /* The snprintf() result did fit. */ +#else + /* Append the sprintf() result. */ + memcpy (result + length, tmp, count * sizeof (DCHAR_T)); +#endif +#if !USE_SNPRINTF + if (tmp != tmpbuf) + free (tmp); +#endif + +#if NEED_PRINTF_DIRECTIVE_F + if (dp->conversion == 'F') + { + /* Convert the %f result to upper case for %F. */ + DCHAR_T *rp = result + length; + size_t rc; + for (rc = count; rc > 0; rc--, rp++) + if (*rp >= 'a' && *rp <= 'z') + *rp = *rp - 'a' + 'A'; + } +#endif + + length += count; + break; + } + } + } + } + + /* Add the final NUL. */ + ENSURE_ALLOCATION (xsum (length, 1)); + result[length] = '\0'; + + if (result != resultbuf && length + 1 < allocated) + { + /* Shrink the allocated memory if possible. */ + DCHAR_T *memory; + + memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T)); + if (memory != NULL) + result = memory; + } + + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + *lengthp = length; + /* Note that we can produce a big string of a length > INT_MAX. POSIX + says that snprintf() fails with errno = EOVERFLOW in this case, but + that's only because snprintf() returns an 'int'. This function does + not have this limitation. */ + return result; + +#if USE_SNPRINTF + overflow: + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + CLEANUP (); + errno = EOVERFLOW; + return NULL; +#endif + + out_of_memory: + if (!(result == resultbuf || result == NULL)) + free (result); + if (buf_malloced != NULL) + free (buf_malloced); + out_of_memory_1: + CLEANUP (); + errno = ENOMEM; + return NULL; + } +} + +#undef TCHARS_PER_DCHAR +#undef SNPRINTF +#undef USE_SNPRINTF +#undef DCHAR_SET +#undef DCHAR_CPY +#undef PRINTF_PARSE +#undef DIRECTIVES +#undef DIRECTIVE +#undef DCHAR_IS_TCHAR +#undef TCHAR_T +#undef DCHAR_T +#undef FCHAR_T +#undef VASNPRINTF diff --git a/lib/vasnprintf.h b/gnu/vasnprintf.h similarity index 84% rename from lib/vasnprintf.h rename to gnu/vasnprintf.h index e4c11ff2812b8e62c38650e6ce1a264bbaa937b4..701678c26c1d2eb9e0870d7be07944bd7a4a7235 100644 --- a/lib/vasnprintf.h +++ b/gnu/vasnprintf.h @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* vsprintf with automatic memory allocation. - Copyright (C) 2002-2004, 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2002-2004, 2007-2010 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 @@ -27,15 +27,14 @@ #include <stddef.h> #ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable __attribute__ only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf +# define __attribute__(Spec) /* empty */ # endif #endif diff --git a/gnu/vasprintf.c b/gnu/vasprintf.c new file mode 100644 index 0000000000000000000000000000000000000000..3692b0defa19c65c634be248bbcff36ea0aa305c --- /dev/null +++ b/gnu/vasprintf.c @@ -0,0 +1,53 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Formatted output to strings. + Copyright (C) 1999, 2002, 2006-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#include <config.h> + +/* Specification. */ +#ifdef IN_LIBASPRINTF +# include "vasprintf.h" +#else +# include <stdio.h> +#endif + +#include <errno.h> +#include <limits.h> +#include <stdlib.h> + +#include "vasnprintf.h" + +int +vasprintf (char **resultp, const char *format, va_list args) +{ + size_t length; + char *result = vasnprintf (NULL, &length, format, args); + if (result == NULL) + return -1; + + if (length > INT_MAX) + { + free (result); + errno = EOVERFLOW; + return -1; + } + + *resultp = result; + /* Return the number of resulting bytes, excluding the trailing NUL. */ + return length; +} diff --git a/lib/verify.h b/gnu/verify.h similarity index 95% rename from lib/verify.h rename to gnu/verify.h index fac53f6fc4ac94e4452f9d1ee63712dd3d04c14f..adda5d98b17d8d0da4ea5ce9ef52a482c2d9bddb 100644 --- a/lib/verify.h +++ b/gnu/verify.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Compile-time assert-like macros. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2010 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 @@ -110,8 +112,8 @@ #if 4 <= __GNUC__ # define verify(R) \ - extern int (* verify_function__ (void)) \ - [__builtin_constant_p (R) && (R) ? 1 : -1] + extern int (* verify_function__ (void)) \ + [__builtin_constant_p (R) && (R) ? 1 : -1] #endif * In C++, any struct definition inside sizeof is invalid. diff --git a/lib/version-etc-fsf.c b/gnu/version-etc-fsf.c similarity index 87% rename from lib/version-etc-fsf.c rename to gnu/version-etc-fsf.c index 4c0d174d63e2bdfb66be42f7514799f1aeef6c5f..99895431918a654eabc265b30f693265c7a791d2 100644 --- a/lib/version-etc-fsf.c +++ b/gnu/version-etc-fsf.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Variable with FSF copyright information, for version-etc. - Copyright (C) 1999-2006 Free Software Foundation, Inc. + Copyright (C) 1999-2006, 2009-2010 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 diff --git a/gnu/version-etc.c b/gnu/version-etc.c new file mode 100644 index 0000000000000000000000000000000000000000..175e2ceff417caf7e66146083f449362baf48b46 --- /dev/null +++ b/gnu/version-etc.c @@ -0,0 +1,260 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Print --version and bug-reporting information in a consistent format. + Copyright (C) 1999-2010 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 Jim Meyering. */ + +#include <config.h> + +/* Specification. */ +#include "version-etc.h" + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> + +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +#endif + +#include "gettext.h" +#define _(msgid) gettext (msgid) + +/* If you use AM_INIT_AUTOMAKE's no-define option, + PACKAGE is not defined. Use PACKAGE_TARNAME instead. */ +#if ! defined PACKAGE && defined PACKAGE_TARNAME +# define PACKAGE PACKAGE_TARNAME +#endif + +enum { COPYRIGHT_YEAR = 2010 }; + +/* The three functions below display the --version information the + standard way. + + If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of + the program. The formats are therefore: + + PACKAGE VERSION + + or + + COMMAND_NAME (PACKAGE) VERSION. + + The functions differ in the way they are passed author names. */ + +/* Display the --version information the standard way. + + Author names are given in the array AUTHORS. N_AUTHORS is the + number of elements in the array. */ +void +version_etc_arn (FILE *stream, + const char *command_name, const char *package, + const char *version, + const char * const * authors, size_t n_authors) +{ + if (command_name) + fprintf (stream, "%s (%s) %s\n", command_name, package, version); + else + fprintf (stream, "%s %s\n", package, version); + +#ifdef PACKAGE_PACKAGER +# ifdef PACKAGE_PACKAGER_VERSION + fprintf (stream, _("Packaged by %s (%s)\n"), PACKAGE_PACKAGER, + PACKAGE_PACKAGER_VERSION); +# else + fprintf (stream, _("Packaged by %s\n"), PACKAGE_PACKAGER); +# endif +#endif + + /* TRANSLATORS: Translate "(C)" to the copyright symbol + (C-in-a-circle), if this symbol is available in the user's + locale. Otherwise, do not translate "(C)"; leave it as-is. */ + fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR); + + fputs (_("\ +\n\ +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\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\ +"), + stream); + + switch (n_authors) + { + case 0: + /* The caller must provide at least one author name. */ + abort (); + case 1: + /* TRANSLATORS: %s denotes an author name. */ + fprintf (stream, _("Written by %s.\n"), authors[0]); + break; + case 2: + /* TRANSLATORS: Each %s denotes an author name. */ + fprintf (stream, _("Written by %s and %s.\n"), authors[0], authors[1]); + break; + case 3: + /* TRANSLATORS: Each %s denotes an author name. */ + fprintf (stream, _("Written by %s, %s, and %s.\n"), + authors[0], authors[1], authors[2]); + break; + case 4: + /* TRANSLATORS: Each %s denotes an author name. + You can use line breaks, estimating that each author name occupies + ca. 16 screen columns and that a screen line has ca. 80 columns. */ + fprintf (stream, _("Written by %s, %s, %s,\nand %s.\n"), + authors[0], authors[1], authors[2], authors[3]); + break; + case 5: + /* TRANSLATORS: Each %s denotes an author name. + You can use line breaks, estimating that each author name occupies + ca. 16 screen columns and that a screen line has ca. 80 columns. */ + fprintf (stream, _("Written by %s, %s, %s,\n%s, and %s.\n"), + authors[0], authors[1], authors[2], authors[3], authors[4]); + break; + case 6: + /* TRANSLATORS: Each %s denotes an author name. + You can use line breaks, estimating that each author name occupies + ca. 16 screen columns and that a screen line has ca. 80 columns. */ + fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, and %s.\n"), + authors[0], authors[1], authors[2], authors[3], authors[4], + authors[5]); + break; + case 7: + /* TRANSLATORS: Each %s denotes an author name. + You can use line breaks, estimating that each author name occupies + ca. 16 screen columns and that a screen line has ca. 80 columns. */ + fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, %s, and %s.\n"), + authors[0], authors[1], authors[2], authors[3], authors[4], + authors[5], authors[6]); + break; + case 8: + /* TRANSLATORS: Each %s denotes an author name. + You can use line breaks, estimating that each author name occupies + ca. 16 screen columns and that a screen line has ca. 80 columns. */ + fprintf (stream, _("\ +Written by %s, %s, %s,\n%s, %s, %s, %s,\nand %s.\n"), + authors[0], authors[1], authors[2], authors[3], authors[4], + authors[5], authors[6], authors[7]); + break; + case 9: + /* TRANSLATORS: Each %s denotes an author name. + You can use line breaks, estimating that each author name occupies + ca. 16 screen columns and that a screen line has ca. 80 columns. */ + fprintf (stream, _("\ +Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, and %s.\n"), + authors[0], authors[1], authors[2], authors[3], authors[4], + authors[5], authors[6], authors[7], authors[8]); + break; + default: + /* 10 or more authors. Use an abbreviation, since the human reader + will probably not want to read the entire list anyway. */ + /* TRANSLATORS: Each %s denotes an author name. + You can use line breaks, estimating that each author name occupies + ca. 16 screen columns and that a screen line has ca. 80 columns. */ + fprintf (stream, _("\ +Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, %s, and others.\n"), + authors[0], authors[1], authors[2], authors[3], authors[4], + authors[5], authors[6], authors[7], authors[8]); + break; + } +} + +/* Display the --version information the standard way. See the initial + comment to this module, for more information. + + Author names are given in the NULL-terminated array AUTHORS. */ +void +version_etc_ar (FILE *stream, + const char *command_name, const char *package, + const char *version, const char * const * authors) +{ + size_t n_authors; + + for (n_authors = 0; authors[n_authors]; n_authors++) + ; + version_etc_arn (stream, command_name, package, version, authors, n_authors); +} + +/* Display the --version information the standard way. See the initial + comment to this module, for more information. + + Author names are given in the NULL-terminated va_list AUTHORS. */ +void +version_etc_va (FILE *stream, + const char *command_name, const char *package, + const char *version, va_list authors) +{ + size_t n_authors; + const char *authtab[10]; + + for (n_authors = 0; + n_authors < 10 + && (authtab[n_authors] = va_arg (authors, const char *)) != NULL; + n_authors++) + ; + version_etc_arn (stream, command_name, package, version, + authtab, n_authors); +} + + +/* Display the --version information the standard way. + + If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of + the program. The formats are therefore: + + PACKAGE VERSION + + or + + COMMAND_NAME (PACKAGE) VERSION. + + The authors names are passed as separate arguments, with an additional + NULL argument at the end. */ +void +version_etc (FILE *stream, + const char *command_name, const char *package, + const char *version, /* const char *author1, ...*/ ...) +{ + va_list authors; + + va_start (authors, version); + version_etc_va (stream, command_name, package, version, authors); + va_end (authors); +} + +void +emit_bug_reporting_address (void) +{ + /* TRANSLATORS: The placeholder indicates the bug-reporting address + for this package. Please add _another line_ saying + "Report translation bugs to <...>\n" with the address for translation + bugs (typically your translation team's web or email address). */ + printf (_("\nReport bugs to: %s\n"), PACKAGE_BUGREPORT); +#ifdef PACKAGE_PACKAGER_BUG_REPORTS + printf (_("Report %s bugs to: %s\n"), PACKAGE_PACKAGER, + PACKAGE_PACKAGER_BUG_REPORTS); +#endif +#ifdef PACKAGE_URL + printf (_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); +#else + printf (_("%s home page: <http://www.gnu.org/software/%s/>\n"), + PACKAGE_NAME, PACKAGE); +#endif + fputs (_("General help using GNU software: <http://www.gnu.org/gethelp/>\n"), + stdout); +} diff --git a/gnu/version-etc.h b/gnu/version-etc.h new file mode 100644 index 0000000000000000000000000000000000000000..86b203f6272d4476aed5dc1b6a14a71488cad2d1 --- /dev/null +++ b/gnu/version-etc.h @@ -0,0 +1,80 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Print --version and bug-reporting information in a consistent format. + Copyright (C) 1999, 2003, 2005, 2009-2010 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 Jim Meyering. */ + +#ifndef VERSION_ETC_H +# define VERSION_ETC_H 1 + +# include <stdarg.h> +# include <stdio.h> + +/* The `sentinel' attribute was added in gcc 4.0. */ +#ifndef ATTRIBUTE_SENTINEL +# if 4 <= __GNUC__ +# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__)) +# else +# define ATTRIBUTE_SENTINEL /* empty */ +# endif +#endif + +extern const char version_etc_copyright[]; + +/* The three functions below display the --version information in the + standard way: command and package names, package version, followed + by a short GPLv3+ notice and a list of up to 10 author names. + + If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of + the program. The formats are therefore: + + PACKAGE VERSION + + or + + COMMAND_NAME (PACKAGE) VERSION. + + The functions differ in the way they are passed author names: */ + +/* N_AUTHORS names are supplied in array AUTHORS. */ +extern void version_etc_arn (FILE *stream, + const char *command_name, const char *package, + const char *version, + const char * const * authors, size_t n_authors); + +/* Names are passed in the NULL-terminated array AUTHORS. */ +extern void version_etc_ar (FILE *stream, + const char *command_name, const char *package, + const char *version, const char * const * authors); + +/* Names are passed in the NULL-terminated va_list. */ +extern void version_etc_va (FILE *stream, + const char *command_name, const char *package, + const char *version, va_list authors); + +/* Names are passed as separate arguments, with an additional + NULL argument at the end. */ +extern void version_etc (FILE *stream, + const char *command_name, const char *package, + const char *version, + /* const char *author1, ..., NULL */ ...) + ATTRIBUTE_SENTINEL; + +/* Display the usual `Report bugs to' stanza */ +extern void emit_bug_reporting_address (void); + +#endif /* VERSION_ETC_H */ diff --git a/lib/vsnprintf.c b/gnu/vsnprintf.c similarity index 89% rename from lib/vsnprintf.c rename to gnu/vsnprintf.c index 8cc31f207d7b41546e5076e5241a4a6a3d7e54f9..996ecbf94c1582e6d1863201d902611249b38e01 100644 --- a/lib/vsnprintf.c +++ b/gnu/vsnprintf.c @@ -1,7 +1,7 @@ /* -*- buffer-read-only: t -*- vi: set ro: */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Formatted output to strings. - Copyright (C) 2004, 2006-2008 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2010 Free Software Foundation, Inc. Written by Simon Josefsson and Yoann Vandoorselaere <yoann@prelude-ids.org>. This program is free software; you can redistribute it and/or modify @@ -54,11 +54,11 @@ vsnprintf (char *str, size_t size, const char *format, va_list args) if (output != str) { if (size) - { - size_t pruned_len = (len < size ? len : size - 1); - memcpy (str, output, pruned_len); - str[pruned_len] = '\0'; - } + { + size_t pruned_len = (len < size ? len : size - 1); + memcpy (str, output, pruned_len); + str[pruned_len] = '\0'; + } free (output); } diff --git a/gnu/wchar.in.h b/gnu/wchar.in.h new file mode 100644 index 0000000000000000000000000000000000000000..cc464ae3b76a88da4dc7f826c620eb74f708fead --- /dev/null +++ b/gnu/wchar.in.h @@ -0,0 +1,426 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A substitute for ISO C99 <wchar.h>, for platforms that have issues. + + Copyright (C) 2007-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Eric Blake. */ + +/* + * ISO C 99 <wchar.h> for platforms that have issues. + * <http://www.opengroup.org/susv3xbd/wchar.h.html> + * + * For now, this just ensures proper prerequisite inclusion order and + * the declaration of wcwidth(). + */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H +/* Special invocation convention: + - Inside glibc and uClibc header files. + - On HP-UX 11.00 we have a sequence of nested includes + <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>, + once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h> + and once directly. In both situations 'wint_t' is not yet defined, + therefore we cannot provide the function overrides; instead include only + the system's <wchar.h>. + - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and + the latter includes <wchar.h>. But here, we have no way to detect whether + <wctype.h> is completely included or is still being included. */ + +#@INCLUDE_NEXT@ @NEXT_WCHAR_H@ + +#else +/* Normal invocation convention. */ + +#ifndef _GL_WCHAR_H + +#define _GL_ALREADY_INCLUDING_WCHAR_H + +/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before + <wchar.h>. + BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be + included before <wchar.h>. + But avoid namespace pollution on glibc systems. */ +#ifndef __GLIBC__ +# include <stddef.h> +# include <stdio.h> +# include <time.h> +#endif + +/* Include the original <wchar.h> if it exists. + Some builds of uClibc lack it. */ +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_WCHAR_H@ +# @INCLUDE_NEXT@ @NEXT_WCHAR_H@ +#endif + +#undef _GL_ALREADY_INCLUDING_WCHAR_H + +#ifndef _GL_WCHAR_H +#define _GL_WCHAR_H + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + + +/* Define wint_t. (Also done in wctype.in.h.) */ +#if !@HAVE_WINT_T@ && !defined wint_t +# define wint_t int +# ifndef WEOF +# define WEOF -1 +# endif +#endif + + +/* Override mbstate_t if it is too small. + On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for + implementing mbrtowc for encodings like UTF-8. */ +#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ +typedef int rpl_mbstate_t; +# undef mbstate_t +# define mbstate_t rpl_mbstate_t +# define GNULIB_defined_mbstate_t 1 +#endif + + +/* Convert a single-byte character to a wide character. */ +#if @GNULIB_BTOWC@ +# if @REPLACE_BTOWC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef btowc +# define btowc rpl_btowc +# endif +_GL_FUNCDECL_RPL (btowc, wint_t, (int c)); +_GL_CXXALIAS_RPL (btowc, wint_t, (int c)); +# else +# if !@HAVE_BTOWC@ +_GL_FUNCDECL_SYS (btowc, wint_t, (int c)); +# endif +_GL_CXXALIAS_SYS (btowc, wint_t, (int c)); +# endif +_GL_CXXALIASWARN (btowc); +#elif defined GNULIB_POSIXCHECK +# undef btowc +# if HAVE_RAW_DECL_BTOWC +_GL_WARN_ON_USE (btowc, "btowc is unportable - " + "use gnulib module btowc for portability"); +# endif +#endif + + +/* Convert a wide character to a single-byte character. */ +#if @GNULIB_WCTOB@ +# if @REPLACE_WCTOB@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wctob +# define wctob rpl_wctob +# endif +_GL_FUNCDECL_RPL (wctob, int, (wint_t wc)); +_GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); +# else +# if !defined wctob && !@HAVE_DECL_WCTOB@ +/* wctob is provided by gnulib, or wctob exists but is not declared. */ +_GL_FUNCDECL_SYS (wctob, int, (wint_t wc)); +# endif +_GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); +# endif +_GL_CXXALIASWARN (wctob); +#elif defined GNULIB_POSIXCHECK +# undef wctob +# if HAVE_RAW_DECL_WCTOB +_GL_WARN_ON_USE (wctob, "wctob is unportable - " + "use gnulib module wctob for portability"); +# endif +#endif + + +/* Test whether *PS is in the initial state. */ +#if @GNULIB_MBSINIT@ +# if @REPLACE_MBSINIT@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbsinit +# define mbsinit rpl_mbsinit +# endif +_GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); +_GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); +# else +# if !@HAVE_MBSINIT@ +_GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); +# endif +_GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (mbsinit); +#elif defined GNULIB_POSIXCHECK +# undef mbsinit +# if HAVE_RAW_DECL_MBSINIT +_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " + "use gnulib module mbsinit for portability"); +# endif +#endif + + +/* Convert a multibyte character to a wide character. */ +#if @GNULIB_MBRTOWC@ +# if @REPLACE_MBRTOWC@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbrtowc +# define mbrtowc rpl_mbrtowc +# endif +_GL_FUNCDECL_RPL (mbrtowc, size_t, + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); +_GL_CXXALIAS_RPL (mbrtowc, size_t, + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); +# else +# if !@HAVE_MBRTOWC@ +_GL_FUNCDECL_SYS (mbrtowc, size_t, + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); +# endif +_GL_CXXALIAS_SYS (mbrtowc, size_t, + (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (mbrtowc); +#elif defined GNULIB_POSIXCHECK +# undef mbrtowc +# if HAVE_RAW_DECL_MBRTOWC +_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " + "use gnulib module mbrtowc for portability"); +# endif +#endif + + +/* Recognize a multibyte character. */ +#if @GNULIB_MBRLEN@ +# if @REPLACE_MBRLEN@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbrlen +# define mbrlen rpl_mbrlen +# endif +_GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); +_GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); +# else +# if !@HAVE_MBRLEN@ +_GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); +# endif +_GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (mbrlen); +#elif defined GNULIB_POSIXCHECK +# undef mbrlen +# if HAVE_RAW_DECL_MBRLEN +_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " + "use gnulib module mbrlen for portability"); +# endif +#endif + + +/* Convert a string to a wide string. */ +#if @GNULIB_MBSRTOWCS@ +# if @REPLACE_MBSRTOWCS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbsrtowcs +# define mbsrtowcs rpl_mbsrtowcs +# endif +_GL_FUNCDECL_RPL (mbsrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (mbsrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t len, + mbstate_t *ps)); +# else +# if !@HAVE_MBSRTOWCS@ +_GL_FUNCDECL_SYS (mbsrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mbsrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t len, + mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (mbsrtowcs); +#elif defined GNULIB_POSIXCHECK +# undef mbsrtowcs +# if HAVE_RAW_DECL_MBSRTOWCS +_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " + "use gnulib module mbsrtowcs for portability"); +# endif +#endif + + +/* Convert a string to a wide string. */ +#if @GNULIB_MBSNRTOWCS@ +# if @REPLACE_MBSNRTOWCS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef mbsnrtowcs +# define mbsnrtowcs rpl_mbsnrtowcs +# endif +_GL_FUNCDECL_RPL (mbsnrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (mbsnrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps)); +# else +# if !@HAVE_MBSNRTOWCS@ +_GL_FUNCDECL_SYS (mbsnrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (mbsnrtowcs, size_t, + (wchar_t *dest, const char **srcp, size_t srclen, size_t len, + mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (mbsnrtowcs); +#elif defined GNULIB_POSIXCHECK +# undef mbsnrtowcs +# if HAVE_RAW_DECL_MBSNRTOWCS +_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " + "use gnulib module mbsnrtowcs for portability"); +# endif +#endif + + +/* Convert a wide character to a multibyte character. */ +#if @GNULIB_WCRTOMB@ +# if @REPLACE_WCRTOMB@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcrtomb +# define wcrtomb rpl_wcrtomb +# endif +_GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); +_GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); +# else +# if !@HAVE_WCRTOMB@ +_GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); +# endif +_GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (wcrtomb); +#elif defined GNULIB_POSIXCHECK +# undef wcrtomb +# if HAVE_RAW_DECL_WCRTOMB +_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " + "use gnulib module wcrtomb for portability"); +# endif +#endif + + +/* Convert a wide string to a string. */ +#if @GNULIB_WCSRTOMBS@ +# if @REPLACE_WCSRTOMBS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcsrtombs +# define wcsrtombs rpl_wcsrtombs +# endif +_GL_FUNCDECL_RPL (wcsrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (wcsrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t len, + mbstate_t *ps)); +# else +# if !@HAVE_WCSRTOMBS@ +_GL_FUNCDECL_SYS (wcsrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (wcsrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t len, + mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (wcsrtombs); +#elif defined GNULIB_POSIXCHECK +# undef wcsrtombs +# if HAVE_RAW_DECL_WCSRTOMBS +_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " + "use gnulib module wcsrtombs for portability"); +# endif +#endif + + +/* Convert a wide string to a string. */ +#if @GNULIB_WCSNRTOMBS@ +# if @REPLACE_WCSNRTOMBS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcsnrtombs +# define wcsnrtombs rpl_wcsnrtombs +# endif +_GL_FUNCDECL_RPL (wcsnrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (wcsnrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps)); +# else +# if !@HAVE_WCSNRTOMBS@ +_GL_FUNCDECL_SYS (wcsnrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps) + _GL_ARG_NONNULL ((2))); +# endif +_GL_CXXALIAS_SYS (wcsnrtombs, size_t, + (char *dest, const wchar_t **srcp, size_t srclen, size_t len, + mbstate_t *ps)); +# endif +_GL_CXXALIASWARN (wcsnrtombs); +#elif defined GNULIB_POSIXCHECK +# undef wcsnrtombs +# if HAVE_RAW_DECL_WCSNRTOMBS +_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " + "use gnulib module wcsnrtombs for portability"); +# endif +#endif + + +/* Return the number of screen columns needed for WC. */ +#if @GNULIB_WCWIDTH@ +# if @REPLACE_WCWIDTH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef wcwidth +# define wcwidth rpl_wcwidth +# endif +_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t)); +_GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); +# else +# if !defined wcwidth && !@HAVE_DECL_WCWIDTH@ +/* wcwidth exists but is not declared. */ +_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t)); +# endif +_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); +# endif +_GL_CXXALIASWARN (wcwidth); +#elif defined GNULIB_POSIXCHECK +# undef wcwidth +# if HAVE_RAW_DECL_WCWIDTH +_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " + "use gnulib module wcwidth for portability"); +# endif +#endif + + +#endif /* _GL_WCHAR_H */ +#endif /* _GL_WCHAR_H */ +#endif diff --git a/lib/wcrtomb.c b/gnu/wcrtomb.c similarity index 84% rename from lib/wcrtomb.c rename to gnu/wcrtomb.c index 79df99f23559452ad85056c9919b1b0abfa4368d..7dd867683aacf09f1a8af7a6f3c75fbb1b2b302b 100644 --- a/lib/wcrtomb.c +++ b/gnu/wcrtomb.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Convert wide character to multibyte character. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -43,11 +45,11 @@ wcrtomb (char *s, wchar_t wc, mbstate_t *ps) int ret = wctomb (s, wc); if (ret >= 0) - return ret; + return ret; else - { - errno = EILSEQ; - return (size_t)(-1); - } + { + errno = EILSEQ; + return (size_t)(-1); + } } } diff --git a/gnu/wctype.in.h b/gnu/wctype.in.h new file mode 100644 index 0000000000000000000000000000000000000000..099351b648f09ec5b7c828e6e6bc9cd7f815bc58 --- /dev/null +++ b/gnu/wctype.in.h @@ -0,0 +1,365 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A substitute for ISO C99 <wctype.h>, for platforms that lack it. + + Copyright (C) 2006-2010 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, 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, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Bruno Haible and Paul Eggert. */ + +/* + * ISO C 99 <wctype.h> for platforms that lack it. + * <http://www.opengroup.org/susv3xbd/wctype.h.html> + * + * iswctype, towctrans, towlower, towupper, wctrans, wctype, + * wctrans_t, and wctype_t are not yet implemented. + */ + +#ifndef _GL_WCTYPE_H + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if @HAVE_WINT_T@ +/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. + Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before + <wchar.h>. + BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be + included before <wchar.h>. */ +# include <stddef.h> +# include <stdio.h> +# include <time.h> +# include <wchar.h> +#endif + +/* Include the original <wctype.h> if it exists. + BeOS 5 has the functions but no <wctype.h>. */ +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_WCTYPE_H@ +# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ +#endif + +#ifndef _GL_WCTYPE_H +#define _GL_WCTYPE_H + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +/* Define wint_t. (Also done in wchar.in.h.) */ +#if !@HAVE_WINT_T@ && !defined wint_t +# define wint_t int +# ifndef WEOF +# define WEOF -1 +# endif +#endif + + +/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions. + Linux libc5 has <wctype.h> and the functions but they are broken. + Assume all 12 functions are implemented the same way, or not at all. */ +#if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ + +/* IRIX 5.3 has macros but no functions, its isw* macros refer to an + undefined variable _ctmp_ and to <ctype.h> macros like _P, and they + refer to system functions like _iswctype that are not in the + standard C library. Rather than try to get ancient buggy + implementations like this to work, just disable them. */ +# undef iswalnum +# undef iswalpha +# undef iswblank +# undef iswcntrl +# undef iswdigit +# undef iswgraph +# undef iswlower +# undef iswprint +# undef iswpunct +# undef iswspace +# undef iswupper +# undef iswxdigit +# undef towlower +# undef towupper + +/* Linux libc5 has <wctype.h> and the functions but they are broken. */ +# if @REPLACE_ISWCNTRL@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define iswalnum rpl_iswalnum +# define iswalpha rpl_iswalpha +# define iswblank rpl_iswblank +# define iswcntrl rpl_iswcntrl +# define iswdigit rpl_iswdigit +# define iswgraph rpl_iswgraph +# define iswlower rpl_iswlower +# define iswprint rpl_iswprint +# define iswpunct rpl_iswpunct +# define iswspace rpl_iswspace +# define iswupper rpl_iswupper +# define iswxdigit rpl_iswxdigit +# define towlower rpl_towlower +# define towupper rpl_towupper +# endif +# endif + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswalnum +# else +iswalnum +# endif + (wint_t wc) +{ + return ((wc >= '0' && wc <= '9') + || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')); +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswalpha +# else +iswalpha +# endif + (wint_t wc) +{ + return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswblank +# else +iswblank +# endif + (wint_t wc) +{ + return wc == ' ' || wc == '\t'; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswcntrl +# else +iswcntrl +# endif + (wint_t wc) +{ + return (wc & ~0x1f) == 0 || wc == 0x7f; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswdigit +# else +iswdigit +# endif + (wint_t wc) +{ + return wc >= '0' && wc <= '9'; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswgraph +# else +iswgraph +# endif + (wint_t wc) +{ + return wc >= '!' && wc <= '~'; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswlower +# else +iswlower +# endif + (wint_t wc) +{ + return wc >= 'a' && wc <= 'z'; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswprint +# else +iswprint +# endif + (wint_t wc) +{ + return wc >= ' ' && wc <= '~'; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswpunct +# else +iswpunct +# endif + (wint_t wc) +{ + return (wc >= '!' && wc <= '~' + && !((wc >= '0' && wc <= '9') + || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))); +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswspace +# else +iswspace +# endif + (wint_t wc) +{ + return (wc == ' ' || wc == '\t' + || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'); +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswupper +# else +iswupper +# endif + (wint_t wc) +{ + return wc >= 'A' && wc <= 'Z'; +} + +static inline int +# if @REPLACE_ISWCNTRL@ +rpl_iswxdigit +# else +iswxdigit +# endif + (wint_t wc) +{ + return ((wc >= '0' && wc <= '9') + || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')); +} + +static inline wint_t +# if @REPLACE_ISWCNTRL@ +rpl_towlower +# else +towlower +# endif + (wint_t wc) +{ + return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc); +} + +static inline wint_t +# if @REPLACE_ISWCNTRL@ +rpl_towupper +# else +towupper +# endif + (wint_t wc) +{ + return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); +} + +#endif /* ! HAVE_ISWCNTRL || REPLACE_ISWCNTRL */ + +#if defined __MINGW32__ + +/* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. + The functions towlower and towupper are implemented in the MSVCRT library + to take a wchar_t argument and return a wchar_t result. mingw declares + these functions to take a wint_t argument and return a wint_t result. + This means that: + 1. When the user passes an argument outside the range 0x0000..0xFFFF, the + function will look only at the lower 16 bits. This is allowed according + to POSIX. + 2. The return value is returned in the lower 16 bits of the result register. + The upper 16 bits are random: whatever happened to be in that part of the + result register. We need to fix this by adding a zero-extend from + wchar_t to wint_t after the call. */ + +static inline wint_t +rpl_towlower (wint_t wc) +{ + return (wint_t) (wchar_t) towlower (wc); +} +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define towlower rpl_towlower +# endif + +static inline wint_t +rpl_towupper (wint_t wc) +{ + return (wint_t) (wchar_t) towupper (wc); +} +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define towupper rpl_towupper +# endif + +#endif /* __MINGW32__ */ + +#if @REPLACE_ISWCNTRL@ +_GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); +_GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); +#else +_GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswlower, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswprint, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswspace, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswupper, int, (wint_t wc)); +_GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc)); +#endif +_GL_CXXALIASWARN (iswalnum); +_GL_CXXALIASWARN (iswalpha); +_GL_CXXALIASWARN (iswblank); +_GL_CXXALIASWARN (iswcntrl); +_GL_CXXALIASWARN (iswdigit); +_GL_CXXALIASWARN (iswgraph); +_GL_CXXALIASWARN (iswlower); +_GL_CXXALIASWARN (iswprint); +_GL_CXXALIASWARN (iswpunct); +_GL_CXXALIASWARN (iswspace); +_GL_CXXALIASWARN (iswupper); +_GL_CXXALIASWARN (iswxdigit); + +#if @REPLACE_ISWCNTRL@ || defined __MINGW32__ +_GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc)); +_GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); +#else +_GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc)); +_GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc)); +#endif +_GL_CXXALIASWARN (towlower); +_GL_CXXALIASWARN (towupper); + + +#endif /* _GL_WCTYPE_H */ +#endif /* _GL_WCTYPE_H */ diff --git a/lib/wcwidth.c b/gnu/wcwidth.c similarity index 88% rename from lib/wcwidth.c rename to gnu/wcwidth.c index 4885071d066f89765e96d772c7caa8e6355efb4e..a10274436ac6a03dfdd0fcf6fd70c1af15139981 100644 --- a/lib/wcwidth.c +++ b/gnu/wcwidth.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Determine the number of screen columns needed for a character. - Copyright (C) 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2006, 2007, 2009, 2010 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 @@ -36,7 +38,7 @@ rpl_wcwidth (wchar_t wc) if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0)) { /* We assume that in a UTF-8 locale, a wide character is the same as a - Unicode character. */ + Unicode character. */ return uc_width (wc, encoding); } else diff --git a/lib/write.c b/gnu/write.c similarity index 77% rename from lib/write.c rename to gnu/write.c index 250b5cc8fd4b30ee6f874d487127612a1d2fc801..702c8e6df0b32e15c529aeb7669919aa96e5226e 100644 --- a/lib/write.c +++ b/gnu/write.c @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* POSIX compatible write() function. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008-2010 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -46,14 +48,14 @@ rpl_write (int fd, const void *buf, size_t count) if (ret < 0) { if (GetLastError () == ERROR_NO_DATA - && GetFileType (_get_osfhandle (fd)) == FILE_TYPE_PIPE) - { - /* Try to raise signal SIGPIPE. */ - raise (SIGPIPE); - /* If it is currently blocked or ignored, change errno from EINVAL - to EPIPE. */ - errno = EPIPE; - } + && GetFileType ((HANDLE) _get_osfhandle (fd)) == FILE_TYPE_PIPE) + { + /* Try to raise signal SIGPIPE. */ + raise (SIGPIPE); + /* If it is currently blocked or ignored, change errno from EINVAL + to EPIPE. */ + errno = EPIPE; + } } return ret; } diff --git a/lib/xalloc-die.c b/gnu/xalloc-die.c similarity index 85% rename from lib/xalloc-die.c rename to gnu/xalloc-die.c index 0a0694fcfe835562bee14d3996e5ba09c37e8073..4760baba9d9dbe342b948c36e7f6307e9bee4c4e 100644 --- a/lib/xalloc-die.c +++ b/gnu/xalloc-die.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Report a memory allocation failure and exit. - Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006 Free - Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006, 2009, 2010 + 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 diff --git a/lib/xalloc.h b/gnu/xalloc.h similarity index 85% rename from lib/xalloc.h rename to gnu/xalloc.h index 57a13e0afa9a835b4ee879912401930b272876cb..37500ed81d7df0b05afa8b391874f8efa67e08e6 100644 --- a/lib/xalloc.h +++ b/gnu/xalloc.h @@ -1,7 +1,10 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* xalloc.h -- malloc with out-of-memory checking - Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2003, 2004, 2006, 2007, 2008, 2009, 2010 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 @@ -105,10 +108,10 @@ char *xstrdup (char const *str) ATTRIBUTE_MALLOC; # if HAVE_INLINE # define static_inline static inline # else - void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC; - void *xnrealloc (void *p, size_t n, size_t s); - void *x2nrealloc (void *p, size_t *pn, size_t s); - char *xcharalloc (size_t n) ATTRIBUTE_MALLOC; +void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC; +void *xnrealloc (void *p, size_t n, size_t s); +void *x2nrealloc (void *p, size_t *pn, size_t s); +char *xcharalloc (size_t n) ATTRIBUTE_MALLOC; # endif # ifdef static_inline @@ -161,9 +164,9 @@ xnrealloc (void *p, size_t n, size_t s) void append_int (int value) { - if (used == allocated) - p = x2nrealloc (p, &allocated, sizeof *p); - p[used++] = value; + if (used == allocated) + p = x2nrealloc (p, &allocated, sizeof *p); + p[used++] = value; } This causes x2nrealloc to allocate a block of some nonzero size the @@ -181,12 +184,12 @@ xnrealloc (void *p, size_t n, size_t s) void append_int (int value) { - if (used == allocated) - { - p = x2nrealloc (p, &allocated1, sizeof *p); - allocated = allocated1; - } - p[used++] = value; + if (used == allocated) + { + p = x2nrealloc (p, &allocated1, sizeof *p); + allocated = allocated1; + } + p[used++] = value; } */ @@ -199,25 +202,25 @@ x2nrealloc (void *p, size_t *pn, size_t s) if (! p) { if (! n) - { - /* The approximate size to use for initial small allocation - requests, when the invoking code specifies an old size of - zero. 64 bytes is the largest "small" request for the - GNU C library malloc. */ - enum { DEFAULT_MXFAST = 64 }; - - n = DEFAULT_MXFAST / s; - n += !n; - } + { + /* The approximate size to use for initial small allocation + requests, when the invoking code specifies an old size of + zero. 64 bytes is the largest "small" request for the + GNU C library malloc. */ + enum { DEFAULT_MXFAST = 64 }; + + n = DEFAULT_MXFAST / s; + n += !n; + } } else { /* Set N = ceil (1.5 * N) so that progress is made if N == 1. - Check for overflow, so that N * S stays in size_t range. - The check is slightly conservative, but an exact check isn't - worth the trouble. */ + Check for overflow, so that N * S stays in size_t range. + The check is slightly conservative, but an exact check isn't + worth the trouble. */ if ((size_t) -1 / 3 * 2 / s <= n) - xalloc_die (); + xalloc_die (); n += (n + 1) / 2; } diff --git a/gnu/xasprintf.c b/gnu/xasprintf.c new file mode 100644 index 0000000000000000000000000000000000000000..198589dbfce0c4c9ffe7b10d0e00975f8bfe8b0f --- /dev/null +++ b/gnu/xasprintf.c @@ -0,0 +1,36 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* vasprintf and asprintf with out-of-memory checking. + Copyright (C) 1999, 2002-2004, 2006, 2009-2010 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/>. */ + +#include <config.h> + +/* Specification. */ +#include "xvasprintf.h" + +char * +xasprintf (const char *format, ...) +{ + va_list args; + char *result; + + va_start (args, format); + result = xvasprintf (format, args); + va_end (args); + + return result; +} diff --git a/lib/xgetcwd.c b/gnu/xgetcwd.c similarity index 86% rename from lib/xgetcwd.c rename to gnu/xgetcwd.c index 6787b4653cff4d19fb294a79e64d9bcb658ad242..f70011b9103d2ab75881647071da2085ebf67e53 100644 --- a/lib/xgetcwd.c +++ b/gnu/xgetcwd.c @@ -1,6 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* xgetcwd.c -- return current directory with unlimited length - Copyright (C) 2001, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2010 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 diff --git a/lib/xgetcwd.h b/gnu/xgetcwd.h similarity index 80% rename from lib/xgetcwd.h rename to gnu/xgetcwd.h index 3d966de967a5d28e5864ea3730a179e05e69f107..8f2f4ab66e056b221b919885eb185297d77949cc 100644 --- a/lib/xgetcwd.h +++ b/gnu/xgetcwd.h @@ -1,5 +1,7 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* prototype for xgetcwd - Copyright (C) 1995, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 1995, 2001, 2003, 2009-2010 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 diff --git a/lib/xmalloc.c b/gnu/xmalloc.c similarity index 94% rename from lib/xmalloc.c rename to gnu/xmalloc.c index 89ecf17ad0851dc47687ac3e323e6743a2f942b3..99d5bf4653cc3c8908094f24cb16fda30ea43705 100644 --- a/lib/xmalloc.c +++ b/gnu/xmalloc.c @@ -1,8 +1,10 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* xmalloc.c -- malloc with out of memory checking - Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2008 Free Software Foundation, - Inc. + Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 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 @@ -28,10 +30,6 @@ #include <stdlib.h> #include <string.h> -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - /* 1 if calloc is known to be compatible with GNU calloc. This matters if we are not also using the calloc module, which defines HAVE_CALLOC and supports the GNU API even on non-GNU platforms. */ diff --git a/lib/xsize.h b/gnu/xsize.h similarity index 98% rename from lib/xsize.h rename to gnu/xsize.h index e6d290a77e84c838efc35313c91207631adc7afa..e238635aede2957717957924a1e37dd9c75a3f1a 100644 --- a/lib/xsize.h +++ b/gnu/xsize.h @@ -2,7 +2,7 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* xsize.h -- Checked size_t computations. - Copyright (C) 2003, 2008 Free Software Foundation, Inc. + Copyright (C) 2003, 2008, 2009, 2010 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 diff --git a/lib/xstrndup.c b/gnu/xstrndup.c similarity index 86% rename from lib/xstrndup.c rename to gnu/xstrndup.c index 37488cd99d9c2946c2b22b30e8387975bc348bfe..3fa3e31426c46c57bfd0694e48366ad9a1ae56c5 100644 --- a/lib/xstrndup.c +++ b/gnu/xstrndup.c @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Duplicate a bounded initial segment of a string, with out-of-memory checking. - Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2007, 2009, 2010 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 diff --git a/lib/xstrndup.h b/gnu/xstrndup.h similarity index 86% rename from lib/xstrndup.h rename to gnu/xstrndup.h index 4882e394754805d59f57da11760ccd4909f7c88e..1d7ec807eccc4dc8c44603b853ac24c58f6cec4d 100644 --- a/lib/xstrndup.h +++ b/gnu/xstrndup.h @@ -1,6 +1,8 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Duplicate a bounded initial segment of a string, with out-of-memory checking. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2009, 2010 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 diff --git a/lib/xstrtol-error.c b/gnu/xstrtol-error.c similarity index 85% rename from lib/xstrtol-error.c rename to gnu/xstrtol-error.c index 67b5bf065bf49d9826fa453d7cb994af11aa6bf4..f6b2e958f97a9241b8950f5efdea04ffef2edbcb 100644 --- a/lib/xstrtol-error.c +++ b/gnu/xstrtol-error.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A more useful interface to strtol. - Copyright (C) 1995, 1996, 1998, 1999, 2001-2004, 2006-2008 - Free Software Foundation, Inc. + Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2010 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 @@ -45,9 +47,9 @@ static void xstrtol_error (enum strtol_error err, - int opt_idx, char c, struct option const *long_options, - char const *arg, - int exit_status) + int opt_idx, char c, struct option const *long_options, + char const *arg, + int exit_status) { char const *hyphens = "--"; char const *msgid; @@ -90,8 +92,8 @@ xstrtol_error (enum strtol_error err, void xstrtol_fatal (enum strtol_error err, - int opt_idx, char c, struct option const *long_options, - char const *arg) + int opt_idx, char c, struct option const *long_options, + char const *arg) { xstrtol_error (err, opt_idx, c, long_options, arg, exit_failure); abort (); diff --git a/lib/xstrtol.c b/gnu/xstrtol.c similarity index 52% rename from lib/xstrtol.c rename to gnu/xstrtol.c index 1804fe586678ac7ad601cc7c052818a662d4f755..558e04d8b46000952a606977bf0dd72e322362db 100644 --- a/lib/xstrtol.c +++ b/gnu/xstrtol.c @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A more useful interface to strtol. - Copyright (C) 1995, 1996, 1998, 1999, 2000, 2001, 2003, 2004, 2005, - 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2010 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 @@ -73,7 +75,7 @@ bkm_scale_by_power (__strtol_t *x, int base, int power) strtol_error __xstrtol (const char *s, char **ptr, int strtol_base, - __strtol_t *val, const char *valid_suffixes) + __strtol_t *val, const char *valid_suffixes) { char *t_ptr; char **p; @@ -89,9 +91,9 @@ __xstrtol (const char *s, char **ptr, int strtol_base, const char *q = s; unsigned char ch = *q; while (isspace (ch)) - ch = *++q; + ch = *++q; if (ch == '-') - return LONGINT_INVALID; + return LONGINT_INVALID; } errno = 0; @@ -100,16 +102,16 @@ __xstrtol (const char *s, char **ptr, int strtol_base, if (*p == s) { /* If there is no number but there is a valid suffix, assume the - number is 1. The string is invalid otherwise. */ + number is 1. The string is invalid otherwise. */ if (valid_suffixes && **p && strchr (valid_suffixes, **p)) - tmp = 1; + tmp = 1; else - return LONGINT_INVALID; + return LONGINT_INVALID; } else if (errno != 0) { if (errno != ERANGE) - return LONGINT_INVALID; + return LONGINT_INVALID; err = LONGINT_OVERFLOW; } @@ -129,98 +131,98 @@ __xstrtol (const char *s, char **ptr, int strtol_base, strtol_error overflow; if (!strchr (valid_suffixes, **p)) - { - *val = tmp; - return err | LONGINT_INVALID_SUFFIX_CHAR; - } + { + *val = tmp; + return err | LONGINT_INVALID_SUFFIX_CHAR; + } if (strchr (valid_suffixes, '0')) - { - /* The ``valid suffix'' '0' is a special flag meaning that - an optional second suffix is allowed, which can change - the base. A suffix "B" (e.g. "100MB") stands for a power - of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for - a power of 1024. If no suffix (e.g. "100M"), assume - power-of-1024. */ - - switch (p[0][1]) - { - case 'i': - if (p[0][2] == 'B') - suffixes += 2; - break; - - case 'B': - case 'D': /* 'D' is obsolescent */ - base = 1000; - suffixes++; - break; - } - } + { + /* The ``valid suffix'' '0' is a special flag meaning that + an optional second suffix is allowed, which can change + the base. A suffix "B" (e.g. "100MB") stands for a power + of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for + a power of 1024. If no suffix (e.g. "100M"), assume + power-of-1024. */ + + switch (p[0][1]) + { + case 'i': + if (p[0][2] == 'B') + suffixes += 2; + break; + + case 'B': + case 'D': /* 'D' is obsolescent */ + base = 1000; + suffixes++; + break; + } + } switch (**p) - { - case 'b': - overflow = bkm_scale (&tmp, 512); - break; - - case 'B': - overflow = bkm_scale (&tmp, 1024); - break; - - case 'c': - overflow = 0; - break; - - case 'E': /* exa or exbi */ - overflow = bkm_scale_by_power (&tmp, base, 6); - break; - - case 'G': /* giga or gibi */ - case 'g': /* 'g' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, base, 3); - break; - - case 'k': /* kilo */ - case 'K': /* kibi */ - overflow = bkm_scale_by_power (&tmp, base, 1); - break; - - case 'M': /* mega or mebi */ - case 'm': /* 'm' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, base, 2); - break; - - case 'P': /* peta or pebi */ - overflow = bkm_scale_by_power (&tmp, base, 5); - break; - - case 'T': /* tera or tebi */ - case 't': /* 't' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, base, 4); - break; - - case 'w': - overflow = bkm_scale (&tmp, 2); - break; - - case 'Y': /* yotta or 2**80 */ - overflow = bkm_scale_by_power (&tmp, base, 8); - break; - - case 'Z': /* zetta or 2**70 */ - overflow = bkm_scale_by_power (&tmp, base, 7); - break; - - default: - *val = tmp; - return err | LONGINT_INVALID_SUFFIX_CHAR; - } + { + case 'b': + overflow = bkm_scale (&tmp, 512); + break; + + case 'B': + overflow = bkm_scale (&tmp, 1024); + break; + + case 'c': + overflow = 0; + break; + + case 'E': /* exa or exbi */ + overflow = bkm_scale_by_power (&tmp, base, 6); + break; + + case 'G': /* giga or gibi */ + case 'g': /* 'g' is undocumented; for compatibility only */ + overflow = bkm_scale_by_power (&tmp, base, 3); + break; + + case 'k': /* kilo */ + case 'K': /* kibi */ + overflow = bkm_scale_by_power (&tmp, base, 1); + break; + + case 'M': /* mega or mebi */ + case 'm': /* 'm' is undocumented; for compatibility only */ + overflow = bkm_scale_by_power (&tmp, base, 2); + break; + + case 'P': /* peta or pebi */ + overflow = bkm_scale_by_power (&tmp, base, 5); + break; + + case 'T': /* tera or tebi */ + case 't': /* 't' is undocumented; for compatibility only */ + overflow = bkm_scale_by_power (&tmp, base, 4); + break; + + case 'w': + overflow = bkm_scale (&tmp, 2); + break; + + case 'Y': /* yotta or 2**80 */ + overflow = bkm_scale_by_power (&tmp, base, 8); + break; + + case 'Z': /* zetta or 2**70 */ + overflow = bkm_scale_by_power (&tmp, base, 7); + break; + + default: + *val = tmp; + return err | LONGINT_INVALID_SUFFIX_CHAR; + } err |= overflow; *p += suffixes; if (**p) - err |= LONGINT_INVALID_SUFFIX_CHAR; + err |= LONGINT_INVALID_SUFFIX_CHAR; } *val = tmp; diff --git a/lib/xstrtol.h b/gnu/xstrtol.h similarity index 82% rename from lib/xstrtol.h rename to gnu/xstrtol.h index 9ac168bf38980689a72280af6720a7930a2b06a0..98d566ca7ca4898ba1769a27514cbfd3e4525e66 100644 --- a/lib/xstrtol.h +++ b/gnu/xstrtol.h @@ -1,7 +1,9 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* A more useful interface to strtol. - Copyright (C) 1995, 1996, 1998, 1999, 2001, 2002, 2003, 2004, 2006, 2007, - 2008 Free Software Foundation, Inc. + Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2010 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 @@ -33,7 +35,7 @@ enum strtol_error LONGINT_INVALID_SUFFIX_CHAR = 2, LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW = (LONGINT_INVALID_SUFFIX_CHAR - | LONGINT_OVERFLOW), + | LONGINT_OVERFLOW), LONGINT_INVALID = 4 }; typedef enum strtol_error strtol_error; @@ -46,6 +48,11 @@ _DECLARE_XSTRTOL (xstrtoul, unsigned long int) _DECLARE_XSTRTOL (xstrtoimax, intmax_t) _DECLARE_XSTRTOL (xstrtoumax, uintmax_t) +#if HAVE_LONG_LONG_INT +_DECLARE_XSTRTOL (xstrtoll, long long int) +_DECLARE_XSTRTOL (xstrtoull, unsigned long long int) +#endif + #ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) # define __attribute__(x) @@ -72,7 +79,7 @@ _DECLARE_XSTRTOL (xstrtoumax, uintmax_t) After reporting an error, exit with a failure status. */ void xstrtol_fatal (enum strtol_error, - int, char, struct option const *, - char const *) ATTRIBUTE_NORETURN; + int, char, struct option const *, + char const *) ATTRIBUTE_NORETURN; #endif /* not XSTRTOL_H_ */ diff --git a/lib/xstrtoul.c b/gnu/xstrtoul.c similarity index 65% rename from lib/xstrtoul.c rename to gnu/xstrtoul.c index 285f7b96f8500a018eba40a1a8235e9abc230df8..63968db775d6d291f7770aa1494ca05a8976e4fc 100644 --- a/lib/xstrtoul.c +++ b/gnu/xstrtoul.c @@ -1,3 +1,5 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ #define __strtol strtoul #define __strtol_t unsigned long int #define __xstrtol xstrtoul diff --git a/lib/xstrtoumax.c b/gnu/xstrtoumax.c similarity index 65% rename from lib/xstrtoumax.c rename to gnu/xstrtoumax.c index 9a2349f00d36e1e6aa72b45ea8cf54c76de6924c..fce8d5fd3a8e4d9a7773e06cb2ca742051c0e587 100644 --- a/lib/xstrtoumax.c +++ b/gnu/xstrtoumax.c @@ -1,3 +1,5 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ #define __strtol strtoumax #define __strtol_t uintmax_t #define __xstrtol xstrtoumax diff --git a/gnu/xvasprintf.c b/gnu/xvasprintf.c new file mode 100644 index 0000000000000000000000000000000000000000..448de071eba656a7fd05795ff667af68196e8abf --- /dev/null +++ b/gnu/xvasprintf.c @@ -0,0 +1,112 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* vasprintf and asprintf with out-of-memory checking. + Copyright (C) 1999, 2002-2004, 2006-2010 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/>. */ + +#include <config.h> + +/* Specification. */ +#include "xvasprintf.h" + +#include <errno.h> +#include <limits.h> +#include <string.h> +#include <stdio.h> + +#include "xalloc.h" + +/* Checked size_t computations. */ +#include "xsize.h" + +static inline char * +xstrcat (size_t argcount, va_list args) +{ + char *result; + va_list ap; + size_t totalsize; + size_t i; + char *p; + + /* Determine the total size. */ + totalsize = 0; + va_copy (ap, args); + for (i = argcount; i > 0; i--) + { + const char *next = va_arg (ap, const char *); + totalsize = xsum (totalsize, strlen (next)); + } + va_end (ap); + + /* Test for overflow in the summing pass above or in (totalsize + 1) below. + Also, don't return a string longer than INT_MAX, for consistency with + vasprintf(). */ + if (totalsize == SIZE_MAX || totalsize > INT_MAX) + { + errno = EOVERFLOW; + return NULL; + } + + /* Allocate and fill the result string. */ + result = XNMALLOC (totalsize + 1, char); + p = result; + for (i = argcount; i > 0; i--) + { + const char *next = va_arg (args, const char *); + size_t len = strlen (next); + memcpy (p, next, len); + p += len; + } + *p = '\0'; + + return result; +} + +char * +xvasprintf (const char *format, va_list args) +{ + char *result; + + /* Recognize the special case format = "%s...%s". It is a frequently used + idiom for string concatenation and needs to be fast. We don't want to + have a separate function xstrcat() for this purpose. */ + { + size_t argcount = 0; + const char *f; + + for (f = format;;) + { + if (*f == '\0') + /* Recognized the special case of string concatenation. */ + return xstrcat (argcount, args); + if (*f != '%') + break; + f++; + if (*f != 's') + break; + f++; + argcount++; + } + } + + if (vasprintf (&result, format, args) < 0) + { + if (errno == ENOMEM) + xalloc_die (); + return NULL; + } + + return result; +} diff --git a/gnu/xvasprintf.h b/gnu/xvasprintf.h new file mode 100644 index 0000000000000000000000000000000000000000..835828aff915d3ed7b81a5011a3f28a9118d97be --- /dev/null +++ b/gnu/xvasprintf.h @@ -0,0 +1,57 @@ +/* -*- buffer-read-only: t -*- vi: set ro: */ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* vasprintf and asprintf with out-of-memory checking. + Copyright (C) 2002-2004, 2006-2010 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/>. */ + +#ifndef _XVASPRINTF_H +#define _XVASPRINTF_H + +/* Get va_list. */ +#include <stdarg.h> + +#ifndef __attribute__ +/* The __attribute__ feature is available in gcc versions 2.5 and later. + The __-protected variants of the attributes 'format' and 'printf' are + accepted by gcc versions 2.6.4 (effectively 2.7) and later. + We enable __attribute__ only if these are supported too, because + gnulib and libintl do '#define printf __printf__' when they override + the 'printf' function. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +# define __attribute__(Spec) /* empty */ +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Write formatted output to a string dynamically allocated with malloc(), + and return it. Upon [ENOMEM] memory allocation error, call xalloc_die. + On some other error + - [EOVERFLOW] resulting string length is > INT_MAX, + - [EINVAL] invalid format string, + - [EILSEQ] error during conversion between wide and multibyte characters, + return NULL. */ +extern char *xasprintf (const char *format, ...) + __attribute__ ((__format__ (__printf__, 1, 2))); +extern char *xvasprintf (const char *format, va_list args) + __attribute__ ((__format__ (__printf__, 1, 0))); + +#ifdef __cplusplus +} +#endif + +#endif /* _XVASPRINTF_H */ diff --git a/lib/Makefile.am b/lib/Makefile.am index 466a477a7fd8ee444af72fd8d5e15ed750d69f29..4bfee8bb06db082d3e83a3582a2952901f813f67 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,7 +1,7 @@ # Makefile for GNU tar library. -*- Makefile -*- # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004, -# 2005, 2006, 2007 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2009, 2010 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 @@ -17,19 +17,19 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -include gnulib.mk - +noinst_LIBRARIES=libtar.a rmt-command.h : Makefile - rm -f $@-t $@ - echo "#ifndef DEFAULT_RMT_COMMAND" >> $@-t - echo "# define DEFAULT_RMT_COMMAND \"$(DEFAULT_RMT_DIR)/`echo rmt | sed '$(transform)'`$(EXEEXT)\"" >> $@-t - echo "#endif" >> $@-t - mv $@-t $@ -BUILT_SOURCES += rmt-command.h -CLEANFILES += rmt-command.h rmt-command.h-t - -noinst_HEADERS += system.h system-ioctl.h rmt.h paxlib.h stdopen.h -libtar_a_SOURCES += \ + $(AM_V_GEN)rm -f $@-t $@ + $(AM_V_at)echo "#ifndef DEFAULT_RMT_COMMAND" >> $@-t + $(AM_V_at)echo "# define DEFAULT_RMT_COMMAND \"$(DEFAULT_RMT_DIR)/`echo rmt | sed '$(transform)'`$(EXEEXT)\"" >> $@-t + $(AM_V_at)echo "#endif" >> $@-t + $(AM_V_at)mv $@-t $@ +BUILT_SOURCES = rmt-command.h +CLEANFILES = rmt-command.h rmt-command.h-t +INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu + +noinst_HEADERS = system.h system-ioctl.h rmt.h paxlib.h stdopen.h +libtar_a_SOURCES = \ paxerror.c paxexit.c paxlib.h paxnames.c \ prepargs.c prepargs.h \ rtapelib.c \ @@ -37,5 +37,3 @@ libtar_a_SOURCES += \ stdopen.c stdopen.h \ system.h system-ioctl.h -libtar_a_LIBADD += $(LIBOBJS) -libtar_a_DEPENDENCIES += $(LIBOBJS) diff --git a/lib/Makefile.in b/lib/Makefile.in index 0c6adb2f695bd1163eb9f260e41cfe054672da23..4ac8db7f565a7a308e5cab40fbd81acafe854c86 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,7 +18,7 @@ # Makefile for GNU tar library. -*- Makefile -*- # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004, -# 2005, 2006, 2007 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2009, 2010 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 @@ -33,23 +34,12 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# Copyright (C) 2002-2009 Free Software Foundation, Inc. -# -# This file is free software, distributed under the terms of the GNU -# General Public License. As a special exception to the GNU General -# Public License, this file may be distributed as part of a program -# that contains a configuration script generated by Autoconf, under -# the same distribution terms as the rest of that program. -# -# Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libtar --source-base=.#bootmp/lib --m4-base=.#bootmp/m4 --doc-base=.#bootmp/doc --tests-base=.#bootmp/tests --aux-dir=.#bootmp/build-aux --avoid=lock --no-libtool --macro-prefix=gl alloca argmatch argp backupfile closeout configmake dirname error exclude exitfail fileblocks fnmatch-gnu fseeko ftruncate full-write getdate getline getopt getpagesize gettext gettime hash human inttostr inttypes lchown localcharset mkdtemp modechange obstack quote quotearg rpmatch safe-read save-cwd savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul timespec unlinkdir unlocked-io utime utimens version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax - - VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -64,72 +54,79 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/gnulib.mk alloca.c getdate.c \ - waitpid.c subdir = lib +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/canonicalize-lgpl.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ - $(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \ - $(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \ - $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \ - $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \ - $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ - $(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ - $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ - $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ - $(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \ - $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \ - $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \ - $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \ - $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ @@ -145,71 +142,68 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \ - $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \ - $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ - $(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ - $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru +AM_V_AR = $(am__v_AR_$(V)) +am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY)) +am__v_AR_0 = @echo " AR " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ libtar_a_AR = $(AR) $(ARFLAGS) -am__DEPENDENCIES_1 = -am__dirstamp = $(am__leading_dot)dirstamp -am_libtar_a_OBJECTS = argp-ba.$(OBJEXT) argp-eexst.$(OBJEXT) \ - argp-fmtstream.$(OBJEXT) argp-fs-xinl.$(OBJEXT) \ - argp-help.$(OBJEXT) argp-parse.$(OBJEXT) argp-pin.$(OBJEXT) \ - argp-pv.$(OBJEXT) argp-pvh.$(OBJEXT) argp-xinl.$(OBJEXT) \ - c-ctype.$(OBJEXT) full-write.$(OBJEXT) getdate.$(OBJEXT) \ - localcharset.$(OBJEXT) malloca.$(OBJEXT) mbchar.$(OBJEXT) \ - mbscasecmp.$(OBJEXT) openat-die.$(OBJEXT) strnlen1.$(OBJEXT) \ - uniwidth/width.$(OBJEXT) version-etc.$(OBJEXT) \ - version-etc-fsf.$(OBJEXT) xalloc-die.$(OBJEXT) \ - xstrndup.$(OBJEXT) xstrtoumax.$(OBJEXT) paxerror.$(OBJEXT) \ - paxexit.$(OBJEXT) paxnames.$(OBJEXT) prepargs.$(OBJEXT) \ - rtapelib.$(OBJEXT) stdopen.$(OBJEXT) +libtar_a_LIBADD = +am_libtar_a_OBJECTS = paxerror.$(OBJEXT) paxexit.$(OBJEXT) \ + paxnames.$(OBJEXT) prepargs.$(OBJEXT) rtapelib.$(OBJEXT) \ + stdopen.$(OBJEXT) libtar_a_OBJECTS = $(am_libtar_a_OBJECTS) -LTLIBRARIES = $(noinst_LTLIBRARIES) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles +am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) -YLWRAP = $(top_srcdir)/build-aux/ylwrap -SOURCES = $(libtar_a_SOURCES) $(EXTRA_libtar_a_SOURCES) -DIST_SOURCES = $(libtar_a_SOURCES) $(EXTRA_libtar_a_SOURCES) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libtar_a_SOURCES) +DIST_SOURCES = $(libtar_a_SOURCES) HEADERS = $(noinst_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -238,7 +232,6 @@ DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRENT_H = @DIRENT_H@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -251,7 +244,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ -FCNTL_H = @FCNTL_H@ FLOAT_H = @FLOAT_H@ FNMATCH_H = @FNMATCH_H@ GETOPT_H = @GETOPT_H@ @@ -263,45 +255,59 @@ GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ @@ -324,15 +330,31 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PUTC = @GNULIB_PUTC@ @@ -342,13 +364,20 @@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ @@ -359,6 +388,7 @@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ @@ -369,8 +399,16 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ @@ -390,8 +428,11 @@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ @@ -416,37 +457,68 @@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ -HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ @@ -460,7 +532,6 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRNDUP = @HAVE_STRNDUP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ @@ -469,6 +540,8 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ @@ -477,11 +550,15 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -499,16 +576,14 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -INTTYPES_H = @INTTYPES_H@ LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTAR_LIBDEPS = @LIBTAR_LIBDEPS@ -LIBTAR_LTLIBDEPS = @LIBTAR_LTLIBDEPS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LIB_CLOSE = @LIB_CLOSE@ LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ @@ -523,12 +598,36 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ @@ -557,25 +656,40 @@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PU_RMT_PROG = @PU_RMT_PROG@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ @@ -585,26 +699,53 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRPTIME = @REPLACE_STRPTIME@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -612,6 +753,7 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ @@ -622,22 +764,20 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYSEXITS_H = @SYSEXITS_H@ -SYS_STAT_H = @SYS_STAT_H@ -SYS_TIME_H = @SYS_TIME_H@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -VOID_UNSETENV = @VOID_UNSETENV@ -WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ -WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -695,144 +835,39 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects -SUBDIRS = -noinst_HEADERS = system.h system-ioctl.h rmt.h paxlib.h stdopen.h noinst_LIBRARIES = libtar.a -noinst_LTLIBRARIES = - -# This is for those projects which use "gettextize --intl" to put a source-code -# copy of libintl into their package. In such projects, every Makefile.am needs -# -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory. -# For the Makefile.ams in other directories it is the maintainer's -# responsibility; for the one from gnulib we do it here. -# This option has no effect when the user disables NLS (because then the intl -# directory contains no libintl.h file) or when the project does not use -# "gettextize --intl". -#AM_CPPFLAGS += -I$(top_builddir)/intl -EXTRA_DIST = alloca.c alloca.in.h argmatch.c argmatch.h backupfile.c \ - backupfile.h btowc.c canonicalize-lgpl.c canonicalize.h \ - chdir-long.c chdir-long.h chown.c fchown-stub.c close.c \ - w32sock.h close-stream.c close-stream.h closeout.c closeout.h \ - dirent.in.h dirfd.c basename.c dirname.c dirname.h \ - stripslash.c dup2.c errno.in.h error.c error.h exclude.c \ - exclude.h exitfail.c exitfail.h fchdir.c fclose.c fcntl.in.h \ - creat-safer.c fcntl--.h fcntl-safer.h open-safer.c \ - fileblocks.c float.in.h fnmatch.c fnmatch.in.h fnmatch_loop.c \ - fpending.c fpending.h fseeko.c stdio-impl.h ftruncate.c \ - getcwd.c getdate.c getdate.h getdelim.c getline.c getopt.c \ - getopt.in.h getopt1.c getopt_int.h getpagesize.c \ - $(top_srcdir)/build-aux/config.rpath gettime.c gettimeofday.c \ - hash.c hash.h $(top_srcdir)/build-aux/config.rpath human.c \ - human.h intprops.h imaxtostr.c inttostr.c inttostr.h \ - offtostr.c uinttostr.c umaxtostr.c inttypes.in.h lchown.c \ - $(top_srcdir)/build-aux/link-warning.h config.charset \ - ref-add.sin ref-del.sin lseek.c lstat.c malloc.c malloc.c \ - malloca.h malloca.valgrind mbchar.h mbrtowc.c mbsinit.c \ - mempcpy.c memrchr.c mkdtemp.c mktime.c modechange.c \ - modechange.h obstack.c obstack.h open.c at-func.c fchmodat.c \ - fchownat.c fstatat.c mkdirat.c openat-priv.h openat-proc.c \ - openat.c openat.h pathmax.h quote.c quote.h quotearg.c \ - quotearg.h rawmemchr.c rawmemchr.valgrind readlink.c realloc.c \ - regcomp.c regex.c regex.h regex_internal.c regex_internal.h \ - regexec.c rpmatch.c safe-read.c safe-read.h safe-write.c \ - safe-write.h same-inode.h save-cwd.c save-cwd.h savedir.c \ - savedir.h setenv.c sleep.c snprintf.c stat-macros.h \ - stat-time.h stdarg.in.h stdbool.in.h stdint.in.h stdio-write.c \ - stdio.in.h stdlib.in.h stpcpy.c strcasecmp.c strncasecmp.c \ - strchrnul.c strchrnul.valgrind strdup.c streq.h strerror.c \ - string.in.h strings.in.h strndup.c strnlen.c strtoimax.c \ - strtol.c strtoll.c strtoul.c strtoull.c strtoumax.c \ - sys_stat.in.h sys_time.in.h sysexits.in.h tempname.c \ - tempname.h time.in.h time_r.c timespec.h unistd.in.h \ - dup-safer.c fd-safer.c pipe-safer.c unistd--.h unistd-safer.h \ - unitypes.h localcharset.h uniwidth.h uniwidth/cjk.h \ - unlinkdir.c unlinkdir.h unlocked-io.h unsetenv.c utime.c \ - utimens.c utimens.h asnprintf.c float+.h printf-args.c \ - printf-args.h printf-parse.c printf-parse.h vasnprintf.c \ - vasnprintf.h vsnprintf.c wchar.in.h wcrtomb.c wctype.in.h \ - wcwidth.c write.c xalloc.h xmalloc.c xgetcwd.c xgetcwd.h \ - xstrtol-error.c xstrtol.c xstrtol.h xstrtoul.c -BUILT_SOURCES = $(ALLOCA_H) configmake.h $(DIRENT_H) $(ERRNO_H) \ - $(FCNTL_H) $(FLOAT_H) $(FNMATCH_H) getdate.c $(GETOPT_H) \ - $(INTTYPES_H) $(STDARG_H) $(STDBOOL_H) $(STDINT_H) stdio.h \ - stdlib.h string.h strings.h $(SYS_STAT_H) $(SYS_TIME_H) \ - $(SYSEXITS_H) time.h unistd.h $(WCHAR_H) $(WCTYPE_H) \ - rmt-command.h -SUFFIXES = .sed .sin -MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t dirent.h \ - dirent.h-t errno.h errno.h-t fcntl.h fcntl.h-t float.h \ - float.h-t fnmatch.h fnmatch.h-t getopt.h getopt.h-t inttypes.h \ - inttypes.h-t stdarg.h stdarg.h-t stdbool.h stdbool.h-t \ - stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t \ - string.h string.h-t strings.h strings.h-t sys/stat.h \ - sys/stat.h-t sys/time.h sys/time.h-t sysexits.h sysexits.h-t \ - time.h time.h-t unistd.h unistd.h-t wchar.h wchar.h-t wctype.h \ - wctype.h-t -MOSTLYCLEANDIRS = sys -CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \ - ref-del.sed rmt-command.h rmt-command.h-t -DISTCLEANFILES = -MAINTAINERCLEANFILES = getdate.c -AM_CPPFLAGS = -libtar_a_SOURCES = 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 \ - c-ctype.h c-ctype.c full-write.h full-write.c getdate.y \ - gettext.h localcharset.h localcharset.c malloca.c mbchar.c \ - mbscasecmp.c mbuiter.h openat-die.c size_max.h strnlen1.h \ - strnlen1.c uniwidth/width.c verify.h version-etc.h \ - version-etc.c version-etc-fsf.c xalloc-die.c xsize.h \ - xstrndup.h xstrndup.c xstrtoumax.c paxerror.c paxexit.c \ - paxlib.h paxnames.c prepargs.c prepargs.h rtapelib.c rmt.h \ - stdopen.c stdopen.h system.h system-ioctl.h -libtar_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS) -libtar_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@ $(LIBOBJS) -EXTRA_libtar_a_SOURCES = alloca.c argmatch.c backupfile.c btowc.c \ - canonicalize-lgpl.c chdir-long.c chown.c fchown-stub.c close.c \ - close-stream.c closeout.c dirfd.c basename.c dirname.c \ - stripslash.c dup2.c error.c exclude.c exitfail.c fchdir.c \ - fclose.c creat-safer.c open-safer.c fileblocks.c fnmatch.c \ - fnmatch_loop.c fpending.c fseeko.c ftruncate.c getcwd.c \ - getdelim.c getline.c getopt.c getopt1.c getpagesize.c \ - gettime.c gettimeofday.c hash.c human.c imaxtostr.c inttostr.c \ - offtostr.c uinttostr.c umaxtostr.c lchown.c lseek.c lstat.c \ - malloc.c malloc.c mbrtowc.c mbsinit.c mempcpy.c memrchr.c \ - mkdtemp.c mktime.c modechange.c obstack.c open.c at-func.c \ - fchmodat.c fchownat.c fstatat.c mkdirat.c openat-proc.c \ - openat.c quote.c quotearg.c rawmemchr.c readlink.c realloc.c \ - regcomp.c regex.c regex_internal.c regexec.c rpmatch.c \ - safe-read.c safe-write.c save-cwd.c savedir.c setenv.c sleep.c \ - snprintf.c stdio-write.c stpcpy.c strcasecmp.c strncasecmp.c \ - strchrnul.c strdup.c strerror.c strndup.c strnlen.c \ - strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \ - strtoumax.c tempname.c time_r.c dup-safer.c fd-safer.c \ - pipe-safer.c unlinkdir.c unsetenv.c utime.c utimens.c \ - asnprintf.c printf-args.c printf-parse.c vasnprintf.c \ - vsnprintf.c wcrtomb.c wcwidth.c write.c xmalloc.c xgetcwd.c \ - xstrtol-error.c xstrtol.c xstrtoul.c -LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h -charset_alias = $(DESTDIR)$(libdir)/charset.alias -charset_tmp = $(DESTDIR)$(libdir)/charset.tmp +BUILT_SOURCES = rmt-command.h +CLEANFILES = rmt-command.h rmt-command.h-t +INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu +noinst_HEADERS = system.h system-ioctl.h rmt.h paxlib.h stdopen.h +libtar_a_SOURCES = \ + paxerror.c paxexit.c paxlib.h paxnames.c \ + prepargs.c prepargs.h \ + rtapelib.c \ + rmt.h \ + stdopen.c stdopen.h \ + system.h system-ioctl.h + all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-recursive + $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: -.SUFFIXES: .sed .sin .c .o .obj .y -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/gnulib.mk $(am__configure_deps) +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits lib/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits lib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -850,335 +885,92 @@ $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -uniwidth/$(am__dirstamp): - @$(MKDIR_P) uniwidth - @: > uniwidth/$(am__dirstamp) -uniwidth/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) uniwidth/$(DEPDIR) - @: > uniwidth/$(DEPDIR)/$(am__dirstamp) -uniwidth/width.$(OBJEXT): uniwidth/$(am__dirstamp) \ - uniwidth/$(DEPDIR)/$(am__dirstamp) libtar.a: $(libtar_a_OBJECTS) $(libtar_a_DEPENDENCIES) - -rm -f libtar.a - $(libtar_a_AR) libtar.a $(libtar_a_OBJECTS) $(libtar_a_LIBADD) - $(RANLIB) libtar.a - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done + $(AM_V_at)-rm -f libtar.a + $(AM_V_AR)$(libtar_a_AR) libtar.a $(libtar_a_OBJECTS) $(libtar_a_LIBADD) + $(AM_V_at)$(RANLIB) libtar.a mostlyclean-compile: -rm -f *.$(OBJEXT) - -rm -f uniwidth/width.$(OBJEXT) distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/waitpid.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-ba.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-eexst.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-fmtstream.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-fs-xinl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-help.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-parse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-pin.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-pv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-pvh.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argp-xinl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/at-func.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backupfile.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize-lgpl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chdir-long.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close-stream.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeout.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/creat-safer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirfd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-safer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown-stub.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclose.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileblocks.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch_loop.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpending.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftruncate.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdate.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdelim.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpagesize.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/human.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imaxtostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inttostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lseek.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbscasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempcpy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdirat.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdtemp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modechange.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obstack.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open-safer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-die.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paxerror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paxexit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paxnames.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepargs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quote.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rawmemchr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpmatch.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtapelib.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-read.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-write.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/savedir.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdio-write.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdopen.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strchrnul.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoimax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoll.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoul.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoull.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoumax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempname.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uinttostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umaxtostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlinkdir.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utime.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utimens.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc-fsf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vsnprintf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/write.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetcwd.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol-error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoul.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoumax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/width.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCC_TRUE@ mv -f $$depbase.Tpo $$depbase.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCC_TRUE@ mv -f $$depbase.Tpo $$depbase.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.y.c: - $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -1199,848 +991,144 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ - || exit 1; \ - fi; \ - done check-am: all-am check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local -installdirs: installdirs-recursive -installdirs-am: + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LIBRARIES) $(HEADERS) +installdirs: install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -installcheck: installcheck-recursive +installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: - -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -rm -f uniwidth/$(DEPDIR)/$(am__dirstamp) - -rm -f uniwidth/$(am__dirstamp) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." - -rm -f getdate.c -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-recursive +clean: clean-am -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \ - mostlyclean-am +clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am -distclean: distclean-recursive - -rm -rf $(DEPDIR) ./$(DEPDIR) uniwidth/$(DEPDIR) +distclean: distclean-am + -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags -dvi: dvi-recursive +dvi: dvi-am dvi-am: -html: html-recursive +html: html-am -info: info-recursive +html-am: + +info: info-am info-am: install-data-am: -install-dvi: install-dvi-recursive +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: -install-exec-am: install-exec-local +install-html: install-html-am -install-html: install-html-recursive +install-html-am: -install-info: install-info-recursive +install-info: install-info-am + +install-info-am: install-man: -install-pdf: install-pdf-recursive +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am -install-ps: install-ps-recursive +install-ps-am: installcheck-am: -maintainer-clean: maintainer-clean-recursive - -rm -rf $(DEPDIR) ./$(DEPDIR) uniwidth/$(DEPDIR) +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-recursive +mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-local +mostlyclean-am: mostlyclean-compile mostlyclean-generic -pdf: pdf-recursive +pdf: pdf-am pdf-am: -ps: ps-recursive +ps: ps-am ps-am: -uninstall-am: uninstall-local - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am all-local check check-am clean clean-generic \ - clean-noinstLIBRARIES clean-noinstLTLIBRARIES ctags \ - ctags-recursive distclean distclean-compile distclean-generic \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-exec-local \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am tags \ - tags-recursive uninstall uninstall-am uninstall-local - - -# We need the following in order to create <alloca.h> when the system -# doesn't have one that works with the given compiler. -alloca.h: alloca.in.h - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/alloca.in.h; \ - } > $@-t - mv -f $@-t $@ - -# Retrieve values of the variables through 'configure' followed by -# 'make', not directly through 'configure', so that a user who -# sets some of these variables consistently on the 'make' command -# line gets correct results. -# -# One advantage of this approach, compared to the classical -# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS, -# is that it protects against the use of undefined variables. -# If, say, $(libdir) is not set in the Makefile, LIBDIR is not -# defined by this module, and code using LIBDIR gives a -# compilation error. -# -# Another advantage is that 'make' output is shorter. -# -# Listed in the same order as the GNU makefile conventions. -# The Automake-defined pkg* macros are appended, in the order -# listed in the Automake 1.10a+ documentation. -configmake.h: Makefile - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - echo '#define PREFIX "$(prefix)"'; \ - echo '#define EXEC_PREFIX "$(exec_prefix)"'; \ - echo '#define BINDIR "$(bindir)"'; \ - echo '#define SBINDIR "$(sbindir)"'; \ - echo '#define LIBEXECDIR "$(libexecdir)"'; \ - echo '#define DATAROOTDIR "$(datarootdir)"'; \ - echo '#define DATADIR "$(datadir)"'; \ - echo '#define SYSCONFDIR "$(sysconfdir)"'; \ - echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \ - echo '#define LOCALSTATEDIR "$(localstatedir)"'; \ - echo '#define INCLUDEDIR "$(includedir)"'; \ - echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \ - echo '#define DOCDIR "$(docdir)"'; \ - echo '#define INFODIR "$(infodir)"'; \ - echo '#define HTMLDIR "$(htmldir)"'; \ - echo '#define DVIDIR "$(dvidir)"'; \ - echo '#define PDFDIR "$(pdfdir)"'; \ - echo '#define PSDIR "$(psdir)"'; \ - echo '#define LIBDIR "$(libdir)"'; \ - echo '#define LISPDIR "$(lispdir)"'; \ - echo '#define LOCALEDIR "$(localedir)"'; \ - echo '#define MANDIR "$(mandir)"'; \ - echo '#define MANEXT "$(manext)"'; \ - echo '#define PKGDATADIR "$(pkgdatadir)"'; \ - echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \ - echo '#define PKGLIBDIR "$(pkglibdir)"'; \ - echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \ - } | sed '/""/d' > $@-t - mv $@-t $@ - -# We need the following in order to create <dirent.h> when the system -# doesn't have one that works with the given compiler. -dirent.h: dirent.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \ - -e 's|@''GNULIB_DIRFD''@|$(GNULIB_DIRFD)|g' \ - -e 's|@''GNULIB_SCANDIR''@|$(GNULIB_SCANDIR)|g' \ - -e 's|@''GNULIB_ALPHASORT''@|$(GNULIB_ALPHASORT)|g' \ - -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \ - -e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \ - -e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \ - -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/dirent.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <errno.h> when the system -# doesn't have one that is POSIX compliant. -errno.h: errno.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ - -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ - -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ - -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ - -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ - -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ - -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ - < $(srcdir)/errno.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <fcntl.h> when the system -# doesn't have one that works with the given compiler. -fcntl.h: fcntl.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ - -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \ - -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ - < $(srcdir)/fcntl.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <float.h> when the system -# doesn't have one that works with the given compiler. -float.h: float.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \ - < $(srcdir)/float.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <fnmatch.h> when the system -# doesn't have one that supports the required API. -fnmatch.h: fnmatch.in.h - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/fnmatch.in.h; \ - } > $@-t - mv -f $@-t $@ - -# We need the following in order to create <getopt.h> when the system -# doesn't have one that works with the given compiler. -getopt.h: getopt.in.h - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - cat $(srcdir)/getopt.in.h; \ - } > $@-t - mv -f $@-t $@ - -# We need the following in order to create <inttypes.h> when the system -# doesn't have one that works with the given compiler. -inttypes.h: inttypes.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ - -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ - -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ - -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ - -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ - -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ - -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ - -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ - -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ - -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ - -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ - -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ - -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ - -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ - -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ - -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ - -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ - -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/inttypes.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to install a simple file in $(libdir) -# which is shared with other installed packages. We use a list of referencing -# packages so that "make uninstall" will remove the file if and only if it -# is not used by another installed package. -# On systems with glibc-2.1 or newer, the file is redundant, therefore we -# avoid installing it. - -all-local: charset.alias ref-add.sed ref-del.sed -install-exec-local: all-local - if test $(GLIBC21) = no; then \ - case '$(host_os)' in \ - darwin[56]*) \ - need_charset_alias=true ;; \ - darwin* | cygwin* | mingw* | pw32* | cegcc*) \ - need_charset_alias=false ;; \ - *) \ - need_charset_alias=true ;; \ - esac ; \ - else \ - need_charset_alias=false ; \ - fi ; \ - if $$need_charset_alias; then \ - $(mkinstalldirs) $(DESTDIR)$(libdir) ; \ - fi ; \ - if test -f $(charset_alias); then \ - sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - else \ - if $$need_charset_alias; then \ - sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - fi ; \ - fi +uninstall-am: -uninstall-local: all-local - if test -f $(charset_alias); then \ - sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ - if grep '^# Packages using this file: $$' $(charset_tmp) \ - > /dev/null; then \ - rm -f $(charset_alias); \ - else \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ - fi; \ - rm -f $(charset_tmp); \ - fi +.MAKE: all check install install-am install-strip -charset.alias: config.charset - rm -f t-$@ $@ - $(SHELL) $(srcdir)/config.charset '$(host)' > t-$@ - mv t-$@ $@ -.sin.sed: - rm -f t-$@ $@ - sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@ - mv t-$@ $@ - -# We need the following in order to create <stdarg.h> when the system -# doesn't have one that works with the given compiler. -stdarg.h: stdarg.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ - < $(srcdir)/stdarg.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <stdbool.h> when the system -# doesn't have one that works. -stdbool.h: stdbool.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <stdint.h> when the system -# doesn't have one that works with the given compiler. -stdint.h: stdint.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ - -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ - -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ - -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ - -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ - -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ - -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ - -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ - -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ - -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ - -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ - -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ - -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ - -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ - -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ - -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ - -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ - -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ - -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ - -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ - -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ - < $(srcdir)/stdint.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <stdio.h> when the system -# doesn't have one that works with the given compiler. -stdio.h: stdio.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ - -e 's|@''GNULIB_FPRINTF''@|$(GNULIB_FPRINTF)|g' \ - -e 's|@''GNULIB_FPRINTF_POSIX''@|$(GNULIB_FPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_PRINTF''@|$(GNULIB_PRINTF)|g' \ - -e 's|@''GNULIB_PRINTF_POSIX''@|$(GNULIB_PRINTF_POSIX)|g' \ - -e 's|@''GNULIB_SNPRINTF''@|$(GNULIB_SNPRINTF)|g' \ - -e 's|@''GNULIB_SPRINTF_POSIX''@|$(GNULIB_SPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_VFPRINTF''@|$(GNULIB_VFPRINTF)|g' \ - -e 's|@''GNULIB_VFPRINTF_POSIX''@|$(GNULIB_VFPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_VPRINTF''@|$(GNULIB_VPRINTF)|g' \ - -e 's|@''GNULIB_VPRINTF_POSIX''@|$(GNULIB_VPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_VSNPRINTF''@|$(GNULIB_VSNPRINTF)|g' \ - -e 's|@''GNULIB_VSPRINTF_POSIX''@|$(GNULIB_VSPRINTF_POSIX)|g' \ - -e 's|@''GNULIB_DPRINTF''@|$(GNULIB_DPRINTF)|g' \ - -e 's|@''GNULIB_VDPRINTF''@|$(GNULIB_VDPRINTF)|g' \ - -e 's|@''GNULIB_VASPRINTF''@|$(GNULIB_VASPRINTF)|g' \ - -e 's|@''GNULIB_OBSTACK_PRINTF''@|$(GNULIB_OBSTACK_PRINTF)|g' \ - -e 's|@''GNULIB_OBSTACK_PRINTF_POSIX''@|$(GNULIB_OBSTACK_PRINTF_POSIX)|g' \ - -e 's|@''GNULIB_FOPEN''@|$(GNULIB_FOPEN)|g' \ - -e 's|@''GNULIB_FREOPEN''@|$(GNULIB_FREOPEN)|g' \ - -e 's|@''GNULIB_FSEEK''@|$(GNULIB_FSEEK)|g' \ - -e 's|@''GNULIB_FSEEKO''@|$(GNULIB_FSEEKO)|g' \ - -e 's|@''GNULIB_FTELL''@|$(GNULIB_FTELL)|g' \ - -e 's|@''GNULIB_FTELLO''@|$(GNULIB_FTELLO)|g' \ - -e 's|@''GNULIB_FFLUSH''@|$(GNULIB_FFLUSH)|g' \ - -e 's|@''GNULIB_FCLOSE''@|$(GNULIB_FCLOSE)|g' \ - -e 's|@''GNULIB_FPUTC''@|$(GNULIB_FPUTC)|g' \ - -e 's|@''GNULIB_PUTC''@|$(GNULIB_PUTC)|g' \ - -e 's|@''GNULIB_PUTCHAR''@|$(GNULIB_PUTCHAR)|g' \ - -e 's|@''GNULIB_FPUTS''@|$(GNULIB_FPUTS)|g' \ - -e 's|@''GNULIB_PUTS''@|$(GNULIB_PUTS)|g' \ - -e 's|@''GNULIB_FWRITE''@|$(GNULIB_FWRITE)|g' \ - -e 's|@''GNULIB_GETDELIM''@|$(GNULIB_GETDELIM)|g' \ - -e 's|@''GNULIB_GETLINE''@|$(GNULIB_GETLINE)|g' \ - -e 's|@''GNULIB_PERROR''@|$(GNULIB_PERROR)|g' \ - -e 's|@''GNULIB_STDIO_H_SIGPIPE''@|$(GNULIB_STDIO_H_SIGPIPE)|g' \ - -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ - -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ - -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ - -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ - -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ - -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ - -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ - -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ - -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ - -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ - -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ - -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ - -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ - -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ - -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ - -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ - -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ - -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ - -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ - -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ - -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ - -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ - -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ - -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ - -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ - -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ - -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ - -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ - -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ - -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ - -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/stdio.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <stdlib.h> when the system -# doesn't have one that works with the given compiler. -stdlib.h: stdlib.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ - -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ - -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \ - -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \ - -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \ - -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \ - -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \ - -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \ - -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \ - -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \ - -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \ - -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \ - -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \ - -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \ - -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \ - -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \ - -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \ - -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \ - -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ - -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \ - -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ - -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \ - -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ - -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \ - -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ - -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ - -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \ - -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ - -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ - -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ - -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ - -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ - -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \ - -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ - -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ - -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ - -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ - -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/stdlib.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <string.h> when the system -# doesn't have one that works with the given compiler. -string.h: string.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ - -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \ - -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \ - -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \ - -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \ - -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \ - -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \ - -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \ - -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \ - -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \ - -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \ - -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \ - -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \ - -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \ - -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \ - -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \ - -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \ - -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \ - -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \ - -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \ - -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \ - -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \ - -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \ - -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \ - -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \ - -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \ - -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \ - -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \ - -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \ - -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \ - -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \ - -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \ - -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \ - -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ - -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ - -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ - -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ - -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ - -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ - -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ - -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ - -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \ - -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ - -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ - -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ - -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ - -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ - -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ - -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \ - -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ - -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ - -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ - -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ - -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ - -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ - -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ - -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/string.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <strings.h> when the system -# doesn't have one that works with the given compiler. -strings.h: strings.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \ - -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \ - -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/strings.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <sys/stat.h> when the system -# has one that is incomplete. -sys/stat.h: sys_stat.in.h - @MKDIR_P@ sys - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ - -e 's|@''GNULIB_LCHMOD''@|$(GNULIB_LCHMOD)|g' \ - -e 's|@''GNULIB_LSTAT''@|$(GNULIB_LSTAT)|g' \ - -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ - -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ - -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ - -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/sys_stat.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <sys/time.h> when the system -# doesn't have one that works with the given compiler. -sys/time.h: sys_time.in.h - @MKDIR_P@ sys - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ - -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ - -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ - < $(srcdir)/sys_time.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <sysexits.h> when the system -# doesn't have one that works with the given compiler. -sysexits.h: sysexits.in.h - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \ - < $(srcdir)/sysexits.in.h; \ - } > $@-t - mv -f $@-t $@ - -# We need the following in order to create <time.h> when the system -# doesn't have one that works with the given compiler. -time.h: time.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ - -e 's|@REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ - -e 's|@REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ - -e 's|@REPLACE_STRPTIME''@|$(REPLACE_STRPTIME)|g' \ - -e 's|@REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ - -e 's|@SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ - -e 's|@TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ - < $(srcdir)/time.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create an empty placeholder for -# <unistd.h> when the system doesn't have one. -unistd.h: unistd.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ - -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \ - -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \ - -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \ - -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \ - -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \ - -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \ - -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \ - -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \ - -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \ - -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \ - -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \ - -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \ - -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \ - -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \ - -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \ - -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \ - -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \ - -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \ - -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \ - -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ - -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \ - -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \ - -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ - -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ - -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ - -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ - -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \ - -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ - -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ - -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ - -e 's|@''HAVE_GETUSERSHELL''@|$(HAVE_GETUSERSHELL)|g' \ - -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ - -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ - -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ - -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ - -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ - -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ - -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ - -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ - -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ - -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \ - -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ - -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ - -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ - -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ - -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ - -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/unistd.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <wchar.h> when the system -# version does not work standalone. -wchar.h: wchar.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ - -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ - -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \ - -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \ - -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \ - -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \ - -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \ - -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \ - -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \ - -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \ - -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \ - -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \ - -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \ - -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ - -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ - -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ - -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ - -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ - -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ - -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ - -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ - -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ - -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ - -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ - -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ - -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ - -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ - -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ - -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ - -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ - -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ - -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ - -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ - -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ - -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ - -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ - -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \ - < $(srcdir)/wchar.in.h; \ - } > $@-t - mv $@-t $@ - -# We need the following in order to create <wctype.h> when the system -# doesn't have one that works with the given compiler. -wctype.h: wctype.in.h - rm -f $@-t $@ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \ - -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ - -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ - -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \ - -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \ - -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \ - -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \ - < $(srcdir)/wctype.in.h; \ - } > $@-t - mv $@-t $@ - -mostlyclean-local: mostlyclean-generic - @for dir in '' $(MOSTLYCLEANDIRS); do \ - if test -n "$$dir" && test -d $$dir; then \ - echo "rmdir $$dir"; rmdir $$dir; \ - fi; \ - done; \ - : +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am rmt-command.h : Makefile - rm -f $@-t $@ - echo "#ifndef DEFAULT_RMT_COMMAND" >> $@-t - echo "# define DEFAULT_RMT_COMMAND \"$(DEFAULT_RMT_DIR)/`echo rmt | sed '$(transform)'`$(EXEEXT)\"" >> $@-t - echo "#endif" >> $@-t - mv $@-t $@ + $(AM_V_GEN)rm -f $@-t $@ + $(AM_V_at)echo "#ifndef DEFAULT_RMT_COMMAND" >> $@-t + $(AM_V_at)echo "# define DEFAULT_RMT_COMMAND \"$(DEFAULT_RMT_DIR)/`echo rmt | sed '$(transform)'`$(EXEEXT)\"" >> $@-t + $(AM_V_at)echo "#endif" >> $@-t + $(AM_V_at)mv $@-t $@ + # 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. .NOEXPORT: diff --git a/lib/argp-fmtstream.c b/lib/argp-fmtstream.c deleted file mode 100644 index c89a99ca1cc383edf94b243a77b3ecdcbb0e488c..0000000000000000000000000000000000000000 --- a/lib/argp-fmtstream.c +++ /dev/null @@ -1,434 +0,0 @@ -/* Word-wrapping and line-truncating streams - Copyright (C) 1997-1999,2001,2002,2003,2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Miles Bader <miles@gnu.ai.mit.edu>. - - 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/>. */ - -/* This package emulates glibc `line_wrap_stream' semantics for systems that - don't have that. */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <stdarg.h> -#include <ctype.h> - -#include "argp-fmtstream.h" -#include "argp-namefrob.h" - -#ifndef ARGP_FMTSTREAM_USE_LINEWRAP - -#ifndef isblank -#define isblank(ch) ((ch)==' ' || (ch)=='\t') -#endif - -#if defined _LIBC && defined USE_IN_LIBIO -# include <wchar.h> -# include <libio/libioP.h> -# define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a) -#endif - -#define INIT_BUF_SIZE 200 -#define PRINTF_SIZE_GUESS 150 - -/* Return an argp_fmtstream that outputs to STREAM, and which prefixes lines - written on it with LMARGIN spaces and limits them to RMARGIN columns - total. If WMARGIN >= 0, words that extend past RMARGIN are wrapped by - replacing the whitespace before them with a newline and WMARGIN spaces. - Otherwise, chars beyond RMARGIN are simply dropped until a newline. - Returns NULL if there was an error. */ -argp_fmtstream_t -__argp_make_fmtstream (FILE *stream, - size_t lmargin, size_t rmargin, ssize_t wmargin) -{ - argp_fmtstream_t fs; - - fs = (struct argp_fmtstream *) malloc (sizeof (struct argp_fmtstream)); - if (fs != NULL) - { - fs->stream = stream; - - fs->lmargin = lmargin; - fs->rmargin = rmargin; - fs->wmargin = wmargin; - fs->point_col = 0; - fs->point_offs = 0; - - fs->buf = (char *) malloc (INIT_BUF_SIZE); - if (! fs->buf) - { - free (fs); - fs = 0; - } - else - { - fs->p = fs->buf; - fs->end = fs->buf + INIT_BUF_SIZE; - } - } - - return fs; -} -#if 0 -/* Not exported. */ -#ifdef weak_alias -weak_alias (__argp_make_fmtstream, argp_make_fmtstream) -#endif -#endif - -/* Flush FS to its stream, and free it (but don't close the stream). */ -void -__argp_fmtstream_free (argp_fmtstream_t fs) -{ - __argp_fmtstream_update (fs); - if (fs->p > fs->buf) - { -#ifdef USE_IN_LIBIO - __fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf); -#else - fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream); -#endif - } - free (fs->buf); - free (fs); -} -#if 0 -/* Not exported. */ -#ifdef weak_alias -weak_alias (__argp_fmtstream_free, argp_fmtstream_free) -#endif -#endif - -/* Process FS's buffer so that line wrapping is done from POINT_OFFS to the - end of its buffer. This code is mostly from glibc stdio/linewrap.c. */ -void -__argp_fmtstream_update (argp_fmtstream_t fs) -{ - char *buf, *nl; - size_t len; - - /* Scan the buffer for newlines. */ - buf = fs->buf + fs->point_offs; - while (buf < fs->p) - { - size_t r; - - if (fs->point_col == 0 && fs->lmargin != 0) - { - /* We are starting a new line. Print spaces to the left margin. */ - const size_t pad = fs->lmargin; - if (fs->p + pad < fs->end) - { - /* We can fit in them in the buffer by moving the - buffer text up and filling in the beginning. */ - memmove (buf + pad, buf, fs->p - buf); - fs->p += pad; /* Compensate for bigger buffer. */ - memset (buf, ' ', pad); /* Fill in the spaces. */ - buf += pad; /* Don't bother searching them. */ - } - else - { - /* No buffer space for spaces. Must flush. */ - size_t i; - for (i = 0; i < pad; i++) - { -#ifdef USE_IN_LIBIO - if (_IO_fwide (fs->stream, 0) > 0) - putwc_unlocked (L' ', fs->stream); - else -#endif - putc_unlocked (' ', fs->stream); - } - } - fs->point_col = pad; - } - - len = fs->p - buf; - nl = memchr (buf, '\n', len); - - if (fs->point_col < 0) - fs->point_col = 0; - - if (!nl) - { - /* The buffer ends in a partial line. */ - - if (fs->point_col + len < fs->rmargin) - { - /* The remaining buffer text is a partial line and fits - within the maximum line width. Advance point for the - characters to be written and stop scanning. */ - fs->point_col += len; - break; - } - else - /* Set the end-of-line pointer for the code below to - the end of the buffer. */ - nl = fs->p; - } - else if (fs->point_col + (nl - buf) < (ssize_t) fs->rmargin) - { - /* The buffer contains a full line that fits within the maximum - line width. Reset point and scan the next line. */ - fs->point_col = 0; - buf = nl + 1; - continue; - } - - /* This line is too long. */ - r = fs->rmargin - 1; - - if (fs->wmargin < 0) - { - /* Truncate the line by overwriting the excess with the - newline and anything after it in the buffer. */ - if (nl < fs->p) - { - memmove (buf + (r - fs->point_col), nl, fs->p - nl); - fs->p -= buf + (r - fs->point_col) - nl; - /* Reset point for the next line and start scanning it. */ - fs->point_col = 0; - buf += r + 1; /* Skip full line plus \n. */ - } - else - { - /* The buffer ends with a partial line that is beyond the - maximum line width. Advance point for the characters - written, and discard those past the max from the buffer. */ - fs->point_col += len; - fs->p -= fs->point_col - r; - break; - } - } - else - { - /* Do word wrap. Go to the column just past the maximum line - width and scan back for the beginning of the word there. - Then insert a line break. */ - - char *p, *nextline; - int i; - - p = buf + (r + 1 - fs->point_col); - while (p >= buf && !isblank (*p)) - --p; - nextline = p + 1; /* This will begin the next line. */ - - if (nextline > buf) - { - /* Swallow separating blanks. */ - if (p >= buf) - do - --p; - while (p >= buf && isblank (*p)); - nl = p + 1; /* The newline will replace the first blank. */ - } - else - { - /* A single word that is greater than the maximum line width. - Oh well. Put it on an overlong line by itself. */ - p = buf + (r + 1 - fs->point_col); - /* Find the end of the long word. */ - if (p < nl) - do - ++p; - while (p < nl && !isblank (*p)); - if (p == nl) - { - /* It already ends a line. No fussing required. */ - fs->point_col = 0; - buf = nl + 1; - continue; - } - /* We will move the newline to replace the first blank. */ - nl = p; - /* Swallow separating blanks. */ - do - ++p; - while (isblank (*p)); - /* The next line will start here. */ - nextline = p; - } - - /* Note: There are a bunch of tests below for - NEXTLINE == BUF + LEN + 1; this case is where NL happens to fall - at the end of the buffer, and NEXTLINE is in fact empty (and so - we need not be careful to maintain its contents). */ - - if ((nextline == buf + len + 1 - ? fs->end - nl < fs->wmargin + 1 - : nextline - (nl + 1) < fs->wmargin) - && fs->p > nextline) - { - /* The margin needs more blanks than we removed. */ - if (fs->end - fs->p > fs->wmargin + 1) - /* Make some space for them. */ - { - size_t mv = fs->p - nextline; - memmove (nl + 1 + fs->wmargin, nextline, mv); - nextline = nl + 1 + fs->wmargin; - len = nextline + mv - buf; - *nl++ = '\n'; - } - else - /* Output the first line so we can use the space. */ - { -#ifdef _LIBC - __fxprintf (fs->stream, "%.*s\n", - (int) (nl - fs->buf), fs->buf); -#else - if (nl > fs->buf) - fwrite_unlocked (fs->buf, 1, nl - fs->buf, fs->stream); - putc_unlocked ('\n', fs->stream); -#endif - - len += buf - fs->buf; - nl = buf = fs->buf; - } - } - else - /* We can fit the newline and blanks in before - the next word. */ - *nl++ = '\n'; - - if (nextline - nl >= fs->wmargin - || (nextline == buf + len + 1 && fs->end - nextline >= fs->wmargin)) - /* Add blanks up to the wrap margin column. */ - for (i = 0; i < fs->wmargin; ++i) - *nl++ = ' '; - else - for (i = 0; i < fs->wmargin; ++i) -#ifdef USE_IN_LIBIO - if (_IO_fwide (fs->stream, 0) > 0) - putwc_unlocked (L' ', fs->stream); - else -#endif - putc_unlocked (' ', fs->stream); - - /* Copy the tail of the original buffer into the current buffer - position. */ - if (nl < nextline) - memmove (nl, nextline, buf + len - nextline); - len -= nextline - buf; - - /* Continue the scan on the remaining lines in the buffer. */ - buf = nl; - - /* Restore bufp to include all the remaining text. */ - fs->p = nl + len; - - /* Reset the counter of what has been output this line. If wmargin - is 0, we want to avoid the lmargin getting added, so we set - point_col to a magic value of -1 in that case. */ - fs->point_col = fs->wmargin ? fs->wmargin : -1; - } - } - - /* Remember that we've scanned as far as the end of the buffer. */ - fs->point_offs = fs->p - fs->buf; -} - -/* Ensure that FS has space for AMOUNT more bytes in its buffer, either by - growing the buffer, or by flushing it. True is returned iff we succeed. */ -int -__argp_fmtstream_ensure (struct argp_fmtstream *fs, size_t amount) -{ - if ((size_t) (fs->end - fs->p) < amount) - { - ssize_t wrote; - - /* Flush FS's buffer. */ - __argp_fmtstream_update (fs); - -#ifdef _LIBC - __fxprintf (fs->stream, "%.*s", (int) (fs->p - fs->buf), fs->buf); - wrote = fs->p - fs->buf; -#else - wrote = fwrite_unlocked (fs->buf, 1, fs->p - fs->buf, fs->stream); -#endif - if (wrote == fs->p - fs->buf) - { - fs->p = fs->buf; - fs->point_offs = 0; - } - else - { - fs->p -= wrote; - fs->point_offs -= wrote; - memmove (fs->buf, fs->buf + wrote, fs->p - fs->buf); - return 0; - } - - if ((size_t) (fs->end - fs->buf) < amount) - /* Gotta grow the buffer. */ - { - size_t old_size = fs->end - fs->buf; - size_t new_size = old_size + amount; - char *new_buf; - - if (new_size < old_size || ! (new_buf = realloc (fs->buf, new_size))) - { - __set_errno (ENOMEM); - return 0; - } - - fs->buf = new_buf; - fs->end = new_buf + new_size; - fs->p = fs->buf; - } - } - - return 1; -} - -ssize_t -__argp_fmtstream_printf (struct argp_fmtstream *fs, const char *fmt, ...) -{ - int out; - size_t avail; - size_t size_guess = PRINTF_SIZE_GUESS; /* How much space to reserve. */ - - do - { - va_list args; - - if (! __argp_fmtstream_ensure (fs, size_guess)) - return -1; - - va_start (args, fmt); - avail = fs->end - fs->p; - out = __vsnprintf (fs->p, avail, fmt, args); - va_end (args); - if ((size_t) out >= avail) - size_guess = out + 1; - } - while ((size_t) out >= avail); - - fs->p += out; - - return out; -} -#if 0 -/* Not exported. */ -#ifdef weak_alias -weak_alias (__argp_fmtstream_printf, argp_fmtstream_printf) -#endif -#endif - -#endif /* !ARGP_FMTSTREAM_USE_LINEWRAP */ diff --git a/lib/at-func.c b/lib/at-func.c deleted file mode 100644 index c7963fe3d24b67539068947676ec6d3ebbc8fd0b..0000000000000000000000000000000000000000 --- a/lib/at-func.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Define an at-style functions like fstatat, unlinkat, fchownat, etc. - Copyright (C) 2006 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 Jim Meyering */ - -#define CALL_FUNC(F) \ - (AT_FUNC_USE_F1_COND \ - ? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS) \ - : AT_FUNC_F2 (F AT_FUNC_POST_FILE_ARGS)) - -/* Call AT_FUNC_F1 or AT_FUNC_F2 (testing AT_FUNC_USE_F1_COND to - determine which) to operate on FILE, which is in the directory - open on descriptor FD. If possible, do it without changing the - working directory. Otherwise, resort to using save_cwd/fchdir, - then AT_FUNC_F?/restore_cwd. If either the save_cwd or the restore_cwd - fails, then give a diagnostic and exit nonzero. */ -int -AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS) -{ - struct saved_cwd saved_cwd; - int saved_errno; - int err; - - if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) - return CALL_FUNC (file); - - { - char buf[OPENAT_BUFFER_SIZE]; - char *proc_file = openat_proc_name (buf, fd, file); - if (proc_file) - { - int proc_result = CALL_FUNC (proc_file); - int proc_errno = errno; - if (proc_file != buf) - free (proc_file); - /* If the syscall succeeds, or if it fails with an unexpected - errno value, then return right away. Otherwise, fall through - and resort to using save_cwd/restore_cwd. */ - if (0 <= proc_result) - return proc_result; - if (! EXPECTED_ERRNO (proc_errno)) - { - errno = proc_errno; - return proc_result; - } - } - } - - if (save_cwd (&saved_cwd) != 0) - openat_save_fail (errno); - - if (fchdir (fd) != 0) - { - saved_errno = errno; - free_cwd (&saved_cwd); - errno = saved_errno; - return -1; - } - - err = CALL_FUNC (file); - saved_errno = (err < 0 ? errno : 0); - - if (restore_cwd (&saved_cwd) != 0) - openat_restore_fail (errno); - - free_cwd (&saved_cwd); - - if (saved_errno) - errno = saved_errno; - return err; -} -#undef CALL_FUNC diff --git a/lib/basename.c b/lib/basename.c deleted file mode 100644 index 426ed40f1a9e19f37abb6be20f72d587a2fc9b8a..0000000000000000000000000000000000000000 --- a/lib/basename.c +++ /dev/null @@ -1,128 +0,0 @@ -/* basename.c -- return the last element in a file name - - Copyright (C) 1990, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 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/>. */ - -#include <config.h> - -#include "dirname.h" - -#include <string.h> -#include "xalloc.h" -#include "xstrndup.h" - -/* Return the address of the last file name component of NAME. If - NAME has no relative file name components because it is a file - system root, return the empty string. */ - -char * -last_component (char const *name) -{ - char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); - char const *p; - bool saw_slash = false; - - while (ISSLASH (*base)) - base++; - - for (p = base; *p; p++) - { - if (ISSLASH (*p)) - saw_slash = true; - else if (saw_slash) - { - base = p; - saw_slash = false; - } - } - - return (char *) base; -} - - -/* In general, we can't use the builtin `basename' function if available, - since it has different meanings in different environments. - In some environments the builtin `basename' modifies its argument. - - Return the last file name component of NAME, allocated with - xmalloc. On systems with drive letters, a leading "./" - distinguishes relative names that would otherwise look like a drive - letter. Unlike POSIX basename(), NAME cannot be NULL, - base_name("") returns "", and the first trailing slash is not - stripped. - - If lstat (NAME) would succeed, then { chdir (dir_name (NAME)); - lstat (base_name (NAME)); } will access the same file. Likewise, - if the sequence { chdir (dir_name (NAME)); - rename (base_name (NAME), "foo"); } succeeds, you have renamed NAME - to "foo" in the same directory NAME was in. */ - -char * -base_name (char const *name) -{ - char const *base = last_component (name); - size_t length; - - /* If there is no last component, then name is a file system root or the - empty string. */ - if (! *base) - return xstrndup (name, base_len (name)); - - /* Collapse a sequence of trailing slashes into one. */ - length = base_len (base); - if (ISSLASH (base[length])) - length++; - - /* On systems with drive letters, `a/b:c' must return `./b:c' rather - than `b:c' to avoid confusion with a drive letter. On systems - with pure POSIX semantics, this is not an issue. */ - if (FILE_SYSTEM_PREFIX_LEN (base)) - { - char *p = xmalloc (length + 3); - p[0] = '.'; - p[1] = '/'; - memcpy (p + 2, base, length); - p[length + 2] = '\0'; - return p; - } - - /* Finally, copy the basename. */ - return xstrndup (base, length); -} - -/* Return the length of the basename NAME. Typically NAME is the - value returned by base_name or last_component. Act like strlen - (NAME), except omit all trailing slashes. */ - -size_t -base_len (char const *name) -{ - size_t len; - size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); - - for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) - continue; - - if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1 - && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2]) - return 2; - - if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len - && len == prefix_len && ISSLASH (name[prefix_len])) - return prefix_len + 1; - - return len; -} diff --git a/lib/canonicalize-lgpl.c b/lib/canonicalize-lgpl.c deleted file mode 100644 index 3aaa310ecd2d0883e6b8e5121e214859d28d1786..0000000000000000000000000000000000000000 --- a/lib/canonicalize-lgpl.c +++ /dev/null @@ -1,362 +0,0 @@ -/* Return the canonical absolute name of a given file. - Copyright (C) 1996-2003, 2005-2008 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - 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/>. */ - -#include <config.h> - -/* Avoid a clash of our rpl_realpath() function with the prototype in - <stdlib.h> on Solaris 2.5.1. */ -#undef realpath - -#if !HAVE_CANONICALIZE_FILE_NAME || defined _LIBC - -#include <alloca.h> - -/* Specification. */ -#include "canonicalize.h" - -#include <stddef.h> -#include <stdlib.h> -#include <string.h> - -#if HAVE_UNISTD_H || defined _LIBC -# include <unistd.h> -#endif - -#include <limits.h> - -#if HAVE_SYS_PARAM_H || defined _LIBC -# include <sys/param.h> -#endif -#ifndef MAXSYMLINKS -# define MAXSYMLINKS 20 -#endif - -#include <sys/stat.h> - -#include <errno.h> -#ifndef _LIBC -# define __set_errno(e) errno = (e) -# ifndef ENAMETOOLONG -# define ENAMETOOLONG EINVAL -# endif -#endif - -#ifdef _LIBC -# include <shlib-compat.h> -#else -# define SHLIB_COMPAT(lib, introduced, obsoleted) 0 -# define versioned_symbol(lib, local, symbol, version) -# define compat_symbol(lib, local, symbol, version) -# define weak_alias(local, symbol) -# define __canonicalize_file_name canonicalize_file_name -# define __realpath rpl_realpath -# include "pathmax.h" -# include "malloca.h" -# if HAVE_GETCWD -# ifdef VMS - /* We want the directory in Unix syntax, not in VMS syntax. */ -# define __getcwd(buf, max) getcwd (buf, max, 0) -# else -# define __getcwd getcwd -# endif -# else -# define __getcwd(buf, max) getwd (buf) -# endif -# define __readlink readlink - /* On systems without symbolic links, call stat() instead of lstat(). */ -# if !defined S_ISLNK && !HAVE_READLINK -# define lstat stat -# endif -#endif - -/* Return the canonical absolute name of file NAME. A canonical name - does not contain any `.', `..' components nor any repeated path - separators ('/') or symlinks. All path components must exist. If - RESOLVED is null, the result is malloc'd; otherwise, if the - canonical name is PATH_MAX chars or more, returns null with `errno' - set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, - returns the name in RESOLVED. If the name cannot be resolved and - RESOLVED is non-NULL, it contains the path of the first component - that cannot be resolved. If the path can be resolved, RESOLVED - holds the same value as the value returned. */ - -char * -__realpath (const char *name, char *resolved) -{ - char *rpath, *dest, *extra_buf = NULL; - const char *start, *end, *rpath_limit; - long int path_max; -#if HAVE_READLINK - int num_links = 0; -#endif - - if (name == NULL) - { - /* As per Single Unix Specification V2 we must return an error if - either parameter is a null pointer. We extend this to allow - the RESOLVED parameter to be NULL in case the we are expected to - allocate the room for the return value. */ - __set_errno (EINVAL); - return NULL; - } - - if (name[0] == '\0') - { - /* As per Single Unix Specification V2 we must return an error if - the name argument points to an empty string. */ - __set_errno (ENOENT); - return NULL; - } - -#ifdef PATH_MAX - path_max = PATH_MAX; -#else - path_max = pathconf (name, _PC_PATH_MAX); - if (path_max <= 0) - path_max = 1024; -#endif - - if (resolved == NULL) - { - rpath = malloc (path_max); - if (rpath == NULL) - { - /* It's easier to set errno to ENOMEM than to rely on the - 'malloc-posix' gnulib module. */ - errno = ENOMEM; - return NULL; - } - } - else - rpath = resolved; - rpath_limit = rpath + path_max; - - if (name[0] != '/') - { - if (!__getcwd (rpath, path_max)) - { - rpath[0] = '\0'; - goto error; - } - dest = strchr (rpath, '\0'); - } - else - { - rpath[0] = '/'; - dest = rpath + 1; - } - - for (start = end = name; *start; start = end) - { -#ifdef _LIBC - struct stat64 st; -#else - struct stat st; -#endif - - /* Skip sequence of multiple path-separators. */ - while (*start == '/') - ++start; - - /* Find end of path component. */ - for (end = start; *end && *end != '/'; ++end) - /* Nothing. */; - - if (end - start == 0) - break; - else if (end - start == 1 && start[0] == '.') - /* nothing */; - else if (end - start == 2 && start[0] == '.' && start[1] == '.') - { - /* Back up to previous component, ignore if at root already. */ - if (dest > rpath + 1) - while ((--dest)[-1] != '/'); - } - else - { - size_t new_size; - - if (dest[-1] != '/') - *dest++ = '/'; - - if (dest + (end - start) >= rpath_limit) - { - ptrdiff_t dest_offset = dest - rpath; - char *new_rpath; - - if (resolved) - { - __set_errno (ENAMETOOLONG); - if (dest > rpath + 1) - dest--; - *dest = '\0'; - goto error; - } - new_size = rpath_limit - rpath; - if (end - start + 1 > path_max) - new_size += end - start + 1; - else - new_size += path_max; - new_rpath = (char *) realloc (rpath, new_size); - if (new_rpath == NULL) - { - /* It's easier to set errno to ENOMEM than to rely on the - 'realloc-posix' gnulib module. */ - errno = ENOMEM; - goto error; - } - rpath = new_rpath; - rpath_limit = rpath + new_size; - - dest = rpath + dest_offset; - } - -#ifdef _LIBC - dest = __mempcpy (dest, start, end - start); -#else - memcpy (dest, start, end - start); - dest += end - start; -#endif - *dest = '\0'; - -#ifdef _LIBC - if (__lxstat64 (_STAT_VER, rpath, &st) < 0) -#else - if (lstat (rpath, &st) < 0) -#endif - goto error; - -#if HAVE_READLINK - if (S_ISLNK (st.st_mode)) - { - char *buf; - size_t len; - int n; - - if (++num_links > MAXSYMLINKS) - { - __set_errno (ELOOP); - goto error; - } - - buf = malloca (path_max); - if (!buf) - { - errno = ENOMEM; - goto error; - } - - n = __readlink (rpath, buf, path_max - 1); - if (n < 0) - { - int saved_errno = errno; - freea (buf); - errno = saved_errno; - goto error; - } - buf[n] = '\0'; - - if (!extra_buf) - { - extra_buf = malloca (path_max); - if (!extra_buf) - { - freea (buf); - errno = ENOMEM; - goto error; - } - } - - len = strlen (end); - if ((long int) (n + len) >= path_max) - { - freea (buf); - __set_errno (ENAMETOOLONG); - goto error; - } - - /* Careful here, end may be a pointer into extra_buf... */ - memmove (&extra_buf[n], end, len + 1); - name = end = memcpy (extra_buf, buf, n); - - if (buf[0] == '/') - dest = rpath + 1; /* It's an absolute symlink */ - else - /* Back up to previous component, ignore if at root already: */ - if (dest > rpath + 1) - while ((--dest)[-1] != '/'); - } -#endif - } - } - if (dest > rpath + 1 && dest[-1] == '/') - --dest; - *dest = '\0'; - - if (extra_buf) - freea (extra_buf); - - return resolved ? memcpy (resolved, rpath, dest - rpath + 1) : rpath; - -error: - { - int saved_errno = errno; - if (extra_buf) - freea (extra_buf); - if (resolved) - strcpy (resolved, rpath); - else - free (rpath); - errno = saved_errno; - } - return NULL; -} -#ifdef _LIBC -versioned_symbol (libc, __realpath, realpath, GLIBC_2_3); -#endif - - -#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3) -char * -__old_realpath (const char *name, char *resolved) -{ - if (resolved == NULL) - { - __set_errno (EINVAL); - return NULL; - } - - return __realpath (name, resolved); -} -compat_symbol (libc, __old_realpath, realpath, GLIBC_2_0); -#endif - - -char * -__canonicalize_file_name (const char *name) -{ - return __realpath (name, NULL); -} -weak_alias (__canonicalize_file_name, canonicalize_file_name) - -#else - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#endif diff --git a/lib/chown.c b/lib/chown.c deleted file mode 100644 index 3582b04d67d720930cebb3cc35d598e94bdbc2d0..0000000000000000000000000000000000000000 --- a/lib/chown.c +++ /dev/null @@ -1,103 +0,0 @@ -/* 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, 2005, 2006, 2007 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 Jim Meyering */ - -#include <config.h> - -/* Specification. */ -#include <unistd.h> - -#include <stdbool.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <errno.h> - -/* Below we refer to the system's chown(). */ -#undef chown - -/* The results of open() in this file are not used with fchdir, - therefore save some unnecessary work in fchdir.c. */ -#undef open -#undef close - -/* 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) -{ -#if CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE - if (gid == (gid_t) -1 || uid == (uid_t) -1) - { - struct stat file_stats; - - /* Stat file to get id(s) that should remain unchanged. */ - if (stat (file, &file_stats)) - return -1; - - if (gid == (gid_t) -1) - gid = file_stats.st_gid; - - if (uid == (uid_t) -1) - uid = file_stats.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 result = fchown (fd, uid, gid); - int saved_errno = errno; - - /* POSIX says fchown can fail with errno == EINVAL on sockets, - so fall back on chown in that case. */ - struct stat sb; - bool fchown_socket_failure = - (result != 0 && saved_errno == EINVAL - && fstat (fd, &sb) == 0 && S_ISFIFO (sb.st_mode)); - - close (fd); - - if (! fchown_socket_failure) - { - errno = saved_errno; - return result; - } - } - else if (errno != EACCES) - return -1; - } -#endif - - return chown (file, uid, gid); -} diff --git a/lib/close-stream.h b/lib/close-stream.h deleted file mode 100644 index be3d4196b0676eb1a7afdd91d3ed87203e5e1f9d..0000000000000000000000000000000000000000 --- a/lib/close-stream.h +++ /dev/null @@ -1,2 +0,0 @@ -#include <stdio.h> -int close_stream (FILE *stream); diff --git a/lib/close.c b/lib/close.c deleted file mode 100644 index 74a7adfbbc0ebf370976baa0e12f384508bb9925..0000000000000000000000000000000000000000 --- a/lib/close.c +++ /dev/null @@ -1,82 +0,0 @@ -/* close replacement. - Copyright (C) 2008 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/>. */ - -#include <config.h> - -/* Specification. */ -#include <unistd.h> - -#if GNULIB_SYS_SOCKET -# define WIN32_LEAN_AND_MEAN -# include <sys/socket.h> -#endif - -#if HAVE__GL_CLOSE_FD_MAYBE_SOCKET - -/* Get set_winsock_errno, FD_TO_SOCKET etc. */ -#include "w32sock.h" - -static int -_gl_close_fd_maybe_socket (int fd) -{ - SOCKET sock = FD_TO_SOCKET (fd); - WSANETWORKEVENTS ev; - - ev.lNetworkEvents = 0xDEADBEEF; - WSAEnumNetworkEvents (sock, NULL, &ev); - if (ev.lNetworkEvents != 0xDEADBEEF) - { - /* FIXME: other applications, like squid, use an undocumented - _free_osfhnd free function. But this is not enough: The 'osfile' - flags for fd also needs to be cleared, but it is hard to access it. - Instead, here we just close twice the file descriptor. */ - if (closesocket (sock)) - { - set_winsock_errno (); - return -1; - } - else - { - /* This call frees the file descriptor and does a - CloseHandle ((HANDLE) _get_osfhandle (fd)), which fails. */ - _close (fd); - return 0; - } - } - else - return _close (fd); -} -#endif - -/* Override close() to call into other gnulib modules. */ - -int -rpl_close (int fd) -#undef close -{ -#if HAVE__GL_CLOSE_FD_MAYBE_SOCKET - int retval = _gl_close_fd_maybe_socket (fd); -#else - int retval = close (fd); -#endif - -#ifdef FCHDIR_REPLACEMENT - if (retval >= 0) - _gl_unregister_fd (fd); -#endif - - return retval; -} diff --git a/lib/config.charset b/lib/config.charset deleted file mode 100755 index 7f912120326c2464e5a7d97ce17efa4eba7f9501..0000000000000000000000000000000000000000 --- a/lib/config.charset +++ /dev/null @@ -1,683 +0,0 @@ -#! /bin/sh -# Output a system dependent table of character encoding aliases. -# -# Copyright (C) 2000-2004, 2006-2009 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, 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, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# The table consists of lines of the form -# ALIAS CANONICAL -# -# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". -# ALIAS is compared in a case sensitive way. -# -# CANONICAL is the GNU canonical name for this character encoding. -# It must be an encoding supported by libiconv. Support by GNU libc is -# also desirable. CANONICAL is case insensitive. Usually an upper case -# MIME charset name is preferred. -# The current list of GNU canonical charset names is as follows. -# -# name MIME? used by which systems -# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin -# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin -# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin -# ISO-8859-3 Y glibc solaris -# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin -# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin -# ISO-8859-6 Y glibc aix hpux solaris -# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin -# ISO-8859-8 Y glibc aix hpux osf solaris -# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin -# ISO-8859-13 glibc netbsd openbsd darwin -# ISO-8859-14 glibc -# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin -# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin -# KOI8-U Y glibc freebsd netbsd openbsd darwin -# KOI8-T glibc -# CP437 dos -# CP775 dos -# CP850 aix osf dos -# CP852 dos -# CP855 dos -# CP856 aix -# CP857 dos -# CP861 dos -# CP862 dos -# CP864 dos -# CP865 dos -# CP866 freebsd netbsd openbsd darwin dos -# CP869 dos -# CP874 woe32 dos -# CP922 aix -# CP932 aix woe32 dos -# CP943 aix -# CP949 osf darwin woe32 dos -# CP950 woe32 dos -# CP1046 aix -# CP1124 aix -# CP1125 dos -# CP1129 aix -# CP1131 darwin -# CP1250 woe32 -# CP1251 glibc solaris netbsd openbsd darwin woe32 -# CP1252 aix woe32 -# CP1253 woe32 -# CP1254 woe32 -# CP1255 glibc woe32 -# CP1256 woe32 -# CP1257 woe32 -# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin -# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# EUC-TW glibc aix hpux irix osf solaris netbsd -# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin -# BIG5-HKSCS glibc solaris darwin -# GBK glibc aix osf solaris darwin woe32 dos -# GB18030 glibc solaris netbsd darwin -# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin -# JOHAB glibc solaris woe32 -# TIS-620 glibc aix hpux osf solaris -# VISCII Y glibc -# TCVN5712-1 glibc -# ARMSCII-8 glibc darwin -# GEORGIAN-PS glibc -# PT154 glibc -# HP-ROMAN8 hpux -# HP-ARABIC8 hpux -# HP-GREEK8 hpux -# HP-HEBREW8 hpux -# HP-TURKISH8 hpux -# HP-KANA8 hpux -# DEC-KANJI osf -# DEC-HANYU osf -# UTF-8 Y glibc aix hpux osf solaris netbsd darwin -# -# Note: Names which are not marked as being a MIME name should not be used in -# Internet protocols for information interchange (mail, news, etc.). -# -# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications -# must understand both names and treat them as equivalent. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM - -host="$1" -os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` -echo "# This file contains a table of character encoding aliases," -echo "# suitable for operating system '${os}'." -echo "# It was automatically generated from config.charset." -# List of references, updated during installation: -echo "# Packages using this file: " -case "$os" in - linux-gnulibc1*) - # Linux libc5 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - echo "POSIX ASCII" - for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ - en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ - en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ - es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ - et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ - fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ - it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ - sv_FI sv_SE; do - echo "$l ISO-8859-1" - echo "$l.iso-8859-1 ISO-8859-1" - echo "$l.iso-8859-15 ISO-8859-15" - echo "$l.iso-8859-15@euro ISO-8859-15" - echo "$l@euro ISO-8859-15" - echo "$l.cp-437 CP437" - echo "$l.cp-850 CP850" - echo "$l.cp-1252 CP1252" - echo "$l.cp-1252@euro CP1252" - #echo "$l.atari-st ATARI-ST" # not a commonly used encoding - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ - sl_SI sr sr_CS sr_YU; do - echo "$l ISO-8859-2" - echo "$l.iso-8859-2 ISO-8859-2" - echo "$l.cp-852 CP852" - echo "$l.cp-1250 CP1250" - echo "$l.utf-8 UTF-8" - done - for l in mk mk_MK ru ru_RU; do - echo "$l ISO-8859-5" - echo "$l.iso-8859-5 ISO-8859-5" - echo "$l.koi8-r KOI8-R" - echo "$l.cp-866 CP866" - echo "$l.cp-1251 CP1251" - echo "$l.utf-8 UTF-8" - done - for l in ar ar_SA; do - echo "$l ISO-8859-6" - echo "$l.iso-8859-6 ISO-8859-6" - echo "$l.cp-864 CP864" - #echo "$l.cp-868 CP868" # not a commonly used encoding - echo "$l.cp-1256 CP1256" - echo "$l.utf-8 UTF-8" - done - for l in el el_GR gr gr_GR; do - echo "$l ISO-8859-7" - echo "$l.iso-8859-7 ISO-8859-7" - echo "$l.cp-869 CP869" - echo "$l.cp-1253 CP1253" - echo "$l.cp-1253@euro CP1253" - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in he he_IL iw iw_IL; do - echo "$l ISO-8859-8" - echo "$l.iso-8859-8 ISO-8859-8" - echo "$l.cp-862 CP862" - echo "$l.cp-1255 CP1255" - echo "$l.utf-8 UTF-8" - done - for l in tr tr_TR; do - echo "$l ISO-8859-9" - echo "$l.iso-8859-9 ISO-8859-9" - echo "$l.cp-857 CP857" - echo "$l.cp-1254 CP1254" - echo "$l.utf-8 UTF-8" - done - for l in lt lt_LT lv lv_LV; do - #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name - echo "$l ISO-8859-13" - done - for l in ru_UA uk uk_UA; do - echo "$l KOI8-U" - done - for l in zh zh_CN; do - #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name - echo "$l GB2312" - done - for l in ja ja_JP ja_JP.EUC; do - echo "$l EUC-JP" - done - for l in ko ko_KR; do - echo "$l EUC-KR" - done - for l in th th_TH; do - echo "$l TIS-620" - done - for l in fa fa_IR; do - #echo "$l ISIRI-3342" # a broken encoding - echo "$l.utf-8 UTF-8" - done - ;; - linux* | *-gnu*) - # With glibc-2.1 or newer, we don't need any canonicalization, - # because glibc has iconv and both glibc and libiconv support all - # GNU canonical names directly. Therefore, the Makefile does not - # need to install the alias file at all. - # The following applies only to glibc-2.0.x and older libcs. - echo "ISO_646.IRV:1983 ASCII" - ;; - aix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "IBM-850 CP850" - echo "IBM-856 CP856" - echo "IBM-921 ISO-8859-13" - echo "IBM-922 CP922" - echo "IBM-932 CP932" - echo "IBM-943 CP943" - echo "IBM-1046 CP1046" - echo "IBM-1124 CP1124" - echo "IBM-1129 CP1129" - echo "IBM-1252 CP1252" - echo "IBM-eucCN GB2312" - echo "IBM-eucJP EUC-JP" - echo "IBM-eucKR EUC-KR" - echo "IBM-eucTW EUC-TW" - echo "big5 BIG5" - echo "GBK GBK" - echo "TIS-620 TIS-620" - echo "UTF-8 UTF-8" - ;; - hpux*) - echo "iso88591 ISO-8859-1" - echo "iso88592 ISO-8859-2" - echo "iso88595 ISO-8859-5" - echo "iso88596 ISO-8859-6" - echo "iso88597 ISO-8859-7" - echo "iso88598 ISO-8859-8" - echo "iso88599 ISO-8859-9" - echo "iso885915 ISO-8859-15" - echo "roman8 HP-ROMAN8" - echo "arabic8 HP-ARABIC8" - echo "greek8 HP-GREEK8" - echo "hebrew8 HP-HEBREW8" - echo "turkish8 HP-TURKISH8" - echo "kana8 HP-KANA8" - echo "tis620 TIS-620" - echo "big5 BIG5" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "hp15CN GB2312" - #echo "ccdc ?" # what is this? - echo "SJIS SHIFT_JIS" - echo "utf8 UTF-8" - ;; - irix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-9 ISO-8859-9" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - ;; - osf*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "cp850 CP850" - echo "big5 BIG5" - echo "dechanyu DEC-HANYU" - echo "dechanzi GB2312" - echo "deckanji DEC-KANJI" - echo "deckorean EUC-KR" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "GBK GBK" - echo "KSC5601 CP949" - echo "sdeckanji EUC-JP" - echo "SJIS SHIFT_JIS" - echo "TACTIS TIS-620" - echo "UTF-8 UTF-8" - ;; - solaris*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-3 ISO-8859-3" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "koi8-r KOI8-R" - echo "ansi-1251 CP1251" - echo "BIG5 BIG5" - echo "Big5-HKSCS BIG5-HKSCS" - echo "gb2312 GB2312" - echo "GBK GBK" - echo "GB18030 GB18030" - echo "cns11643 EUC-TW" - echo "5601 EUC-KR" - echo "ko_KR.johap92 JOHAB" - echo "eucJP EUC-JP" - echo "PCK SHIFT_JIS" - echo "TIS620.2533 TIS-620" - #echo "sun_eu_greek ?" # what is this? - echo "UTF-8 UTF-8" - ;; - freebsd* | os2*) - # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just - # reuse FreeBSD's locale data for OS/2. - echo "C ASCII" - echo "US-ASCII ASCII" - for l in la_LN lt_LN; do - echo "$l.ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ - lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do - echo "$l.ISO_8859-1 ISO-8859-1" - echo "$l.DIS_8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do - echo "$l.ISO_8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO_8859-4 ISO-8859-4" - done - for l in ru_RU ru_SU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO_8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ja_JP.Shift_JIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - netbsd*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "BIG5 BIG5" - echo "SJIS SHIFT_JIS" - ;; - openbsd*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - ;; - darwin[56]*) - # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - for l in en_AU en_CA en_GB en_US la_LN; do - echo "$l.US-ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ - nl_NL no_NO pt_PT sv_SE; do - echo "$l ISO-8859-1" - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in la_LN; do - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do - echo "$l.ISO8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO8859-4 ISO-8859-4" - done - for l in ru_RU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - for l in bg_BG; do - echo "$l.CP1251 CP1251" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - darwin*) - # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is - # useless: - # - It returns the empty string when LANG is set to a locale of the - # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 - # LC_CTYPE file. - # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by - # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. - # - The documentation says: - # "... all code that calls BSD system routines should ensure - # that the const *char parameters of these routines are in UTF-8 - # encoding. All BSD system functions expect their string - # parameters to be in UTF-8 encoding and nothing else." - # It also says - # "An additional caveat is that string parameters for files, - # paths, and other file-system entities must be in canonical - # UTF-8. In a canonical UTF-8 Unicode string, all decomposable - # characters are decomposed ..." - # but this is not true: You can pass non-decomposed UTF-8 strings - # to file system functions, and it is the OS which will convert - # them to decomposed UTF-8 before accessing the file system. - # - The Apple Terminal application displays UTF-8 by default. - # - However, other applications are free to use different encodings: - # - xterm uses ISO-8859-1 by default. - # - TextEdit uses MacRoman by default. - # We prefer UTF-8 over decomposed UTF-8-MAC because one should - # minimize the use of decomposed Unicode. Unfortunately, through the - # Darwin file system, decomposed UTF-8 strings are leaked into user - # space nevertheless. - # Then there are also the locales with encodings other than US-ASCII - # and UTF-8. These locales can be occasionally useful to users (e.g. - # when grepping through ISO-8859-1 encoded text files), when all their - # file names are in US-ASCII. - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - echo "KOI8-R KOI8-R" - echo "KOI8-U KOI8-U" - echo "CP866 CP866" - echo "CP949 CP949" - echo "CP1131 CP1131" - echo "CP1251 CP1251" - echo "eucCN GB2312" - echo "GB2312 GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "Big5 BIG5" - echo "Big5HKSCS BIG5-HKSCS" - echo "GBK GBK" - echo "GB18030 GB18030" - echo "SJIS SHIFT_JIS" - echo "ARMSCII-8 ARMSCII-8" - echo "PT154 PT154" - #echo "ISCII-DEV ?" - echo "* UTF-8" - ;; - beos* | haiku*) - # BeOS and Haiku have a single locale, and it has UTF-8 encoding. - echo "* UTF-8" - ;; - msdosdjgpp*) - # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "#" - echo "# The encodings given here may not all be correct." - echo "# If you find that the encoding given for your language and" - echo "# country is not the one your DOS machine actually uses, just" - echo "# correct it in this file, and send a mail to" - echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>" - echo "# and Bruno Haible <bruno@clisp.org>." - echo "#" - echo "C ASCII" - # ISO-8859-1 languages - echo "ca CP850" - echo "ca_ES CP850" - echo "da CP865" # not CP850 ?? - echo "da_DK CP865" # not CP850 ?? - echo "de CP850" - echo "de_AT CP850" - echo "de_CH CP850" - echo "de_DE CP850" - echo "en CP850" - echo "en_AU CP850" # not CP437 ?? - echo "en_CA CP850" - echo "en_GB CP850" - echo "en_NZ CP437" - echo "en_US CP437" - echo "en_ZA CP850" # not CP437 ?? - echo "es CP850" - echo "es_AR CP850" - echo "es_BO CP850" - echo "es_CL CP850" - echo "es_CO CP850" - echo "es_CR CP850" - echo "es_CU CP850" - echo "es_DO CP850" - echo "es_EC CP850" - echo "es_ES CP850" - echo "es_GT CP850" - echo "es_HN CP850" - echo "es_MX CP850" - echo "es_NI CP850" - echo "es_PA CP850" - echo "es_PY CP850" - echo "es_PE CP850" - echo "es_SV CP850" - echo "es_UY CP850" - echo "es_VE CP850" - echo "et CP850" - echo "et_EE CP850" - echo "eu CP850" - echo "eu_ES CP850" - echo "fi CP850" - echo "fi_FI CP850" - echo "fr CP850" - echo "fr_BE CP850" - echo "fr_CA CP850" - echo "fr_CH CP850" - echo "fr_FR CP850" - echo "ga CP850" - echo "ga_IE CP850" - echo "gd CP850" - echo "gd_GB CP850" - echo "gl CP850" - echo "gl_ES CP850" - echo "id CP850" # not CP437 ?? - echo "id_ID CP850" # not CP437 ?? - echo "is CP861" # not CP850 ?? - echo "is_IS CP861" # not CP850 ?? - echo "it CP850" - echo "it_CH CP850" - echo "it_IT CP850" - echo "lt CP775" - echo "lt_LT CP775" - echo "lv CP775" - echo "lv_LV CP775" - echo "nb CP865" # not CP850 ?? - echo "nb_NO CP865" # not CP850 ?? - echo "nl CP850" - echo "nl_BE CP850" - echo "nl_NL CP850" - echo "nn CP865" # not CP850 ?? - echo "nn_NO CP865" # not CP850 ?? - echo "no CP865" # not CP850 ?? - echo "no_NO CP865" # not CP850 ?? - echo "pt CP850" - echo "pt_BR CP850" - echo "pt_PT CP850" - echo "sv CP850" - echo "sv_SE CP850" - # ISO-8859-2 languages - echo "cs CP852" - echo "cs_CZ CP852" - echo "hr CP852" - echo "hr_HR CP852" - echo "hu CP852" - echo "hu_HU CP852" - echo "pl CP852" - echo "pl_PL CP852" - echo "ro CP852" - echo "ro_RO CP852" - echo "sk CP852" - echo "sk_SK CP852" - echo "sl CP852" - echo "sl_SI CP852" - echo "sq CP852" - echo "sq_AL CP852" - echo "sr CP852" # CP852 or CP866 or CP855 ?? - echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? - echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? - # ISO-8859-3 languages - echo "mt CP850" - echo "mt_MT CP850" - # ISO-8859-5 languages - echo "be CP866" - echo "be_BE CP866" - echo "bg CP866" # not CP855 ?? - echo "bg_BG CP866" # not CP855 ?? - echo "mk CP866" # not CP855 ?? - echo "mk_MK CP866" # not CP855 ?? - echo "ru CP866" - echo "ru_RU CP866" - echo "uk CP1125" - echo "uk_UA CP1125" - # ISO-8859-6 languages - echo "ar CP864" - echo "ar_AE CP864" - echo "ar_DZ CP864" - echo "ar_EG CP864" - echo "ar_IQ CP864" - echo "ar_IR CP864" - echo "ar_JO CP864" - echo "ar_KW CP864" - echo "ar_MA CP864" - echo "ar_OM CP864" - echo "ar_QA CP864" - echo "ar_SA CP864" - echo "ar_SY CP864" - # ISO-8859-7 languages - echo "el CP869" - echo "el_GR CP869" - # ISO-8859-8 languages - echo "he CP862" - echo "he_IL CP862" - # ISO-8859-9 languages - echo "tr CP857" - echo "tr_TR CP857" - # Japanese - echo "ja CP932" - echo "ja_JP CP932" - # Chinese - echo "zh_CN GBK" - echo "zh_TW CP950" # not CP938 ?? - # Korean - echo "kr CP949" # not CP934 ?? - echo "kr_KR CP949" # not CP934 ?? - # Thai - echo "th CP874" - echo "th_TH CP874" - # Other - echo "eo CP850" - echo "eo_EO CP850" - ;; -esac diff --git a/lib/dirent.in.h b/lib/dirent.in.h deleted file mode 100644 index 15f0245b0929efa68b39f57123ae1e9ba2daf0d9..0000000000000000000000000000000000000000 --- a/lib/dirent.in.h +++ /dev/null @@ -1,98 +0,0 @@ -/* A GNU-like <dirent.h>. - Copyright (C) 2006-2009 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/>. */ - -#ifndef _GL_DIRENT_H - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_DIRENT_H@ - -#ifndef _GL_DIRENT_H -#define _GL_DIRENT_H - -/* The definition of GL_LINK_WARNING is copied here. */ - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Declare overridden functions. */ - -#if @REPLACE_FCHDIR@ -# define opendir rpl_opendir -extern DIR * opendir (const char *); -# define closedir rpl_closedir -extern int closedir (DIR *); -#endif - -/* Declare other POSIX functions. */ - -#if @GNULIB_DIRFD@ -# if !@HAVE_DECL_DIRFD@ && !defined dirfd -/* Return the file descriptor associated with the given directory stream, - or -1 if none exists. */ -extern int dirfd (DIR const *dir); -# endif -#elif defined GNULIB_POSIXCHECK -# undef dirfd -# define dirfd(d) \ - (GL_LINK_WARNING ("dirfd is unportable - " \ - "use gnulib module dirfd for portability"), \ - dirfd (d)) -#endif - -#if @GNULIB_SCANDIR@ -/* Scan the directory DIR, calling FILTER on each directory entry. - Entries for which FILTER returns nonzero are individually malloc'd, - sorted using qsort with CMP, and collected in a malloc'd array in - *NAMELIST. Returns the number of entries selected, or -1 on error. */ -# if !@HAVE_SCANDIR@ -extern int scandir (const char *dir, struct dirent ***namelist, - int (*filter) (const struct dirent *), - int (*cmp) (const struct dirent **, const struct dirent **)); -# endif -#elif defined GNULIB_POSIXCHECK -# undef scandir -# define scandir(d,n,f,c) \ - (GL_LINK_WARNING ("scandir is unportable - " \ - "use gnulib module scandir for portability"), \ - scandir (d, n, f, c)) -#endif - -#if @GNULIB_ALPHASORT@ -/* Compare two 'struct dirent' entries alphabetically. */ -# if !@HAVE_ALPHASORT@ -extern int alphasort (const struct dirent **, const struct dirent **); -# endif -#elif defined GNULIB_POSIXCHECK -# undef alphasort -# define alphasort(a,b) \ - (GL_LINK_WARNING ("alphasort is unportable - " \ - "use gnulib module alphasort for portability"), \ - alphasort (a, b)) -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* _GL_DIRENT_H */ -#endif /* _GL_DIRENT_H */ diff --git a/lib/dup2.c b/lib/dup2.c deleted file mode 100644 index 09990823be4122fe4c42409e8fa670817ec59a6b..0000000000000000000000000000000000000000 --- a/lib/dup2.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Duplicate an open file descriptor to a specified file descriptor. - - Copyright (C) 1999, 2004, 2005, 2006, 2007 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 */ - -#include <config.h> - -/* Specification. */ -#include <unistd.h> - -#include <errno.h> -#include <fcntl.h> - -#ifndef F_DUPFD -static int -dupfd (int fd, int desired_fd) -{ - int duplicated_fd = dup (fd); - if (duplicated_fd < 0 || duplicated_fd == desired_fd) - return duplicated_fd; - else - { - int r = dupfd (fd, desired_fd); - int e = errno; - close (duplicated_fd); - errno = e; - return r; - } -} -#endif - -int -dup2 (int fd, int desired_fd) -{ - if (fd == desired_fd) - return fd; - close (desired_fd); -#ifdef F_DUPFD - return fcntl (fd, F_DUPFD, desired_fd); -#else - return dupfd (fd, desired_fd); -#endif -} diff --git a/lib/exclude.c b/lib/exclude.c deleted file mode 100644 index f38abf2ba657a2beca56fd924b222faa859217f0..0000000000000000000000000000000000000000 --- a/lib/exclude.c +++ /dev/null @@ -1,273 +0,0 @@ -/* exclude.c -- exclude file names - - Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007 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 <eggert@twinsun.com> */ - -#include <config.h> - -#include <stdbool.h> - -#include <ctype.h> -#include <errno.h> -#include <stddef.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "exclude.h" -#include "fnmatch.h" -#include "xalloc.h" -#include "verify.h" - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -/* Non-GNU systems lack these options, so we don't need to check them. */ -#ifndef FNM_CASEFOLD -# define FNM_CASEFOLD 0 -#endif -#ifndef FNM_EXTMATCH -# define FNM_EXTMATCH 0 -#endif -#ifndef FNM_LEADING_DIR -# define FNM_LEADING_DIR 0 -#endif - -verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) - & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR - | FNM_CASEFOLD | FNM_EXTMATCH)) - == 0); - -/* An exclude pattern-options pair. The options are fnmatch options - ORed with EXCLUDE_* options. */ - -struct patopts - { - char const *pattern; - int options; - }; - -/* An exclude list, of pattern-options pairs. */ - -struct exclude - { - struct patopts *exclude; - size_t exclude_alloc; - size_t exclude_count; - }; - -/* Return a newly allocated and empty exclude list. */ - -struct exclude * -new_exclude (void) -{ - return xzalloc (sizeof *new_exclude ()); -} - -/* Free the storage associated with an exclude list. */ - -void -free_exclude (struct exclude *ex) -{ - free (ex->exclude); - free (ex); -} - -/* Return zero if PATTERN matches F, obeying OPTIONS, except that - (unlike fnmatch) wildcards are disabled in PATTERN. */ - -static int -fnmatch_no_wildcards (char const *pattern, char const *f, int options) -{ - if (! (options & FNM_LEADING_DIR)) - return ((options & FNM_CASEFOLD) - ? mbscasecmp (pattern, f) - : strcmp (pattern, f)); - else if (! (options & FNM_CASEFOLD)) - { - size_t patlen = strlen (pattern); - int r = strncmp (pattern, f, patlen); - if (! r) - { - r = f[patlen]; - if (r == '/') - r = 0; - } - return r; - } - else - { - /* Walk through a copy of F, seeing whether P matches any prefix - of F. - - FIXME: This is an O(N**2) algorithm; it should be O(N). - Also, the copy should not be necessary. However, fixing this - will probably involve a change to the mbs* API. */ - - char *fcopy = xstrdup (f); - char *p; - int r; - for (p = fcopy; ; *p++ = '/') - { - p = strchr (p, '/'); - if (p) - *p = '\0'; - r = mbscasecmp (pattern, fcopy); - if (!p || r <= 0) - break; - } - free (fcopy); - return r; - } -} - -bool -exclude_fnmatch (char const *pattern, char const *f, int options) -{ - int (*matcher) (char const *, char const *, int) = - (options & EXCLUDE_WILDCARDS - ? fnmatch - : fnmatch_no_wildcards); - bool matched = ((*matcher) (pattern, f, options) == 0); - char const *p; - - if (! (options & EXCLUDE_ANCHORED)) - for (p = f; *p && ! matched; p++) - if (*p == '/' && p[1] != '/') - matched = ((*matcher) (pattern, p + 1, options) == 0); - - return matched; -} - -/* Return true if EX excludes F. */ - -bool -excluded_file_name (struct exclude const *ex, char const *f) -{ - size_t exclude_count = ex->exclude_count; - - /* If no options are given, the default is to include. */ - if (exclude_count == 0) - return false; - else - { - struct patopts const *exclude = ex->exclude; - size_t i; - - /* Otherwise, the default is the opposite of the first option. */ - bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE); - - /* Scan through the options, seeing whether they change F from - excluded to included or vice versa. */ - for (i = 0; i < exclude_count; i++) - { - char const *pattern = exclude[i].pattern; - int options = exclude[i].options; - if (excluded == !! (options & EXCLUDE_INCLUDE)) - excluded ^= exclude_fnmatch (pattern, f, options); - } - - return excluded; - } -} - -/* Append to EX the exclusion PATTERN with OPTIONS. */ - -void -add_exclude (struct exclude *ex, char const *pattern, int options) -{ - struct patopts *patopts; - - if (ex->exclude_count == ex->exclude_alloc) - ex->exclude = x2nrealloc (ex->exclude, &ex->exclude_alloc, - sizeof *ex->exclude); - - patopts = &ex->exclude[ex->exclude_count++]; - patopts->pattern = pattern; - patopts->options = options; -} - -/* Use ADD_FUNC to append to EX the patterns in FILE_NAME, each with - OPTIONS. LINE_END terminates each pattern in the file. If - LINE_END is a space character, ignore trailing spaces and empty - lines in FILE. Return -1 on failure, 0 on success. */ - -int -add_exclude_file (void (*add_func) (struct exclude *, char const *, int), - struct exclude *ex, char const *file_name, int options, - char line_end) -{ - bool use_stdin = file_name[0] == '-' && !file_name[1]; - FILE *in; - char *buf = NULL; - char *p; - char const *pattern; - char const *lim; - size_t buf_alloc = 0; - size_t buf_count = 0; - int c; - int e = 0; - - if (use_stdin) - in = stdin; - else if (! (in = fopen (file_name, "r"))) - return -1; - - while ((c = getc (in)) != EOF) - { - if (buf_count == buf_alloc) - buf = x2realloc (buf, &buf_alloc); - buf[buf_count++] = c; - } - - if (ferror (in)) - e = errno; - - if (!use_stdin && fclose (in) != 0) - e = errno; - - buf = xrealloc (buf, buf_count + 1); - buf[buf_count] = line_end; - lim = buf + buf_count + ! (buf_count == 0 || buf[buf_count - 1] == line_end); - pattern = buf; - - for (p = buf; p < lim; p++) - if (*p == line_end) - { - char *pattern_end = p; - - if (isspace ((unsigned char) line_end)) - { - for (; ; pattern_end--) - if (pattern_end == pattern) - goto next_pattern; - else if (! isspace ((unsigned char) pattern_end[-1])) - break; - } - - *pattern_end = '\0'; - (*add_func) (ex, pattern, options); - - next_pattern: - pattern = p + 1; - } - - errno = e; - return e ? -1 : 0; -} diff --git a/lib/fchdir.c b/lib/fchdir.c deleted file mode 100644 index 969e984c9555b11a95f3e411f15a0ff6bdc581bd..0000000000000000000000000000000000000000 --- a/lib/fchdir.c +++ /dev/null @@ -1,238 +0,0 @@ -/* fchdir replacement. - Copyright (C) 2006-2008 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/>. */ - -#include <config.h> - -/* Specification. */ -#include <unistd.h> - -#include <dirent.h> -#include <errno.h> -#include <fcntl.h> -#include <stdarg.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> - -#include "canonicalize.h" - -/* This replacement assumes that a directory is not renamed while opened - through a file descriptor. */ - -/* Array of file descriptors opened. If it points to a directory, it stores - info about this directory; otherwise it stores an errno value of ENOTDIR. */ -typedef struct -{ - char *name; /* Absolute name of the directory, or NULL. */ - int saved_errno; /* If name == NULL: The error code describing the failure - reason. */ -} dir_info_t; -static dir_info_t *dirs; -static size_t dirs_allocated; - -/* Try to ensure dirs has enough room for a slot at index fd. */ -static void -ensure_dirs_slot (size_t fd) -{ - if (fd >= dirs_allocated) - { - size_t new_allocated; - dir_info_t *new_dirs; - size_t i; - - new_allocated = 2 * dirs_allocated + 1; - if (new_allocated <= fd) - new_allocated = fd + 1; - new_dirs = - (dirs != NULL - ? (dir_info_t *) realloc (dirs, new_allocated * sizeof (dir_info_t)) - : (dir_info_t *) malloc (new_allocated * sizeof (dir_info_t))); - if (new_dirs != NULL) - { - for (i = dirs_allocated; i < new_allocated; i++) - { - new_dirs[i].name = NULL; - new_dirs[i].saved_errno = ENOTDIR; - } - dirs = new_dirs; - dirs_allocated = new_allocated; - } - } -} - -/* Hook into the gnulib replacements for open() and close() to keep track - of the open file descriptors. */ - -void -_gl_unregister_fd (int fd) -{ - if (fd >= 0 && fd < dirs_allocated) - { - if (dirs[fd].name != NULL) - free (dirs[fd].name); - dirs[fd].name = NULL; - dirs[fd].saved_errno = ENOTDIR; - } -} - -void -_gl_register_fd (int fd, const char *filename) -{ - struct stat statbuf; - - ensure_dirs_slot (fd); - if (fd < dirs_allocated - && fstat (fd, &statbuf) >= 0 && S_ISDIR (statbuf.st_mode)) - { - dirs[fd].name = canonicalize_file_name (filename); - if (dirs[fd].name == NULL) - dirs[fd].saved_errno = errno; - } -} - -/* Override opendir() and closedir(), to keep track of the open file - descriptors. Needed because there is a function dirfd(). */ - -int -rpl_closedir (DIR *dp) -#undef closedir -{ - int fd = dirfd (dp); - int retval = closedir (dp); - - if (retval >= 0) - _gl_unregister_fd (fd); - return retval; -} - -DIR * -rpl_opendir (const char *filename) -#undef opendir -{ - DIR *dp; - - dp = opendir (filename); - if (dp != NULL) - { - int fd = dirfd (dp); - if (fd >= 0) - _gl_register_fd (fd, filename); - } - return dp; -} - -/* Override dup() and dup2(), to keep track of open file descriptors. */ - -int -rpl_dup (int oldfd) -#undef dup -{ - int newfd = dup (oldfd); - - if (oldfd >= 0 && newfd >= 0) - { - ensure_dirs_slot (newfd); - if (newfd < dirs_allocated) - { - if (oldfd < dirs_allocated) - { - if (dirs[oldfd].name != NULL) - { - dirs[newfd].name = strdup (dirs[oldfd].name); - if (dirs[newfd].name == NULL) - dirs[newfd].saved_errno = ENOMEM; - } - else - { - dirs[newfd].name = NULL; - dirs[newfd].saved_errno = dirs[oldfd].saved_errno; - } - } - else - { - dirs[newfd].name = NULL; - dirs[newfd].saved_errno = ENOMEM; - } - } - } - return newfd; -} - -int -rpl_dup2 (int oldfd, int newfd) -#undef dup2 -{ - int retval = dup2 (oldfd, newfd); - - if (retval >= 0 && oldfd >= 0 && newfd >= 0 && newfd != oldfd) - { - ensure_dirs_slot (newfd); - if (newfd < dirs_allocated) - { - if (oldfd < dirs_allocated) - { - if (dirs[oldfd].name != NULL) - { - dirs[newfd].name = strdup (dirs[oldfd].name); - if (dirs[newfd].name == NULL) - dirs[newfd].saved_errno = ENOMEM; - } - else - { - dirs[newfd].name = NULL; - dirs[newfd].saved_errno = dirs[oldfd].saved_errno; - } - } - else - { - dirs[newfd].name = NULL; - dirs[newfd].saved_errno = ENOMEM; - } - } - } - return retval; -} - -/* Implement fchdir() in terms of chdir(). */ - -int -fchdir (int fd) -{ - if (fd >= 0) - { - if (fd < dirs_allocated) - { - if (dirs[fd].name != NULL) - return chdir (dirs[fd].name); - else - { - errno = dirs[fd].saved_errno; - return -1; - } - } - else - { - errno = ENOMEM; - return -1; - } - } - else - { - errno = EBADF; - return -1; - } -} diff --git a/lib/fchownat.c b/lib/fchownat.c deleted file mode 100644 index a1d5e60f21fb363c695f70d42bd3f0e9b9bc8654..0000000000000000000000000000000000000000 --- a/lib/fchownat.c +++ /dev/null @@ -1,48 +0,0 @@ -/* This function serves as replacement for a missing fchownat function, - as well as a work around for the fchownat bug in glibc-2.4: - <http://lists.ubuntu.com/archives/ubuntu-users/2006-September/093218.html> - when the buggy fchownat-with-AT_SYMLINK_NOFOLLOW operates on a symlink, it - mistakenly affects the symlink referent, rather than the symlink itself. - - Copyright (C) 2006-2007 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 Jim Meyering */ - -#include <config.h> - -#include "openat.h" - -#include <unistd.h> - -#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ -#include "save-cwd.h" -#include "openat-priv.h" - -/* Replacement for Solaris' function by the same name. - Invoke chown or lchown on file, FILE, using OWNER and GROUP, in the - directory open on descriptor FD. If FLAG is AT_SYMLINK_NOFOLLOW, then - use lchown, otherwise, use chown. If possible, do it without changing - the working directory. Otherwise, resort to using save_cwd/fchdir, - then mkdir/restore_cwd. If either the save_cwd or the restore_cwd - fails, then give a diagnostic and exit nonzero. */ - -#define AT_FUNC_NAME fchownat -#define AT_FUNC_F1 lchown -#define AT_FUNC_F2 chown -#define AT_FUNC_USE_F1_COND flag == AT_SYMLINK_NOFOLLOW -#define AT_FUNC_POST_FILE_PARAM_DECLS , uid_t owner, gid_t group, int flag -#define AT_FUNC_POST_FILE_ARGS , owner, group -#include "at-func.c" diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h deleted file mode 100644 index fd7520e8daed331481fdaea90c375176ee314b2e..0000000000000000000000000000000000000000 --- a/lib/fcntl.in.h +++ /dev/null @@ -1,144 +0,0 @@ -/* Like <fcntl.h>, but with non-working flags defined to 0. - - Copyright (C) 2006-2008 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 */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -#if defined __need_system_fcntl_h -/* Special invocation convention. */ - -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _GL_FCNTL_H - -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ - -#ifndef _GL_FCNTL_H -#define _GL_FCNTL_H - - -/* Declare overridden functions. */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if @GNULIB_OPEN@ -# if @REPLACE_OPEN@ -# undef open -# define open rpl_open -extern int open (const char *filename, int flags, ...); -# endif -#endif - -#ifdef FCHDIR_REPLACEMENT -/* gnulib internal function. */ -extern void _gl_register_fd (int fd, const char *filename); -#endif - -#ifdef __cplusplus -} -#endif - - -/* Fix up the O_* macros. */ - -#if !defined O_DIRECT && defined O_DIRECTIO -/* Tru64 spells it `O_DIRECTIO'. */ -# define O_DIRECT O_DIRECTIO -#endif - -#ifndef O_DIRECT -# define O_DIRECT 0 -#endif - -#ifndef O_DIRECTORY -# define O_DIRECTORY 0 -#endif - -#ifndef O_DSYNC -# define O_DSYNC 0 -#endif - -#ifndef O_NDELAY -# define O_NDELAY 0 -#endif - -#ifndef O_NOATIME -# define O_NOATIME 0 -#endif - -#ifndef O_NONBLOCK -# define O_NONBLOCK O_NDELAY -#endif - -#ifndef O_NOCTTY -# define O_NOCTTY 0 -#endif - -#ifndef O_NOFOLLOW -# define O_NOFOLLOW 0 -#endif - -#ifndef O_NOLINKS -# define O_NOLINKS 0 -#endif - -#ifndef O_RSYNC -# define O_RSYNC 0 -#endif - -#ifndef O_SYNC -# define O_SYNC 0 -#endif - -/* For systems that distinguish between text and binary I/O. - O_BINARY is usually declared in fcntl.h */ -#if !defined O_BINARY && defined _O_BINARY - /* For MSC-compatible compilers. */ -# define O_BINARY _O_BINARY -# define O_TEXT _O_TEXT -#endif - -#if defined __BEOS__ || defined __HAIKU__ - /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ -# undef O_BINARY -# undef O_TEXT -#endif - -#ifndef O_BINARY -# define O_BINARY 0 -# define O_TEXT 0 -#endif - - -#endif /* _GL_FCNTL_H */ -#endif /* _GL_FCNTL_H */ -#endif diff --git a/lib/fnmatch_loop.c b/lib/fnmatch_loop.c deleted file mode 100644 index acdf5a697a2e12268f9467a81b3741a938576395..0000000000000000000000000000000000000000 --- a/lib/fnmatch_loop.c +++ /dev/null @@ -1,1212 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Match STRING against the file name pattern PATTERN, returning zero if - it matches, nonzero if not. */ -static int EXT (INT opt, const CHAR *pattern, const CHAR *string, - const CHAR *string_end, bool no_leading_period, int flags) - internal_function; -static const CHAR *END (const CHAR *patternp) internal_function; - -static int -internal_function -FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end, - bool no_leading_period, int flags) -{ - register const CHAR *p = pattern, *n = string; - register UCHAR c; -#ifdef _LIBC -# if WIDE_CHAR_VERSION - const char *collseq = (const char *) - _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC); -# else - const UCHAR *collseq = (const UCHAR *) - _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQMB); -# endif -#endif - - while ((c = *p++) != L_('\0')) - { - bool new_no_leading_period = false; - c = FOLD (c); - - switch (c) - { - case L_('?'): - if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') - { - int res; - - res = EXT (c, p, n, string_end, no_leading_period, - flags); - if (res != -1) - return res; - } - - if (n == string_end) - return FNM_NOMATCH; - else if (*n == L_('/') && (flags & FNM_FILE_NAME)) - return FNM_NOMATCH; - else if (*n == L_('.') && no_leading_period) - return FNM_NOMATCH; - break; - - case L_('\\'): - if (!(flags & FNM_NOESCAPE)) - { - c = *p++; - if (c == L_('\0')) - /* Trailing \ loses. */ - return FNM_NOMATCH; - c = FOLD (c); - } - if (n == string_end || FOLD ((UCHAR) *n) != c) - return FNM_NOMATCH; - break; - - case L_('*'): - if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') - { - int res; - - res = EXT (c, p, n, string_end, no_leading_period, - flags); - if (res != -1) - return res; - } - - if (n != string_end && *n == L_('.') && no_leading_period) - return FNM_NOMATCH; - - for (c = *p++; c == L_('?') || c == L_('*'); c = *p++) - { - if (*p == L_('(') && (flags & FNM_EXTMATCH) != 0) - { - const CHAR *endp = END (p); - if (endp != p) - { - /* This is a pattern. Skip over it. */ - p = endp; - continue; - } - } - - if (c == L_('?')) - { - /* A ? needs to match one character. */ - if (n == string_end) - /* There isn't another character; no match. */ - return FNM_NOMATCH; - else if (*n == L_('/') - && __builtin_expect (flags & FNM_FILE_NAME, 0)) - /* A slash does not match a wildcard under - FNM_FILE_NAME. */ - return FNM_NOMATCH; - else - /* One character of the string is consumed in matching - this ? wildcard, so *??? won't match if there are - less than three characters. */ - ++n; - } - } - - if (c == L_('\0')) - /* The wildcard(s) is/are the last element of the pattern. - If the name is a file name and contains another slash - this means it cannot match, unless the FNM_LEADING_DIR - flag is set. */ - { - int result = (flags & FNM_FILE_NAME) == 0 ? 0 : FNM_NOMATCH; - - if (flags & FNM_FILE_NAME) - { - if (flags & FNM_LEADING_DIR) - result = 0; - else - { - if (MEMCHR (n, L_('/'), string_end - n) == NULL) - result = 0; - } - } - - return result; - } - else - { - const CHAR *endp; - - endp = MEMCHR (n, (flags & FNM_FILE_NAME) ? L_('/') : L_('\0'), - string_end - n); - if (endp == NULL) - endp = string_end; - - if (c == L_('[') - || (__builtin_expect (flags & FNM_EXTMATCH, 0) != 0 - && (c == L_('@') || c == L_('+') || c == L_('!')) - && *p == L_('('))) - { - int flags2 = ((flags & FNM_FILE_NAME) - ? flags : (flags & ~FNM_PERIOD)); - bool no_leading_period2 = no_leading_period; - - for (--p; n < endp; ++n, no_leading_period2 = false) - if (FCT (p, n, string_end, no_leading_period2, flags2) - == 0) - return 0; - } - else if (c == L_('/') && (flags & FNM_FILE_NAME)) - { - while (n < string_end && *n != L_('/')) - ++n; - if (n < string_end && *n == L_('/') - && (FCT (p, n + 1, string_end, flags & FNM_PERIOD, flags) - == 0)) - return 0; - } - else - { - int flags2 = ((flags & FNM_FILE_NAME) - ? flags : (flags & ~FNM_PERIOD)); - int no_leading_period2 = no_leading_period; - - if (c == L_('\\') && !(flags & FNM_NOESCAPE)) - c = *p; - c = FOLD (c); - for (--p; n < endp; ++n, no_leading_period2 = false) - if (FOLD ((UCHAR) *n) == c - && (FCT (p, n, string_end, no_leading_period2, flags2) - == 0)) - return 0; - } - } - - /* If we come here no match is possible with the wildcard. */ - return FNM_NOMATCH; - - case L_('['): - { - /* Nonzero if the sense of the character class is inverted. */ - register bool not; - CHAR cold; - UCHAR fn; - - if (posixly_correct == 0) - posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1; - - if (n == string_end) - return FNM_NOMATCH; - - if (*n == L_('.') && no_leading_period) - return FNM_NOMATCH; - - if (*n == L_('/') && (flags & FNM_FILE_NAME)) - /* `/' cannot be matched. */ - return FNM_NOMATCH; - - not = (*p == L_('!') || (posixly_correct < 0 && *p == L_('^'))); - if (not) - ++p; - - fn = FOLD ((UCHAR) *n); - - c = *p++; - for (;;) - { - if (!(flags & FNM_NOESCAPE) && c == L_('\\')) - { - if (*p == L_('\0')) - return FNM_NOMATCH; - c = FOLD ((UCHAR) *p); - ++p; - - goto normal_bracket; - } - else if (c == L_('[') && *p == L_(':')) - { - /* Leave room for the null. */ - CHAR str[CHAR_CLASS_MAX_LENGTH + 1]; - size_t c1 = 0; -#if defined _LIBC || WIDE_CHAR_SUPPORT - wctype_t wt; -#endif - const CHAR *startp = p; - - for (;;) - { - if (c1 == CHAR_CLASS_MAX_LENGTH) - /* The name is too long and therefore the pattern - is ill-formed. */ - return FNM_NOMATCH; - - c = *++p; - if (c == L_(':') && p[1] == L_(']')) - { - p += 2; - break; - } - if (c < L_('a') || c >= L_('z')) - { - /* This cannot possibly be a character class name. - Match it as a normal range. */ - p = startp; - c = L_('['); - goto normal_bracket; - } - str[c1++] = c; - } - str[c1] = L_('\0'); - -#if defined _LIBC || WIDE_CHAR_SUPPORT - wt = IS_CHAR_CLASS (str); - if (wt == 0) - /* Invalid character class name. */ - return FNM_NOMATCH; - -# if defined _LIBC && ! WIDE_CHAR_VERSION - /* The following code is glibc specific but does - there a good job in speeding up the code since - we can avoid the btowc() call. */ - if (_ISCTYPE ((UCHAR) *n, wt)) - goto matched; -# else - if (ISWCTYPE (BTOWC ((UCHAR) *n), wt)) - goto matched; -# endif -#else - if ((STREQ (str, L_("alnum")) && isalnum ((UCHAR) *n)) - || (STREQ (str, L_("alpha")) && isalpha ((UCHAR) *n)) - || (STREQ (str, L_("blank")) && isblank ((UCHAR) *n)) - || (STREQ (str, L_("cntrl")) && iscntrl ((UCHAR) *n)) - || (STREQ (str, L_("digit")) && isdigit ((UCHAR) *n)) - || (STREQ (str, L_("graph")) && isgraph ((UCHAR) *n)) - || (STREQ (str, L_("lower")) && islower ((UCHAR) *n)) - || (STREQ (str, L_("print")) && isprint ((UCHAR) *n)) - || (STREQ (str, L_("punct")) && ispunct ((UCHAR) *n)) - || (STREQ (str, L_("space")) && isspace ((UCHAR) *n)) - || (STREQ (str, L_("upper")) && isupper ((UCHAR) *n)) - || (STREQ (str, L_("xdigit")) && isxdigit ((UCHAR) *n))) - goto matched; -#endif - c = *p++; - } -#ifdef _LIBC - else if (c == L_('[') && *p == L_('=')) - { - UCHAR str[1]; - uint32_t nrules = - _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - const CHAR *startp = p; - - c = *++p; - if (c == L_('\0')) - { - p = startp; - c = L_('['); - goto normal_bracket; - } - str[0] = c; - - c = *++p; - if (c != L_('=') || p[1] != L_(']')) - { - p = startp; - c = L_('['); - goto normal_bracket; - } - p += 2; - - if (nrules == 0) - { - if ((UCHAR) *n == str[0]) - goto matched; - } - else - { - const int32_t *table; -# if WIDE_CHAR_VERSION - const int32_t *weights; - const int32_t *extra; -# else - const unsigned char *weights; - const unsigned char *extra; -# endif - const int32_t *indirect; - int32_t idx; - const UCHAR *cp = (const UCHAR *) str; - - /* This #include defines a local function! */ -# if WIDE_CHAR_VERSION -# include <locale/weightwc.h> -# else -# include <locale/weight.h> -# endif - -# if WIDE_CHAR_VERSION - table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEWC); - weights = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTWC); - extra = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAWC); - indirect = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTWC); -# else - table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); - weights = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); - indirect = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); -# endif - - idx = findidx (&cp); - if (idx != 0) - { - /* We found a table entry. Now see whether the - character we are currently at has the same - equivalance class value. */ - int len = weights[idx]; - int32_t idx2; - const UCHAR *np = (const UCHAR *) n; - - idx2 = findidx (&np); - if (idx2 != 0 && len == weights[idx2]) - { - int cnt = 0; - - while (cnt < len - && (weights[idx + 1 + cnt] - == weights[idx2 + 1 + cnt])) - ++cnt; - - if (cnt == len) - goto matched; - } - } - } - - c = *p++; - } -#endif - else if (c == L_('\0')) - /* [ (unterminated) loses. */ - return FNM_NOMATCH; - else - { - bool is_range = false; - -#ifdef _LIBC - bool is_seqval = false; - - if (c == L_('[') && *p == L_('.')) - { - uint32_t nrules = - _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - const CHAR *startp = p; - size_t c1 = 0; - - while (1) - { - c = *++p; - if (c == L_('.') && p[1] == L_(']')) - { - p += 2; - break; - } - if (c == '\0') - return FNM_NOMATCH; - ++c1; - } - - /* We have to handling the symbols differently in - ranges since then the collation sequence is - important. */ - is_range = *p == L_('-') && p[1] != L_('\0'); - - if (nrules == 0) - { - /* There are no names defined in the collation - data. Therefore we only accept the trivial - names consisting of the character itself. */ - if (c1 != 1) - return FNM_NOMATCH; - - if (!is_range && *n == startp[1]) - goto matched; - - cold = startp[1]; - c = *p++; - } - else - { - int32_t table_size; - const int32_t *symb_table; -# ifdef WIDE_CHAR_VERSION - char str[c1]; - size_t strcnt; -# else -# define str (startp + 1) -# endif - const unsigned char *extra; - int32_t idx; - int32_t elem; - int32_t second; - int32_t hash; - -# ifdef WIDE_CHAR_VERSION - /* We have to convert the name to a single-byte - string. This is possible since the names - consist of ASCII characters and the internal - representation is UCS4. */ - for (strcnt = 0; strcnt < c1; ++strcnt) - str[strcnt] = startp[1 + strcnt]; -# endif - - table_size = - _NL_CURRENT_WORD (LC_COLLATE, - _NL_COLLATE_SYMB_HASH_SIZEMB); - symb_table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_TABLEMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_EXTRAMB); - - /* Locate the character in the hashing table. */ - hash = elem_hash (str, c1); - - idx = 0; - elem = hash % table_size; - if (symb_table[2 * elem] != 0) - { - second = hash % (table_size - 2) + 1; - - do - { - /* First compare the hashing value. */ - if (symb_table[2 * elem] == hash - && (c1 - == extra[symb_table[2 * elem + 1]]) - && memcmp (str, - &extra[symb_table[2 * elem - + 1] - + 1], c1) == 0) - { - /* Yep, this is the entry. */ - idx = symb_table[2 * elem + 1]; - idx += 1 + extra[idx]; - break; - } - - /* Next entry. */ - elem += second; - } - while (symb_table[2 * elem] != 0); - } - - if (symb_table[2 * elem] != 0) - { - /* Compare the byte sequence but only if - this is not part of a range. */ -# ifdef WIDE_CHAR_VERSION - int32_t *wextra; - - idx += 1 + extra[idx]; - /* Adjust for the alignment. */ - idx = (idx + 3) & ~3; - - wextra = (int32_t *) &extra[idx + 4]; -# endif - - if (! is_range) - { -# ifdef WIDE_CHAR_VERSION - for (c1 = 0; - (int32_t) c1 < wextra[idx]; - ++c1) - if (n[c1] != wextra[1 + c1]) - break; - - if ((int32_t) c1 == wextra[idx]) - goto matched; -# else - for (c1 = 0; c1 < extra[idx]; ++c1) - if (n[c1] != extra[1 + c1]) - break; - - if (c1 == extra[idx]) - goto matched; -# endif - } - - /* Get the collation sequence value. */ - is_seqval = true; -# ifdef WIDE_CHAR_VERSION - cold = wextra[1 + wextra[idx]]; -# else - /* Adjust for the alignment. */ - idx += 1 + extra[idx]; - idx = (idx + 3) & ~4; - cold = *((int32_t *) &extra[idx]); -# endif - - c = *p++; - } - else if (c1 == 1) - { - /* No valid character. Match it as a - single byte. */ - if (!is_range && *n == str[0]) - goto matched; - - cold = str[0]; - c = *p++; - } - else - return FNM_NOMATCH; - } - } - else -# undef str -#endif - { - c = FOLD (c); - normal_bracket: - - /* We have to handling the symbols differently in - ranges since then the collation sequence is - important. */ - is_range = (*p == L_('-') && p[1] != L_('\0') - && p[1] != L_(']')); - - if (!is_range && c == fn) - goto matched; - -#if _LIBC - /* This is needed if we goto normal_bracket; from - outside of is_seqval's scope. */ - is_seqval = false; -#endif - - cold = c; - c = *p++; - } - - if (c == L_('-') && *p != L_(']')) - { -#if _LIBC - /* We have to find the collation sequence - value for C. Collation sequence is nothing - we can regularly access. The sequence - value is defined by the order in which the - definitions of the collation values for the - various characters appear in the source - file. A strange concept, nowhere - documented. */ - uint32_t fcollseq; - uint32_t lcollseq; - UCHAR cend = *p++; - -# ifdef WIDE_CHAR_VERSION - /* Search in the `names' array for the characters. */ - fcollseq = __collseq_table_lookup (collseq, fn); - if (fcollseq == ~((uint32_t) 0)) - /* XXX We don't know anything about the character - we are supposed to match. This means we are - failing. */ - goto range_not_matched; - - if (is_seqval) - lcollseq = cold; - else - lcollseq = __collseq_table_lookup (collseq, cold); -# else - fcollseq = collseq[fn]; - lcollseq = is_seqval ? cold : collseq[(UCHAR) cold]; -# endif - - is_seqval = false; - if (cend == L_('[') && *p == L_('.')) - { - uint32_t nrules = - _NL_CURRENT_WORD (LC_COLLATE, - _NL_COLLATE_NRULES); - const CHAR *startp = p; - size_t c1 = 0; - - while (1) - { - c = *++p; - if (c == L_('.') && p[1] == L_(']')) - { - p += 2; - break; - } - if (c == '\0') - return FNM_NOMATCH; - ++c1; - } - - if (nrules == 0) - { - /* There are no names defined in the - collation data. Therefore we only - accept the trivial names consisting - of the character itself. */ - if (c1 != 1) - return FNM_NOMATCH; - - cend = startp[1]; - } - else - { - int32_t table_size; - const int32_t *symb_table; -# ifdef WIDE_CHAR_VERSION - char str[c1]; - size_t strcnt; -# else -# define str (startp + 1) -# endif - const unsigned char *extra; - int32_t idx; - int32_t elem; - int32_t second; - int32_t hash; - -# ifdef WIDE_CHAR_VERSION - /* We have to convert the name to a single-byte - string. This is possible since the names - consist of ASCII characters and the internal - representation is UCS4. */ - for (strcnt = 0; strcnt < c1; ++strcnt) - str[strcnt] = startp[1 + strcnt]; -# endif - - table_size = - _NL_CURRENT_WORD (LC_COLLATE, - _NL_COLLATE_SYMB_HASH_SIZEMB); - symb_table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_TABLEMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_EXTRAMB); - - /* Locate the character in the hashing - table. */ - hash = elem_hash (str, c1); - - idx = 0; - elem = hash % table_size; - if (symb_table[2 * elem] != 0) - { - second = hash % (table_size - 2) + 1; - - do - { - /* First compare the hashing value. */ - if (symb_table[2 * elem] == hash - && (c1 - == extra[symb_table[2 * elem + 1]]) - && memcmp (str, - &extra[symb_table[2 * elem + 1] - + 1], c1) == 0) - { - /* Yep, this is the entry. */ - idx = symb_table[2 * elem + 1]; - idx += 1 + extra[idx]; - break; - } - - /* Next entry. */ - elem += second; - } - while (symb_table[2 * elem] != 0); - } - - if (symb_table[2 * elem] != 0) - { - /* Compare the byte sequence but only if - this is not part of a range. */ -# ifdef WIDE_CHAR_VERSION - int32_t *wextra; - - idx += 1 + extra[idx]; - /* Adjust for the alignment. */ - idx = (idx + 3) & ~4; - - wextra = (int32_t *) &extra[idx + 4]; -# endif - /* Get the collation sequence value. */ - is_seqval = true; -# ifdef WIDE_CHAR_VERSION - cend = wextra[1 + wextra[idx]]; -# else - /* Adjust for the alignment. */ - idx += 1 + extra[idx]; - idx = (idx + 3) & ~4; - cend = *((int32_t *) &extra[idx]); -# endif - } - else if (symb_table[2 * elem] != 0 && c1 == 1) - { - cend = str[0]; - c = *p++; - } - else - return FNM_NOMATCH; - } -# undef str - } - else - { - if (!(flags & FNM_NOESCAPE) && cend == L_('\\')) - cend = *p++; - if (cend == L_('\0')) - return FNM_NOMATCH; - cend = FOLD (cend); - } - - /* XXX It is not entirely clear to me how to handle - characters which are not mentioned in the - collation specification. */ - if ( -# ifdef WIDE_CHAR_VERSION - lcollseq == 0xffffffff || -# endif - lcollseq <= fcollseq) - { - /* We have to look at the upper bound. */ - uint32_t hcollseq; - - if (is_seqval) - hcollseq = cend; - else - { -# ifdef WIDE_CHAR_VERSION - hcollseq = - __collseq_table_lookup (collseq, cend); - if (hcollseq == ~((uint32_t) 0)) - { - /* Hum, no information about the upper - bound. The matching succeeds if the - lower bound is matched exactly. */ - if (lcollseq != fcollseq) - goto range_not_matched; - - goto matched; - } -# else - hcollseq = collseq[cend]; -# endif - } - - if (lcollseq <= hcollseq && fcollseq <= hcollseq) - goto matched; - } -# ifdef WIDE_CHAR_VERSION - range_not_matched: -# endif -#else - /* We use a boring value comparison of the character - values. This is better than comparing using - `strcoll' since the latter would have surprising - and sometimes fatal consequences. */ - UCHAR cend = *p++; - - if (!(flags & FNM_NOESCAPE) && cend == L_('\\')) - cend = *p++; - if (cend == L_('\0')) - return FNM_NOMATCH; - - /* It is a range. */ - if (cold <= fn && fn <= cend) - goto matched; -#endif - - c = *p++; - } - } - - if (c == L_(']')) - break; - } - - if (!not) - return FNM_NOMATCH; - break; - - matched: - /* Skip the rest of the [...] that already matched. */ - do - { - ignore_next: - c = *p++; - - if (c == L_('\0')) - /* [... (unterminated) loses. */ - return FNM_NOMATCH; - - if (!(flags & FNM_NOESCAPE) && c == L_('\\')) - { - if (*p == L_('\0')) - return FNM_NOMATCH; - /* XXX 1003.2d11 is unclear if this is right. */ - ++p; - } - else if (c == L_('[') && *p == L_(':')) - { - int c1 = 0; - const CHAR *startp = p; - - while (1) - { - c = *++p; - if (++c1 == CHAR_CLASS_MAX_LENGTH) - return FNM_NOMATCH; - - if (*p == L_(':') && p[1] == L_(']')) - break; - - if (c < L_('a') || c >= L_('z')) - { - p = startp; - goto ignore_next; - } - } - p += 2; - c = *p++; - } - else if (c == L_('[') && *p == L_('=')) - { - c = *++p; - if (c == L_('\0')) - return FNM_NOMATCH; - c = *++p; - if (c != L_('=') || p[1] != L_(']')) - return FNM_NOMATCH; - p += 2; - c = *p++; - } - else if (c == L_('[') && *p == L_('.')) - { - ++p; - while (1) - { - c = *++p; - if (c == '\0') - return FNM_NOMATCH; - - if (*p == L_('.') && p[1] == L_(']')) - break; - } - p += 2; - c = *p++; - } - } - while (c != L_(']')); - if (not) - return FNM_NOMATCH; - } - break; - - case L_('+'): - case L_('@'): - case L_('!'): - if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') - { - int res; - - res = EXT (c, p, n, string_end, no_leading_period, flags); - if (res != -1) - return res; - } - goto normal_match; - - case L_('/'): - if (NO_LEADING_PERIOD (flags)) - { - if (n == string_end || c != (UCHAR) *n) - return FNM_NOMATCH; - - new_no_leading_period = true; - break; - } - /* FALLTHROUGH */ - default: - normal_match: - if (n == string_end || c != FOLD ((UCHAR) *n)) - return FNM_NOMATCH; - } - - no_leading_period = new_no_leading_period; - ++n; - } - - if (n == string_end) - return 0; - - if ((flags & FNM_LEADING_DIR) && n != string_end && *n == L_('/')) - /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */ - return 0; - - return FNM_NOMATCH; -} - - -static const CHAR * -internal_function -END (const CHAR *pattern) -{ - const CHAR *p = pattern; - - while (1) - if (*++p == L_('\0')) - /* This is an invalid pattern. */ - return pattern; - else if (*p == L_('[')) - { - /* Handle brackets special. */ - if (posixly_correct == 0) - posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1; - - /* Skip the not sign. We have to recognize it because of a possibly - following ']'. */ - if (*++p == L_('!') || (posixly_correct < 0 && *p == L_('^'))) - ++p; - /* A leading ']' is recognized as such. */ - if (*p == L_(']')) - ++p; - /* Skip over all characters of the list. */ - while (*p != L_(']')) - if (*p++ == L_('\0')) - /* This is no valid pattern. */ - return pattern; - } - else if ((*p == L_('?') || *p == L_('*') || *p == L_('+') || *p == L_('@') - || *p == L_('!')) && p[1] == L_('(')) - p = END (p + 1); - else if (*p == L_(')')) - break; - - return p + 1; -} - - -static int -internal_function -EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end, - bool no_leading_period, int flags) -{ - const CHAR *startp; - size_t level; - struct patternlist - { - struct patternlist *next; - CHAR str[1]; - } *list = NULL; - struct patternlist **lastp = &list; - size_t pattern_len = STRLEN (pattern); - const CHAR *p; - const CHAR *rs; - enum { ALLOCA_LIMIT = 8000 }; - - /* Parse the pattern. Store the individual parts in the list. */ - level = 0; - for (startp = p = pattern + 1; ; ++p) - if (*p == L_('\0')) - /* This is an invalid pattern. */ - return -1; - else if (*p == L_('[')) - { - /* Handle brackets special. */ - if (posixly_correct == 0) - posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1; - - /* Skip the not sign. We have to recognize it because of a possibly - following ']'. */ - if (*++p == L_('!') || (posixly_correct < 0 && *p == L_('^'))) - ++p; - /* A leading ']' is recognized as such. */ - if (*p == L_(']')) - ++p; - /* Skip over all characters of the list. */ - while (*p != L_(']')) - if (*p++ == L_('\0')) - /* This is no valid pattern. */ - return -1; - } - else if ((*p == L_('?') || *p == L_('*') || *p == L_('+') || *p == L_('@') - || *p == L_('!')) && p[1] == L_('(')) - /* Remember the nesting level. */ - ++level; - else if (*p == L_(')')) - { - if (level-- == 0) - { - /* This means we found the end of the pattern. */ -#define NEW_PATTERN \ - struct patternlist *newp; \ - size_t plen; \ - size_t plensize; \ - size_t newpsize; \ - \ - plen = (opt == L_('?') || opt == L_('@') \ - ? pattern_len \ - : p - startp + 1); \ - plensize = plen * sizeof (CHAR); \ - newpsize = offsetof (struct patternlist, str) + plensize; \ - if ((size_t) -1 / sizeof (CHAR) < plen \ - || newpsize < offsetof (struct patternlist, str) \ - || ALLOCA_LIMIT <= newpsize) \ - return -1; \ - newp = (struct patternlist *) alloca (newpsize); \ - *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L_('\0'); \ - newp->next = NULL; \ - *lastp = newp; \ - lastp = &newp->next - NEW_PATTERN; - break; - } - } - else if (*p == L_('|')) - { - if (level == 0) - { - NEW_PATTERN; - startp = p + 1; - } - } - assert (list != NULL); - assert (p[-1] == L_(')')); -#undef NEW_PATTERN - - switch (opt) - { - case L_('*'): - if (FCT (p, string, string_end, no_leading_period, flags) == 0) - return 0; - /* FALLTHROUGH */ - - case L_('+'): - do - { - for (rs = string; rs <= string_end; ++rs) - /* First match the prefix with the current pattern with the - current pattern. */ - if (FCT (list->str, string, rs, no_leading_period, - flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) == 0 - /* This was successful. Now match the rest with the rest - of the pattern. */ - && (FCT (p, rs, string_end, - rs == string - ? no_leading_period - : rs[-1] == '/' && NO_LEADING_PERIOD (flags), - flags & FNM_FILE_NAME - ? flags : flags & ~FNM_PERIOD) == 0 - /* This didn't work. Try the whole pattern. */ - || (rs != string - && FCT (pattern - 1, rs, string_end, - rs == string - ? no_leading_period - : rs[-1] == '/' && NO_LEADING_PERIOD (flags), - flags & FNM_FILE_NAME - ? flags : flags & ~FNM_PERIOD) == 0))) - /* It worked. Signal success. */ - return 0; - } - while ((list = list->next) != NULL); - - /* None of the patterns lead to a match. */ - return FNM_NOMATCH; - - case L_('?'): - if (FCT (p, string, string_end, no_leading_period, flags) == 0) - return 0; - /* FALLTHROUGH */ - - case L_('@'): - do - /* I cannot believe it but `strcat' is actually acceptable - here. Match the entire string with the prefix from the - pattern list and the rest of the pattern following the - pattern list. */ - if (FCT (STRCAT (list->str, p), string, string_end, - no_leading_period, - flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) == 0) - /* It worked. Signal success. */ - return 0; - while ((list = list->next) != NULL); - - /* None of the patterns lead to a match. */ - return FNM_NOMATCH; - - case L_('!'): - for (rs = string; rs <= string_end; ++rs) - { - struct patternlist *runp; - - for (runp = list; runp != NULL; runp = runp->next) - if (FCT (runp->str, string, rs, no_leading_period, - flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) == 0) - break; - - /* If none of the patterns matched see whether the rest does. */ - if (runp == NULL - && (FCT (p, rs, string_end, - rs == string - ? no_leading_period - : rs[-1] == '/' && NO_LEADING_PERIOD (flags), - flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD) - == 0)) - /* This is successful. */ - return 0; - } - - /* None of the patterns together with the rest of the pattern - lead to a match. */ - return FNM_NOMATCH; - - default: - assert (! "Invalid extended matching operator"); - break; - } - - return -1; -} - - -#undef FOLD -#undef CHAR -#undef UCHAR -#undef INT -#undef FCT -#undef EXT -#undef END -#undef MEMPCPY -#undef MEMCHR -#undef STRCOLL -#undef STRLEN -#undef STRCAT -#undef L_ -#undef BTOWC diff --git a/lib/fstatat.c b/lib/fstatat.c deleted file mode 100644 index 8b6291225ff99f660bb209dbe0b6cd719fd62ce0..0000000000000000000000000000000000000000 --- a/lib/fstatat.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Work around an fstatat bug on Solaris 9. - - Copyright (C) 2006 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> - -#define COMPILING_FSTATAT 1 -#include "openat.h" - -#include <errno.h> -#include <string.h> - -/* fstatat should always follow symbolic links that end in /, but on - Solaris 9 it doesn't if AT_SYMLINK_NOFOLLOW is specified. This is - the same problem that lstat.c addresses, so solve it in a similar - way. */ - -int -rpl_fstatat (int fd, char const *file, struct stat *st, int flag) -{ - int result = fstatat (fd, file, st, flag); - - if (result == 0 && (flag & AT_SYMLINK_NOFOLLOW) && S_ISLNK (st->st_mode) - && file[strlen (file) - 1] == '/') - { - /* FILE refers to a symbolic link and the name ends with a slash. - Get info about the link's referent. */ - result = fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW); - if (result == 0 && ! S_ISDIR (st->st_mode)) - { - /* fstatat succeeded and FILE references a non-directory. - But it was specified via a name including a trailing - slash. Fail with errno set to ENOTDIR to indicate the - contradiction. */ - errno = ENOTDIR; - return -1; - } - } - - return result; -} diff --git a/lib/getopt.c b/lib/getopt.c deleted file mode 100644 index f1e6d1f7c702a4015baa324e85fe4fa41cb803e6..0000000000000000000000000000000000000000 --- a/lib/getopt.c +++ /dev/null @@ -1,1186 +0,0 @@ -/* Getopt for GNU. - NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to drepper@gnu.org - before changing it! - Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002,2003,2004,2006,2008 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - 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/>. */ - -#ifndef _LIBC -# include <config.h> -#endif - -#include "getopt.h" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#ifdef _LIBC -# include <libintl.h> -#else -# include "gettext.h" -# define _(msgid) gettext (msgid) -#endif - -#if defined _LIBC && defined USE_IN_LIBIO -# include <wchar.h> -#endif - -#ifndef attribute_hidden -# define attribute_hidden -#endif - -/* Unlike standard Unix `getopt', functions like `getopt_long' - let the user intersperse the options with the other arguments. - - As `getopt_long' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Using `getopt' or setting the environment variable POSIXLY_CORRECT - disables permutation. - Then the application's behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt_int.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* 1003.2 says this must be 1 before any call. */ -int optind = 1; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Keep a global copy of all internal members of getopt_data. */ - -static struct _getopt_data getopt_data; - - -#if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV -extern char *getenv (); -#endif - -#ifdef _LIBC -/* Stored original parameters. - XXX This is no good solution. We should rather copy the args so - that we can compare them later. But we must not use malloc(3). */ -extern int __libc_argc; -extern char **__libc_argv; - -/* Bash 2.0 gives us an environment variable containing flags - indicating ARGV elements that should not be considered arguments. */ - -# ifdef USE_NONOPTION_FLAGS -/* Defined in getopt_init.c */ -extern char *__getopt_nonoption_flags; -# endif - -# ifdef USE_NONOPTION_FLAGS -# define SWAP_FLAGS(ch1, ch2) \ - if (d->__nonoption_flags_len > 0) \ - { \ - char __tmp = __getopt_nonoption_flags[ch1]; \ - __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ - __getopt_nonoption_flags[ch2] = __tmp; \ - } -# else -# define SWAP_FLAGS(ch1, ch2) -# endif -#else /* !_LIBC */ -# define SWAP_FLAGS(ch1, ch2) -#endif /* _LIBC */ - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -static void -exchange (char **argv, struct _getopt_data *d) -{ - int bottom = d->__first_nonopt; - int middle = d->__last_nonopt; - int top = d->optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - -#if defined _LIBC && defined USE_NONOPTION_FLAGS - /* First make sure the handling of the `__getopt_nonoption_flags' - string can work normally. Our top argument must be in the range - of the string. */ - if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len) - { - /* We must extend the array. The user plays games with us and - presents new arguments. */ - char *new_str = malloc (top + 1); - if (new_str == NULL) - d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0; - else - { - memset (__mempcpy (new_str, __getopt_nonoption_flags, - d->__nonoption_flags_max_len), - '\0', top + 1 - d->__nonoption_flags_max_len); - d->__nonoption_flags_max_len = top + 1; - __getopt_nonoption_flags = new_str; - } - } -#endif - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - SWAP_FLAGS (bottom + i, middle + i); - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - d->__first_nonopt += (d->optind - d->__last_nonopt); - d->__last_nonopt = d->optind; -} - -/* Initialize the internal data when the first call is made. */ - -static const char * -_getopt_initialize (int argc, char **argv, const char *optstring, - int posixly_correct, struct _getopt_data *d) -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - d->__first_nonopt = d->__last_nonopt = d->optind; - - d->__nextchar = NULL; - - d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - d->__ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - d->__ordering = REQUIRE_ORDER; - ++optstring; - } - else if (d->__posixly_correct) - d->__ordering = REQUIRE_ORDER; - else - d->__ordering = PERMUTE; - -#if defined _LIBC && defined USE_NONOPTION_FLAGS - if (!d->__posixly_correct - && argc == __libc_argc && argv == __libc_argv) - { - if (d->__nonoption_flags_max_len == 0) - { - if (__getopt_nonoption_flags == NULL - || __getopt_nonoption_flags[0] == '\0') - d->__nonoption_flags_max_len = -1; - else - { - const char *orig_str = __getopt_nonoption_flags; - int len = d->__nonoption_flags_max_len = strlen (orig_str); - if (d->__nonoption_flags_max_len < argc) - d->__nonoption_flags_max_len = argc; - __getopt_nonoption_flags = - (char *) malloc (d->__nonoption_flags_max_len); - if (__getopt_nonoption_flags == NULL) - d->__nonoption_flags_max_len = -1; - else - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), - '\0', d->__nonoption_flags_max_len - len); - } - } - d->__nonoption_flags_len = d->__nonoption_flags_max_len; - } - else - d->__nonoption_flags_len = 0; -#endif - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns -1. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. - - If POSIXLY_CORRECT is nonzero, behave as if the POSIXLY_CORRECT - environment variable were set. */ - -int -_getopt_internal_r (int argc, char **argv, const char *optstring, - const struct option *longopts, int *longind, - int long_only, int posixly_correct, struct _getopt_data *d) -{ - int print_errors = d->opterr; - if (optstring[0] == ':') - print_errors = 0; - - if (argc < 1) - return -1; - - d->optarg = NULL; - - if (d->optind == 0 || !d->__initialized) - { - if (d->optind == 0) - d->optind = 1; /* Don't scan ARGV[0], the program name. */ - optstring = _getopt_initialize (argc, argv, optstring, - posixly_correct, d); - d->__initialized = 1; - } - - /* Test whether ARGV[optind] points to a non-option argument. - Either it does not have option syntax, or there is an environment flag - from the shell indicating it is not an option. The later information - is only used when the used in the GNU libc. */ -#if defined _LIBC && defined USE_NONOPTION_FLAGS -# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \ - || (d->optind < d->__nonoption_flags_len \ - && __getopt_nonoption_flags[d->optind] == '1')) -#else -# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') -#endif - - if (d->__nextchar == NULL || *d->__nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ - if (d->__last_nonopt > d->optind) - d->__last_nonopt = d->optind; - if (d->__first_nonopt > d->optind) - d->__first_nonopt = d->optind; - - if (d->__ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (d->__first_nonopt != d->__last_nonopt - && d->__last_nonopt != d->optind) - exchange ((char **) argv, d); - else if (d->__last_nonopt != d->optind) - d->__first_nonopt = d->optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (d->optind < argc && NONOPTION_P) - d->optind++; - d->__last_nonopt = d->optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (d->optind != argc && !strcmp (argv[d->optind], "--")) - { - d->optind++; - - if (d->__first_nonopt != d->__last_nonopt - && d->__last_nonopt != d->optind) - exchange ((char **) argv, d); - else if (d->__first_nonopt == d->__last_nonopt) - d->__first_nonopt = d->optind; - d->__last_nonopt = argc; - - d->optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (d->optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (d->__first_nonopt != d->__last_nonopt) - d->optind = d->__first_nonopt; - return -1; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if (NONOPTION_P) - { - if (d->__ordering == REQUIRE_ORDER) - return -1; - d->optarg = argv[d->optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - d->__nextchar = (argv[d->optind] + 1 - + (longopts != NULL && argv[d->optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[d->optind][1] == '-' - || (long_only && (argv[d->optind][2] - || !strchr (optstring, argv[d->optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = -1; - int option_index; - - for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) - { - if ((unsigned int) (nameend - d->__nextchar) - == (unsigned int) strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else if (long_only - || pfound->has_arg != p->has_arg - || pfound->flag != p->flag - || pfound->val != p->val) - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - - if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[d->optind]) >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#else - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[d->optind]); -#endif - } - d->__nextchar += strlen (d->__nextchar); - d->optind++; - d->optopt = 0; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - d->optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - d->optarg = nameend + 1; - else - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - int n; -#endif - - if (argv[d->optind - 1][1] == '-') - { - /* --option */ -#if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("\ -%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); -#else - fprintf (stderr, _("\ -%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); -#endif - } - else - { - /* +option or -option */ -#if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("\ -%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[d->optind - 1][0], - pfound->name); -#else - fprintf (stderr, _("\ -%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[d->optind - 1][0], - pfound->name); -#endif - } - -#if defined _LIBC && defined USE_IN_LIBIO - if (n >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 - |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#endif - } - - d->__nextchar += strlen (d->__nextchar); - - d->optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (d->optind < argc) - d->optarg = argv[d->optind++]; - else - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - - if (__asprintf (&buf, _("\ -%s: option `%s' requires an argument\n"), - argv[0], argv[d->optind - 1]) >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 - |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#else - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[d->optind - 1]); -#endif - } - d->__nextchar += strlen (d->__nextchar); - d->optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - d->__nextchar += strlen (d->__nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[d->optind][1] == '-' - || strchr (optstring, *d->__nextchar) == NULL) - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - int n; -#endif - - if (argv[d->optind][1] == '-') - { - /* --option */ -#if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"), - argv[0], d->__nextchar); -#else - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], d->__nextchar); -#endif - } - else - { - /* +option or -option */ -#if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[d->optind][0], d->__nextchar); -#else - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[d->optind][0], d->__nextchar); -#endif - } - -#if defined _LIBC && defined USE_IN_LIBIO - if (n >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#endif - } - d->__nextchar = (char *) ""; - d->optind++; - d->optopt = 0; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *d->__nextchar++; - char *temp = strchr (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*d->__nextchar == '\0') - ++d->optind; - - if (temp == NULL || c == ':') - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - int n; -#endif - - if (d->__posixly_correct) - { - /* 1003.2 specifies the format of this message. */ -#if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("%s: illegal option -- %c\n"), - argv[0], c); -#else - fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c); -#endif - } - else - { -#if defined _LIBC && defined USE_IN_LIBIO - n = __asprintf (&buf, _("%s: invalid option -- %c\n"), - argv[0], c); -#else - fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c); -#endif - } - -#if defined _LIBC && defined USE_IN_LIBIO - if (n >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#endif - } - d->optopt = c; - return '?'; - } - /* Convenience. Treat POSIX -W foo same as long option --foo */ - if (temp[0] == 'W' && temp[1] == ';') - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = 0; - int option_index; - - /* This is an option that requires an argument. */ - if (*d->__nextchar != '\0') - { - d->optarg = d->__nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - d->optind++; - } - else if (d->optind == argc) - { - if (print_errors) - { - /* 1003.2 specifies the format of this message. */ -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - - if (__asprintf (&buf, - _("%s: option requires an argument -- %c\n"), - argv[0], c) >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#else - fprintf (stderr, _("%s: option requires an argument -- %c\n"), - argv[0], c); -#endif - } - d->optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - return c; - } - else - /* We already incremented `d->optind' once; - increment it again when taking next ARGV-elt as argument. */ - d->optarg = argv[d->optind++]; - - /* optarg is now the argument, see if it's in the - table of longopts. */ - - for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '='; - nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) - { - if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - if (ambig && !exact) - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - - if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[d->optind]) >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#else - fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[d->optind]); -#endif - } - d->__nextchar += strlen (d->__nextchar); - d->optind++; - return '?'; - } - if (pfound != NULL) - { - option_index = indfound; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - d->optarg = nameend + 1; - else - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - - if (__asprintf (&buf, _("\ -%s: option `-W %s' doesn't allow an argument\n"), - argv[0], pfound->name) >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 - |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#else - fprintf (stderr, _("\ -%s: option `-W %s' doesn't allow an argument\n"), - argv[0], pfound->name); -#endif - } - - d->__nextchar += strlen (d->__nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (d->optind < argc) - d->optarg = argv[d->optind++]; - else - { - if (print_errors) - { -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - - if (__asprintf (&buf, _("\ -%s: option `%s' requires an argument\n"), - argv[0], argv[d->optind - 1]) >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 - |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#else - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[d->optind - 1]); -#endif - } - d->__nextchar += strlen (d->__nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - d->__nextchar += strlen (d->__nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - d->__nextchar = NULL; - return 'W'; /* Let the application handle it. */ - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*d->__nextchar != '\0') - { - d->optarg = d->__nextchar; - d->optind++; - } - else - d->optarg = NULL; - d->__nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*d->__nextchar != '\0') - { - d->optarg = d->__nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - d->optind++; - } - else if (d->optind == argc) - { - if (print_errors) - { - /* 1003.2 specifies the format of this message. */ -#if defined _LIBC && defined USE_IN_LIBIO - char *buf; - - if (__asprintf (&buf, _("\ -%s: option requires an argument -- %c\n"), - argv[0], c) >= 0) - { - _IO_flockfile (stderr); - - int old_flags2 = ((_IO_FILE *) stderr)->_flags2; - ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - - __fxprintf (NULL, "%s", buf); - - ((_IO_FILE *) stderr)->_flags2 = old_flags2; - _IO_funlockfile (stderr); - - free (buf); - } -#else - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), - argv[0], c); -#endif - } - d->optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - d->optarg = argv[d->optind++]; - d->__nextchar = NULL; - } - } - return c; - } -} - -int -_getopt_internal (int argc, char **argv, const char *optstring, - const struct option *longopts, int *longind, - int long_only, int posixly_correct) -{ - int result; - - getopt_data.optind = optind; - getopt_data.opterr = opterr; - - result = _getopt_internal_r (argc, argv, optstring, longopts, longind, - long_only, posixly_correct, &getopt_data); - - optind = getopt_data.optind; - optarg = getopt_data.optarg; - optopt = getopt_data.optopt; - - return result; -} - -/* glibc gets a LSB-compliant getopt. - Standalone applications get a POSIX-compliant getopt. */ -#if _LIBC -enum { POSIXLY_CORRECT = 0 }; -#else -enum { POSIXLY_CORRECT = 1 }; -#endif - -int -getopt (int argc, char *const *argv, const char *optstring) -{ - return _getopt_internal (argc, (char **) argv, optstring, NULL, NULL, 0, - POSIXLY_CORRECT); -} - - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (int argc, char **argv) -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == -1) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/lib/imaxtostr.c b/lib/imaxtostr.c deleted file mode 100644 index 5e87ad526f50ffc3116757d5cdd0eefc85d4ae99..0000000000000000000000000000000000000000 --- a/lib/imaxtostr.c +++ /dev/null @@ -1,3 +0,0 @@ -#define inttostr imaxtostr -#define inttype intmax_t -#include "inttostr.c" diff --git a/lib/lchown.c b/lib/lchown.c deleted file mode 100644 index 07aef87394a9852d0527c95a78d98e3ebb370719..0000000000000000000000000000000000000000 --- a/lib/lchown.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Provide a stub lchown function for systems that lack it. - - Copyright (C) 1998, 1999, 2002, 2004, 2006, 2007 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 Jim Meyering */ - -#include <config.h> - -/* 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 -# define REPLACE_CHOWN 0 -#endif -#include <unistd.h> - -#include <errno.h> -#include <sys/stat.h> - -/* Some systems don't have EOPNOTSUPP. */ -#ifndef EOPNOTSUPP -# ifdef ENOTSUP -# define EOPNOTSUPP ENOTSUP -# else -/* Some systems don't have ENOTSUP either. */ -# define EOPNOTSUPP EINVAL -# endif -#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 ! 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); -} diff --git a/lib/localcharset.c b/lib/localcharset.c deleted file mode 100644 index b4998eec45cc1b15a6724a64126a69136efcb29b..0000000000000000000000000000000000000000 --- a/lib/localcharset.c +++ /dev/null @@ -1,501 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Determine a canonical name for the current locale's character encoding. - - Copyright (C) 2000-2006, 2008-2009 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by Bruno Haible <bruno@clisp.org>. */ - -#include <config.h> - -/* Specification. */ -#include "localcharset.h" - -#include <stddef.h> -#include <stdio.h> -#include <string.h> -#include <stdlib.h> - -#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET -# define DARWIN7 /* Darwin 7 or newer, i.e. MacOS X 10.3 or newer */ -#endif - -#if defined _WIN32 || defined __WIN32__ -# define WIN32_NATIVE -#endif - -#if defined __EMX__ -/* Assume EMX program runs on OS/2, even if compiled under DOS. */ -# ifndef OS2 -# define OS2 -# endif -#endif - -#if !defined WIN32_NATIVE -# if HAVE_LANGINFO_CODESET -# include <langinfo.h> -# else -# if 0 /* see comment below */ -# include <locale.h> -# endif -# endif -# ifdef __CYGWIN__ -# define WIN32_LEAN_AND_MEAN -# include <windows.h> -# endif -#elif defined WIN32_NATIVE -# define WIN32_LEAN_AND_MEAN -# include <windows.h> -#endif -#if defined OS2 -# define INCL_DOS -# include <os2.h> -#endif - -#if ENABLE_RELOCATABLE -# include "relocatable.h" -#else -# define relocate(pathname) (pathname) -#endif - -/* Get LIBDIR. */ -#ifndef LIBDIR -# include "configmake.h" -#endif - -#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ - /* Win32, Cygwin, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -#endif - -#ifndef DIRECTORY_SEPARATOR -# define DIRECTORY_SEPARATOR '/' -#endif - -#ifndef ISSLASH -# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) -#endif - -#if HAVE_DECL_GETC_UNLOCKED -# undef getc -# define getc getc_unlocked -#endif - -/* The following static variable is declared 'volatile' to avoid a - possible multithread problem in the function get_charset_aliases. If we - are running in a threaded environment, and if two threads initialize - 'charset_aliases' simultaneously, both will produce the same value, - and everything will be ok if the two assignments to 'charset_aliases' - are atomic. But I don't know what will happen if the two assignments mix. */ -#if __STDC__ != 1 -# define volatile /* empty */ -#endif -/* Pointer to the contents of the charset.alias file, if it has already been - read, else NULL. Its format is: - ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ -static const char * volatile charset_aliases; - -/* Return a pointer to the contents of the charset.alias file. */ -static const char * -get_charset_aliases (void) -{ - const char *cp; - - cp = charset_aliases; - if (cp == NULL) - { -#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) - FILE *fp; - const char *dir; - const char *base = "charset.alias"; - char *file_name; - - /* Make it possible to override the charset.alias location. This is - necessary for running the testsuite before "make install". */ - dir = getenv ("CHARSETALIASDIR"); - if (dir == NULL || dir[0] == '\0') - dir = relocate (LIBDIR); - - /* Concatenate dir and base into freshly allocated file_name. */ - { - size_t dir_len = strlen (dir); - size_t base_len = strlen (base); - int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); - file_name = (char *) malloc (dir_len + add_slash + base_len + 1); - if (file_name != NULL) - { - memcpy (file_name, dir, dir_len); - if (add_slash) - file_name[dir_len] = DIRECTORY_SEPARATOR; - memcpy (file_name + dir_len + add_slash, base, base_len + 1); - } - } - - if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) - /* Out of memory or file not found, treat it as empty. */ - cp = ""; - else - { - /* Parse the file's contents. */ - char *res_ptr = NULL; - size_t res_size = 0; - - for (;;) - { - int c; - char buf1[50+1]; - char buf2[50+1]; - size_t l1, l2; - char *old_res_ptr; - - c = getc (fp); - if (c == EOF) - break; - if (c == '\n' || c == ' ' || c == '\t') - continue; - if (c == '#') - { - /* Skip comment, to end of line. */ - do - c = getc (fp); - while (!(c == EOF || c == '\n')); - if (c == EOF) - break; - continue; - } - ungetc (c, fp); - if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) - break; - l1 = strlen (buf1); - l2 = strlen (buf2); - old_res_ptr = res_ptr; - if (res_size == 0) - { - res_size = l1 + 1 + l2 + 1; - res_ptr = (char *) malloc (res_size + 1); - } - else - { - res_size += l1 + 1 + l2 + 1; - res_ptr = (char *) realloc (res_ptr, res_size + 1); - } - if (res_ptr == NULL) - { - /* Out of memory. */ - res_size = 0; - if (old_res_ptr != NULL) - free (old_res_ptr); - break; - } - strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); - strcpy (res_ptr + res_size - (l2 + 1), buf2); - } - fclose (fp); - if (res_size == 0) - cp = ""; - else - { - *(res_ptr + res_size) = '\0'; - cp = res_ptr; - } - } - - if (file_name != NULL) - free (file_name); - -#else - -# if defined DARWIN7 - /* To avoid the trouble of installing a file that is shared by many - GNU packages -- many packaging systems have problems with this --, - simply inline the aliases here. */ - cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" - "ISO8859-2" "\0" "ISO-8859-2" "\0" - "ISO8859-4" "\0" "ISO-8859-4" "\0" - "ISO8859-5" "\0" "ISO-8859-5" "\0" - "ISO8859-7" "\0" "ISO-8859-7" "\0" - "ISO8859-9" "\0" "ISO-8859-9" "\0" - "ISO8859-13" "\0" "ISO-8859-13" "\0" - "ISO8859-15" "\0" "ISO-8859-15" "\0" - "KOI8-R" "\0" "KOI8-R" "\0" - "KOI8-U" "\0" "KOI8-U" "\0" - "CP866" "\0" "CP866" "\0" - "CP949" "\0" "CP949" "\0" - "CP1131" "\0" "CP1131" "\0" - "CP1251" "\0" "CP1251" "\0" - "eucCN" "\0" "GB2312" "\0" - "GB2312" "\0" "GB2312" "\0" - "eucJP" "\0" "EUC-JP" "\0" - "eucKR" "\0" "EUC-KR" "\0" - "Big5" "\0" "BIG5" "\0" - "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" - "GBK" "\0" "GBK" "\0" - "GB18030" "\0" "GB18030" "\0" - "SJIS" "\0" "SHIFT_JIS" "\0" - "ARMSCII-8" "\0" "ARMSCII-8" "\0" - "PT154" "\0" "PT154" "\0" - /*"ISCII-DEV" "\0" "?" "\0"*/ - "*" "\0" "UTF-8" "\0"; -# endif - -# if defined VMS - /* To avoid the troubles of an extra file charset.alias_vms in the - sources of many GNU packages, simply inline the aliases here. */ - /* The list of encodings is taken from the OpenVMS 7.3-1 documentation - "Compaq C Run-Time Library Reference Manual for OpenVMS systems" - section 10.7 "Handling Different Character Sets". */ - cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" - "ISO8859-2" "\0" "ISO-8859-2" "\0" - "ISO8859-5" "\0" "ISO-8859-5" "\0" - "ISO8859-7" "\0" "ISO-8859-7" "\0" - "ISO8859-8" "\0" "ISO-8859-8" "\0" - "ISO8859-9" "\0" "ISO-8859-9" "\0" - /* Japanese */ - "eucJP" "\0" "EUC-JP" "\0" - "SJIS" "\0" "SHIFT_JIS" "\0" - "DECKANJI" "\0" "DEC-KANJI" "\0" - "SDECKANJI" "\0" "EUC-JP" "\0" - /* Chinese */ - "eucTW" "\0" "EUC-TW" "\0" - "DECHANYU" "\0" "DEC-HANYU" "\0" - "DECHANZI" "\0" "GB2312" "\0" - /* Korean */ - "DECKOREAN" "\0" "EUC-KR" "\0"; -# endif - -# if defined WIN32_NATIVE || defined __CYGWIN__ - /* To avoid the troubles of installing a separate file in the same - directory as the DLL and of retrieving the DLL's directory at - runtime, simply inline the aliases here. */ - - cp = "CP936" "\0" "GBK" "\0" - "CP1361" "\0" "JOHAB" "\0" - "CP20127" "\0" "ASCII" "\0" - "CP20866" "\0" "KOI8-R" "\0" - "CP20936" "\0" "GB2312" "\0" - "CP21866" "\0" "KOI8-RU" "\0" - "CP28591" "\0" "ISO-8859-1" "\0" - "CP28592" "\0" "ISO-8859-2" "\0" - "CP28593" "\0" "ISO-8859-3" "\0" - "CP28594" "\0" "ISO-8859-4" "\0" - "CP28595" "\0" "ISO-8859-5" "\0" - "CP28596" "\0" "ISO-8859-6" "\0" - "CP28597" "\0" "ISO-8859-7" "\0" - "CP28598" "\0" "ISO-8859-8" "\0" - "CP28599" "\0" "ISO-8859-9" "\0" - "CP28605" "\0" "ISO-8859-15" "\0" - "CP38598" "\0" "ISO-8859-8" "\0" - "CP51932" "\0" "EUC-JP" "\0" - "CP51936" "\0" "GB2312" "\0" - "CP51949" "\0" "EUC-KR" "\0" - "CP51950" "\0" "EUC-TW" "\0" - "CP54936" "\0" "GB18030" "\0" - "CP65001" "\0" "UTF-8" "\0"; -# endif -#endif - - charset_aliases = cp; - } - - return cp; -} - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. - The result must not be freed; it is statically allocated. - If the canonical name cannot be determined, the result is a non-canonical - name. */ - -#ifdef STATIC -STATIC -#endif -const char * -locale_charset (void) -{ - const char *codeset; - const char *aliases; - -#if !(defined WIN32_NATIVE || defined OS2) - -# if HAVE_LANGINFO_CODESET - - /* Most systems support nl_langinfo (CODESET) nowadays. */ - codeset = nl_langinfo (CODESET); - -# ifdef __CYGWIN__ - /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always - returns "US-ASCII". As long as this is not fixed, return the suffix - of the locale name from the environment variables (if present) or - the codepage as a number. */ - if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) - { - const char *locale; - static char buf[2 + 10 + 1]; - - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - if (locale != NULL && locale[0] != '\0') - { - /* If the locale name contains an encoding after the dot, return - it. */ - const char *dot = strchr (locale, '.'); - - if (dot != NULL) - { - const char *modifier; - - dot++; - /* Look for the possible @... trailer and remove it, if any. */ - modifier = strchr (dot, '@'); - if (modifier == NULL) - return dot; - if (modifier - dot < sizeof (buf)) - { - memcpy (buf, dot, modifier - dot); - buf [modifier - dot] = '\0'; - return buf; - } - } - } - - /* Woe32 has a function returning the locale's codepage as a number. */ - sprintf (buf, "CP%u", GetACP ()); - codeset = buf; - } -# endif - -# else - - /* On old systems which lack it, use setlocale or getenv. */ - const char *locale = NULL; - - /* But most old systems don't have a complete set of locales. Some - (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't - use setlocale here; it would return "C" when it doesn't support the - locale name the user has set. */ -# if 0 - locale = setlocale (LC_CTYPE, NULL); -# endif - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - } - - /* On some old systems, one used to set locale = "iso8859_1". On others, - you set it to "language_COUNTRY.charset". In any case, we resolve it - through the charset.alias file. */ - codeset = locale; - -# endif - -#elif defined WIN32_NATIVE - - static char buf[2 + 10 + 1]; - - /* Woe32 has a function returning the locale's codepage as a number. */ - sprintf (buf, "CP%u", GetACP ()); - codeset = buf; - -#elif defined OS2 - - const char *locale; - static char buf[2 + 10 + 1]; - ULONG cp[3]; - ULONG cplen; - - /* Allow user to override the codeset, as set in the operating system, - with standard language environment variables. */ - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - if (locale != NULL && locale[0] != '\0') - { - /* If the locale name contains an encoding after the dot, return it. */ - const char *dot = strchr (locale, '.'); - - if (dot != NULL) - { - const char *modifier; - - dot++; - /* Look for the possible @... trailer and remove it, if any. */ - modifier = strchr (dot, '@'); - if (modifier == NULL) - return dot; - if (modifier - dot < sizeof (buf)) - { - memcpy (buf, dot, modifier - dot); - buf [modifier - dot] = '\0'; - return buf; - } - } - - /* Resolve through the charset.alias file. */ - codeset = locale; - } - else - { - /* OS/2 has a function returning the locale's codepage as a number. */ - if (DosQueryCp (sizeof (cp), cp, &cplen)) - codeset = ""; - else - { - sprintf (buf, "CP%u", cp[0]); - codeset = buf; - } - } - -#endif - - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; - - /* Resolve alias. */ - for (aliases = get_charset_aliases (); - *aliases != '\0'; - aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) - if (strcmp (codeset, aliases) == 0 - || (aliases[0] == '*' && aliases[1] == '\0')) - { - codeset = aliases + strlen (aliases) + 1; - break; - } - - /* Don't return an empty string. GNU libc and GNU libiconv interpret - the empty string as denoting "the locale's character encoding", - thus GNU libiconv would call this function a second time. */ - if (codeset[0] == '\0') - codeset = "ASCII"; - - return codeset; -} diff --git a/lib/mbrtowc.c b/lib/mbrtowc.c deleted file mode 100644 index ba0397344b7de220dbff6341a0116308dc738897..0000000000000000000000000000000000000000 --- a/lib/mbrtowc.c +++ /dev/null @@ -1,386 +0,0 @@ -/* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2009 Free Software Foundation, Inc. - Written by Bruno Haible <bruno@clisp.org>, 2008. - - 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/>. */ - -#include <config.h> - -/* Specification. */ -#include <wchar.h> - -#if GNULIB_defined_mbstate_t -/* Implement mbrtowc() on top of mbtowc(). */ - -# include <errno.h> -# include <stdlib.h> - -# include "localcharset.h" -# include "streq.h" -# include "verify.h" - - -verify (sizeof (mbstate_t) >= 4); - -static char internal_state[4]; - -size_t -mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) -{ - char *pstate = (char *)ps; - - if (pstate == NULL) - pstate = internal_state; - - if (s == NULL) - { - pwc = NULL; - s = ""; - n = 1; - } - - if (n == 0) - return (size_t)(-2); - - /* Here n > 0. */ - { - size_t nstate = pstate[0]; - char buf[4]; - const char *p; - size_t m; - - switch (nstate) - { - case 0: - p = s; - m = n; - break; - case 3: - buf[2] = pstate[3]; - /*FALLTHROUGH*/ - case 2: - buf[1] = pstate[2]; - /*FALLTHROUGH*/ - case 1: - buf[0] = pstate[1]; - p = buf; - m = nstate; - buf[m++] = s[0]; - if (n >= 2 && m < 4) - { - buf[m++] = s[1]; - if (n >= 3 && m < 4) - buf[m++] = s[2]; - } - break; - default: - errno = EINVAL; - return (size_t)(-1); - } - - /* Here 0 < m ≤ 4. */ - -# if __GLIBC__ - /* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */ - mbtowc (NULL, NULL, 0); -# endif - { - int res = mbtowc (pwc, p, m); - - if (res >= 0) - { - if (pwc != NULL && ((*pwc == 0) != (res == 0))) - abort (); - if (nstate >= (res > 0 ? res : 1)) - abort (); - res -= nstate; - pstate[0] = 0; - return res; - } - - /* mbtowc does not distinguish between invalid and incomplete multibyte - sequences. But mbrtowc needs to make this distinction. - There are two possible approaches: - - Use iconv() and its return value. - - Use built-in knowledge about the possible encodings. - Given the low quality of implementation of iconv() on the systems that - lack mbrtowc(), we use the second approach. - The possible encodings are: - - 8-bit encodings, - - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - - UTF-8. - Use specialized code for each. */ - if (m >= 4 || m >= MB_CUR_MAX) - goto invalid; - /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ - { - const char *encoding = locale_charset (); - - if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) - { - /* Cf. unistr/u8-mblen.c. */ - unsigned char c = (unsigned char) p[0]; - - if (c >= 0xc2) - { - if (c < 0xe0) - { - if (m == 1) - goto incomplete; - } - else if (c < 0xf0) - { - if (m == 1) - goto incomplete; - if (m == 2) - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xe1 || c2 >= 0xa0) - && (c != 0xed || c2 < 0xa0)) - goto incomplete; - } - } - else if (c <= 0xf4) - { - if (m == 1) - goto incomplete; - else /* m == 2 || m == 3 */ - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xf1 || c2 >= 0x90) - && (c < 0xf4 || (c == 0xf4 && c2 < 0x90))) - { - if (m == 2) - goto incomplete; - else /* m == 3 */ - { - unsigned char c3 = (unsigned char) p[2]; - - if ((c3 ^ 0x80) < 0x40) - goto incomplete; - } - } - } - } - } - goto invalid; - } - - /* As a reference for this code, you can use the GNU libiconv - implementation. Look for uses of the RET_TOOFEW macro. */ - - if (STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) - goto incomplete; - } - if (m == 2) - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8f) - { - unsigned char c2 = (unsigned char) p[1]; - - if (c2 >= 0xa1 && c2 < 0xff) - goto incomplete; - } - } - goto invalid; - } - if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) - || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0xa1 && c < 0xff) - goto incomplete; - } - goto invalid; - } - if (STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8e) - goto incomplete; - } - goto invalid; - } - if (STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0x90 && c <= 0xe3) - { - unsigned char c2 = (unsigned char) p[1]; - - if (c2 >= 0x30 && c2 <= 0x39) - { - if (m == 2) - goto incomplete; - else /* m == 3 */ - { - unsigned char c3 = (unsigned char) p[2]; - - if (c3 >= 0x81 && c3 <= 0xfe) - goto incomplete; - } - } - } - } - goto invalid; - } - if (STREQ (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) - || (c >= 0xf0 && c <= 0xf9)) - goto incomplete; - } - goto invalid; - } - - /* An unknown multibyte encoding. */ - goto incomplete; - } - - incomplete: - { - size_t k = nstate; - /* Here 0 <= k < m < 4. */ - pstate[++k] = s[0]; - if (k < m) - { - pstate[++k] = s[1]; - if (k < m) - pstate[++k] = s[2]; - } - if (k != m) - abort (); - } - pstate[0] = m; - return (size_t)(-2); - - invalid: - errno = EILSEQ; - /* The conversion state is undefined, says POSIX. */ - return (size_t)(-1); - } - } -} - -#else -/* Override the system's mbrtowc() function. */ - -# undef mbrtowc - -size_t -rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) -{ -# if MBRTOWC_NULL_ARG_BUG || MBRTOWC_RETVAL_BUG - if (s == NULL) - { - pwc = NULL; - s = ""; - n = 1; - } -# endif - -# if MBRTOWC_RETVAL_BUG - { - static mbstate_t internal_state; - - /* Override mbrtowc's internal state. We can not call mbsinit() on the - hidden internal state, but we can call it on our variable. */ - if (ps == NULL) - ps = &internal_state; - - if (!mbsinit (ps)) - { - /* Parse the rest of the multibyte character byte for byte. */ - size_t count = 0; - for (; n > 0; s++, n--) - { - wchar_t wc; - size_t ret = mbrtowc (&wc, s, 1, ps); - - if (ret == (size_t)(-1)) - return (size_t)(-1); - count++; - if (ret != (size_t)(-2)) - { - /* The multibyte character has been completed. */ - if (pwc != NULL) - *pwc = wc; - return (wc == 0 ? 0 : count); - } - } - return (size_t)(-2); - } - } -# endif - -# if MBRTOWC_NUL_RETVAL_BUG - { - wchar_t wc; - size_t ret = mbrtowc (&wc, s, n, ps); - - if (ret != (size_t)(-1) && ret != (size_t)(-2)) - { - if (pwc != NULL) - *pwc = wc; - if (wc == 0) - ret = 0; - } - return ret; - } -# else - return mbrtowc (pwc, s, n, ps); -# endif -} - -#endif diff --git a/lib/obstack.h b/lib/obstack.h deleted file mode 100644 index 1bf4b2f1a666d07ee71dd7ac5026c32d94add895..0000000000000000000000000000000000000000 --- a/lib/obstack.h +++ /dev/null @@ -1,512 +0,0 @@ -/* obstack.h - object stack macros - Copyright (C) 1988-1994,1996-1999,2003,2004,2005,2006 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - 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/>. */ - -/* Summary: - -All the apparent functions defined here are macros. The idea -is that you would use these pre-tested macros to solve a -very specific set of problems, and they would run fast. -Caution: no side-effects in arguments please!! They may be -evaluated MANY times!! - -These macros operate a stack of objects. Each object starts life -small, and may grow to maturity. (Consider building a word syllable -by syllable.) An object can move while it is growing. Once it has -been "finished" it never changes address again. So the "top of the -stack" is typically an immature growing object, while the rest of the -stack is of mature, fixed size and fixed address objects. - -These routines grab large chunks of memory, using a function you -supply, called `obstack_chunk_alloc'. On occasion, they free chunks, -by calling `obstack_chunk_free'. You must define them and declare -them before using any obstack macros. - -Each independent stack is represented by a `struct obstack'. -Each of the obstack macros expects a pointer to such a structure -as the first argument. - -One motivation for this package is the problem of growing char strings -in symbol tables. Unless you are "fascist pig with a read-only mind" ---Gosper's immortal quote from HAKMEM item 154, out of context--you -would not like to put any arbitrary upper limit on the length of your -symbols. - -In practice this often means you will build many short symbols and a -few long symbols. At the time you are reading a symbol you don't know -how long it is. One traditional method is to read a symbol into a -buffer, realloc()ating the buffer every time you try to read a symbol -that is longer than the buffer. This is beaut, but you still will -want to copy the symbol from the buffer to a more permanent -symbol-table entry say about half the time. - -With obstacks, you can work differently. Use one obstack for all symbol -names. As you read a symbol, grow the name in the obstack gradually. -When the name is complete, finalize it. Then, if the symbol exists already, -free the newly read name. - -The way we do this is to take a large chunk, allocating memory from -low addresses. When you want to build a symbol in the chunk you just -add chars above the current "high water mark" in the chunk. When you -have finished adding chars, because you got to the end of the symbol, -you know how long the chars are, and you can create a new object. -Mostly the chars will not burst over the highest address of the chunk, -because you would typically expect a chunk to be (say) 100 times as -long as an average object. - -In case that isn't clear, when we have enough chars to make up -the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed) -so we just point to it where it lies. No moving of chars is -needed and this is the second win: potentially long strings need -never be explicitly shuffled. Once an object is formed, it does not -change its address during its lifetime. - -When the chars burst over a chunk boundary, we allocate a larger -chunk, and then copy the partly formed object from the end of the old -chunk to the beginning of the new larger chunk. We then carry on -accreting characters to the end of the object as we normally would. - -A special macro is provided to add a single char at a time to a -growing object. This allows the use of register variables, which -break the ordinary 'growth' macro. - -Summary: - We allocate large chunks. - We carve out one object at a time from the current chunk. - Once carved, an object never moves. - We are free to append data of any size to the currently - growing object. - Exactly one object is growing in an obstack at any one time. - You can run one obstack per control block. - You may have as many control blocks as you dare. - Because of the way we do it, you can `unwind' an obstack - back to a previous state. (You may remove objects much - as you would with a stack.) -*/ - - -/* Don't do the contents of this file more than once. */ - -#ifndef _OBSTACK_H -#define _OBSTACK_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -/* We need the type of a pointer subtraction. If __PTRDIFF_TYPE__ is - defined, as with GNU C, use that; that way we don't pollute the - namespace with <stddef.h>'s symbols. Otherwise, include <stddef.h> - and use ptrdiff_t. */ - -#ifdef __PTRDIFF_TYPE__ -# define PTR_INT_TYPE __PTRDIFF_TYPE__ -#else -# include <stddef.h> -# define PTR_INT_TYPE ptrdiff_t -#endif - -/* If B is the base of an object addressed by P, return the result of - aligning P to the next multiple of A + 1. B and P must be of type - char *. A + 1 must be a power of 2. */ - -#define __BPTR_ALIGN(B, P, A) ((B) + (((P) - (B) + (A)) & ~(A))) - -/* Similiar to _BPTR_ALIGN (B, P, A), except optimize the common case - where pointers can be converted to integers, aligned as integers, - and converted back again. If PTR_INT_TYPE is narrower than a - pointer (e.g., the AS/400), play it safe and compute the alignment - relative to B. Otherwise, use the faster strategy of computing the - alignment relative to 0. */ - -#define __PTR_ALIGN(B, P, A) \ - __BPTR_ALIGN (sizeof (PTR_INT_TYPE) < sizeof (void *) ? (B) : (char *) 0, \ - P, A) - -#include <string.h> - -struct _obstack_chunk /* Lives at front of each chunk. */ -{ - char *limit; /* 1 past end of this chunk */ - struct _obstack_chunk *prev; /* address of prior chunk or NULL */ - char contents[4]; /* objects begin here */ -}; - -struct obstack /* control current object in current chunk */ -{ - long chunk_size; /* preferred size to allocate chunks in */ - struct _obstack_chunk *chunk; /* address of current struct obstack_chunk */ - char *object_base; /* address of object we are building */ - char *next_free; /* where to add next char to current object */ - char *chunk_limit; /* address of char after current chunk */ - union - { - PTR_INT_TYPE tempint; - void *tempptr; - } temp; /* Temporary for some macros. */ - int alignment_mask; /* Mask of alignment for each object. */ - /* These prototypes vary based on `use_extra_arg', and we use - casts to the prototypeless function type in all assignments, - but having prototypes here quiets -Wstrict-prototypes. */ - struct _obstack_chunk *(*chunkfun) (void *, long); - void (*freefun) (void *, struct _obstack_chunk *); - void *extra_arg; /* first arg for chunk alloc/dealloc funcs */ - unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */ - unsigned maybe_empty_object:1;/* There is a possibility that the current - chunk contains a zero-length object. This - prevents freeing the chunk if we allocate - a bigger chunk to replace it. */ - unsigned alloc_failed:1; /* No longer used, as we now call the failed - handler on error, but retained for binary - compatibility. */ -}; - -/* Declare the external functions we use; they are in obstack.c. */ - -extern void _obstack_newchunk (struct obstack *, int); -extern int _obstack_begin (struct obstack *, int, int, - void *(*) (long), void (*) (void *)); -extern int _obstack_begin_1 (struct obstack *, int, int, - void *(*) (void *, long), - void (*) (void *, void *), void *); -extern int _obstack_memory_used (struct obstack *); - -/* The default name of the function for freeing a chunk is 'obstack_free', - but gnulib users can override this by defining '__obstack_free'. */ -#ifndef __obstack_free -# define __obstack_free obstack_free -#endif -extern void __obstack_free (struct obstack *obstack, void *block); - - -/* Error handler called when `obstack_chunk_alloc' failed to allocate - more memory. This can be set to a user defined function which - should either abort gracefully or use longjump - but shouldn't - return. The default action is to print a message and abort. */ -extern void (*obstack_alloc_failed_handler) (void); - -/* Exit value used when `print_and_abort' is used. */ -extern int obstack_exit_failure; - -/* Pointer to beginning of object being allocated or to be allocated next. - Note that this might not be the final address of the object - because a new chunk might be needed to hold the final size. */ - -#define obstack_base(h) ((void *) (h)->object_base) - -/* Size for allocating ordinary chunks. */ - -#define obstack_chunk_size(h) ((h)->chunk_size) - -/* Pointer to next byte not yet allocated in current chunk. */ - -#define obstack_next_free(h) ((h)->next_free) - -/* Mask specifying low bits that should be clear in address of an object. */ - -#define obstack_alignment_mask(h) ((h)->alignment_mask) - -/* To prevent prototype warnings provide complete argument list. */ -#define obstack_init(h) \ - _obstack_begin ((h), 0, 0, \ - (void *(*) (long)) obstack_chunk_alloc, \ - (void (*) (void *)) obstack_chunk_free) - -#define obstack_begin(h, size) \ - _obstack_begin ((h), (size), 0, \ - (void *(*) (long)) obstack_chunk_alloc, \ - (void (*) (void *)) obstack_chunk_free) - -#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ - _obstack_begin ((h), (size), (alignment), \ - (void *(*) (long)) (chunkfun), \ - (void (*) (void *)) (freefun)) - -#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ - _obstack_begin_1 ((h), (size), (alignment), \ - (void *(*) (void *, long)) (chunkfun), \ - (void (*) (void *, void *)) (freefun), (arg)) - -#define obstack_chunkfun(h, newchunkfun) \ - ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun)) - -#define obstack_freefun(h, newfreefun) \ - ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun)) - -#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar)) - -#define obstack_blank_fast(h,n) ((h)->next_free += (n)) - -#define obstack_memory_used(h) _obstack_memory_used (h) - -#if defined __GNUC__ && defined __STDC__ && __STDC__ -/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and - does not implement __extension__. But that compiler doesn't define - __GNUC_MINOR__. */ -# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) -# define __extension__ -# endif - -/* For GNU C, if not -traditional, - we can define these macros to compute all args only once - without using a global variable. - Also, we can avoid using the `temp' slot, to make faster code. */ - -# define obstack_object_size(OBSTACK) \ - __extension__ \ - ({ struct obstack const *__o = (OBSTACK); \ - (unsigned) (__o->next_free - __o->object_base); }) - -# define obstack_room(OBSTACK) \ - __extension__ \ - ({ struct obstack const *__o = (OBSTACK); \ - (unsigned) (__o->chunk_limit - __o->next_free); }) - -# define obstack_make_room(OBSTACK,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->chunk_limit - __o->next_free < __len) \ - _obstack_newchunk (__o, __len); \ - (void) 0; }) - -# define obstack_empty_p(OBSTACK) \ - __extension__ \ - ({ struct obstack const *__o = (OBSTACK); \ - (__o->chunk->prev == 0 \ - && __o->next_free == __PTR_ALIGN ((char *) __o->chunk, \ - __o->chunk->contents, \ - __o->alignment_mask)); }) - -# define obstack_grow(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->next_free + __len > __o->chunk_limit) \ - _obstack_newchunk (__o, __len); \ - memcpy (__o->next_free, where, __len); \ - __o->next_free += __len; \ - (void) 0; }) - -# define obstack_grow0(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->next_free + __len + 1 > __o->chunk_limit) \ - _obstack_newchunk (__o, __len + 1); \ - memcpy (__o->next_free, where, __len); \ - __o->next_free += __len; \ - *(__o->next_free)++ = 0; \ - (void) 0; }) - -# define obstack_1grow(OBSTACK,datum) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - if (__o->next_free + 1 > __o->chunk_limit) \ - _obstack_newchunk (__o, 1); \ - obstack_1grow_fast (__o, datum); \ - (void) 0; }) - -/* These assume that the obstack alignment is good enough for pointers - or ints, and that the data added so far to the current object - shares that much alignment. */ - -# define obstack_ptr_grow(OBSTACK,datum) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - if (__o->next_free + sizeof (void *) > __o->chunk_limit) \ - _obstack_newchunk (__o, sizeof (void *)); \ - obstack_ptr_grow_fast (__o, datum); }) \ - -# define obstack_int_grow(OBSTACK,datum) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - if (__o->next_free + sizeof (int) > __o->chunk_limit) \ - _obstack_newchunk (__o, sizeof (int)); \ - obstack_int_grow_fast (__o, datum); }) - -# define obstack_ptr_grow_fast(OBSTACK,aptr) \ -__extension__ \ -({ struct obstack *__o1 = (OBSTACK); \ - *(const void **) __o1->next_free = (aptr); \ - __o1->next_free += sizeof (const void *); \ - (void) 0; }) - -# define obstack_int_grow_fast(OBSTACK,aint) \ -__extension__ \ -({ struct obstack *__o1 = (OBSTACK); \ - *(int *) __o1->next_free = (aint); \ - __o1->next_free += sizeof (int); \ - (void) 0; }) - -# define obstack_blank(OBSTACK,length) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - int __len = (length); \ - if (__o->chunk_limit - __o->next_free < __len) \ - _obstack_newchunk (__o, __len); \ - obstack_blank_fast (__o, __len); \ - (void) 0; }) - -# define obstack_alloc(OBSTACK,length) \ -__extension__ \ -({ struct obstack *__h = (OBSTACK); \ - obstack_blank (__h, (length)); \ - obstack_finish (__h); }) - -# define obstack_copy(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__h = (OBSTACK); \ - obstack_grow (__h, (where), (length)); \ - obstack_finish (__h); }) - -# define obstack_copy0(OBSTACK,where,length) \ -__extension__ \ -({ struct obstack *__h = (OBSTACK); \ - obstack_grow0 (__h, (where), (length)); \ - obstack_finish (__h); }) - -/* The local variable is named __o1 to avoid a name conflict - when obstack_blank is called. */ -# define obstack_finish(OBSTACK) \ -__extension__ \ -({ struct obstack *__o1 = (OBSTACK); \ - void *__value = (void *) __o1->object_base; \ - if (__o1->next_free == __value) \ - __o1->maybe_empty_object = 1; \ - __o1->next_free \ - = __PTR_ALIGN (__o1->object_base, __o1->next_free, \ - __o1->alignment_mask); \ - if (__o1->next_free - (char *)__o1->chunk \ - > __o1->chunk_limit - (char *)__o1->chunk) \ - __o1->next_free = __o1->chunk_limit; \ - __o1->object_base = __o1->next_free; \ - __value; }) - -# define obstack_free(OBSTACK, OBJ) \ -__extension__ \ -({ struct obstack *__o = (OBSTACK); \ - void *__obj = (OBJ); \ - if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \ - __o->next_free = __o->object_base = (char *)__obj; \ - else (__obstack_free) (__o, __obj); }) - -#else /* not __GNUC__ or not __STDC__ */ - -# define obstack_object_size(h) \ - (unsigned) ((h)->next_free - (h)->object_base) - -# define obstack_room(h) \ - (unsigned) ((h)->chunk_limit - (h)->next_free) - -# define obstack_empty_p(h) \ - ((h)->chunk->prev == 0 \ - && (h)->next_free == __PTR_ALIGN ((char *) (h)->chunk, \ - (h)->chunk->contents, \ - (h)->alignment_mask)) - -/* Note that the call to _obstack_newchunk is enclosed in (..., 0) - so that we can avoid having void expressions - in the arms of the conditional expression. - Casting the third operand to void was tried before, - but some compilers won't accept it. */ - -# define obstack_make_room(h,length) \ -( (h)->temp.tempint = (length), \ - (((h)->next_free + (h)->temp.tempint > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0)) - -# define obstack_grow(h,where,length) \ -( (h)->temp.tempint = (length), \ - (((h)->next_free + (h)->temp.tempint > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0), \ - memcpy ((h)->next_free, where, (h)->temp.tempint), \ - (h)->next_free += (h)->temp.tempint) - -# define obstack_grow0(h,where,length) \ -( (h)->temp.tempint = (length), \ - (((h)->next_free + (h)->temp.tempint + 1 > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), (h)->temp.tempint + 1), 0) : 0), \ - memcpy ((h)->next_free, where, (h)->temp.tempint), \ - (h)->next_free += (h)->temp.tempint, \ - *((h)->next_free)++ = 0) - -# define obstack_1grow(h,datum) \ -( (((h)->next_free + 1 > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), 1), 0) : 0), \ - obstack_1grow_fast (h, datum)) - -# define obstack_ptr_grow(h,datum) \ -( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ - obstack_ptr_grow_fast (h, datum)) - -# define obstack_int_grow(h,datum) \ -( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \ - ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ - obstack_int_grow_fast (h, datum)) - -# define obstack_ptr_grow_fast(h,aptr) \ - (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr)) - -# define obstack_int_grow_fast(h,aint) \ - (((int *) ((h)->next_free += sizeof (int)))[-1] = (aint)) - -# define obstack_blank(h,length) \ -( (h)->temp.tempint = (length), \ - (((h)->chunk_limit - (h)->next_free < (h)->temp.tempint) \ - ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0), \ - obstack_blank_fast (h, (h)->temp.tempint)) - -# define obstack_alloc(h,length) \ - (obstack_blank ((h), (length)), obstack_finish ((h))) - -# define obstack_copy(h,where,length) \ - (obstack_grow ((h), (where), (length)), obstack_finish ((h))) - -# define obstack_copy0(h,where,length) \ - (obstack_grow0 ((h), (where), (length)), obstack_finish ((h))) - -# define obstack_finish(h) \ -( ((h)->next_free == (h)->object_base \ - ? (((h)->maybe_empty_object = 1), 0) \ - : 0), \ - (h)->temp.tempptr = (h)->object_base, \ - (h)->next_free \ - = __PTR_ALIGN ((h)->object_base, (h)->next_free, \ - (h)->alignment_mask), \ - (((h)->next_free - (char *) (h)->chunk \ - > (h)->chunk_limit - (char *) (h)->chunk) \ - ? ((h)->next_free = (h)->chunk_limit) : 0), \ - (h)->object_base = (h)->next_free, \ - (h)->temp.tempptr) - -# define obstack_free(h,obj) \ -( (h)->temp.tempint = (char *) (obj) - (char *) (h)->chunk, \ - ((((h)->temp.tempint > 0 \ - && (h)->temp.tempint < (h)->chunk_limit - (char *) (h)->chunk)) \ - ? (int) ((h)->next_free = (h)->object_base \ - = (h)->temp.tempint + (char *) (h)->chunk) \ - : (((__obstack_free) ((h), (h)->temp.tempint + (char *) (h)->chunk), 0), 0))) - -#endif /* not __GNUC__ or not __STDC__ */ - -#ifdef __cplusplus -} /* C++ */ -#endif - -#endif /* obstack.h */ diff --git a/lib/offtostr.c b/lib/offtostr.c deleted file mode 100644 index 45196e28a4861815e4f07408bac6eede433a1ad3..0000000000000000000000000000000000000000 --- a/lib/offtostr.c +++ /dev/null @@ -1,3 +0,0 @@ -#define inttostr offtostr -#define inttype off_t -#include "inttostr.c" diff --git a/lib/open-safer.c b/lib/open-safer.c deleted file mode 100644 index 15bf6a65d01dda9e563ffc7aed925b54ac7ce0ef..0000000000000000000000000000000000000000 --- a/lib/open-safer.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Invoke open, but avoid some glitches. - - Copyright (C) 2005, 2006, 2008 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. */ - -#include <config.h> - -#include "fcntl-safer.h" - -#include <fcntl.h> -#include <stdarg.h> -#include "unistd-safer.h" - -int -open_safer (char const *file, int flags, ...) -{ - mode_t mode = 0; - - if (flags & O_CREAT) - { - va_list ap; - va_start (ap, flags); - - /* Assume mode_t promotes to int if and only if it is smaller. - This assumption isn't guaranteed by the C standard, but we - don't know of any real-world counterexamples. */ - if (sizeof (mode_t) < sizeof (int)) - mode = va_arg (ap, int); - else - mode = va_arg (ap, mode_t); - - va_end (ap); - } - - return fd_safer (open (file, flags, mode)); -} diff --git a/lib/openat.c b/lib/openat.c deleted file mode 100644 index 0c32672215ceadb74bb7e3379efb645bfc58cb6f..0000000000000000000000000000000000000000 --- a/lib/openat.c +++ /dev/null @@ -1,268 +0,0 @@ -/* provide a replacement openat function - Copyright (C) 2004, 2005, 2006, 2007, 2008 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 Jim Meyering */ - -#include <config.h> - -#include "openat.h" - -#include <stdarg.h> -#include <stddef.h> -#include <sys/stat.h> - -#include "dirname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */ -#include "fcntl--.h" -#include "openat-priv.h" -#include "save-cwd.h" - -/* Replacement for Solaris' openat function. - <http://www.google.com/search?q=openat+site:docs.sun.com> - First, try to simulate it via open ("/proc/self/fd/FD/FILE"). - Failing that, simulate it by doing save_cwd/fchdir/open/restore_cwd. - If either the save_cwd or the restore_cwd fails (relatively unlikely), - then give a diagnostic and exit nonzero. - Otherwise, upon failure, set errno and return -1, as openat does. - Upon successful completion, return a file descriptor. */ -int -openat (int fd, char const *file, int flags, ...) -{ - mode_t mode = 0; - - if (flags & O_CREAT) - { - va_list arg; - va_start (arg, flags); - - /* If mode_t is narrower than int, use the promoted type (int), - not mode_t. Use sizeof to guess whether mode_t is narrower; - we don't know of any practical counterexamples. */ - mode = (sizeof (mode_t) < sizeof (int) - ? va_arg (arg, int) - : va_arg (arg, mode_t)); - - va_end (arg); - } - - return openat_permissive (fd, file, flags, mode, NULL); -} - -/* Like openat (FD, FILE, FLAGS, MODE), but if CWD_ERRNO is - nonnull, set *CWD_ERRNO to an errno value if unable to save - or restore the initial working directory. This is needed only - the first time remove.c's remove_dir opens a command-line - directory argument. - - If a previous attempt to restore the current working directory - failed, then we must not even try to access a `.'-relative name. - It is the caller's responsibility not to call this function - in that case. */ - -int -openat_permissive (int fd, char const *file, int flags, mode_t mode, - int *cwd_errno) -{ - struct saved_cwd saved_cwd; - int saved_errno; - int err; - bool save_ok; - - if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file)) - return open (file, flags, mode); - - { - char buf[OPENAT_BUFFER_SIZE]; - char *proc_file = openat_proc_name (buf, fd, file); - if (proc_file) - { - int open_result = open (proc_file, flags, mode); - int open_errno = errno; - if (proc_file != buf) - free (proc_file); - /* If the syscall succeeds, or if it fails with an unexpected - errno value, then return right away. Otherwise, fall through - and resort to using save_cwd/restore_cwd. */ - if (0 <= open_result || ! EXPECTED_ERRNO (open_errno)) - { - errno = open_errno; - return open_result; - } - } - } - - save_ok = (save_cwd (&saved_cwd) == 0); - if (! save_ok) - { - if (! cwd_errno) - openat_save_fail (errno); - *cwd_errno = errno; - } - - err = fchdir (fd); - saved_errno = errno; - - if (! err) - { - err = open (file, flags, mode); - saved_errno = errno; - if (save_ok && restore_cwd (&saved_cwd) != 0) - { - if (! cwd_errno) - openat_restore_fail (errno); - *cwd_errno = errno; - } - } - - free_cwd (&saved_cwd); - errno = saved_errno; - return err; -} - -/* Return true if our openat implementation must resort to - using save_cwd and restore_cwd. */ -bool -openat_needs_fchdir (void) -{ - bool needs_fchdir = true; - int fd = open ("/", O_RDONLY); - - if (0 <= fd) - { - char buf[OPENAT_BUFFER_SIZE]; - char *proc_file = openat_proc_name (buf, fd, "."); - if (proc_file) - { - needs_fchdir = false; - if (proc_file != buf) - free (proc_file); - } - close (fd); - } - - return needs_fchdir; -} - -#if !HAVE_FDOPENDIR - -/* Replacement for Solaris' function by the same name. - <http://www.google.com/search?q=fdopendir+site:docs.sun.com> - First, try to simulate it via opendir ("/proc/self/fd/FD"). Failing - that, simulate it by doing save_cwd/fchdir/opendir(".")/restore_cwd. - If either the save_cwd or the restore_cwd fails (relatively unlikely), - then give a diagnostic and exit nonzero. - Otherwise, this function works just like Solaris' fdopendir. - - W A R N I N G: - Unlike the other fd-related functions here, this one - effectively consumes its FD parameter. The caller should not - close or otherwise manipulate FD if this function returns successfully. */ -DIR * -fdopendir (int fd) -{ - struct saved_cwd saved_cwd; - int saved_errno; - DIR *dir; - - char buf[OPENAT_BUFFER_SIZE]; - char *proc_file = openat_proc_name (buf, fd, "."); - if (proc_file) - { - dir = opendir (proc_file); - saved_errno = errno; - } - else - { - dir = NULL; - saved_errno = EOPNOTSUPP; - } - - /* If the syscall fails with an expected errno value, resort to - save_cwd/restore_cwd. */ - if (! dir && EXPECTED_ERRNO (saved_errno)) - { - if (save_cwd (&saved_cwd) != 0) - openat_save_fail (errno); - - if (fchdir (fd) != 0) - { - dir = NULL; - saved_errno = errno; - } - else - { - dir = opendir ("."); - saved_errno = errno; - - if (restore_cwd (&saved_cwd) != 0) - openat_restore_fail (errno); - } - - free_cwd (&saved_cwd); - } - - if (dir) - close (fd); - if (proc_file != buf) - free (proc_file); - errno = saved_errno; - return dir; -} - -#endif - -/* Replacement for Solaris' function by the same name. - <http://www.google.com/search?q=fstatat+site:docs.sun.com> - First, try to simulate it via l?stat ("/proc/self/fd/FD/FILE"). - Failing that, simulate it via save_cwd/fchdir/(stat|lstat)/restore_cwd. - If either the save_cwd or the restore_cwd fails (relatively unlikely), - then give a diagnostic and exit nonzero. - Otherwise, this function works just like Solaris' fstatat. */ - -#define AT_FUNC_NAME fstatat -#define AT_FUNC_F1 lstat -#define AT_FUNC_F2 stat -#define AT_FUNC_USE_F1_COND flag == AT_SYMLINK_NOFOLLOW -#define AT_FUNC_POST_FILE_PARAM_DECLS , struct stat *st, int flag -#define AT_FUNC_POST_FILE_ARGS , st -#include "at-func.c" -#undef AT_FUNC_NAME -#undef AT_FUNC_F1 -#undef AT_FUNC_F2 -#undef AT_FUNC_USE_F1_COND -#undef AT_FUNC_POST_FILE_PARAM_DECLS -#undef AT_FUNC_POST_FILE_ARGS - -/* Replacement for Solaris' function by the same name. - <http://www.google.com/search?q=unlinkat+site:docs.sun.com> - First, try to simulate it via (unlink|rmdir) ("/proc/self/fd/FD/FILE"). - Failing that, simulate it via save_cwd/fchdir/(unlink|rmdir)/restore_cwd. - If either the save_cwd or the restore_cwd fails (relatively unlikely), - then give a diagnostic and exit nonzero. - Otherwise, this function works just like Solaris' unlinkat. */ - -#define AT_FUNC_NAME unlinkat -#define AT_FUNC_F1 rmdir -#define AT_FUNC_F2 unlink -#define AT_FUNC_USE_F1_COND flag == AT_REMOVEDIR -#define AT_FUNC_POST_FILE_PARAM_DECLS , int flag -#define AT_FUNC_POST_FILE_ARGS /* empty */ -#include "at-func.c" -#undef AT_FUNC_NAME -#undef AT_FUNC_F1 -#undef AT_FUNC_F2 -#undef AT_FUNC_USE_F1_COND -#undef AT_FUNC_POST_FILE_PARAM_DECLS -#undef AT_FUNC_POST_FILE_ARGS diff --git a/lib/printf-args.c b/lib/printf-args.c deleted file mode 100644 index efe28b462de034dea13c5b2ea1a0893f22e80156..0000000000000000000000000000000000000000 --- a/lib/printf-args.c +++ /dev/null @@ -1,189 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2005-2007 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* This file can be parametrized with the following macros: - ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. - PRINTF_FETCHARGS Name of the function to be defined. - STATIC Set to 'static' to declare the function static. */ - -#ifndef PRINTF_FETCHARGS -# include <config.h> -#endif - -/* Specification. */ -#ifndef PRINTF_FETCHARGS -# include "printf-args.h" -#endif - -#ifdef STATIC -STATIC -#endif -int -PRINTF_FETCHARGS (va_list args, arguments *a) -{ - size_t i; - argument *ap; - - for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++) - switch (ap->type) - { - case TYPE_SCHAR: - ap->a.a_schar = va_arg (args, /*signed char*/ int); - break; - case TYPE_UCHAR: - ap->a.a_uchar = va_arg (args, /*unsigned char*/ int); - break; - case TYPE_SHORT: - ap->a.a_short = va_arg (args, /*short*/ int); - break; - case TYPE_USHORT: - ap->a.a_ushort = va_arg (args, /*unsigned short*/ int); - break; - case TYPE_INT: - ap->a.a_int = va_arg (args, int); - break; - case TYPE_UINT: - ap->a.a_uint = va_arg (args, unsigned int); - break; - case TYPE_LONGINT: - ap->a.a_longint = va_arg (args, long int); - break; - case TYPE_ULONGINT: - ap->a.a_ulongint = va_arg (args, unsigned long int); - break; -#if HAVE_LONG_LONG_INT - case TYPE_LONGLONGINT: - ap->a.a_longlongint = va_arg (args, long long int); - break; - case TYPE_ULONGLONGINT: - ap->a.a_ulonglongint = va_arg (args, unsigned long long int); - break; -#endif - case TYPE_DOUBLE: - ap->a.a_double = va_arg (args, double); - break; - case TYPE_LONGDOUBLE: - ap->a.a_longdouble = va_arg (args, long double); - break; - case TYPE_CHAR: - ap->a.a_char = va_arg (args, int); - break; -#if HAVE_WINT_T - case TYPE_WIDE_CHAR: - /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by - default argument promotions", this is not the case in mingw32, - where wint_t is 'unsigned short'. */ - ap->a.a_wide_char = - (sizeof (wint_t) < sizeof (int) - ? va_arg (args, int) - : va_arg (args, wint_t)); - break; -#endif - case TYPE_STRING: - ap->a.a_string = va_arg (args, const char *); - /* A null pointer is an invalid argument for "%s", but in practice - it occurs quite frequently in printf statements that produce - debug output. Use a fallback in this case. */ - if (ap->a.a_string == NULL) - ap->a.a_string = "(NULL)"; - break; -#if HAVE_WCHAR_T - case TYPE_WIDE_STRING: - ap->a.a_wide_string = va_arg (args, const wchar_t *); - /* A null pointer is an invalid argument for "%ls", but in practice - it occurs quite frequently in printf statements that produce - debug output. Use a fallback in this case. */ - if (ap->a.a_wide_string == NULL) - { - static const wchar_t wide_null_string[] = - { - (wchar_t)'(', - (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L', - (wchar_t)')', - (wchar_t)0 - }; - ap->a.a_wide_string = wide_null_string; - } - break; -#endif - case TYPE_POINTER: - ap->a.a_pointer = va_arg (args, void *); - break; - case TYPE_COUNT_SCHAR_POINTER: - ap->a.a_count_schar_pointer = va_arg (args, signed char *); - break; - case TYPE_COUNT_SHORT_POINTER: - ap->a.a_count_short_pointer = va_arg (args, short *); - break; - case TYPE_COUNT_INT_POINTER: - ap->a.a_count_int_pointer = va_arg (args, int *); - break; - case TYPE_COUNT_LONGINT_POINTER: - ap->a.a_count_longint_pointer = va_arg (args, long int *); - break; -#if HAVE_LONG_LONG_INT - case TYPE_COUNT_LONGLONGINT_POINTER: - ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); - break; -#endif -#if ENABLE_UNISTDIO - /* The unistdio extensions. */ - case TYPE_U8_STRING: - ap->a.a_u8_string = va_arg (args, const uint8_t *); - /* A null pointer is an invalid argument for "%U", but in practice - it occurs quite frequently in printf statements that produce - debug output. Use a fallback in this case. */ - if (ap->a.a_u8_string == NULL) - { - static const uint8_t u8_null_string[] = - { '(', 'N', 'U', 'L', 'L', ')', 0 }; - ap->a.a_u8_string = u8_null_string; - } - break; - case TYPE_U16_STRING: - ap->a.a_u16_string = va_arg (args, const uint16_t *); - /* A null pointer is an invalid argument for "%lU", but in practice - it occurs quite frequently in printf statements that produce - debug output. Use a fallback in this case. */ - if (ap->a.a_u16_string == NULL) - { - static const uint16_t u16_null_string[] = - { '(', 'N', 'U', 'L', 'L', ')', 0 }; - ap->a.a_u16_string = u16_null_string; - } - break; - case TYPE_U32_STRING: - ap->a.a_u32_string = va_arg (args, const uint32_t *); - /* A null pointer is an invalid argument for "%llU", but in practice - it occurs quite frequently in printf statements that produce - debug output. Use a fallback in this case. */ - if (ap->a.a_u32_string == NULL) - { - static const uint32_t u32_null_string[] = - { '(', 'N', 'U', 'L', 'L', ')', 0 }; - ap->a.a_u32_string = u32_null_string; - } - break; -#endif - default: - /* Unknown type. */ - return -1; - } - return 0; -} diff --git a/lib/printf-parse.c b/lib/printf-parse.c deleted file mode 100644 index 6bb54852087adab9c70e0482e2a01f0c1cba3692..0000000000000000000000000000000000000000 --- a/lib/printf-parse.c +++ /dev/null @@ -1,629 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Formatted output to strings. - Copyright (C) 1999-2000, 2002-2003, 2006-2008 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* This file can be parametrized with the following macros: - CHAR_T The element type of the format string. - CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters - in the format string are ASCII. - DIRECTIVE Structure denoting a format directive. - Depends on CHAR_T. - DIRECTIVES Structure denoting the set of format directives of a - format string. Depends on CHAR_T. - PRINTF_PARSE Function that parses a format string. - Depends on CHAR_T. - STATIC Set to 'static' to declare the function static. - ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */ - -#ifndef PRINTF_PARSE -# include <config.h> -#endif - -/* Specification. */ -#ifndef PRINTF_PARSE -# include "printf-parse.h" -#endif - -/* Default parameters. */ -#ifndef PRINTF_PARSE -# define PRINTF_PARSE printf_parse -# define CHAR_T char -# define DIRECTIVE char_directive -# define DIRECTIVES char_directives -#endif - -/* Get size_t, NULL. */ -#include <stddef.h> - -/* Get intmax_t. */ -#if defined IN_LIBINTL || defined IN_LIBASPRINTF -# if HAVE_STDINT_H_WITH_UINTMAX -# include <stdint.h> -# endif -# if HAVE_INTTYPES_H_WITH_UINTMAX -# include <inttypes.h> -# endif -#else -# include <stdint.h> -#endif - -/* malloc(), realloc(), free(). */ -#include <stdlib.h> - -/* errno. */ -#include <errno.h> - -/* Checked size_t computations. */ -#include "xsize.h" - -#if CHAR_T_ONLY_ASCII -/* c_isascii(). */ -# include "c-ctype.h" -#endif - -#ifdef STATIC -STATIC -#endif -int -PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) -{ - const CHAR_T *cp = format; /* pointer into format */ - size_t arg_posn = 0; /* number of regular arguments consumed */ - size_t d_allocated; /* allocated elements of d->dir */ - size_t a_allocated; /* allocated elements of a->arg */ - size_t max_width_length = 0; - size_t max_precision_length = 0; - - d->count = 0; - d_allocated = 1; - d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE)); - if (d->dir == NULL) - /* Out of memory. */ - goto out_of_memory_1; - - a->count = 0; - a_allocated = 0; - a->arg = NULL; - -#define REGISTER_ARG(_index_,_type_) \ - { \ - size_t n = (_index_); \ - if (n >= a_allocated) \ - { \ - size_t memory_size; \ - argument *memory; \ - \ - a_allocated = xtimes (a_allocated, 2); \ - if (a_allocated <= n) \ - a_allocated = xsum (n, 1); \ - memory_size = xtimes (a_allocated, sizeof (argument)); \ - if (size_overflow_p (memory_size)) \ - /* Overflow, would lead to out of memory. */ \ - goto out_of_memory; \ - memory = (argument *) (a->arg \ - ? realloc (a->arg, memory_size) \ - : malloc (memory_size)); \ - if (memory == NULL) \ - /* Out of memory. */ \ - goto out_of_memory; \ - a->arg = memory; \ - } \ - while (a->count <= n) \ - a->arg[a->count++].type = TYPE_NONE; \ - if (a->arg[n].type == TYPE_NONE) \ - a->arg[n].type = (_type_); \ - else if (a->arg[n].type != (_type_)) \ - /* Ambiguous type for positional argument. */ \ - goto error; \ - } - - while (*cp != '\0') - { - CHAR_T c = *cp++; - if (c == '%') - { - size_t arg_index = ARG_NONE; - DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */ - - /* Initialize the next directive. */ - dp->dir_start = cp - 1; - dp->flags = 0; - dp->width_start = NULL; - dp->width_end = NULL; - dp->width_arg_index = ARG_NONE; - dp->precision_start = NULL; - dp->precision_end = NULL; - dp->precision_arg_index = ARG_NONE; - dp->arg_index = ARG_NONE; - - /* Test for positional argument. */ - if (*cp >= '0' && *cp <= '9') - { - const CHAR_T *np; - - for (np = cp; *np >= '0' && *np <= '9'; np++) - ; - if (*np == '$') - { - size_t n = 0; - - for (np = cp; *np >= '0' && *np <= '9'; np++) - n = xsum (xtimes (n, 10), *np - '0'); - if (n == 0) - /* Positional argument 0. */ - goto error; - if (size_overflow_p (n)) - /* n too large, would lead to out of memory later. */ - goto error; - arg_index = n - 1; - cp = np + 1; - } - } - - /* Read the flags. */ - for (;;) - { - if (*cp == '\'') - { - dp->flags |= FLAG_GROUP; - cp++; - } - else if (*cp == '-') - { - dp->flags |= FLAG_LEFT; - cp++; - } - else if (*cp == '+') - { - dp->flags |= FLAG_SHOWSIGN; - cp++; - } - else if (*cp == ' ') - { - dp->flags |= FLAG_SPACE; - cp++; - } - else if (*cp == '#') - { - dp->flags |= FLAG_ALT; - cp++; - } - else if (*cp == '0') - { - dp->flags |= FLAG_ZERO; - cp++; - } - else - break; - } - - /* Parse the field width. */ - if (*cp == '*') - { - dp->width_start = cp; - cp++; - dp->width_end = cp; - if (max_width_length < 1) - max_width_length = 1; - - /* Test for positional argument. */ - if (*cp >= '0' && *cp <= '9') - { - const CHAR_T *np; - - for (np = cp; *np >= '0' && *np <= '9'; np++) - ; - if (*np == '$') - { - size_t n = 0; - - for (np = cp; *np >= '0' && *np <= '9'; np++) - n = xsum (xtimes (n, 10), *np - '0'); - if (n == 0) - /* Positional argument 0. */ - goto error; - if (size_overflow_p (n)) - /* n too large, would lead to out of memory later. */ - goto error; - dp->width_arg_index = n - 1; - cp = np + 1; - } - } - if (dp->width_arg_index == ARG_NONE) - { - dp->width_arg_index = arg_posn++; - if (dp->width_arg_index == ARG_NONE) - /* arg_posn wrapped around. */ - goto error; - } - REGISTER_ARG (dp->width_arg_index, TYPE_INT); - } - else if (*cp >= '0' && *cp <= '9') - { - size_t width_length; - - dp->width_start = cp; - for (; *cp >= '0' && *cp <= '9'; cp++) - ; - dp->width_end = cp; - width_length = dp->width_end - dp->width_start; - if (max_width_length < width_length) - max_width_length = width_length; - } - - /* Parse the precision. */ - if (*cp == '.') - { - cp++; - if (*cp == '*') - { - dp->precision_start = cp - 1; - cp++; - dp->precision_end = cp; - if (max_precision_length < 2) - max_precision_length = 2; - - /* Test for positional argument. */ - if (*cp >= '0' && *cp <= '9') - { - const CHAR_T *np; - - for (np = cp; *np >= '0' && *np <= '9'; np++) - ; - if (*np == '$') - { - size_t n = 0; - - for (np = cp; *np >= '0' && *np <= '9'; np++) - n = xsum (xtimes (n, 10), *np - '0'); - if (n == 0) - /* Positional argument 0. */ - goto error; - if (size_overflow_p (n)) - /* n too large, would lead to out of memory - later. */ - goto error; - dp->precision_arg_index = n - 1; - cp = np + 1; - } - } - if (dp->precision_arg_index == ARG_NONE) - { - dp->precision_arg_index = arg_posn++; - if (dp->precision_arg_index == ARG_NONE) - /* arg_posn wrapped around. */ - goto error; - } - REGISTER_ARG (dp->precision_arg_index, TYPE_INT); - } - else - { - size_t precision_length; - - dp->precision_start = cp - 1; - for (; *cp >= '0' && *cp <= '9'; cp++) - ; - dp->precision_end = cp; - precision_length = dp->precision_end - dp->precision_start; - if (max_precision_length < precision_length) - max_precision_length = precision_length; - } - } - - { - arg_type type; - - /* Parse argument type/size specifiers. */ - { - int flags = 0; - - for (;;) - { - if (*cp == 'h') - { - flags |= (1 << (flags & 1)); - cp++; - } - else if (*cp == 'L') - { - flags |= 4; - cp++; - } - else if (*cp == 'l') - { - flags += 8; - cp++; - } - else if (*cp == 'j') - { - if (sizeof (intmax_t) > sizeof (long)) - { - /* intmax_t = long long */ - flags += 16; - } - else if (sizeof (intmax_t) > sizeof (int)) - { - /* intmax_t = long */ - flags += 8; - } - cp++; - } - else if (*cp == 'z' || *cp == 'Z') - { - /* 'z' is standardized in ISO C 99, but glibc uses 'Z' - because the warning facility in gcc-2.95.2 understands - only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */ - if (sizeof (size_t) > sizeof (long)) - { - /* size_t = long long */ - flags += 16; - } - else if (sizeof (size_t) > sizeof (int)) - { - /* size_t = long */ - flags += 8; - } - cp++; - } - else if (*cp == 't') - { - if (sizeof (ptrdiff_t) > sizeof (long)) - { - /* ptrdiff_t = long long */ - flags += 16; - } - else if (sizeof (ptrdiff_t) > sizeof (int)) - { - /* ptrdiff_t = long */ - flags += 8; - } - cp++; - } -#if defined __APPLE__ && defined __MACH__ - /* On MacOS X 10.3, PRIdMAX is defined as "qd". - We cannot change it to "lld" because PRIdMAX must also - be understood by the system's printf routines. */ - else if (*cp == 'q') - { - if (64 / 8 > sizeof (long)) - { - /* int64_t = long long */ - flags += 16; - } - else - { - /* int64_t = long */ - flags += 8; - } - cp++; - } -#endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - /* On native Win32, PRIdMAX is defined as "I64d". - We cannot change it to "lld" because PRIdMAX must also - be understood by the system's printf routines. */ - else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4') - { - if (64 / 8 > sizeof (long)) - { - /* __int64 = long long */ - flags += 16; - } - else - { - /* __int64 = long */ - flags += 8; - } - cp += 3; - } -#endif - else - break; - } - - /* Read the conversion character. */ - c = *cp++; - switch (c) - { - case 'd': case 'i': -#if HAVE_LONG_LONG_INT - /* If 'long long' exists and is larger than 'long': */ - if (flags >= 16 || (flags & 4)) - type = TYPE_LONGLONGINT; - else -#endif - /* If 'long long' exists and is the same as 'long', we parse - "lld" into TYPE_LONGINT. */ - if (flags >= 8) - type = TYPE_LONGINT; - else if (flags & 2) - type = TYPE_SCHAR; - else if (flags & 1) - type = TYPE_SHORT; - else - type = TYPE_INT; - break; - case 'o': case 'u': case 'x': case 'X': -#if HAVE_LONG_LONG_INT - /* If 'long long' exists and is larger than 'long': */ - if (flags >= 16 || (flags & 4)) - type = TYPE_ULONGLONGINT; - else -#endif - /* If 'unsigned long long' exists and is the same as - 'unsigned long', we parse "llu" into TYPE_ULONGINT. */ - if (flags >= 8) - type = TYPE_ULONGINT; - else if (flags & 2) - type = TYPE_UCHAR; - else if (flags & 1) - type = TYPE_USHORT; - else - type = TYPE_UINT; - break; - case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': - case 'a': case 'A': - if (flags >= 16 || (flags & 4)) - type = TYPE_LONGDOUBLE; - else - type = TYPE_DOUBLE; - break; - case 'c': - if (flags >= 8) -#if HAVE_WINT_T - type = TYPE_WIDE_CHAR; -#else - goto error; -#endif - else - type = TYPE_CHAR; - break; -#if HAVE_WINT_T - case 'C': - type = TYPE_WIDE_CHAR; - c = 'c'; - break; -#endif - case 's': - if (flags >= 8) -#if HAVE_WCHAR_T - type = TYPE_WIDE_STRING; -#else - goto error; -#endif - else - type = TYPE_STRING; - break; -#if HAVE_WCHAR_T - case 'S': - type = TYPE_WIDE_STRING; - c = 's'; - break; -#endif - case 'p': - type = TYPE_POINTER; - break; - case 'n': -#if HAVE_LONG_LONG_INT - /* If 'long long' exists and is larger than 'long': */ - if (flags >= 16 || (flags & 4)) - type = TYPE_COUNT_LONGLONGINT_POINTER; - else -#endif - /* If 'long long' exists and is the same as 'long', we parse - "lln" into TYPE_COUNT_LONGINT_POINTER. */ - if (flags >= 8) - type = TYPE_COUNT_LONGINT_POINTER; - else if (flags & 2) - type = TYPE_COUNT_SCHAR_POINTER; - else if (flags & 1) - type = TYPE_COUNT_SHORT_POINTER; - else - type = TYPE_COUNT_INT_POINTER; - break; -#if ENABLE_UNISTDIO - /* The unistdio extensions. */ - case 'U': - if (flags >= 16) - type = TYPE_U32_STRING; - else if (flags >= 8) - type = TYPE_U16_STRING; - else - type = TYPE_U8_STRING; - break; -#endif - case '%': - type = TYPE_NONE; - break; - default: - /* Unknown conversion character. */ - goto error; - } - } - - if (type != TYPE_NONE) - { - dp->arg_index = arg_index; - if (dp->arg_index == ARG_NONE) - { - dp->arg_index = arg_posn++; - if (dp->arg_index == ARG_NONE) - /* arg_posn wrapped around. */ - goto error; - } - REGISTER_ARG (dp->arg_index, type); - } - dp->conversion = c; - dp->dir_end = cp; - } - - d->count++; - if (d->count >= d_allocated) - { - size_t memory_size; - DIRECTIVE *memory; - - d_allocated = xtimes (d_allocated, 2); - memory_size = xtimes (d_allocated, sizeof (DIRECTIVE)); - if (size_overflow_p (memory_size)) - /* Overflow, would lead to out of memory. */ - goto out_of_memory; - memory = (DIRECTIVE *) realloc (d->dir, memory_size); - if (memory == NULL) - /* Out of memory. */ - goto out_of_memory; - d->dir = memory; - } - } -#if CHAR_T_ONLY_ASCII - else if (!c_isascii (c)) - { - /* Non-ASCII character. Not supported. */ - goto error; - } -#endif - } - d->dir[d->count].dir_start = cp; - - d->max_width_length = max_width_length; - d->max_precision_length = max_precision_length; - return 0; - -error: - if (a->arg) - free (a->arg); - if (d->dir) - free (d->dir); - errno = EINVAL; - return -1; - -out_of_memory: - if (a->arg) - free (a->arg); - if (d->dir) - free (d->dir); -out_of_memory_1: - errno = ENOMEM; - return -1; -} - -#undef PRINTF_PARSE -#undef DIRECTIVES -#undef DIRECTIVE -#undef CHAR_T_ONLY_ASCII -#undef CHAR_T diff --git a/lib/quotearg.c b/lib/quotearg.c deleted file mode 100644 index 339bf34942854b0c59192058f24ec09576087275..0000000000000000000000000000000000000000 --- a/lib/quotearg.c +++ /dev/null @@ -1,799 +0,0 @@ -/* quotearg.c - quote arguments for output - - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, - 2008 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 <eggert@twinsun.com> */ - -#include <config.h> - -#include "quotearg.h" - -#include "xalloc.h" - -#include <ctype.h> -#include <errno.h> -#include <limits.h> -#include <stdbool.h> -#include <stdlib.h> -#include <string.h> -#include <wchar.h> -#include <wctype.h> - -#include "gettext.h" -#define _(msgid) gettext (msgid) -#define N_(msgid) msgid - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -#define INT_BITS (sizeof (int) * CHAR_BIT) - -struct quoting_options -{ - /* Basic quoting style. */ - enum quoting_style style; - - /* Additional flags. Bitwise combination of enum quoting_flags. */ - int flags; - - /* Quote the characters indicated by this bit vector even if the - quoting style would not normally require them to be quoted. */ - unsigned int quote_these_too[(UCHAR_MAX / INT_BITS) + 1]; -}; - -/* Names of quoting styles. */ -char const *const quoting_style_args[] = -{ - "literal", - "shell", - "shell-always", - "c", - "c-maybe", - "escape", - "locale", - "clocale", - 0 -}; - -/* Correspondences to quoting style names. */ -enum quoting_style const quoting_style_vals[] = -{ - literal_quoting_style, - shell_quoting_style, - shell_always_quoting_style, - c_quoting_style, - c_maybe_quoting_style, - escape_quoting_style, - locale_quoting_style, - clocale_quoting_style -}; - -/* The default quoting options. */ -static struct quoting_options default_quoting_options; - -/* Allocate a new set of quoting options, with contents initially identical - to O if O is not null, or to the default if O is null. - It is the caller's responsibility to free the result. */ -struct quoting_options * -clone_quoting_options (struct quoting_options *o) -{ - int e = errno; - struct quoting_options *p = xmemdup (o ? o : &default_quoting_options, - sizeof *o); - errno = e; - return p; -} - -/* Get the value of O's quoting style. If O is null, use the default. */ -enum quoting_style -get_quoting_style (struct quoting_options *o) -{ - return (o ? o : &default_quoting_options)->style; -} - -/* In O (or in the default if O is null), - set the value of the quoting style to S. */ -void -set_quoting_style (struct quoting_options *o, enum quoting_style s) -{ - (o ? o : &default_quoting_options)->style = s; -} - -/* In O (or in the default if O is null), - set the value of the quoting options for character C to I. - Return the old value. Currently, the only values defined for I are - 0 (the default) and 1 (which means to quote the character even if - it would not otherwise be quoted). */ -int -set_char_quoting (struct quoting_options *o, char c, int i) -{ - unsigned char uc = c; - unsigned int *p = - (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS; - int shift = uc % INT_BITS; - int r = (*p >> shift) & 1; - *p ^= ((i & 1) ^ r) << shift; - return r; -} - -/* In O (or in the default if O is null), - set the value of the quoting options flag to I, which can be a - bitwise combination of enum quoting_flags, or 0 for default - behavior. Return the old value. */ -int -set_quoting_flags (struct quoting_options *o, int i) -{ - int r; - if (!o) - o = &default_quoting_options; - r = o->flags; - o->flags = i; - return r; -} - -/* Return quoting options for STYLE, with no extra quoting. */ -static struct quoting_options -quoting_options_from_style (enum quoting_style style) -{ - struct quoting_options o; - o.style = style; - o.flags = 0; - memset (o.quote_these_too, 0, sizeof o.quote_these_too); - return o; -} - -/* MSGID approximates a quotation mark. Return its translation if it - has one; otherwise, return either it or "\"", depending on S. */ -static char const * -gettext_quote (char const *msgid, enum quoting_style s) -{ - char const *translation = _(msgid); - if (translation == msgid && s == clocale_quoting_style) - translation = "\""; - return translation; -} - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG (of size ARGSIZE), using QUOTING_STYLE, FLAGS, and - QUOTE_THESE_TOO to control quoting. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE. - - This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG, - ARGSIZE, O), except it breaks O into its component pieces and is - not careful about errno. */ - -static size_t -quotearg_buffer_restyled (char *buffer, size_t buffersize, - char const *arg, size_t argsize, - enum quoting_style quoting_style, int flags, - unsigned int const *quote_these_too) -{ - size_t i; - size_t len = 0; - char const *quote_string = 0; - size_t quote_string_len = 0; - bool backslash_escapes = false; - bool unibyte_locale = MB_CUR_MAX == 1; - bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0; - -#define STORE(c) \ - do \ - { \ - if (len < buffersize) \ - buffer[len] = (c); \ - len++; \ - } \ - while (0) - - switch (quoting_style) - { - case c_maybe_quoting_style: - quoting_style = c_quoting_style; - elide_outer_quotes = true; - /* Fall through. */ - case c_quoting_style: - if (!elide_outer_quotes) - STORE ('"'); - backslash_escapes = true; - quote_string = "\""; - quote_string_len = 1; - break; - - case escape_quoting_style: - backslash_escapes = true; - elide_outer_quotes = false; - break; - - case locale_quoting_style: - case clocale_quoting_style: - { - /* TRANSLATORS: - Get translations for open and closing quotation marks. - - The message catalog should translate "`" to a left - quotation mark suitable for the locale, and similarly for - "'". If the catalog has no translation, - locale_quoting_style quotes `like this', and - clocale_quoting_style quotes "like this". - - For example, an American English Unicode locale should - translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and - should translate "'" to U+201D (RIGHT DOUBLE QUOTATION - MARK). A British English Unicode locale should instead - translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and - U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. - - If you don't know what to put here, please see - <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> - and use glyphs suitable for your language. */ - - char const *left = gettext_quote (N_("`"), quoting_style); - char const *right = gettext_quote (N_("'"), quoting_style); - if (!elide_outer_quotes) - for (quote_string = left; *quote_string; quote_string++) - STORE (*quote_string); - backslash_escapes = true; - quote_string = right; - quote_string_len = strlen (quote_string); - } - break; - - case shell_quoting_style: - quoting_style = shell_always_quoting_style; - elide_outer_quotes = true; - /* Fall through. */ - case shell_always_quoting_style: - if (!elide_outer_quotes) - STORE ('\''); - quote_string = "'"; - quote_string_len = 1; - break; - - case literal_quoting_style: - elide_outer_quotes = false; - break; - - default: - abort (); - } - - for (i = 0; ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize); i++) - { - unsigned char c; - unsigned char esc; - - if (backslash_escapes - && quote_string_len - && i + quote_string_len <= argsize - && memcmp (arg + i, quote_string, quote_string_len) == 0) - { - if (elide_outer_quotes) - goto force_outer_quoting_style; - STORE ('\\'); - } - - c = arg[i]; - switch (c) - { - case '\0': - if (backslash_escapes) - { - if (elide_outer_quotes) - goto force_outer_quoting_style; - STORE ('\\'); - if (i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9') - { - STORE ('0'); - STORE ('0'); - } - c = '0'; - } - else if (flags & QA_ELIDE_NULL_BYTES) - continue; - break; - - case '?': - switch (quoting_style) - { - case shell_always_quoting_style: - if (elide_outer_quotes) - goto force_outer_quoting_style; - break; - - case c_quoting_style: - if ((flags & QA_SPLIT_TRIGRAPHS) - && i + 2 < argsize && arg[i + 1] == '?') - switch (arg[i + 2]) - { - case '!': case '\'': - case '(': case ')': case '-': case '/': - case '<': case '=': case '>': - /* Escape the second '?' in what would otherwise be - a trigraph. */ - if (elide_outer_quotes) - goto force_outer_quoting_style; - c = arg[i + 2]; - i += 2; - STORE ('?'); - STORE ('"'); - STORE ('"'); - STORE ('?'); - break; - - default: - break; - } - break; - - default: - break; - } - break; - - case '\a': esc = 'a'; goto c_escape; - case '\b': esc = 'b'; goto c_escape; - case '\f': esc = 'f'; goto c_escape; - case '\n': esc = 'n'; goto c_and_shell_escape; - case '\r': esc = 'r'; goto c_and_shell_escape; - case '\t': esc = 't'; goto c_and_shell_escape; - case '\v': esc = 'v'; goto c_escape; - case '\\': esc = c; - /* No need to escape the escape if we are trying to elide - outer quotes and nothing else is problematic. */ - if (backslash_escapes && elide_outer_quotes && quote_string_len) - goto store_c; - - c_and_shell_escape: - if (quoting_style == shell_always_quoting_style - && elide_outer_quotes) - goto force_outer_quoting_style; - /* Fall through. */ - c_escape: - if (backslash_escapes) - { - c = esc; - goto store_escape; - } - break; - - case '{': case '}': /* sometimes special if isolated */ - if (! (argsize == SIZE_MAX ? arg[1] == '\0' : argsize == 1)) - break; - /* Fall through. */ - case '#': case '~': - if (i != 0) - break; - /* Fall through. */ - case ' ': - case '!': /* special in bash */ - case '"': case '$': case '&': - case '(': case ')': case '*': case ';': - case '<': - case '=': /* sometimes special in 0th or (with "set -k") later args */ - case '>': case '[': - case '^': /* special in old /bin/sh, e.g. SunOS 4.1.4 */ - case '`': case '|': - /* A shell special character. In theory, '$' and '`' could - be the first bytes of multibyte characters, which means - we should check them with mbrtowc, but in practice this - doesn't happen so it's not worth worrying about. */ - if (quoting_style == shell_always_quoting_style - && elide_outer_quotes) - goto force_outer_quoting_style; - break; - - case '\'': - if (quoting_style == shell_always_quoting_style) - { - if (elide_outer_quotes) - goto force_outer_quoting_style; - STORE ('\''); - STORE ('\\'); - STORE ('\''); - } - break; - - case '%': case '+': case ',': case '-': case '.': case '/': - case '0': case '1': case '2': case '3': case '4': case '5': - case '6': case '7': case '8': case '9': case ':': - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': - case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': - case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': - case 'Y': case 'Z': case ']': case '_': case 'a': case 'b': - case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': - case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': - case 'o': case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': - /* These characters don't cause problems, no matter what the - quoting style is. They cannot start multibyte sequences. */ - break; - - default: - /* If we have a multibyte sequence, copy it until we reach - its end, find an error, or come back to the initial shift - state. For C-like styles, if the sequence has - unprintable characters, escape the whole sequence, since - we can't easily escape single characters within it. */ - { - /* Length of multibyte sequence found so far. */ - size_t m; - - bool printable; - - if (unibyte_locale) - { - m = 1; - printable = isprint (c) != 0; - } - else - { - mbstate_t mbstate; - memset (&mbstate, 0, sizeof mbstate); - - m = 0; - printable = true; - if (argsize == SIZE_MAX) - argsize = strlen (arg); - - do - { - wchar_t w; - size_t bytes = mbrtowc (&w, &arg[i + m], - argsize - (i + m), &mbstate); - if (bytes == 0) - break; - else if (bytes == (size_t) -1) - { - printable = false; - break; - } - else if (bytes == (size_t) -2) - { - printable = false; - while (i + m < argsize && arg[i + m]) - m++; - break; - } - else - { - /* Work around a bug with older shells that "see" a '\' - that is really the 2nd byte of a multibyte character. - In practice the problem is limited to ASCII - chars >= '@' that are shell special chars. */ - if ('[' == 0x5b && elide_outer_quotes - && quoting_style == shell_always_quoting_style) - { - size_t j; - for (j = 1; j < bytes; j++) - switch (arg[i + m + j]) - { - case '[': case '\\': case '^': - case '`': case '|': - goto force_outer_quoting_style; - - default: - break; - } - } - - if (! iswprint (w)) - printable = false; - m += bytes; - } - } - while (! mbsinit (&mbstate)); - } - - if (1 < m || (backslash_escapes && ! printable)) - { - /* Output a multibyte sequence, or an escaped - unprintable unibyte character. */ - size_t ilim = i + m; - - for (;;) - { - if (backslash_escapes && ! printable) - { - if (elide_outer_quotes) - goto force_outer_quoting_style; - STORE ('\\'); - STORE ('0' + (c >> 6)); - STORE ('0' + ((c >> 3) & 7)); - c = '0' + (c & 7); - } - if (ilim <= i + 1) - break; - STORE (c); - c = arg[++i]; - } - - goto store_c; - } - } - } - - if (! ((backslash_escapes || elide_outer_quotes) - && quote_these_too - && quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS)))) - goto store_c; - - store_escape: - if (elide_outer_quotes) - goto force_outer_quoting_style; - STORE ('\\'); - - store_c: - STORE (c); - } - - if (len == 0 && quoting_style == shell_always_quoting_style - && elide_outer_quotes) - goto force_outer_quoting_style; - - if (quote_string && !elide_outer_quotes) - for (; *quote_string; quote_string++) - STORE (*quote_string); - - if (len < buffersize) - buffer[len] = '\0'; - return len; - - force_outer_quoting_style: - /* Don't reuse quote_these_too, since the addition of outer quotes - sufficiently quotes the specified characters. */ - return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, - quoting_style, - flags & ~QA_ELIDE_OUTER_QUOTES, NULL); -} - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG (of size ARGSIZE), using O to control quoting. - If O is null, use the default. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - If ARGSIZE is SIZE_MAX, use the string length of the argument for - ARGSIZE. */ -size_t -quotearg_buffer (char *buffer, size_t buffersize, - char const *arg, size_t argsize, - struct quoting_options const *o) -{ - struct quoting_options const *p = o ? o : &default_quoting_options; - int e = errno; - size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize, - p->style, p->flags, p->quote_these_too); - errno = e; - return r; -} - -/* Equivalent to quotearg_alloc (ARG, ARGSIZE, NULL, O). */ -char * -quotearg_alloc (char const *arg, size_t argsize, - struct quoting_options const *o) -{ - return quotearg_alloc_mem (arg, argsize, NULL, o); -} - -/* Like quotearg_buffer (..., ARG, ARGSIZE, O), except return newly - allocated storage containing the quoted string, and store the - resulting size into *SIZE, if non-NULL. The result can contain - embedded null bytes only if ARGSIZE is not SIZE_MAX, SIZE is not - NULL, and set_quoting_flags has not set the null byte elision - flag. */ -char * -quotearg_alloc_mem (char const *arg, size_t argsize, size_t *size, - struct quoting_options const *o) -{ - struct quoting_options const *p = o ? o : &default_quoting_options; - int e = errno; - /* Elide embedded null bytes if we can't return a size. */ - int flags = p->flags | (size ? 0 : QA_ELIDE_NULL_BYTES); - size_t bufsize = quotearg_buffer_restyled (0, 0, arg, argsize, p->style, - flags, p->quote_these_too) + 1; - char *buf = xcharalloc (bufsize); - quotearg_buffer_restyled (buf, bufsize, arg, argsize, p->style, flags, - p->quote_these_too); - errno = e; - if (size) - *size = bufsize - 1; - return buf; -} - -/* A storage slot with size and pointer to a value. */ -struct slotvec -{ - size_t size; - char *val; -}; - -/* Preallocate a slot 0 buffer, so that the caller can always quote - one small component of a "memory exhausted" message in slot 0. */ -static char slot0[256]; -static unsigned int nslots = 1; -static struct slotvec slotvec0 = {sizeof slot0, slot0}; -static struct slotvec *slotvec = &slotvec0; - -void -quotearg_free (void) -{ - struct slotvec *sv = slotvec; - unsigned int i; - for (i = 1; i < nslots; i++) - free (sv[i].val); - if (sv[0].val != slot0) - { - free (sv[0].val); - slotvec0.size = sizeof slot0; - slotvec0.val = slot0; - } - if (sv != &slotvec0) - { - free (sv); - slotvec = &slotvec0; - } - nslots = 1; -} - -/* Use storage slot N to return a quoted version of argument ARG. - ARG is of size ARGSIZE, but if that is SIZE_MAX, ARG is a - null-terminated string. - OPTIONS specifies the quoting options. - The returned value points to static storage that can be - reused by the next call to this function with the same value of N. - N must be nonnegative. N is deliberately declared with type "int" - to allow for future extensions (using negative values). */ -static char * -quotearg_n_options (int n, char const *arg, size_t argsize, - struct quoting_options const *options) -{ - int e = errno; - - unsigned int n0 = n; - struct slotvec *sv = slotvec; - - if (n < 0) - abort (); - - if (nslots <= n0) - { - /* FIXME: technically, the type of n1 should be `unsigned int', - but that evokes an unsuppressible warning from gcc-4.0.1 and - older. If gcc ever provides an option to suppress that warning, - revert to the original type, so that the test in xalloc_oversized - is once again performed only at compile time. */ - size_t n1 = n0 + 1; - bool preallocated = (sv == &slotvec0); - - if (xalloc_oversized (n1, sizeof *sv)) - xalloc_die (); - - slotvec = sv = xrealloc (preallocated ? NULL : sv, n1 * sizeof *sv); - if (preallocated) - *sv = slotvec0; - memset (sv + nslots, 0, (n1 - nslots) * sizeof *sv); - nslots = n1; - } - - { - size_t size = sv[n].size; - char *val = sv[n].val; - /* Elide embedded null bytes since we don't return a size. */ - int flags = options->flags | QA_ELIDE_NULL_BYTES; - size_t qsize = quotearg_buffer_restyled (val, size, arg, argsize, - options->style, flags, - options->quote_these_too); - - if (size <= qsize) - { - sv[n].size = size = qsize + 1; - if (val != slot0) - free (val); - sv[n].val = val = xcharalloc (size); - quotearg_buffer_restyled (val, size, arg, argsize, options->style, - flags, options->quote_these_too); - } - - errno = e; - return val; - } -} - -char * -quotearg_n (int n, char const *arg) -{ - return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options); -} - -char * -quotearg_n_mem (int n, char const *arg, size_t argsize) -{ - return quotearg_n_options (n, arg, argsize, &default_quoting_options); -} - -char * -quotearg (char const *arg) -{ - return quotearg_n (0, arg); -} - -char * -quotearg_mem (char const *arg, size_t argsize) -{ - return quotearg_n_mem (0, arg, argsize); -} - -char * -quotearg_n_style (int n, enum quoting_style s, char const *arg) -{ - struct quoting_options const o = quoting_options_from_style (s); - return quotearg_n_options (n, arg, SIZE_MAX, &o); -} - -char * -quotearg_n_style_mem (int n, enum quoting_style s, - char const *arg, size_t argsize) -{ - struct quoting_options const o = quoting_options_from_style (s); - return quotearg_n_options (n, arg, argsize, &o); -} - -char * -quotearg_style (enum quoting_style s, char const *arg) -{ - return quotearg_n_style (0, s, arg); -} - -char * -quotearg_style_mem (enum quoting_style s, char const *arg, size_t argsize) -{ - return quotearg_n_style_mem (0, s, arg, argsize); -} - -char * -quotearg_char_mem (char const *arg, size_t argsize, char ch) -{ - struct quoting_options options; - options = default_quoting_options; - set_char_quoting (&options, ch, 1); - return quotearg_n_options (0, arg, argsize, &options); -} - -char * -quotearg_char (char const *arg, char ch) -{ - return quotearg_char_mem (arg, SIZE_MAX, ch); -} - -char * -quotearg_colon (char const *arg) -{ - return quotearg_char (arg, ':'); -} - -char * -quotearg_colon_mem (char const *arg, size_t argsize) -{ - return quotearg_char_mem (arg, argsize, ':'); -} diff --git a/lib/readlink.c b/lib/readlink.c deleted file mode 100644 index 5cccdc962af223fac5178c675a3ad2dc17877c8a..0000000000000000000000000000000000000000 --- a/lib/readlink.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Stub for readlink(). - Copyright (C) 2003-2007 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/>. */ - -#include <config.h> - -/* Specification. */ -#include <unistd.h> - -#include <errno.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <stddef.h> - -#if !HAVE_READLINK - -/* readlink() substitute for systems that don't have a readlink() function, - such as DJGPP 2.03 and mingw32. */ - -/* The official POSIX return type of readlink() is ssize_t, but since here - we have no declaration in a public header file, we use 'int' as return - type. */ - -int -readlink (const char *path, char *buf, size_t bufsize) -{ - struct stat statbuf; - - /* In general we should use lstat() here, not stat(). But on platforms - without symbolic links lstat() - if it exists - would be equivalent to - stat(), therefore we can use stat(). This saves us a configure check. */ - if (stat (path, &statbuf) >= 0) - errno = EINVAL; - return -1; -} - -#endif diff --git a/lib/rmt.h b/lib/rmt.h index 50f037c5af693668ba2b40d7e252871a7ef115b1..2ce9dc517035223c71096bbd12637c8866e0bc3a 100644 --- a/lib/rmt.h +++ b/lib/rmt.h @@ -61,7 +61,7 @@ extern bool force_local_option; #define rmtcreat(dev_name, mode, command) \ (_remdev (dev_name) \ - ? rmt_open__ (dev_name, 1 | O_CREAT, __REM_BIAS, command) \ + ? rmt_open__ (dev_name, O_CREAT | O_WRONLY, __REM_BIAS, command) \ : creat (dev_name, mode)) #define rmtlstat(dev_name, muffer) \ diff --git a/lib/rtapelib.c b/lib/rtapelib.c index 51faf3ce91dbd50496705ff15338e87d58c39466..cb645db5d9a4156200d5350367c0fa95322b7c81 100644 --- a/lib/rtapelib.c +++ b/lib/rtapelib.c @@ -425,7 +425,10 @@ rmt_open__ (const char *file_name, int open_mode, int bias, } /* FIXME: Should somewhat validate the decoding, here. */ - + if (gethostbyname (remote_host) == NULL) + error (EXIT_ON_EXEC_ERROR, 0, _("Cannot connect to %s: resolve failed"), + remote_host); + if (remote_user && *remote_user == '\0') remote_user = 0; @@ -570,7 +573,8 @@ rmt_read__ (int handle, char *buffer, size_t length) sprintf (command_buffer, "R%lu\n", (unsigned long) length); if (do_command (handle, command_buffer) == -1 - || (status = get_status (handle)) == SAFE_READ_ERROR) + || (status = get_status (handle)) == SAFE_READ_ERROR + || status > length) return SAFE_READ_ERROR; for (counter = 0; counter < status; counter += rlen, buffer += rlen) @@ -706,6 +710,12 @@ rmt_ioctl__ (int handle, int operation, char *argument) || (status = get_status (handle), status == -1)) return -1; + if (status > sizeof (struct mtop)) + { + errno = EOVERFLOW; + return -1; + } + for (; status > 0; status -= counter, argument += counter) { counter = safe_read (READ_SIDE (handle), argument, status); diff --git a/lib/setenv.c b/lib/setenv.c deleted file mode 100644 index 83b52b88b980a297ca1944746be527eeeee79ad8..0000000000000000000000000000000000000000 --- a/lib/setenv.c +++ /dev/null @@ -1,330 +0,0 @@ -/* Copyright (C) 1992,1995-1999,2000-2003,2005-2008 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - 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/>. */ - -#if !_LIBC -# include <config.h> -#endif -#include <alloca.h> - -/* Specification. */ -#include <stdlib.h> - -#include <errno.h> -#ifndef __set_errno -# define __set_errno(ev) ((errno) = (ev)) -#endif - -#include <string.h> -#if _LIBC || HAVE_UNISTD_H -# include <unistd.h> -#endif - -#if _LIBC || !HAVE_SETENV - -#if !_LIBC -# include "malloca.h" -#endif - -#if !_LIBC -# define __environ environ -#endif - -#if _LIBC -/* This lock protects against simultaneous modifications of `environ'. */ -# include <bits/libc-lock.h> -__libc_lock_define_initialized (static, envlock) -# define LOCK __libc_lock_lock (envlock) -# define UNLOCK __libc_lock_unlock (envlock) -#else -# define LOCK -# define UNLOCK -#endif - -/* In the GNU C library we must keep the namespace clean. */ -#ifdef _LIBC -# define setenv __setenv -# define clearenv __clearenv -# define tfind __tfind -# define tsearch __tsearch -#endif - -/* In the GNU C library implementation we try to be more clever and - allow arbitrarily many changes of the environment given that the used - values are from a small set. Outside glibc this will eat up all - memory after a while. */ -#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ - && defined __GNUC__) -# define USE_TSEARCH 1 -# include <search.h> -typedef int (*compar_fn_t) (const void *, const void *); - -/* This is a pointer to the root of the search tree with the known - values. */ -static void *known_values; - -# define KNOWN_VALUE(Str) \ - ({ \ - void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ - value != NULL ? *(char **) value : NULL; \ - }) -# define STORE_VALUE(Str) \ - tsearch (Str, &known_values, (compar_fn_t) strcmp) - -#else -# undef USE_TSEARCH - -# define KNOWN_VALUE(Str) NULL -# define STORE_VALUE(Str) do { } while (0) - -#endif - - -/* If this variable is not a null pointer we allocated the current - environment. */ -static char **last_environ; - - -/* This function is used by `setenv' and `putenv'. The difference between - the two functions is that for the former must create a new string which - is then placed in the environment, while the argument of `putenv' - must be used directly. This is all complicated by the fact that we try - to reuse values once generated for a `setenv' call since we can never - free the strings. */ -int -__add_to_environ (const char *name, const char *value, const char *combined, - int replace) -{ - register char **ep; - register size_t size; - const size_t namelen = strlen (name); - const size_t vallen = value != NULL ? strlen (value) + 1 : 0; - - LOCK; - - /* We have to get the pointer now that we have the lock and not earlier - since another thread might have created a new environment. */ - ep = __environ; - - size = 0; - if (ep != NULL) - { - for (; *ep != NULL; ++ep) - if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') - break; - else - ++size; - } - - if (ep == NULL || *ep == NULL) - { - char **new_environ; -#ifdef USE_TSEARCH - char *new_value; -#endif - - /* We allocated this space; we can extend it. */ - new_environ = - (char **) (last_environ == NULL - ? malloc ((size + 2) * sizeof (char *)) - : realloc (last_environ, (size + 2) * sizeof (char *))); - if (new_environ == NULL) - { - UNLOCK; - return -1; - } - - /* If the whole entry is given add it. */ - if (combined != NULL) - /* We must not add the string to the search tree since it belongs - to the user. */ - new_environ[size] = (char *) combined; - else - { - /* See whether the value is already known. */ -#ifdef USE_TSEARCH -# ifdef _LIBC - new_value = (char *) alloca (namelen + 1 + vallen); - __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), - value, vallen); -# else - new_value = (char *) malloca (namelen + 1 + vallen); - if (new_value == NULL) - { - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - memcpy (new_value, name, namelen); - new_value[namelen] = '='; - memcpy (&new_value[namelen + 1], value, vallen); -# endif - - new_environ[size] = KNOWN_VALUE (new_value); - if (new_environ[size] == NULL) -#endif - { - new_environ[size] = (char *) malloc (namelen + 1 + vallen); - if (new_environ[size] == NULL) - { -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - -#ifdef USE_TSEARCH - memcpy (new_environ[size], new_value, namelen + 1 + vallen); -#else - memcpy (new_environ[size], name, namelen); - new_environ[size][namelen] = '='; - memcpy (&new_environ[size][namelen + 1], value, vallen); -#endif - /* And save the value now. We cannot do this when we remove - the string since then we cannot decide whether it is a - user string or not. */ - STORE_VALUE (new_environ[size]); - } -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - } - - if (__environ != last_environ) - memcpy ((char *) new_environ, (char *) __environ, - size * sizeof (char *)); - - new_environ[size + 1] = NULL; - - last_environ = __environ = new_environ; - } - else if (replace) - { - char *np; - - /* Use the user string if given. */ - if (combined != NULL) - np = (char *) combined; - else - { -#ifdef USE_TSEARCH - char *new_value; -# ifdef _LIBC - new_value = alloca (namelen + 1 + vallen); - __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), - value, vallen); -# else - new_value = malloca (namelen + 1 + vallen); - if (new_value == NULL) - { - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - memcpy (new_value, name, namelen); - new_value[namelen] = '='; - memcpy (&new_value[namelen + 1], value, vallen); -# endif - - np = KNOWN_VALUE (new_value); - if (np == NULL) -#endif - { - np = malloc (namelen + 1 + vallen); - if (np == NULL) - { -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - -#ifdef USE_TSEARCH - memcpy (np, new_value, namelen + 1 + vallen); -#else - memcpy (np, name, namelen); - np[namelen] = '='; - memcpy (&np[namelen + 1], value, vallen); -#endif - /* And remember the value. */ - STORE_VALUE (np); - } -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - } - - *ep = np; - } - - UNLOCK; - - return 0; -} - -int -setenv (const char *name, const char *value, int replace) -{ - return __add_to_environ (name, value, NULL, replace); -} - -/* The `clearenv' was planned to be added to POSIX.1 but probably - never made it. Nevertheless the POSIX.9 standard (POSIX bindings - for Fortran 77) requires this function. */ -int -clearenv (void) -{ - LOCK; - - if (__environ == last_environ && __environ != NULL) - { - /* We allocated this environment so we can free it. */ - free (__environ); - last_environ = NULL; - } - - /* Clear the environment pointer removes the whole environment. */ - __environ = NULL; - - UNLOCK; - - return 0; -} - -#ifdef _LIBC -static void -free_mem (void) -{ - /* Remove all traces. */ - clearenv (); - - /* Now remove the search tree. */ - __tdestroy (known_values, free); - known_values = NULL; -} -text_set_element (__libc_subfreeres, free_mem); - - -# undef setenv -# undef clearenv -weak_alias (__setenv, setenv) -weak_alias (__clearenv, clearenv) -#endif - -#endif /* _LIBC || !HAVE_SETENV */ diff --git a/lib/stdio.in.h b/lib/stdio.in.h deleted file mode 100644 index 863b903521fa776900e14791e8ee76c9fa242a5c..0000000000000000000000000000000000000000 --- a/lib/stdio.in.h +++ /dev/null @@ -1,526 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like <stdio.h>. - - Copyright (C) 2004, 2007-2008 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -#if defined __need_FILE || defined __need___FILE -/* Special invocation convention inside glibc header files. */ - -#@INCLUDE_NEXT@ @NEXT_STDIO_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STDIO_H - -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_STDIO_H@ - -#ifndef _GL_STDIO_H -#define _GL_STDIO_H - -#include <stdarg.h> -#include <stddef.h> - -#if (@GNULIB_FSEEKO@ && @REPLACE_FSEEKO@) \ - || (@GNULIB_FTELLO@ && @REPLACE_FTELLO@) \ - || (@GNULIB_GETDELIM@ && !@HAVE_DECL_GETDELIM@) \ - || (@GNULIB_GETLINE@ && (!@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@)) -/* Get off_t and ssize_t. */ -# include <sys/types.h> -#endif - -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf -# endif -#endif - - -/* The definition of GL_LINK_WARNING is copied here. */ - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if @GNULIB_FPRINTF_POSIX@ -# if @REPLACE_FPRINTF@ -# define fprintf rpl_fprintf -extern int fprintf (FILE *fp, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); -# endif -#elif @GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# define fprintf rpl_fprintf -extern int fprintf (FILE *fp, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); -#elif defined GNULIB_POSIXCHECK -# undef fprintf -# define fprintf \ - (GL_LINK_WARNING ("fprintf is not always POSIX compliant - " \ - "use gnulib module fprintf-posix for portable " \ - "POSIX compliance"), \ - fprintf) -#endif - -#if @GNULIB_VFPRINTF_POSIX@ -# if @REPLACE_VFPRINTF@ -# define vfprintf rpl_vfprintf -extern int vfprintf (FILE *fp, const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 2, 0))); -# endif -#elif @GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# define vfprintf rpl_vfprintf -extern int vfprintf (FILE *fp, const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 2, 0))); -#elif defined GNULIB_POSIXCHECK -# undef vfprintf -# define vfprintf(s,f,a) \ - (GL_LINK_WARNING ("vfprintf is not always POSIX compliant - " \ - "use gnulib module vfprintf-posix for portable " \ - "POSIX compliance"), \ - vfprintf (s, f, a)) -#endif - -#if @GNULIB_PRINTF_POSIX@ -# if @REPLACE_PRINTF@ -/* Don't break __attribute__((format(printf,M,N))). */ -# define printf __printf__ -extern int printf (const char *format, ...) - __attribute__ ((__format__ (__printf__, 1, 2))); -# endif -#elif @GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -/* Don't break __attribute__((format(printf,M,N))). */ -# define printf __printf__ -extern int printf (const char *format, ...) - __attribute__ ((__format__ (__printf__, 1, 2))); -#elif defined GNULIB_POSIXCHECK -# undef printf -# define printf \ - (GL_LINK_WARNING ("printf is not always POSIX compliant - " \ - "use gnulib module printf-posix for portable " \ - "POSIX compliance"), \ - printf) -/* Don't break __attribute__((format(printf,M,N))). */ -# define format(kind,m,n) format (__##kind##__, m, n) -# define __format__(kind,m,n) __format__ (__##kind##__, m, n) -# define ____printf____ __printf__ -# define ____scanf____ __scanf__ -# define ____strftime____ __strftime__ -# define ____strfmon____ __strfmon__ -#endif - -#if @GNULIB_VPRINTF_POSIX@ -# if @REPLACE_VPRINTF@ -# define vprintf rpl_vprintf -extern int vprintf (const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 1, 0))); -# endif -#elif @GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# define vprintf rpl_vprintf -extern int vprintf (const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 1, 0))); -#elif defined GNULIB_POSIXCHECK -# undef vprintf -# define vprintf(f,a) \ - (GL_LINK_WARNING ("vprintf is not always POSIX compliant - " \ - "use gnulib module vprintf-posix for portable " \ - "POSIX compliance"), \ - vprintf (f, a)) -#endif - -#if @GNULIB_SNPRINTF@ -# if @REPLACE_SNPRINTF@ -# define snprintf rpl_snprintf -# endif -# if @REPLACE_SNPRINTF@ || !@HAVE_DECL_SNPRINTF@ -extern int snprintf (char *str, size_t size, const char *format, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); -# endif -#elif defined GNULIB_POSIXCHECK -# undef snprintf -# define snprintf \ - (GL_LINK_WARNING ("snprintf is unportable - " \ - "use gnulib module snprintf for portability"), \ - snprintf) -#endif - -#if @GNULIB_VSNPRINTF@ -# if @REPLACE_VSNPRINTF@ -# define vsnprintf rpl_vsnprintf -# endif -# if @REPLACE_VSNPRINTF@ || !@HAVE_DECL_VSNPRINTF@ -extern int vsnprintf (char *str, size_t size, const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 3, 0))); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vsnprintf -# define vsnprintf(b,s,f,a) \ - (GL_LINK_WARNING ("vsnprintf is unportable - " \ - "use gnulib module vsnprintf for portability"), \ - vsnprintf (b, s, f, a)) -#endif - -#if @GNULIB_SPRINTF_POSIX@ -# if @REPLACE_SPRINTF@ -# define sprintf rpl_sprintf -extern int sprintf (char *str, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); -# endif -#elif defined GNULIB_POSIXCHECK -# undef sprintf -# define sprintf \ - (GL_LINK_WARNING ("sprintf is not always POSIX compliant - " \ - "use gnulib module sprintf-posix for portable " \ - "POSIX compliance"), \ - sprintf) -#endif - -#if @GNULIB_VSPRINTF_POSIX@ -# if @REPLACE_VSPRINTF@ -# define vsprintf rpl_vsprintf -extern int vsprintf (char *str, const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 2, 0))); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vsprintf -# define vsprintf(b,f,a) \ - (GL_LINK_WARNING ("vsprintf is not always POSIX compliant - " \ - "use gnulib module vsprintf-posix for portable " \ - "POSIX compliance"), \ - vsprintf (b, f, a)) -#endif - -#if @GNULIB_DPRINTF@ -# if @REPLACE_DPRINTF@ -# define dprintf rpl_dprintf -# endif -# if @REPLACE_DPRINTF@ || !@HAVE_DPRINTF@ -extern int dprintf (int fd, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); -# endif -#elif defined GNULIB_POSIXCHECK -# undef dprintf -# define dprintf(d,f,a) \ - (GL_LINK_WARNING ("dprintf is unportable - " \ - "use gnulib module dprintf for portability"), \ - dprintf (d, f, a)) -#endif - -#if @GNULIB_VDPRINTF@ -# if @REPLACE_VDPRINTF@ -# define vdprintf rpl_vdprintf -# endif -# if @REPLACE_VDPRINTF@ || !@HAVE_VDPRINTF@ -extern int vdprintf (int fd, const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 2, 0))); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vdprintf -# define vdprintf(d,f,a) \ - (GL_LINK_WARNING ("vdprintf is unportable - " \ - "use gnulib module vdprintf for portability"), \ - vdprintf (d, f, a)) -#endif - -#if @GNULIB_VASPRINTF@ -# if @REPLACE_VASPRINTF@ -# define asprintf rpl_asprintf -# define vasprintf rpl_vasprintf -# endif -# if @REPLACE_VASPRINTF@ || !@HAVE_VASPRINTF@ - /* Write formatted output to a string dynamically allocated with malloc(). - If the memory allocation succeeds, store the address of the string in - *RESULT and return the number of resulting bytes, excluding the trailing - NUL. Upon memory allocation error, or some other error, return -1. */ - extern int asprintf (char **result, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); - extern int vasprintf (char **result, const char *format, va_list args) - __attribute__ ((__format__ (__printf__, 2, 0))); -# endif -#endif - -#if @GNULIB_OBSTACK_PRINTF@ -# if @REPLACE_OBSTACK_PRINTF@ -# define obstack_printf rpl_osbtack_printf -# define obstack_vprintf rpl_obstack_vprintf -# endif -# if @REPLACE_OBSTACK_PRINTF@ || !@HAVE_DECL_OBSTACK_PRINTF@ - struct obstack; - /* Grow an obstack with formatted output. Return the number of - bytes added to OBS. No trailing nul byte is added, and the - object should be closed with obstack_finish before use. Upon - memory allocation error, call obstack_alloc_failed_handler. Upon - other error, return -1. */ - extern int obstack_printf (struct obstack *obs, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); - extern int obstack_vprintf (struct obstack *obs, const char *format, - va_list args) - __attribute__ ((__format__ (__printf__, 2, 0))); -# endif -#endif - -#if @GNULIB_FOPEN@ -# if @REPLACE_FOPEN@ -# undef fopen -# define fopen rpl_fopen -extern FILE * fopen (const char *filename, const char *mode); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fopen -# define fopen(f,m) \ - (GL_LINK_WARNING ("fopen on Win32 platforms is not POSIX compatible - " \ - "use gnulib module fopen for portability"), \ - fopen (f, m)) -#endif - -#if @GNULIB_FREOPEN@ -# if @REPLACE_FREOPEN@ -# undef freopen -# define freopen rpl_freopen -extern FILE * freopen (const char *filename, const char *mode, FILE *stream); -# endif -#elif defined GNULIB_POSIXCHECK -# undef freopen -# define freopen(f,m,s) \ - (GL_LINK_WARNING ("freopen on Win32 platforms is not POSIX compatible - " \ - "use gnulib module freopen for portability"), \ - freopen (f, m, s)) -#endif - -#if @GNULIB_FSEEKO@ -# if @REPLACE_FSEEKO@ -/* Provide fseek, fseeko functions that are aware of a preceding - fflush(), and which detect pipes. */ -# define fseeko rpl_fseeko -extern int fseeko (FILE *fp, off_t offset, int whence); -# define fseek(fp, offset, whence) fseeko (fp, (off_t)(offset), whence) -# endif -#elif defined GNULIB_POSIXCHECK -# undef fseeko -# define fseeko(f,o,w) \ - (GL_LINK_WARNING ("fseeko is unportable - " \ - "use gnulib module fseeko for portability"), \ - fseeko (f, o, w)) -#endif - -#if @GNULIB_FSEEK@ && @REPLACE_FSEEK@ -extern int rpl_fseek (FILE *fp, long offset, int whence); -# undef fseek -# if defined GNULIB_POSIXCHECK -# define fseek(f,o,w) \ - (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \ - "on 32-bit platforms - " \ - "use fseeko function for handling of large files"), \ - rpl_fseek (f, o, w)) -# else -# define fseek rpl_fseek -# endif -#elif defined GNULIB_POSIXCHECK -# ifndef fseek -# define fseek(f,o,w) \ - (GL_LINK_WARNING ("fseek cannot handle files larger than 4 GB " \ - "on 32-bit platforms - " \ - "use fseeko function for handling of large files"), \ - fseek (f, o, w)) -# endif -#endif - -#if @GNULIB_FTELLO@ -# if @REPLACE_FTELLO@ -# define ftello rpl_ftello -extern off_t ftello (FILE *fp); -# define ftell(fp) ftello (fp) -# endif -#elif defined GNULIB_POSIXCHECK -# undef ftello -# define ftello(f) \ - (GL_LINK_WARNING ("ftello is unportable - " \ - "use gnulib module ftello for portability"), \ - ftello (f)) -#endif - -#if @GNULIB_FTELL@ && @REPLACE_FTELL@ -extern long rpl_ftell (FILE *fp); -# undef ftell -# if GNULIB_POSIXCHECK -# define ftell(f) \ - (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \ - "on 32-bit platforms - " \ - "use ftello function for handling of large files"), \ - rpl_ftell (f)) -# else -# define ftell rpl_ftell -# endif -#elif defined GNULIB_POSIXCHECK -# ifndef ftell -# define ftell(f) \ - (GL_LINK_WARNING ("ftell cannot handle files larger than 4 GB " \ - "on 32-bit platforms - " \ - "use ftello function for handling of large files"), \ - ftell (f)) -# endif -#endif - -#if @GNULIB_FFLUSH@ -# if @REPLACE_FFLUSH@ -# define fflush rpl_fflush - /* Flush all pending data on STREAM according to POSIX rules. Both - output and seekable input streams are supported. - Note! LOSS OF DATA can occur if fflush is applied on an input stream - that is _not_seekable_ or on an update stream that is _not_seekable_ - and in which the most recent operation was input. Seekability can - be tested with lseek(fileno(fp),0,SEEK_CUR). */ - extern int fflush (FILE *gl_stream); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fflush -# define fflush(f) \ - (GL_LINK_WARNING ("fflush is not always POSIX compliant - " \ - "use gnulib module fflush for portable " \ - "POSIX compliance"), \ - fflush (f)) -#endif - -#if @GNULIB_FCLOSE@ -# if @REPLACE_FCLOSE@ -# define fclose rpl_fclose - /* Close STREAM and its underlying file descriptor. */ -extern int fclose (FILE *stream); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fclose -# define fclose(f) \ - (GL_LINK_WARNING ("fclose is not always POSIX compliant - " \ - "use gnulib module fclose for portable " \ - "POSIX compliance"), \ - fclose (f)) -#endif - -#if @GNULIB_FPUTC@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# undef fputc -# define fputc rpl_fputc -extern int fputc (int c, FILE *stream); -#endif - -#if @GNULIB_PUTC@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# undef putc -# define putc rpl_fputc -extern int putc (int c, FILE *stream); -#endif - -#if @GNULIB_PUTCHAR@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# undef putchar -# define putchar rpl_putchar -extern int putchar (int c); -#endif - -#if @GNULIB_FPUTS@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# undef fputs -# define fputs rpl_fputs -extern int fputs (const char *string, FILE *stream); -#endif - -#if @GNULIB_PUTS@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# undef puts -# define puts rpl_puts -extern int puts (const char *string); -#endif - -#if @GNULIB_FWRITE@ && @REPLACE_STDIO_WRITE_FUNCS@ && @GNULIB_STDIO_H_SIGPIPE@ -# undef fwrite -# define fwrite rpl_fwrite -extern size_t fwrite (const void *ptr, size_t s, size_t n, FILE *stream); -#endif - -#if @GNULIB_GETDELIM@ -# if !@HAVE_DECL_GETDELIM@ -/* Read input, up to (and including) the next occurrence of DELIMITER, from - STREAM, store it in *LINEPTR (and NUL-terminate it). - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -extern ssize_t getdelim (char **lineptr, size_t *linesize, int delimiter, - FILE *stream); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getdelim -# define getdelim(l, s, d, f) \ - (GL_LINK_WARNING ("getdelim is unportable - " \ - "use gnulib module getdelim for portability"), \ - getdelim (l, s, d, f)) -#endif - -#if @GNULIB_GETLINE@ -# if @REPLACE_GETLINE@ -# undef getline -# define getline rpl_getline -# endif -# if !@HAVE_DECL_GETLINE@ || @REPLACE_GETLINE@ -/* Read a line, up to (and including) the next newline, from STREAM, store it - in *LINEPTR (and NUL-terminate it). - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -extern ssize_t getline (char **lineptr, size_t *linesize, FILE *stream); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getline -# define getline(l, s, f) \ - (GL_LINK_WARNING ("getline is unportable - " \ - "use gnulib module getline for portability"), \ - getline (l, s, f)) -#endif - -#if @GNULIB_PERROR@ -# if @REPLACE_PERROR@ -# define perror rpl_perror -/* Print a message to standard error, describing the value of ERRNO, - (if STRING is not NULL and not empty) prefixed with STRING and ": ", - and terminated with a newline. */ -extern void perror (const char *string); -# endif -#elif defined GNULIB_POSIXCHECK -# undef perror -# define perror(s) \ - (GL_LINK_WARNING ("perror is not always POSIX compliant - " \ - "use gnulib module perror for portability"), \ - perror (s)) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_STDIO_H */ -#endif /* _GL_STDIO_H */ -#endif diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h deleted file mode 100644 index f99767f600f6c721671db6f74b5ce79c59c28d1a..0000000000000000000000000000000000000000 --- a/lib/stdlib.in.h +++ /dev/null @@ -1,383 +0,0 @@ -/* A GNU-like <stdlib.h>. - - Copyright (C) 1995, 2001-2004, 2006-2009 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/>. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -#if defined __need_malloc_and_calloc -/* Special invocation convention inside glibc header files. */ - -#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STDLIB_H - -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_STDLIB_H@ - -#ifndef _GL_STDLIB_H -#define _GL_STDLIB_H - - -/* Solaris declares getloadavg() in <sys/loadavg.h>. */ -#if @GNULIB_GETLOADAVG@ && @HAVE_SYS_LOADAVG_H@ -# include <sys/loadavg.h> -#endif - -/* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included - from <stdlib.h> if _REENTRANT is defined. Include it always. */ -#if @HAVE_RANDOM_H@ -# include <random.h> -#endif - -#if @GNULIB_RANDOM_R@ || !@HAVE_STRUCT_RANDOM_DATA@ -# include <stdint.h> -#endif - -#if !@HAVE_STRUCT_RANDOM_DATA@ -struct random_data -{ - int32_t *fptr; /* Front pointer. */ - int32_t *rptr; /* Rear pointer. */ - int32_t *state; /* Array of state values. */ - int rand_type; /* Type of random number generator. */ - int rand_deg; /* Degree of random number generator. */ - int rand_sep; /* Distance between front and rear. */ - int32_t *end_ptr; /* Pointer behind state table. */ -}; -#endif - -/* The definition of GL_LINK_WARNING is copied here. */ - - -/* Some systems do not define EXIT_*, despite otherwise supporting C89. */ -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere - with proper operation of xargs. */ -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#elif EXIT_FAILURE != 1 -# undef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if @GNULIB_MALLOC_POSIX@ -# if !@HAVE_MALLOC_POSIX@ -# undef malloc -# define malloc rpl_malloc -extern void * malloc (size_t size); -# endif -#elif defined GNULIB_POSIXCHECK -# undef malloc -# define malloc(s) \ - (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \ - "use gnulib module malloc-posix for portability"), \ - malloc (s)) -#endif - - -#if @GNULIB_REALLOC_POSIX@ -# if !@HAVE_REALLOC_POSIX@ -# undef realloc -# define realloc rpl_realloc -extern void * realloc (void *ptr, size_t size); -# endif -#elif defined GNULIB_POSIXCHECK -# undef realloc -# define realloc(p,s) \ - (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \ - "use gnulib module realloc-posix for portability"), \ - realloc (p, s)) -#endif - - -#if @GNULIB_CALLOC_POSIX@ -# if !@HAVE_CALLOC_POSIX@ -# undef calloc -# define calloc rpl_calloc -extern void * calloc (size_t nmemb, size_t size); -# endif -#elif defined GNULIB_POSIXCHECK -# undef calloc -# define calloc(n,s) \ - (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \ - "use gnulib module calloc-posix for portability"), \ - calloc (n, s)) -#endif - - -#if @GNULIB_ATOLL@ -# if !@HAVE_ATOLL@ -/* Parse a signed decimal integer. - Returns the value of the integer. Errors are not detected. */ -extern long long atoll (const char *string); -# endif -#elif defined GNULIB_POSIXCHECK -# undef atoll -# define atoll(s) \ - (GL_LINK_WARNING ("atoll is unportable - " \ - "use gnulib module atoll for portability"), \ - atoll (s)) -#endif - - -#if @GNULIB_GETLOADAVG@ -# if !@HAVE_DECL_GETLOADAVG@ -/* Store max(NELEM,3) load average numbers in LOADAVG[]. - The three numbers are the load average of the last 1 minute, the last 5 - minutes, and the last 15 minutes, respectively. - LOADAVG is an array of NELEM numbers. */ -extern int getloadavg (double loadavg[], int nelem); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getloadavg -# define getloadavg(l,n) \ - (GL_LINK_WARNING ("getloadavg is not portable - " \ - "use gnulib module getloadavg for portability"), \ - getloadavg (l, n)) -#endif - - -#if @GNULIB_GETSUBOPT@ -/* Assuming *OPTIONP is a comma separated list of elements of the form - "token" or "token=value", getsubopt parses the first of these elements. - If the first element refers to a "token" that is member of the given - NULL-terminated array of tokens: - - It replaces the comma with a NUL byte, updates *OPTIONP to point past - the first option and the comma, sets *VALUEP to the value of the - element (or NULL if it doesn't contain an "=" sign), - - It returns the index of the "token" in the given array of tokens. - Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. - For more details see the POSIX:2001 specification. - http://www.opengroup.org/susv3xsh/getsubopt.html */ -# if !@HAVE_GETSUBOPT@ -extern int getsubopt (char **optionp, char *const *tokens, char **valuep); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getsubopt -# define getsubopt(o,t,v) \ - (GL_LINK_WARNING ("getsubopt is unportable - " \ - "use gnulib module getsubopt for portability"), \ - getsubopt (o, t, v)) -#endif - - -#if @GNULIB_MKDTEMP@ -# if !@HAVE_MKDTEMP@ -/* Create a unique temporary directory from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the directory name unique. - Returns TEMPLATE, or a null pointer if it cannot get a unique name. - The directory is created mode 700. */ -extern char * mkdtemp (char * /*template*/); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mkdtemp -# define mkdtemp(t) \ - (GL_LINK_WARNING ("mkdtemp is unportable - " \ - "use gnulib module mkdtemp for portability"), \ - mkdtemp (t)) -#endif - - -#if @GNULIB_MKSTEMP@ -# if @REPLACE_MKSTEMP@ -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The file is then created, ensuring it didn't exist before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# define mkstemp rpl_mkstemp -extern int mkstemp (char * /*template*/); -# else -/* On MacOS X 10.3, only <unistd.h> declares mkstemp. */ -# include <unistd.h> -# endif -#elif defined GNULIB_POSIXCHECK -# undef mkstemp -# define mkstemp(t) \ - (GL_LINK_WARNING ("mkstemp is unportable - " \ - "use gnulib module mkstemp for portability"), \ - mkstemp (t)) -#endif - - -#if @GNULIB_PUTENV@ -# if @REPLACE_PUTENV@ -# undef putenv -# define putenv rpl_putenv -extern int putenv (char *string); -# endif -#endif - - -#if @GNULIB_RANDOM_R@ -# if !@HAVE_RANDOM_R@ - -# ifndef RAND_MAX -# define RAND_MAX 2147483647 -# endif - -int srandom_r (unsigned int seed, struct random_data *rand_state); -int initstate_r (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state); -int setstate_r (char *arg_state, struct random_data *rand_state); -int random_r (struct random_data *buf, int32_t *result); -# endif -#elif defined GNULIB_POSIXCHECK -# undef random_r -# define random_r(b,r) \ - (GL_LINK_WARNING ("random_r is unportable - " \ - "use gnulib module random_r for portability"), \ - random_r (b,r)) -# undef initstate_r -# define initstate_r(s,b,sz,r) \ - (GL_LINK_WARNING ("initstate_r is unportable - " \ - "use gnulib module random_r for portability"), \ - initstate_r (s,b,sz,r)) -# undef srandom_r -# define srandom_r(s,r) \ - (GL_LINK_WARNING ("srandom_r is unportable - " \ - "use gnulib module random_r for portability"), \ - srandom_r (s,r)) -# undef setstate_r -# define setstate_r(a,r) \ - (GL_LINK_WARNING ("setstate_r is unportable - " \ - "use gnulib module random_r for portability"), \ - setstate_r (a,r)) -#endif - - -#if @GNULIB_RPMATCH@ -# if !@HAVE_RPMATCH@ -/* Test a user response to a question. - Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ -extern int rpmatch (const char *response); -# endif -#elif defined GNULIB_POSIXCHECK -# undef rpmatch -# define rpmatch(r) \ - (GL_LINK_WARNING ("rpmatch is unportable - " \ - "use gnulib module rpmatch for portability"), \ - rpmatch (r)) -#endif - - -#if @GNULIB_SETENV@ -# if !@HAVE_SETENV@ -/* Set NAME to VALUE in the environment. - If REPLACE is nonzero, overwrite an existing value. */ -extern int setenv (const char *name, const char *value, int replace); -# endif -#endif - - -#if @GNULIB_UNSETENV@ -# if @HAVE_UNSETENV@ -# if @VOID_UNSETENV@ -/* On some systems, unsetenv() returns void. - This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4. */ -# define unsetenv(name) ((unsetenv)(name), 0) -# endif -# else -/* Remove the variable NAME from the environment. */ -extern int unsetenv (const char *name); -# endif -#endif - - -#if @GNULIB_STRTOD@ -# if @REPLACE_STRTOD@ -# define strtod rpl_strtod -# endif -# if !@HAVE_STRTOD@ || @REPLACE_STRTOD@ - /* Parse a double from STRING, updating ENDP if appropriate. */ -extern double strtod (const char *str, char **endp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtod -# define strtod(s, e) \ - (GL_LINK_WARNING ("strtod is unportable - " \ - "use gnulib module strtod for portability"), \ - strtod (s, e)) -#endif - - -#if @GNULIB_STRTOLL@ -# if !@HAVE_STRTOLL@ -/* Parse a signed integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set - to ERANGE. */ -extern long long strtoll (const char *string, char **endptr, int base); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtoll -# define strtoll(s,e,b) \ - (GL_LINK_WARNING ("strtoll is unportable - " \ - "use gnulib module strtoll for portability"), \ - strtoll (s, e, b)) -#endif - - -#if @GNULIB_STRTOULL@ -# if !@HAVE_STRTOULL@ -/* Parse an unsigned integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is ULLONG_MAX, and errno is set to - ERANGE. */ -extern unsigned long long strtoull (const char *string, char **endptr, int base); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtoull -# define strtoull(s,e,b) \ - (GL_LINK_WARNING ("strtoull is unportable - " \ - "use gnulib module strtoull for portability"), \ - strtoull (s, e, b)) -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_STDLIB_H */ -#endif /* _GL_STDLIB_H */ -#endif diff --git a/lib/string.in.h b/lib/string.in.h deleted file mode 100644 index a300dad5dd32275de40273eb07bb0562a209e6b4..0000000000000000000000000000000000000000 --- a/lib/string.in.h +++ /dev/null @@ -1,607 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like <string.h>. - - Copyright (C) 1995-1996, 2001-2008 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _GL_STRING_H - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_STRING_H@ - -#ifndef _GL_STRING_H -#define _GL_STRING_H - - -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The attribute __pure__ was added in gcc 2.96. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) -# define __pure__ /* empty */ -# endif -#endif - - -/* The definition of GL_LINK_WARNING is copied here. */ - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the first occurrence of NEEDLE in HAYSTACK. */ -#if @GNULIB_MEMMEM@ -# if @REPLACE_MEMMEM@ -# define memmem rpl_memmem -# endif -# if ! @HAVE_DECL_MEMMEM@ || @REPLACE_MEMMEM@ -extern void *memmem (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len) - __attribute__ ((__pure__)); -# endif -#elif defined GNULIB_POSIXCHECK -# undef memmem -# define memmem(a,al,b,bl) \ - (GL_LINK_WARNING ("memmem is unportable and often quadratic - " \ - "use gnulib module memmem-simple for portability, " \ - "and module memmem for speed" ), \ - memmem (a, al, b, bl)) -#endif - -/* Copy N bytes of SRC to DEST, return pointer to bytes after the - last written byte. */ -#if @GNULIB_MEMPCPY@ -# if ! @HAVE_MEMPCPY@ -extern void *mempcpy (void *restrict __dest, void const *restrict __src, - size_t __n); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mempcpy -# define mempcpy(a,b,n) \ - (GL_LINK_WARNING ("mempcpy is unportable - " \ - "use gnulib module mempcpy for portability"), \ - mempcpy (a, b, n)) -#endif - -/* Search backwards through a block for a byte (specified as an int). */ -#if @GNULIB_MEMRCHR@ -# if ! @HAVE_DECL_MEMRCHR@ -extern void *memrchr (void const *, int, size_t) - __attribute__ ((__pure__)); -# endif -#elif defined GNULIB_POSIXCHECK -# undef memrchr -# define memrchr(a,b,c) \ - (GL_LINK_WARNING ("memrchr is unportable - " \ - "use gnulib module memrchr for portability"), \ - memrchr (a, b, c)) -#endif - -/* Find the first occurrence of C in S. More efficient than - memchr(S,C,N), at the expense of undefined behavior if C does not - occur within N bytes. */ -#if @GNULIB_RAWMEMCHR@ -# if ! @HAVE_RAWMEMCHR@ -extern void *rawmemchr (void const *__s, int __c_in) - __attribute__ ((__pure__)); -# endif -#elif defined GNULIB_POSIXCHECK -# undef rawmemchr -# define rawmemchr(a,b) \ - (GL_LINK_WARNING ("rawmemchr is unportable - " \ - "use gnulib module rawmemchr for portability"), \ - rawmemchr (a, b)) -#endif - -/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ -#if @GNULIB_STPCPY@ -# if ! @HAVE_STPCPY@ -extern char *stpcpy (char *restrict __dst, char const *restrict __src); -# endif -#elif defined GNULIB_POSIXCHECK -# undef stpcpy -# define stpcpy(a,b) \ - (GL_LINK_WARNING ("stpcpy is unportable - " \ - "use gnulib module stpcpy for portability"), \ - stpcpy (a, b)) -#endif - -/* Copy no more than N bytes of SRC to DST, returning a pointer past the - last non-NUL byte written into DST. */ -#if @GNULIB_STPNCPY@ -# if ! @HAVE_STPNCPY@ -# define stpncpy gnu_stpncpy -extern char *stpncpy (char *restrict __dst, char const *restrict __src, - size_t __n); -# endif -#elif defined GNULIB_POSIXCHECK -# undef stpncpy -# define stpncpy(a,b,n) \ - (GL_LINK_WARNING ("stpncpy is unportable - " \ - "use gnulib module stpncpy for portability"), \ - stpncpy (a, b, n)) -#endif - -#if defined GNULIB_POSIXCHECK -/* strchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ -# undef strchr -# define strchr(s,c) \ - (GL_LINK_WARNING ("strchr cannot work correctly on character strings " \ - "in some multibyte locales - " \ - "use mbschr if you care about internationalization"), \ - strchr (s, c)) -#endif - -/* Find the first occurrence of C in S or the final NUL byte. */ -#if @GNULIB_STRCHRNUL@ -# if ! @HAVE_STRCHRNUL@ -extern char *strchrnul (char const *__s, int __c_in) - __attribute__ ((__pure__)); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strchrnul -# define strchrnul(a,b) \ - (GL_LINK_WARNING ("strchrnul is unportable - " \ - "use gnulib module strchrnul for portability"), \ - strchrnul (a, b)) -#endif - -/* Duplicate S, returning an identical malloc'd string. */ -#if @GNULIB_STRDUP@ -# if @REPLACE_STRDUP@ -# undef strdup -# define strdup rpl_strdup -# endif -# if !(@HAVE_DECL_STRDUP@ || defined strdup) || @REPLACE_STRDUP@ -extern char *strdup (char const *__s); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strdup -# define strdup(a) \ - (GL_LINK_WARNING ("strdup is unportable - " \ - "use gnulib module strdup for portability"), \ - strdup (a)) -#endif - -/* Return a newly allocated copy of at most N bytes of STRING. */ -#if @GNULIB_STRNDUP@ -# if ! @HAVE_STRNDUP@ -# undef strndup -# define strndup rpl_strndup -# endif -# if ! @HAVE_STRNDUP@ || ! @HAVE_DECL_STRNDUP@ -extern char *strndup (char const *__string, size_t __n); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strndup -# define strndup(a,n) \ - (GL_LINK_WARNING ("strndup is unportable - " \ - "use gnulib module strndup for portability"), \ - strndup (a, n)) -#endif - -/* Find the length (number of bytes) of STRING, but scan at most - MAXLEN bytes. If no '\0' terminator is found in that many bytes, - return MAXLEN. */ -#if @GNULIB_STRNLEN@ -# if ! @HAVE_DECL_STRNLEN@ -extern size_t strnlen (char const *__string, size_t __maxlen) - __attribute__ ((__pure__)); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strnlen -# define strnlen(a,n) \ - (GL_LINK_WARNING ("strnlen is unportable - " \ - "use gnulib module strnlen for portability"), \ - strnlen (a, n)) -#endif - -#if defined GNULIB_POSIXCHECK -/* strcspn() assumes the second argument is a list of single-byte characters. - Even in this simple case, it does not work with multibyte strings if the - locale encoding is GB18030 and one of the characters to be searched is a - digit. */ -# undef strcspn -# define strcspn(s,a) \ - (GL_LINK_WARNING ("strcspn cannot work correctly on character strings " \ - "in multibyte locales - " \ - "use mbscspn if you care about internationalization"), \ - strcspn (s, a)) -#endif - -/* Find the first occurrence in S of any character in ACCEPT. */ -#if @GNULIB_STRPBRK@ -# if ! @HAVE_STRPBRK@ -extern char *strpbrk (char const *__s, char const *__accept) - __attribute__ ((__pure__)); -# endif -# if defined GNULIB_POSIXCHECK -/* strpbrk() assumes the second argument is a list of single-byte characters. - Even in this simple case, it does not work with multibyte strings if the - locale encoding is GB18030 and one of the characters to be searched is a - digit. */ -# undef strpbrk -# define strpbrk(s,a) \ - (GL_LINK_WARNING ("strpbrk cannot work correctly on character strings " \ - "in multibyte locales - " \ - "use mbspbrk if you care about internationalization"), \ - strpbrk (s, a)) -# endif -#elif defined GNULIB_POSIXCHECK -# undef strpbrk -# define strpbrk(s,a) \ - (GL_LINK_WARNING ("strpbrk is unportable - " \ - "use gnulib module strpbrk for portability"), \ - strpbrk (s, a)) -#endif - -#if defined GNULIB_POSIXCHECK -/* strspn() assumes the second argument is a list of single-byte characters. - Even in this simple case, it cannot work with multibyte strings. */ -# undef strspn -# define strspn(s,a) \ - (GL_LINK_WARNING ("strspn cannot work correctly on character strings " \ - "in multibyte locales - " \ - "use mbsspn if you care about internationalization"), \ - strspn (s, a)) -#endif - -#if defined GNULIB_POSIXCHECK -/* strrchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ -# undef strrchr -# define strrchr(s,c) \ - (GL_LINK_WARNING ("strrchr cannot work correctly on character strings " \ - "in some multibyte locales - " \ - "use mbsrchr if you care about internationalization"), \ - strrchr (s, c)) -#endif - -/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. - If one is found, overwrite it with a NUL, and advance *STRINGP - to point to the next char after it. Otherwise, set *STRINGP to NULL. - If *STRINGP was already NULL, nothing happens. - Return the old value of *STRINGP. - - This is a variant of strtok() that is multithread-safe and supports - empty fields. - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strtok_r(). */ -#if @GNULIB_STRSEP@ -# if ! @HAVE_STRSEP@ -extern char *strsep (char **restrict __stringp, char const *restrict __delim); -# endif -# if defined GNULIB_POSIXCHECK -# undef strsep -# define strsep(s,d) \ - (GL_LINK_WARNING ("strsep cannot work correctly on character strings " \ - "in multibyte locales - " \ - "use mbssep if you care about internationalization"), \ - strsep (s, d)) -# endif -#elif defined GNULIB_POSIXCHECK -# undef strsep -# define strsep(s,d) \ - (GL_LINK_WARNING ("strsep is unportable - " \ - "use gnulib module strsep for portability"), \ - strsep (s, d)) -#endif - -#if @GNULIB_STRSTR@ -# if @REPLACE_STRSTR@ -# define strstr rpl_strstr -char *strstr (const char *haystack, const char *needle) - __attribute__ ((__pure__)); -# endif -#elif defined GNULIB_POSIXCHECK -/* strstr() does not work with multibyte strings if the locale encoding is - different from UTF-8: - POSIX says that it operates on "strings", and "string" in POSIX is defined - as a sequence of bytes, not of characters. */ -# undef strstr -# define strstr(a,b) \ - (GL_LINK_WARNING ("strstr is quadratic on many systems, and cannot " \ - "work correctly on character strings in most " \ - "multibyte locales - " \ - "use mbsstr if you care about internationalization, " \ - "or use strstr if you care about speed"), \ - strstr (a, b)) -#endif - -/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive - comparison. */ -#if @GNULIB_STRCASESTR@ -# if @REPLACE_STRCASESTR@ -# define strcasestr rpl_strcasestr -# endif -# if ! @HAVE_STRCASESTR@ || @REPLACE_STRCASESTR@ -extern char *strcasestr (const char *haystack, const char *needle) - __attribute__ ((__pure__)); -# endif -#elif defined GNULIB_POSIXCHECK -/* strcasestr() does not work with multibyte strings: - It is a glibc extension, and glibc implements it only for unibyte - locales. */ -# undef strcasestr -# define strcasestr(a,b) \ - (GL_LINK_WARNING ("strcasestr does work correctly on character strings " \ - "in multibyte locales - " \ - "use mbscasestr if you care about " \ - "internationalization, or use c-strcasestr if you want " \ - "a locale independent function"), \ - strcasestr (a, b)) -#endif - -/* Parse S into tokens separated by characters in DELIM. - If S is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = strtok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" - - This is a variant of strtok() that is multithread-safe. - - For the POSIX documentation for this function, see: - http://www.opengroup.org/susv3xsh/strtok.html - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strsep(). */ -#if @GNULIB_STRTOK_R@ -# if ! @HAVE_DECL_STRTOK_R@ -extern char *strtok_r (char *restrict s, char const *restrict delim, - char **restrict save_ptr); -# endif -# if defined GNULIB_POSIXCHECK -# undef strtok_r -# define strtok_r(s,d,p) \ - (GL_LINK_WARNING ("strtok_r cannot work correctly on character strings " \ - "in multibyte locales - " \ - "use mbstok_r if you care about internationalization"), \ - strtok_r (s, d, p)) -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtok_r -# define strtok_r(s,d,p) \ - (GL_LINK_WARNING ("strtok_r is unportable - " \ - "use gnulib module strtok_r for portability"), \ - strtok_r (s, d, p)) -#endif - - -/* The following functions are not specified by POSIX. They are gnulib - extensions. */ - -#if @GNULIB_MBSLEN@ -/* Return the number of multibyte characters in the character string STRING. - This considers multibyte characters, unlike strlen, which counts bytes. */ -extern size_t mbslen (const char *string); -#endif - -#if @GNULIB_MBSNLEN@ -/* Return the number of multibyte characters in the character string starting - at STRING and ending at STRING + LEN. */ -extern size_t mbsnlen (const char *string, size_t len); -#endif - -#if @GNULIB_MBSCHR@ -/* Locate the first single-byte character C in the character string STRING, - and return a pointer to it. Return NULL if C is not found in STRING. - Unlike strchr(), this function works correctly in multibyte locales with - encodings such as GB18030. */ -# define mbschr rpl_mbschr /* avoid collision with HP-UX function */ -extern char * mbschr (const char *string, int c); -#endif - -#if @GNULIB_MBSRCHR@ -/* Locate the last single-byte character C in the character string STRING, - and return a pointer to it. Return NULL if C is not found in STRING. - Unlike strrchr(), this function works correctly in multibyte locales with - encodings such as GB18030. */ -# define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */ -extern char * mbsrchr (const char *string, int c); -#endif - -#if @GNULIB_MBSSTR@ -/* Find the first occurrence of the character string NEEDLE in the character - string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. - Unlike strstr(), this function works correctly in multibyte locales with - encodings different from UTF-8. */ -extern char * mbsstr (const char *haystack, const char *needle); -#endif - -#if @GNULIB_MBSCASECMP@ -/* Compare the character strings S1 and S2, ignoring case, returning less than, - equal to or greater than zero if S1 is lexicographically less than, equal to - or greater than S2. - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! - Unlike strcasecmp(), this function works correctly in multibyte locales. */ -extern int mbscasecmp (const char *s1, const char *s2); -#endif - -#if @GNULIB_MBSNCASECMP@ -/* Compare the initial segment of the character string S1 consisting of at most - N characters with the initial segment of the character string S2 consisting - of at most N characters, ignoring case, returning less than, equal to or - greater than zero if the initial segment of S1 is lexicographically less - than, equal to or greater than the initial segment of S2. - Note: This function may, in multibyte locales, return 0 for initial segments - of different lengths! - Unlike strncasecmp(), this function works correctly in multibyte locales. - But beware that N is not a byte count but a character count! */ -extern int mbsncasecmp (const char *s1, const char *s2, size_t n); -#endif - -#if @GNULIB_MBSPCASECMP@ -/* Compare the initial segment of the character string STRING consisting of - at most mbslen (PREFIX) characters with the character string PREFIX, - ignoring case, returning less than, equal to or greater than zero if this - initial segment is lexicographically less than, equal to or greater than - PREFIX. - Note: This function may, in multibyte locales, return 0 if STRING is of - smaller length than PREFIX! - Unlike strncasecmp(), this function works correctly in multibyte - locales. */ -extern char * mbspcasecmp (const char *string, const char *prefix); -#endif - -#if @GNULIB_MBSCASESTR@ -/* Find the first occurrence of the character string NEEDLE in the character - string HAYSTACK, using case-insensitive comparison. - Note: This function may, in multibyte locales, return success even if - strlen (haystack) < strlen (needle) ! - Unlike strcasestr(), this function works correctly in multibyte locales. */ -extern char * mbscasestr (const char *haystack, const char *needle); -#endif - -#if @GNULIB_MBSCSPN@ -/* Find the first occurrence in the character string STRING of any character - in the character string ACCEPT. Return the number of bytes from the - beginning of the string to this occurrence, or to the end of the string - if none exists. - Unlike strcspn(), this function works correctly in multibyte locales. */ -extern size_t mbscspn (const char *string, const char *accept); -#endif - -#if @GNULIB_MBSPBRK@ -/* Find the first occurrence in the character string STRING of any character - in the character string ACCEPT. Return the pointer to it, or NULL if none - exists. - Unlike strpbrk(), this function works correctly in multibyte locales. */ -# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ -extern char * mbspbrk (const char *string, const char *accept); -#endif - -#if @GNULIB_MBSSPN@ -/* Find the first occurrence in the character string STRING of any character - not in the character string REJECT. Return the number of bytes from the - beginning of the string to this occurrence, or to the end of the string - if none exists. - Unlike strspn(), this function works correctly in multibyte locales. */ -extern size_t mbsspn (const char *string, const char *reject); -#endif - -#if @GNULIB_MBSSEP@ -/* Search the next delimiter (multibyte character listed in the character - string DELIM) starting at the character string *STRINGP. - If one is found, overwrite it with a NUL, and advance *STRINGP to point - to the next multibyte character after it. Otherwise, set *STRINGP to NULL. - If *STRINGP was already NULL, nothing happens. - Return the old value of *STRINGP. - - This is a variant of mbstok_r() that supports empty fields. - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - - See also mbstok_r(). */ -extern char * mbssep (char **stringp, const char *delim); -#endif - -#if @GNULIB_MBSTOK_R@ -/* Parse the character string STRING into tokens separated by characters in - the character string DELIM. - If STRING is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = mbstok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - - See also mbssep(). */ -extern char * mbstok_r (char *string, const char *delim, char **save_ptr); -#endif - -/* Map any int, typically from errno, into an error message. */ -#if @GNULIB_STRERROR@ -# if @REPLACE_STRERROR@ -# undef strerror -# define strerror rpl_strerror -extern char *strerror (int); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strerror -# define strerror(e) \ - (GL_LINK_WARNING ("strerror is unportable - " \ - "use gnulib module strerror to guarantee non-NULL result"), \ - strerror (e)) -#endif - -#if @GNULIB_STRSIGNAL@ -# if @REPLACE_STRSIGNAL@ -# define strsignal rpl_strsignal -# endif -# if ! @HAVE_DECL_STRSIGNAL@ || @REPLACE_STRSIGNAL@ -extern char *strsignal (int __sig); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strsignal -# define strsignal(a) \ - (GL_LINK_WARNING ("strsignal is unportable - " \ - "use gnulib module strsignal for portability"), \ - strsignal (a)) -#endif - -#if @GNULIB_STRVERSCMP@ -# if !@HAVE_STRVERSCMP@ -extern int strverscmp (const char *, const char *); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strverscmp -# define strverscmp(a, b) \ - (GL_LINK_WARNING ("strverscmp is unportable - " \ - "use gnulib module strverscmp for portability"), \ - strverscmp (a, b)) -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_STRING_H */ -#endif /* _GL_STRING_H */ diff --git a/lib/strtoumax.c b/lib/strtoumax.c deleted file mode 100644 index dc395d626ab5c5437d60df0cb796c15765d5aedb..0000000000000000000000000000000000000000 --- a/lib/strtoumax.c +++ /dev/null @@ -1,2 +0,0 @@ -#define UNSIGNED 1 -#include "strtoimax.c" diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h deleted file mode 100644 index ff42af70801433475bf964313f567dc90c6c93c2..0000000000000000000000000000000000000000 --- a/lib/sys_stat.in.h +++ /dev/null @@ -1,363 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Provide a more complete sys/stat header file. - Copyright (C) 2005-2009 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ - -/* This file is supposed to be used on platforms where <sys/stat.h> is - incomplete. It is intended to provide definitions and prototypes - needed by an application. Start with what the system provides. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -#if defined __need_system_sys_stat_h -/* Special invocation convention. */ - -#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _GL_SYS_STAT_H - -/* Get nlink_t. */ -#include <sys/types.h> - -/* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ - -#ifndef _GL_SYS_STAT_H -#define _GL_SYS_STAT_H - -/* The definition of GL_LINK_WARNING is copied here. */ - -/* Before doing "#define mkdir rpl_mkdir" below, we need to include all - headers that may declare mkdir(). */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ -# include <io.h> -#endif - -#ifndef S_IFMT -# define S_IFMT 0170000 -#endif - -#if STAT_MACROS_BROKEN -# undef S_ISBLK -# undef S_ISCHR -# undef S_ISDIR -# undef S_ISFIFO -# undef S_ISLNK -# undef S_ISNAM -# undef S_ISMPB -# undef S_ISMPC -# undef S_ISNWK -# undef S_ISREG -# undef S_ISSOCK -#endif - -#ifndef S_ISBLK -# ifdef S_IFBLK -# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) -# else -# define S_ISBLK(m) 0 -# endif -#endif - -#ifndef S_ISCHR -# ifdef S_IFCHR -# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -# else -# define S_ISCHR(m) 0 -# endif -#endif - -#ifndef S_ISDIR -# ifdef S_IFDIR -# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -# else -# define S_ISDIR(m) 0 -# endif -#endif - -#ifndef S_ISDOOR /* Solaris 2.5 and up */ -# define S_ISDOOR(m) 0 -#endif - -#ifndef S_ISFIFO -# ifdef S_IFIFO -# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) -# else -# define S_ISFIFO(m) 0 -# endif -#endif - -#ifndef S_ISLNK -# ifdef S_IFLNK -# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) -# else -# define S_ISLNK(m) 0 -# endif -#endif - -#ifndef S_ISMPB /* V7 */ -# ifdef S_IFMPB -# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) -# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) -# else -# define S_ISMPB(m) 0 -# define S_ISMPC(m) 0 -# endif -#endif - -#ifndef S_ISNAM /* Xenix */ -# ifdef S_IFNAM -# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) -# else -# define S_ISNAM(m) 0 -# endif -#endif - -#ifndef S_ISNWK /* HP/UX */ -# ifdef S_IFNWK -# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) -# else -# define S_ISNWK(m) 0 -# endif -#endif - -#ifndef S_ISPORT /* Solaris 10 and up */ -# define S_ISPORT(m) 0 -#endif - -#ifndef S_ISREG -# ifdef S_IFREG -# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -# else -# define S_ISREG(m) 0 -# endif -#endif - -#ifndef S_ISSOCK -# ifdef S_IFSOCK -# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) -# else -# define S_ISSOCK(m) 0 -# endif -#endif - - -#ifndef S_TYPEISMQ -# define S_TYPEISMQ(p) 0 -#endif - -#ifndef S_TYPEISTMO -# define S_TYPEISTMO(p) 0 -#endif - - -#ifndef S_TYPEISSEM -# ifdef S_INSEM -# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) -# else -# define S_TYPEISSEM(p) 0 -# endif -#endif - -#ifndef S_TYPEISSHM -# ifdef S_INSHD -# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) -# else -# define S_TYPEISSHM(p) 0 -# endif -#endif - -/* high performance ("contiguous data") */ -#ifndef S_ISCTG -# define S_ISCTG(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with data */ -#ifndef S_ISOFD -# define S_ISOFD(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with no data */ -#ifndef S_ISOFL -# define S_ISOFL(p) 0 -#endif - -/* 4.4BSD whiteout */ -#ifndef S_ISWHT -# define S_ISWHT(m) 0 -#endif - -/* If any of the following are undefined, - define them to their de facto standard values. */ -#if !S_ISUID -# define S_ISUID 04000 -#endif -#if !S_ISGID -# define S_ISGID 02000 -#endif - -/* S_ISVTX is a common extension to POSIX. */ -#ifndef S_ISVTX -# define S_ISVTX 01000 -#endif - -#if !S_IRUSR && S_IREAD -# define S_IRUSR S_IREAD -#endif -#if !S_IRUSR -# define S_IRUSR 00400 -#endif -#if !S_IRGRP -# define S_IRGRP (S_IRUSR >> 3) -#endif -#if !S_IROTH -# define S_IROTH (S_IRUSR >> 6) -#endif - -#if !S_IWUSR && S_IWRITE -# define S_IWUSR S_IWRITE -#endif -#if !S_IWUSR -# define S_IWUSR 00200 -#endif -#if !S_IWGRP -# define S_IWGRP (S_IWUSR >> 3) -#endif -#if !S_IWOTH -# define S_IWOTH (S_IWUSR >> 6) -#endif - -#if !S_IXUSR && S_IEXEC -# define S_IXUSR S_IEXEC -#endif -#if !S_IXUSR -# define S_IXUSR 00100 -#endif -#if !S_IXGRP -# define S_IXGRP (S_IXUSR >> 3) -#endif -#if !S_IXOTH -# define S_IXOTH (S_IXUSR >> 6) -#endif - -#if !S_IRWXU -# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -#endif -#if !S_IRWXG -# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -#endif -#if !S_IRWXO -# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#endif - -/* S_IXUGO is a common extension to POSIX. */ -#if !S_IXUGO -# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) -#endif - -#ifndef S_IRWXUGO -# define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if @GNULIB_LSTAT@ -# if ! @HAVE_LSTAT@ -/* mingw does not support symlinks, therefore it does not have lstat. But - without links, stat does just fine. */ -# define lstat stat -# elif @REPLACE_LSTAT@ -# undef lstat -# define lstat rpl_lstat -extern int rpl_lstat (const char *name, struct stat *buf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef lstat -# define lstat(p,b) \ - (GL_LINK_WARNING ("lstat is unportable - " \ - "use gnulib module lstat for portability"), \ - lstat (p, b)) -#endif - - -#if @REPLACE_MKDIR@ -# undef mkdir -# define mkdir rpl_mkdir -extern int mkdir (char const *name, mode_t mode); -#else -/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. - Additionally, it declares _mkdir (and depending on compile flags, an - alias mkdir), only in the nonstandard <io.h>, which is included above. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - -static inline int -rpl_mkdir (char const *name, mode_t mode) -{ - return _mkdir (name); -} - -# define mkdir rpl_mkdir -# endif -#endif - - -/* Declare BSD extensions. */ - -#if @GNULIB_LCHMOD@ -/* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME - denotes a symbolic link. */ -# if !@HAVE_LCHMOD@ -/* The lchmod replacement follows symbolic links. Callers should take - this into account; lchmod should be applied only to arguments that - are known to not be symbolic links. On hosts that lack lchmod, - this can lead to race conditions between the check and the - invocation of lchmod, but we know of no workarounds that are - reliable in general. You might try requesting support for lchmod - from your operating system supplier. */ -# define lchmod chmod -# endif -# if 0 /* assume already declared */ -extern int lchmod (const char *filename, mode_t mode); -# endif -#elif defined GNULIB_POSIXCHECK -# undef lchmod -# define lchmod(f,m) \ - (GL_LINK_WARNING ("lchmod is unportable - " \ - "use gnulib module lchmod for portability"), \ - lchmod (f, m)) -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _GL_SYS_STAT_H */ -#endif /* _GL_SYS_STAT_H */ -#endif diff --git a/lib/sys_time.in.h b/lib/sys_time.in.h deleted file mode 100644 index 6db7ba8e3567bcea81d1b7de8cce9e308ccb69f1..0000000000000000000000000000000000000000 --- a/lib/sys_time.in.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Provide a more complete sys/time.h. - - Copyright (C) 2007-2008 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by Paul Eggert. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -#if defined _GL_SYS_TIME_H - -/* Simply delegate to the system's header, without adding anything. */ -# if @HAVE_SYS_TIME_H@ -# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ -# endif - -#else - -# define _GL_SYS_TIME_H - -# if @HAVE_SYS_TIME_H@ -# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ -# else -# include <time.h> -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# if ! @HAVE_STRUCT_TIMEVAL@ -struct timeval -{ - time_t tv_sec; - long int tv_usec; -}; -# endif - -# if @REPLACE_GETTIMEOFDAY@ -# undef gettimeofday -# define gettimeofday rpl_gettimeofday -int gettimeofday (struct timeval *restrict, void *restrict); -# endif - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_SYS_TIME_H */ diff --git a/lib/tempname.h b/lib/tempname.h deleted file mode 100644 index 74da03b3b29de5c206cdbd42f62f3ce2477d0010..0000000000000000000000000000000000000000 --- a/lib/tempname.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Create a temporary file or directory. - - Copyright (C) 2006 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/>. */ - -/* header written by Eric Blake */ - -/* In gnulib, always prefer large files. GT_FILE maps to - __GT_BIGFILE, not __GT_FILE, for a reason. */ -#define GT_FILE 1 -#define GT_DIR 2 -#define GT_NOCREATE 3 - -/* Generate a temporary file name based on TMPL. TMPL must match the - rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed - does not exist at the time of the call to gen_tempname. TMPL is - overwritten with the result. - - KIND may be one of: - GT_NOCREATE: simply verify that the name does not exist - at the time of the call. - GT_FILE: create a large file using open(O_CREAT|O_EXCL) - and return a read-write fd. The file is mode 0600. - GT_DIR: create a directory, which will be mode 0700. - - We use a clever algorithm to get hard-to-predict names. */ -extern int gen_tempname (char *tmpl, int kind); diff --git a/lib/time.in.h b/lib/time.in.h deleted file mode 100644 index 4eb9cc570988356d301e794b2d215d03836945b3..0000000000000000000000000000000000000000 --- a/lib/time.in.h +++ /dev/null @@ -1,120 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A more-standard <time.h>. - - Copyright (C) 2007-2008 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -/* Don't get in the way of glibc when it includes time.h merely to - declare a few standard symbols, rather than to declare all the - symbols. Also, Solaris 8 <time.h> eventually includes itself - recursively; if that is happening, just include the system <time.h> - without adding our own declarations. */ -#if (defined __need_time_t || defined __need_clock_t \ - || defined __need_timespec \ - || defined _GL_TIME_H) - -# @INCLUDE_NEXT@ @NEXT_TIME_H@ - -#else - -# define _GL_TIME_H - -# @INCLUDE_NEXT@ @NEXT_TIME_H@ - -# ifdef __cplusplus -extern "C" { -# endif - -/* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). - Or they define it with the wrong member names or define it in <sys/time.h> - (e.g., FreeBSD circa 1997). */ -# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ -# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ -# include <sys/time.h> -# else -# undef timespec -# define timespec rpl_timespec -struct timespec -{ - time_t tv_sec; - long int tv_nsec; -}; -# endif -# endif - -/* Sleep for at least RQTP seconds unless interrupted, If interrupted, - return -1 and store the remaining time into RMTP. See - <http://www.opengroup.org/susv3xsh/nanosleep.html>. */ -# if @REPLACE_NANOSLEEP@ -# define nanosleep rpl_nanosleep -int nanosleep (struct timespec const *__rqtp, struct timespec *__rmtp); -# endif - -/* Convert TIMER to RESULT, assuming local time and UTC respectively. See - <http://www.opengroup.org/susv3xsh/localtime_r.html> and - <http://www.opengroup.org/susv3xsh/gmtime_r.html>. */ -# if @REPLACE_LOCALTIME_R@ -# undef localtime_r -# define localtime_r rpl_localtime_r -# undef gmtime_r -# define gmtime_r rpl_gmtime_r -struct tm *localtime_r (time_t const *restrict __timer, - struct tm *restrict __result); -struct tm *gmtime_r (time_t const *restrict __timer, - struct tm *restrict __result); -# endif - -/* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store - the resulting broken-down time into TM. See - <http://www.opengroup.org/susv3xsh/strptime.html>. */ -# if @REPLACE_STRPTIME@ -# undef strptime -# define strptime rpl_strptime -char *strptime (char const *restrict __buf, char const *restrict __format, - struct tm *restrict __tm); -# endif - -/* Convert TM to a time_t value, assuming UTC. */ -# if @REPLACE_TIMEGM@ -# undef timegm -# define timegm rpl_timegm -time_t timegm (struct tm *__tm); -# endif - -/* Encourage applications to avoid unsafe functions that can overrun - buffers when given outlandish struct tm values. Portable - applications should use strftime (or even sprintf) instead. */ -# if GNULIB_PORTCHECK -# undef asctime -# define asctime eschew_asctime -# undef asctime_r -# define asctime_r eschew_asctime_r -# undef ctime -# define ctime eschew_ctime -# undef ctime_r -# define ctime_r eschew_ctime_r -# endif - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/lib/uinttostr.c b/lib/uinttostr.c deleted file mode 100644 index 52d288e44e3e07ea497f291c19eb76c79245e92f..0000000000000000000000000000000000000000 --- a/lib/uinttostr.c +++ /dev/null @@ -1,3 +0,0 @@ -#define inttostr uinttostr -#define inttype unsigned int -#include "inttostr.c" diff --git a/lib/umaxtostr.c b/lib/umaxtostr.c deleted file mode 100644 index 4f49a7f8ddd94feccb302e62181092bbd0ebf077..0000000000000000000000000000000000000000 --- a/lib/umaxtostr.c +++ /dev/null @@ -1,3 +0,0 @@ -#define inttostr umaxtostr -#define inttype uintmax_t -#include "inttostr.c" diff --git a/lib/unistd.in.h b/lib/unistd.in.h deleted file mode 100644 index da1d133869ec7ada4316347b2f6cfaac2088e64e..0000000000000000000000000000000000000000 --- a/lib/unistd.in.h +++ /dev/null @@ -1,584 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Substitute for and wrapper around <unistd.h>. - Copyright (C) 2003-2009 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _GL_UNISTD_H - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -/* The include_next requires a split double-inclusion guard. */ -#if @HAVE_UNISTD_H@ -# @INCLUDE_NEXT@ @NEXT_UNISTD_H@ -#endif - -#ifndef _GL_UNISTD_H -#define _GL_UNISTD_H - -/* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */ -#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) -# include <stdio.h> -#endif - -/* mingw fails to declare _exit in <unistd.h>. */ -/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ -#include <stdlib.h> - -#if @GNULIB_WRITE@ && @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@ -/* Get ssize_t. */ -# include <sys/types.h> -#endif - -#if @GNULIB_GETHOSTNAME@ -/* Get all possible declarations of gethostname(). */ -# if @UNISTD_H_HAVE_WINSOCK2_H@ -# include <winsock2.h> -# if !defined _GL_SYS_SOCKET_H -# undef socket -# define socket socket_used_without_including_sys_socket_h -# undef connect -# define connect connect_used_without_including_sys_socket_h -# undef accept -# define accept accept_used_without_including_sys_socket_h -# undef bind -# define bind bind_used_without_including_sys_socket_h -# undef getpeername -# define getpeername getpeername_used_without_including_sys_socket_h -# undef getsockname -# define getsockname getsockname_used_without_including_sys_socket_h -# undef getsockopt -# define getsockopt getsockopt_used_without_including_sys_socket_h -# undef listen -# define listen listen_used_without_including_sys_socket_h -# undef recv -# define recv recv_used_without_including_sys_socket_h -# undef send -# define send send_used_without_including_sys_socket_h -# undef recvfrom -# define recvfrom recvfrom_used_without_including_sys_socket_h -# undef sendto -# define sendto sendto_used_without_including_sys_socket_h -# undef setsockopt -# define setsockopt setsockopt_used_without_including_sys_socket_h -# undef shutdown -# define shutdown shutdown_used_without_including_sys_socket_h -# endif -# if !defined _GL_SYS_SELECT_H -# undef select -# define select select_used_without_including_sys_select_h -# endif -# endif -#endif - -/* The definition of GL_LINK_WARNING is copied here. */ - - -/* OS/2 EMX lacks these macros. */ -#ifndef STDIN_FILENO -# define STDIN_FILENO 0 -#endif -#ifndef STDOUT_FILENO -# define STDOUT_FILENO 1 -#endif -#ifndef STDERR_FILENO -# define STDERR_FILENO 2 -#endif - -/* Declare overridden functions. */ - -#ifdef __cplusplus -extern "C" { -#endif - - -#if @GNULIB_CHOWN@ -# if @REPLACE_CHOWN@ -# ifndef REPLACE_CHOWN -# define REPLACE_CHOWN 1 -# endif -# if REPLACE_CHOWN -/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE - to GID (if GID is not -1). Follow symbolic links. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/chown.html>. */ -# define chown rpl_chown -extern int chown (const char *file, uid_t uid, gid_t gid); -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# undef chown -# define chown(f,u,g) \ - (GL_LINK_WARNING ("chown fails to follow symlinks on some systems and " \ - "doesn't treat a uid or gid of -1 on some systems - " \ - "use gnulib module chown for portability"), \ - chown (f, u, g)) -#endif - - -#if @GNULIB_CLOSE@ -# if @UNISTD_H_HAVE_WINSOCK2_H@ -/* Need a gnulib internal function. */ -# define HAVE__GL_CLOSE_FD_MAYBE_SOCKET 1 -# endif -# if @REPLACE_CLOSE@ -/* Automatically included by modules that need a replacement for close. */ -# undef close -# define close rpl_close -extern int close (int); -# endif -#elif @UNISTD_H_HAVE_WINSOCK2_H@ -# undef close -# define close close_used_without_requesting_gnulib_module_close -#elif defined GNULIB_POSIXCHECK -# undef close -# define close(f) \ - (GL_LINK_WARNING ("close does not portably work on sockets - " \ - "use gnulib module close for portability"), \ - close (f)) -#endif - - -#if @GNULIB_DUP2@ -# if !@HAVE_DUP2@ -/* Copy the file descriptor OLDFD into file descriptor NEWFD. Do nothing if - NEWFD = OLDFD, otherwise close NEWFD first if it is open. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/dup2.html>. */ -extern int dup2 (int oldfd, int newfd); -# endif -#elif defined GNULIB_POSIXCHECK -# undef dup2 -# define dup2(o,n) \ - (GL_LINK_WARNING ("dup2 is unportable - " \ - "use gnulib module dup2 for portability"), \ - dup2 (o, n)) -#endif - - -#if @GNULIB_ENVIRON@ -# if !@HAVE_DECL_ENVIRON@ -/* Set of environment variables and values. An array of strings of the form - "VARIABLE=VALUE", terminated with a NULL. */ -# if defined __APPLE__ && defined __MACH__ -# include <crt_externs.h> -# define environ (*_NSGetEnviron ()) -# else -extern char **environ; -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# undef environ -# define environ \ - (GL_LINK_WARNING ("environ is unportable - " \ - "use gnulib module environ for portability"), \ - environ) -#endif - - -#if @GNULIB_EUIDACCESS@ -# if !@HAVE_EUIDACCESS@ -/* Like access(), except that is uses the effective user id and group id of - the current process. */ -extern int euidaccess (const char *filename, int mode); -# endif -#elif defined GNULIB_POSIXCHECK -# undef euidaccess -# define euidaccess(f,m) \ - (GL_LINK_WARNING ("euidaccess is unportable - " \ - "use gnulib module euidaccess for portability"), \ - euidaccess (f, m)) -#endif - - -#if @GNULIB_FCHDIR@ -# if @REPLACE_FCHDIR@ - -/* Change the process' current working directory to the directory on which - the given file descriptor is open. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/fchdir.html>. */ -extern int fchdir (int /*fd*/); - -# define dup rpl_dup -extern int dup (int); -# define dup2 rpl_dup2 -extern int dup2 (int, int); - -# endif -#elif defined GNULIB_POSIXCHECK -# undef fchdir -# define fchdir(f) \ - (GL_LINK_WARNING ("fchdir is unportable - " \ - "use gnulib module fchdir for portability"), \ - fchdir (f)) -#endif - - -#if @GNULIB_FSYNC@ -/* Synchronize changes to a file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/fsync.html>. */ -# if !@HAVE_FSYNC@ -extern int fsync (int fd); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fsync -# define fsync(fd) \ - (GL_LINK_WARNING ("fsync is unportable - " \ - "use gnulib module fsync for portability"), \ - fsync (fd)) -#endif - - -#if @GNULIB_FTRUNCATE@ -# if !@HAVE_FTRUNCATE@ -/* Change the size of the file to which FD is opened to become equal to LENGTH. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/ftruncate.html>. */ -extern int ftruncate (int fd, off_t length); -# endif -#elif defined GNULIB_POSIXCHECK -# undef ftruncate -# define ftruncate(f,l) \ - (GL_LINK_WARNING ("ftruncate is unportable - " \ - "use gnulib module ftruncate for portability"), \ - ftruncate (f, l)) -#endif - - -#if @GNULIB_GETCWD@ -/* Include the headers that might declare getcwd so that they will not - cause confusion if included after this file. */ -# include <stdlib.h> -# if @REPLACE_GETCWD@ -/* Get the name of the current working directory, and put it in SIZE bytes - of BUF. - Return BUF if successful, or NULL if the directory couldn't be determined - or SIZE was too small. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/getcwd.html>. - Additionally, the gnulib module 'getcwd' guarantees the following GNU - extension: If BUF is NULL, an array is allocated with 'malloc'; the array - is SIZE bytes long, unless SIZE == 0, in which case it is as big as - necessary. */ -# define getcwd rpl_getcwd -extern char * getcwd (char *buf, size_t size); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getcwd -# define getcwd(b,s) \ - (GL_LINK_WARNING ("getcwd is unportable - " \ - "use gnulib module getcwd for portability"), \ - getcwd (b, s)) -#endif - - -#if @GNULIB_GETDOMAINNAME@ -/* Return the NIS domain name of the machine. - WARNING! The NIS domain name is unrelated to the fully qualified host name - of the machine. It is also unrelated to email addresses. - WARNING! The NIS domain name is usually the empty string or "(none)" when - not using NIS. - - Put up to LEN bytes of the NIS domain name into NAME. - Null terminate it if the name is shorter than LEN. - If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. - Return 0 if successful, otherwise set errno and return -1. */ -# if !@HAVE_GETDOMAINNAME@ -extern int getdomainname(char *name, size_t len); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getdomainname -# define getdomainname(n,l) \ - (GL_LINK_WARNING ("getdomainname is unportable - " \ - "use gnulib module getdomainname for portability"), \ - getdomainname (n, l)) -#endif - - -#if @GNULIB_GETDTABLESIZE@ -# if !@HAVE_GETDTABLESIZE@ -/* Return the maximum number of file descriptors in the current process. */ -extern int getdtablesize (void); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getdtablesize -# define getdtablesize() \ - (GL_LINK_WARNING ("getdtablesize is unportable - " \ - "use gnulib module getdtablesize for portability"), \ - getdtablesize ()) -#endif - - -#if @GNULIB_GETHOSTNAME@ -/* Return the standard host name of the machine. - WARNING! The host name may or may not be fully qualified. - - Put up to LEN bytes of the host name into NAME. - Null terminate it if the name is shorter than LEN. - If the host name is longer than LEN, set errno = EINVAL and return -1. - Return 0 if successful, otherwise set errno and return -1. */ -# if @UNISTD_H_HAVE_WINSOCK2_H@ -# undef gethostname -# define gethostname rpl_gethostname -# endif -# if @UNISTD_H_HAVE_WINSOCK2_H@ || !@HAVE_GETHOSTNAME@ -extern int gethostname(char *name, size_t len); -# endif -#elif @UNISTD_H_HAVE_WINSOCK2_H@ -# undef gethostname -# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname -#elif defined GNULIB_POSIXCHECK -# undef gethostname -# define gethostname(n,l) \ - (GL_LINK_WARNING ("gethostname is unportable - " \ - "use gnulib module gethostname for portability"), \ - gethostname (n, l)) -#endif - - -#if @GNULIB_GETLOGIN_R@ -/* Copies the user's login name to NAME. - The array pointed to by NAME has room for SIZE bytes. - - Returns 0 if successful. Upon error, an error number is returned, or -1 in - the case that the login name cannot be found but no specific error is - provided (this case is hopefully rare but is left open by the POSIX spec). - - See <http://www.opengroup.org/susv3xsh/getlogin.html>. - */ -# if !@HAVE_DECL_GETLOGIN_R@ -# include <stddef.h> -extern int getlogin_r (char *name, size_t size); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getlogin_r -# define getlogin_r(n,s) \ - (GL_LINK_WARNING ("getlogin_r is unportable - " \ - "use gnulib module getlogin_r for portability"), \ - getlogin_r (n, s)) -#endif - - -#if @GNULIB_GETPAGESIZE@ -# if @REPLACE_GETPAGESIZE@ -# define getpagesize rpl_getpagesize -extern int getpagesize (void); -# elif !@HAVE_GETPAGESIZE@ -/* This is for POSIX systems. */ -# if !defined getpagesize && defined _SC_PAGESIZE -# if ! (defined __VMS && __VMS_VER < 70000000) -# define getpagesize() sysconf (_SC_PAGESIZE) -# endif -# endif -/* This is for older VMS. */ -# if !defined getpagesize && defined __VMS -# ifdef __ALPHA -# define getpagesize() 8192 -# else -# define getpagesize() 512 -# endif -# endif -/* This is for BeOS. */ -# if !defined getpagesize && @HAVE_OS_H@ -# include <OS.h> -# if defined B_PAGE_SIZE -# define getpagesize() B_PAGE_SIZE -# endif -# endif -/* This is for AmigaOS4.0. */ -# if !defined getpagesize && defined __amigaos4__ -# define getpagesize() 2048 -# endif -/* This is for older Unix systems. */ -# if !defined getpagesize && @HAVE_SYS_PARAM_H@ -# include <sys/param.h> -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else -# ifdef NBPG -# ifndef CLSIZE -# define CLSIZE 1 -# endif -# define getpagesize() (NBPG * CLSIZE) -# else -# ifdef NBPC -# define getpagesize() NBPC -# endif -# endif -# endif -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# undef getpagesize -# define getpagesize() \ - (GL_LINK_WARNING ("getpagesize is unportable - " \ - "use gnulib module getpagesize for portability"), \ - getpagesize ()) -#endif - - -#if @GNULIB_GETUSERSHELL@ -# if !@HAVE_GETUSERSHELL@ -/* Return the next valid login shell on the system, or NULL when the end of - the list has been reached. */ -extern char *getusershell (void); -/* Rewind to pointer that is advanced at each getusershell() call. */ -extern void setusershell (void); -/* Free the pointer that is advanced at each getusershell() call and - associated resources. */ -extern void endusershell (void); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getusershell -# define getusershell() \ - (GL_LINK_WARNING ("getusershell is unportable - " \ - "use gnulib module getusershell for portability"), \ - getusershell ()) -# undef setusershell -# define setusershell() \ - (GL_LINK_WARNING ("setusershell is unportable - " \ - "use gnulib module getusershell for portability"), \ - setusershell ()) -# undef endusershell -# define endusershell() \ - (GL_LINK_WARNING ("endusershell is unportable - " \ - "use gnulib module getusershell for portability"), \ - endusershell ()) -#endif - - -#if @GNULIB_LCHOWN@ -# if @REPLACE_LCHOWN@ -/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE - to GID (if GID is not -1). Do not follow symbolic links. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/lchown.html>. */ -# define lchown rpl_lchown -extern int lchown (char const *file, uid_t owner, gid_t group); -# endif -#elif defined GNULIB_POSIXCHECK -# undef lchown -# define lchown(f,u,g) \ - (GL_LINK_WARNING ("lchown is unportable to pre-POSIX.1-2001 " \ - "systems - use gnulib module lchown for portability"), \ - lchown (f, u, g)) -#endif - - -#if @GNULIB_LINK@ -/* Create a new hard link for an existing file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/link.html>. */ -# if !@HAVE_LINK@ -extern int link (const char *path1, const char *path2); -# endif -#elif defined GNULIB_POSIXCHECK -# undef link -# define link(path1,path2) \ - (GL_LINK_WARNING ("link is unportable - " \ - "use gnulib module link for portability"), \ - link (path1, path2)) -#endif - - -#if @GNULIB_LSEEK@ -# if @REPLACE_LSEEK@ -/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. - Return the new offset if successful, otherwise -1 and errno set. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/lseek.html>. */ -# define lseek rpl_lseek - extern off_t lseek (int fd, off_t offset, int whence); -# endif -#elif defined GNULIB_POSIXCHECK -# undef lseek -# define lseek(f,o,w) \ - (GL_LINK_WARNING ("lseek does not fail with ESPIPE on pipes on some " \ - "systems - use gnulib module lseek for portability"), \ - lseek (f, o, w)) -#endif - - -#if @GNULIB_READLINK@ -/* Read the contents of the symbolic link FILE and place the first BUFSIZE - bytes of it into BUF. Return the number of bytes placed into BUF if - successful, otherwise -1 and errno set. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/readlink.html>. */ -# if !@HAVE_READLINK@ -# include <stddef.h> -extern int readlink (const char *file, char *buf, size_t bufsize); -# endif -#elif defined GNULIB_POSIXCHECK -# undef readlink -# define readlink(f,b,s) \ - (GL_LINK_WARNING ("readlink is unportable - " \ - "use gnulib module readlink for portability"), \ - readlink (f, b, s)) -#endif - - -#if @GNULIB_SLEEP@ -/* Pause the execution of the current thread for N seconds. - Returns the number of seconds left to sleep. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/sleep.html>. */ -# if !@HAVE_SLEEP@ -extern unsigned int sleep (unsigned int n); -# endif -#elif defined GNULIB_POSIXCHECK -# undef sleep -# define sleep(n) \ - (GL_LINK_WARNING ("sleep is unportable - " \ - "use gnulib module sleep for portability"), \ - sleep (n)) -#endif - - -#if @GNULIB_WRITE@ && @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@ -/* Write up to COUNT bytes starting at BUF to file descriptor FD. - See the POSIX:2001 specification - <http://www.opengroup.org/susv3xsh/write.html>. */ -# undef write -# define write rpl_write -extern ssize_t write (int fd, const void *buf, size_t count); -#endif - - -#ifdef FCHDIR_REPLACEMENT -/* gnulib internal function. */ -extern void _gl_unregister_fd (int fd); -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _GL_UNISTD_H */ -#endif /* _GL_UNISTD_H */ diff --git a/lib/utime.c b/lib/utime.c deleted file mode 100644 index 9ddb8b86f83bd7b9e03b9bf59416c9a6a016e8bf..0000000000000000000000000000000000000000 --- a/lib/utime.c +++ /dev/null @@ -1,108 +0,0 @@ -/* Copyright (C) 1998, 2001, 2002, 2003, 2004, 2006 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 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/>. */ - -/* derived from a function in touch.c */ - -#include <config.h> -#undef utime - -#include <sys/types.h> - -#ifdef HAVE_UTIME_H -# include <utime.h> -#endif - -#if !HAVE_UTIMES_NULL -# include <sys/stat.h> -# include <fcntl.h> -#endif - -#include <unistd.h> -#include <errno.h> - -#include "full-write.h" -#include "safe-read.h" - -/* Some systems (even some that do have <utime.h>) don't declare this - structure anywhere. */ -#ifndef HAVE_STRUCT_UTIMBUF -struct utimbuf -{ - long actime; - long modtime; -}; -#endif - -/* The results of open() in this file are not used with fchdir, - therefore save some unnecessary work in fchdir.c. */ -#undef open -#undef close - -/* Emulate utime (file, NULL) for systems (like 4.3BSD) that do not - interpret it to set the access and modification times of FILE to - the current time. Return 0 if successful, -1 if not. */ - -static int -utime_null (const char *file) -{ -#if HAVE_UTIMES_NULL - return utimes (file, 0); -#else - int fd; - char c; - int status = 0; - struct stat st; - int saved_errno = 0; - - fd = open (file, O_RDWR); - if (fd < 0 - || fstat (fd, &st) < 0 - || safe_read (fd, &c, sizeof c) == SAFE_READ_ERROR - || lseek (fd, (off_t) 0, SEEK_SET) < 0 - || full_write (fd, &c, sizeof c) != sizeof c - /* Maybe do this -- it's necessary on SunOS 4.1.3 with some combination - of patches, but that system doesn't use this code: it has utimes. - || fsync (fd) < 0 - */ - || (st.st_size == 0 && ftruncate (fd, st.st_size) < 0)) - { - saved_errno = errno; - status = -1; - } - - if (0 <= fd) - { - if (close (fd) < 0) - status = -1; - - /* If there was a prior failure, use the saved errno value. - But if the only failure was in the close, don't change errno. */ - if (saved_errno) - errno = saved_errno; - } - - return status; -#endif -} - -int -rpl_utime (const char *file, const struct utimbuf *times) -{ - if (times) - return utime (file, times); - - return utime_null (file); -} diff --git a/lib/utimens.c b/lib/utimens.c deleted file mode 100644 index 708de10989d1e703250a841d397cb2b736c5c2f4..0000000000000000000000000000000000000000 --- a/lib/utimens.c +++ /dev/null @@ -1,227 +0,0 @@ -/* Set file access and modification times. - - Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 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 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. */ - -/* derived from a function in touch.c */ - -#include <config.h> - -#include "utimens.h" - -#include <errno.h> -#include <fcntl.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <unistd.h> - -#if HAVE_UTIME_H -# include <utime.h> -#endif - -/* Some systems (even some that do have <utime.h>) don't declare this - structure anywhere. */ -#ifndef HAVE_STRUCT_UTIMBUF -struct utimbuf -{ - long actime; - long modtime; -}; -#endif - -/* Some systems don't have ENOSYS. */ -#ifndef ENOSYS -# ifdef ENOTSUP -# define ENOSYS ENOTSUP -# else -/* Some systems don't have ENOTSUP either. */ -# define ENOSYS EINVAL -# endif -#endif - -#ifndef __attribute__ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) -# define __attribute__(x) -# endif -#endif - -#ifndef ATTRIBUTE_UNUSED -# define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#endif - -/* Set the access and modification time stamps of FD (a.k.a. FILE) to be - TIMESPEC[0] and TIMESPEC[1], respectively. - FD must be either negative -- in which case it is ignored -- - or a file descriptor that is open on FILE. - If FD is nonnegative, then FILE can be NULL, which means - use just futimes (or equivalent) instead of utimes (or equivalent), - and fail if on an old system without futimes (or equivalent). - If TIMESPEC is null, set the time stamps to the current time. - Return 0 on success, -1 (setting errno) on failure. */ - -int -gl_futimens (int fd ATTRIBUTE_UNUSED, - char const *file, struct timespec const timespec[2]) -{ - /* Some Linux-based NFS clients are buggy, and mishandle time stamps - of files in NFS file systems in some cases. We have no - configure-time test for this, but please see - <http://bugs.gentoo.org/show_bug.cgi?id=132673> for references to - some of the problems with Linux 2.6.16. If this affects you, - compile with -DHAVE_BUGGY_NFS_TIME_STAMPS; this is reported to - help in some cases, albeit at a cost in performance. But you - really should upgrade your kernel to a fixed version, since the - problem affects many applications. */ - -#if HAVE_BUGGY_NFS_TIME_STAMPS - if (fd < 0) - sync (); - else - fsync (fd); -#endif - - /* POSIX 200x added two interfaces to set file timestamps with - nanosecond resolution. We provide a fallback for ENOSYS (for - example, compiling against Linux 2.6.25 kernel headers and glibc - 2.7, but running on Linux 2.6.18 kernel). */ -#if HAVE_UTIMENSAT - if (fd < 0) - { - int result = utimensat (AT_FDCWD, file, timespec, 0); -# ifdef __linux__ - /* Work around what might be a kernel bug: - http://bugzilla.redhat.com/442352 - http://bugzilla.redhat.com/449910 - It appears that utimensat can mistakenly return 280 rather - than -1 upon failure. - FIXME: remove in 2010 or whenever the offending kernels - are no longer in common use. */ - if (0 < result) - errno = ENOSYS; -# endif - - if (result == 0 || errno != ENOSYS) - return result; - } -#endif -#if HAVE_FUTIMENS - { - int result = futimens (fd, timespec); -# ifdef __linux__ - /* Work around the same bug as above. */ - if (0 < result) - errno = ENOSYS; -# endif - if (result == 0 || errno != ENOSYS) - return result; - } -#endif - - /* The platform lacks an interface to set file timestamps with - nanosecond resolution, so do the best we can, discarding any - fractional part of the timestamp. */ - { -#if HAVE_FUTIMESAT || HAVE_WORKING_UTIMES - struct timeval timeval[2]; - struct timeval const *t; - if (timespec) - { - timeval[0].tv_sec = timespec[0].tv_sec; - timeval[0].tv_usec = timespec[0].tv_nsec / 1000; - timeval[1].tv_sec = timespec[1].tv_sec; - timeval[1].tv_usec = timespec[1].tv_nsec / 1000; - t = timeval; - } - else - t = NULL; - - if (fd < 0) - { -# if HAVE_FUTIMESAT - return futimesat (AT_FDCWD, file, t); -# endif - } - else - { - /* If futimesat or futimes fails here, don't try to speed things - up by returning right away. glibc can incorrectly fail with - errno == ENOENT if /proc isn't mounted. Also, Mandrake 10.0 - in high security mode doesn't allow ordinary users to read - /proc/self, so glibc incorrectly fails with errno == EACCES. - If errno == EIO, EPERM, or EROFS, it's probably safe to fail - right away, but these cases are rare enough that they're not - worth optimizing, and who knows what other messed-up systems - are out there? So play it safe and fall back on the code - below. */ -# if HAVE_FUTIMESAT - if (futimesat (fd, NULL, t) == 0) - return 0; -# elif HAVE_FUTIMES - if (futimes (fd, t) == 0) - return 0; -# endif - } -#endif /* HAVE_FUTIMESAT || HAVE_WORKING_UTIMES */ - - if (!file) - { -#if ! (HAVE_FUTIMESAT || (HAVE_WORKING_UTIMES && HAVE_FUTIMES)) - errno = ENOSYS; -#endif - - /* Prefer EBADF to ENOSYS if both error numbers apply. */ - if (errno == ENOSYS) - { - int fd2 = dup (fd); - int dup_errno = errno; - if (0 <= fd2) - close (fd2); - errno = (fd2 < 0 && dup_errno == EBADF ? EBADF : ENOSYS); - } - - return -1; - } - -#if HAVE_WORKING_UTIMES - return utimes (file, t); -#else - { - struct utimbuf utimbuf; - struct utimbuf const *ut; - if (timespec) - { - utimbuf.actime = timespec[0].tv_sec; - utimbuf.modtime = timespec[1].tv_sec; - ut = &utimbuf; - } - else - ut = NULL; - - return utime (file, ut); - } -#endif /* !HAVE_WORKING_UTIMES */ - } -} - -/* Set the access and modification time stamps of FILE to be - TIMESPEC[0] and TIMESPEC[1], respectively. */ -int -utimens (char const *file, struct timespec const timespec[2]) -{ - return gl_futimens (-1, file, timespec); -} diff --git a/lib/utimens.h b/lib/utimens.h deleted file mode 100644 index 169521da73ac357719dc00032aed6e38d2883450..0000000000000000000000000000000000000000 --- a/lib/utimens.h +++ /dev/null @@ -1,3 +0,0 @@ -#include <time.h> -int gl_futimens (int, char const *, struct timespec const [2]); -int utimens (char const *, struct timespec const [2]); diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c deleted file mode 100644 index 426b7c51be2434b4214bc35b7f6ab25b421fdee0..0000000000000000000000000000000000000000 --- a/lib/vasnprintf.c +++ /dev/null @@ -1,4889 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* vsprintf with automatic memory allocation. - Copyright (C) 1999, 2002-2008 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* This file can be parametrized with the following macros: - VASNPRINTF The name of the function being defined. - FCHAR_T The element type of the format string. - DCHAR_T The element type of the destination (result) string. - FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters - in the format string are ASCII. MUST be set if - FCHAR_T and DCHAR_T are not the same type. - DIRECTIVE Structure denoting a format directive. - Depends on FCHAR_T. - DIRECTIVES Structure denoting the set of format directives of a - format string. Depends on FCHAR_T. - PRINTF_PARSE Function that parses a format string. - Depends on FCHAR_T. - DCHAR_CPY memcpy like function for DCHAR_T[] arrays. - DCHAR_SET memset like function for DCHAR_T[] arrays. - DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays. - SNPRINTF The system's snprintf (or similar) function. - This may be either snprintf or swprintf. - TCHAR_T The element type of the argument and result string - of the said SNPRINTF function. This may be either - char or wchar_t. The code exploits that - sizeof (TCHAR_T) | sizeof (DCHAR_T) and - alignof (TCHAR_T) <= alignof (DCHAR_T). - DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type. - DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. - DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. - DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. - DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ - -/* Tell glibc's <stdio.h> to provide a prototype for snprintf(). - This must come before <config.h> because <config.h> may include - <features.h>, and once <features.h> has been included, it's too late. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif - -#ifndef VASNPRINTF -# include <config.h> -#endif -#ifndef IN_LIBINTL -# include <alloca.h> -#endif - -/* Specification. */ -#ifndef VASNPRINTF -# if WIDE_CHAR_VERSION -# include "vasnwprintf.h" -# else -# include "vasnprintf.h" -# endif -#endif - -#include <locale.h> /* localeconv() */ -#include <stdio.h> /* snprintf(), sprintf() */ -#include <stdlib.h> /* abort(), malloc(), realloc(), free() */ -#include <string.h> /* memcpy(), strlen() */ -#include <errno.h> /* errno */ -#include <limits.h> /* CHAR_BIT */ -#include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */ -#if HAVE_NL_LANGINFO -# include <langinfo.h> -#endif -#ifndef VASNPRINTF -# if WIDE_CHAR_VERSION -# include "wprintf-parse.h" -# else -# include "printf-parse.h" -# endif -#endif - -/* Checked size_t computations. */ -#include "xsize.h" - -#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL -# include <math.h> -# include "float+.h" -#endif - -#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL -# include <math.h> -# include "isnand-nolibm.h" -#endif - -#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL -# include <math.h> -# include "isnanl-nolibm.h" -# include "fpucw.h" -#endif - -#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL -# include <math.h> -# include "isnand-nolibm.h" -# include "printf-frexp.h" -#endif - -#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL -# include <math.h> -# include "isnanl-nolibm.h" -# include "printf-frexpl.h" -# include "fpucw.h" -#endif - -#if HAVE_WCHAR_T -# if HAVE_WCSLEN -# define local_wcslen wcslen -# else - /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid - a dependency towards this library, here is a local substitute. - Define this substitute only once, even if this file is included - twice in the same compilation unit. */ -# ifndef local_wcslen_defined -# define local_wcslen_defined 1 -static size_t -local_wcslen (const wchar_t *s) -{ - const wchar_t *ptr; - - for (ptr = s; *ptr != (wchar_t) 0; ptr++) - ; - return ptr - s; -} -# endif -# endif -#endif - -/* Default parameters. */ -#ifndef VASNPRINTF -# if WIDE_CHAR_VERSION -# define VASNPRINTF vasnwprintf -# define FCHAR_T wchar_t -# define DCHAR_T wchar_t -# define TCHAR_T wchar_t -# define DCHAR_IS_TCHAR 1 -# define DIRECTIVE wchar_t_directive -# define DIRECTIVES wchar_t_directives -# define PRINTF_PARSE wprintf_parse -# define DCHAR_CPY wmemcpy -# else -# define VASNPRINTF vasnprintf -# define FCHAR_T char -# define DCHAR_T char -# define TCHAR_T char -# define DCHAR_IS_TCHAR 1 -# define DIRECTIVE char_directive -# define DIRECTIVES char_directives -# define PRINTF_PARSE printf_parse -# define DCHAR_CPY memcpy -# endif -#endif -#if WIDE_CHAR_VERSION - /* TCHAR_T is wchar_t. */ -# define USE_SNPRINTF 1 -# if HAVE_DECL__SNWPRINTF - /* On Windows, the function swprintf() has a different signature than - on Unix; we use the _snwprintf() function instead. */ -# define SNPRINTF _snwprintf -# else - /* Unix. */ -# define SNPRINTF swprintf -# endif -#else - /* TCHAR_T is char. */ - /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. - But don't use it on BeOS, since BeOS snprintf produces no output if the - size argument is >= 0x3000000. - Also don't use it on Linux libc5, since there snprintf with size = 1 - writes any output without bounds, like sprintf. */ -# if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ && !(__GNU_LIBRARY__ == 1) -# define USE_SNPRINTF 1 -# else -# define USE_SNPRINTF 0 -# endif -# if HAVE_DECL__SNPRINTF - /* Windows. */ -# define SNPRINTF _snprintf -# else - /* Unix. */ -# define SNPRINTF snprintf - /* Here we need to call the native snprintf, not rpl_snprintf. */ -# undef snprintf -# endif -#endif -/* Here we need to call the native sprintf, not rpl_sprintf. */ -#undef sprintf - -/* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized" - warnings in this file. Use -Dlint to suppress them. */ -#ifdef lint -# define IF_LINT(Code) Code -#else -# define IF_LINT(Code) /* empty */ -#endif - -/* Avoid some warnings from "gcc -Wshadow". - This file doesn't use the exp() and remainder() functions. */ -#undef exp -#define exp expo -#undef remainder -#define remainder rem - -#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL -/* Determine the decimal-point character according to the current locale. */ -# ifndef decimal_point_char_defined -# define decimal_point_char_defined 1 -static char -decimal_point_char () -{ - const char *point; - /* Determine it in a multithread-safe way. We know nl_langinfo is - multithread-safe on glibc systems, but is not required to be multithread- - safe by POSIX. sprintf(), however, is multithread-safe. localeconv() - is rarely multithread-safe. */ -# if HAVE_NL_LANGINFO && __GLIBC__ - point = nl_langinfo (RADIXCHAR); -# elif 1 - char pointbuf[5]; - sprintf (pointbuf, "%#.0f", 1.0); - point = &pointbuf[1]; -# else - point = localeconv () -> decimal_point; -# endif - /* The decimal point is always a single byte: either '.' or ','. */ - return (point[0] != '\0' ? point[0] : '.'); -} -# endif -#endif - -#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL - -/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ -static int -is_infinite_or_zero (double x) -{ - return isnand (x) || x + x == x; -} - -#endif - -#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL - -/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ -static int -is_infinite_or_zerol (long double x) -{ - return isnanl (x) || x + x == x; -} - -#endif - -#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL - -/* Converting 'long double' to decimal without rare rounding bugs requires - real bignums. We use the naming conventions of GNU gmp, but vastly simpler - (and slower) algorithms. */ - -typedef unsigned int mp_limb_t; -# define GMP_LIMB_BITS 32 -typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1]; - -typedef unsigned long long mp_twolimb_t; -# define GMP_TWOLIMB_BITS 64 -typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1]; - -/* Representation of a bignum >= 0. */ -typedef struct -{ - size_t nlimbs; - mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */ -} mpn_t; - -/* Compute the product of two bignums >= 0. - Return the allocated memory in case of success, NULL in case of memory - allocation failure. */ -static void * -multiply (mpn_t src1, mpn_t src2, mpn_t *dest) -{ - const mp_limb_t *p1; - const mp_limb_t *p2; - size_t len1; - size_t len2; - - if (src1.nlimbs <= src2.nlimbs) - { - len1 = src1.nlimbs; - p1 = src1.limbs; - len2 = src2.nlimbs; - p2 = src2.limbs; - } - else - { - len1 = src2.nlimbs; - p1 = src2.limbs; - len2 = src1.nlimbs; - p2 = src1.limbs; - } - /* Now 0 <= len1 <= len2. */ - if (len1 == 0) - { - /* src1 or src2 is zero. */ - dest->nlimbs = 0; - dest->limbs = (mp_limb_t *) malloc (1); - } - else - { - /* Here 1 <= len1 <= len2. */ - size_t dlen; - mp_limb_t *dp; - size_t k, i, j; - - dlen = len1 + len2; - dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t)); - if (dp == NULL) - return NULL; - for (k = len2; k > 0; ) - dp[--k] = 0; - for (i = 0; i < len1; i++) - { - mp_limb_t digit1 = p1[i]; - mp_twolimb_t carry = 0; - for (j = 0; j < len2; j++) - { - mp_limb_t digit2 = p2[j]; - carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; - carry += dp[i + j]; - dp[i + j] = (mp_limb_t) carry; - carry = carry >> GMP_LIMB_BITS; - } - dp[i + len2] = (mp_limb_t) carry; - } - /* Normalise. */ - while (dlen > 0 && dp[dlen - 1] == 0) - dlen--; - dest->nlimbs = dlen; - dest->limbs = dp; - } - return dest->limbs; -} - -/* Compute the quotient of a bignum a >= 0 and a bignum b > 0. - a is written as a = q * b + r with 0 <= r < b. q is the quotient, r - the remainder. - Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd, - q is incremented. - Return the allocated memory in case of success, NULL in case of memory - allocation failure. */ -static void * -divide (mpn_t a, mpn_t b, mpn_t *q) -{ - /* Algorithm: - First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]] - with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS). - If m<n, then q:=0 and r:=a. - If m>=n=1, perform a single-precision division: - r:=0, j:=m, - while j>0 do - {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j = - = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r<b[0]<beta} - j:=j-1, r:=r*beta+a[j], q[j]:=floor(r/b[0]), r:=r-b[0]*q[j]. - Normalise [q[m-1],...,q[0]], yields q. - If m>=n>1, perform a multiple-precision division: - We have a/b < beta^(m-n+1). - s:=intDsize-1-(hightest bit in b[n-1]), 0<=s<intDsize. - Shift a and b left by s bits, copying them. r:=a. - r=[r[m],...,r[0]], b=[b[n-1],...,b[0]] with b[n-1]>=beta/2. - For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).} - Compute q* : - q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]). - In case of overflow (q* >= beta) set q* := beta-1. - Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2] - and c3 := b[n-2] * q*. - {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow - occurred. Furthermore 0 <= c3 < beta^2. - If there was overflow and - r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2, - the next test can be skipped.} - While c3 > c2, {Here 0 <= c2 < c3 < beta^2} - Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2]. - If q* > 0: - Put r := r - b * q* * beta^j. In detail: - [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]]. - hence: u:=0, for i:=0 to n-1 do - u := u + q* * b[i], - r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry), - u:=u div beta (+ 1, if carry in subtraction) - r[n+j]:=r[n+j]-u. - {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1 - < q* + 1 <= beta, - the carry u does not overflow.} - If a negative carry occurs, put q* := q* - 1 - and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]]. - Set q[j] := q*. - Normalise [q[m-n],..,q[0]]; this yields the quotient q. - Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the - rest r. - The room for q[j] can be allocated at the memory location of r[n+j]. - Finally, round-to-even: - Shift r left by 1 bit. - If r > b or if r = b and q[0] is odd, q := q+1. - */ - const mp_limb_t *a_ptr = a.limbs; - size_t a_len = a.nlimbs; - const mp_limb_t *b_ptr = b.limbs; - size_t b_len = b.nlimbs; - mp_limb_t *roomptr; - mp_limb_t *tmp_roomptr = NULL; - mp_limb_t *q_ptr; - size_t q_len; - mp_limb_t *r_ptr; - size_t r_len; - - /* Allocate room for a_len+2 digits. - (Need a_len+1 digits for the real division and 1 more digit for the - final rounding of q.) */ - roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t)); - if (roomptr == NULL) - return NULL; - - /* Normalise a. */ - while (a_len > 0 && a_ptr[a_len - 1] == 0) - a_len--; - - /* Normalise b. */ - for (;;) - { - if (b_len == 0) - /* Division by zero. */ - abort (); - if (b_ptr[b_len - 1] == 0) - b_len--; - else - break; - } - - /* Here m = a_len >= 0 and n = b_len > 0. */ - - if (a_len < b_len) - { - /* m<n: trivial case. q=0, r := copy of a. */ - r_ptr = roomptr; - r_len = a_len; - memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); - q_ptr = roomptr + a_len; - q_len = 0; - } - else if (b_len == 1) - { - /* n=1: single precision division. - beta^(m-1) <= a < beta^m ==> beta^(m-2) <= a/b < beta^m */ - r_ptr = roomptr; - q_ptr = roomptr + 1; - { - mp_limb_t den = b_ptr[0]; - mp_limb_t remainder = 0; - const mp_limb_t *sourceptr = a_ptr + a_len; - mp_limb_t *destptr = q_ptr + a_len; - size_t count; - for (count = a_len; count > 0; count--) - { - mp_twolimb_t num = - ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr; - *--destptr = num / den; - remainder = num % den; - } - /* Normalise and store r. */ - if (remainder > 0) - { - r_ptr[0] = remainder; - r_len = 1; - } - else - r_len = 0; - /* Normalise q. */ - q_len = a_len; - if (q_ptr[q_len - 1] == 0) - q_len--; - } - } - else - { - /* n>1: multiple precision division. - beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==> - beta^(m-n-1) <= a/b < beta^(m-n+1). */ - /* Determine s. */ - size_t s; - { - mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ - s = 31; - if (msd >= 0x10000) - { - msd = msd >> 16; - s -= 16; - } - if (msd >= 0x100) - { - msd = msd >> 8; - s -= 8; - } - if (msd >= 0x10) - { - msd = msd >> 4; - s -= 4; - } - if (msd >= 0x4) - { - msd = msd >> 2; - s -= 2; - } - if (msd >= 0x2) - { - msd = msd >> 1; - s -= 1; - } - } - /* 0 <= s < GMP_LIMB_BITS. - Copy b, shifting it left by s bits. */ - if (s > 0) - { - tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t)); - if (tmp_roomptr == NULL) - { - free (roomptr); - return NULL; - } - { - const mp_limb_t *sourceptr = b_ptr; - mp_limb_t *destptr = tmp_roomptr; - mp_twolimb_t accu = 0; - size_t count; - for (count = b_len; count > 0; count--) - { - accu += (mp_twolimb_t) *sourceptr++ << s; - *destptr++ = (mp_limb_t) accu; - accu = accu >> GMP_LIMB_BITS; - } - /* accu must be zero, since that was how s was determined. */ - if (accu != 0) - abort (); - } - b_ptr = tmp_roomptr; - } - /* Copy a, shifting it left by s bits, yields r. - Memory layout: - At the beginning: r = roomptr[0..a_len], - at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */ - r_ptr = roomptr; - if (s == 0) - { - memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); - r_ptr[a_len] = 0; - } - else - { - const mp_limb_t *sourceptr = a_ptr; - mp_limb_t *destptr = r_ptr; - mp_twolimb_t accu = 0; - size_t count; - for (count = a_len; count > 0; count--) - { - accu += (mp_twolimb_t) *sourceptr++ << s; - *destptr++ = (mp_limb_t) accu; - accu = accu >> GMP_LIMB_BITS; - } - *destptr++ = (mp_limb_t) accu; - } - q_ptr = roomptr + b_len; - q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */ - { - size_t j = a_len - b_len; /* m-n */ - mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */ - mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */ - mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */ - ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd; - /* Division loop, traversed m-n+1 times. - j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */ - for (;;) - { - mp_limb_t q_star; - mp_limb_t c1; - if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */ - { - /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */ - mp_twolimb_t num = - ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS) - | r_ptr[j + b_len - 1]; - q_star = num / b_msd; - c1 = num % b_msd; - } - else - { - /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */ - q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */ - /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta - <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta - <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) - {<= beta !}. - If yes, jump directly to the subtraction loop. - (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta - <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */ - if (r_ptr[j + b_len] > b_msd - || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd) - /* r[j+n] >= b[n-1]+1 or - r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a - carry. */ - goto subtract; - } - /* q_star = q*, - c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, <beta). */ - { - mp_twolimb_t c2 = /* c1*beta+r[j+n-2] */ - ((mp_twolimb_t) c1 << GMP_LIMB_BITS) | r_ptr[j + b_len - 2]; - mp_twolimb_t c3 = /* b[n-2] * q* */ - (mp_twolimb_t) b_2msd * (mp_twolimb_t) q_star; - /* While c2 < c3, increase c2 and decrease c3. - Consider c3-c2. While it is > 0, decrease it by - b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2 - this can happen only twice. */ - if (c3 > c2) - { - q_star = q_star - 1; /* q* := q* - 1 */ - if (c3 - c2 > b_msdd) - q_star = q_star - 1; /* q* := q* - 1 */ - } - } - if (q_star > 0) - subtract: - { - /* Subtract r := r - b * q* * beta^j. */ - mp_limb_t cr; - { - const mp_limb_t *sourceptr = b_ptr; - mp_limb_t *destptr = r_ptr + j; - mp_twolimb_t carry = 0; - size_t count; - for (count = b_len; count > 0; count--) - { - /* Here 0 <= carry <= q*. */ - carry = - carry - + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++ - + (mp_limb_t) ~(*destptr); - /* Here 0 <= carry <= beta*q* + beta-1. */ - *destptr++ = ~(mp_limb_t) carry; - carry = carry >> GMP_LIMB_BITS; /* <= q* */ - } - cr = (mp_limb_t) carry; - } - /* Subtract cr from r_ptr[j + b_len], then forget about - r_ptr[j + b_len]. */ - if (cr > r_ptr[j + b_len]) - { - /* Subtraction gave a carry. */ - q_star = q_star - 1; /* q* := q* - 1 */ - /* Add b back. */ - { - const mp_limb_t *sourceptr = b_ptr; - mp_limb_t *destptr = r_ptr + j; - mp_limb_t carry = 0; - size_t count; - for (count = b_len; count > 0; count--) - { - mp_limb_t source1 = *sourceptr++; - mp_limb_t source2 = *destptr; - *destptr++ = source1 + source2 + carry; - carry = - (carry - ? source1 >= (mp_limb_t) ~source2 - : source1 > (mp_limb_t) ~source2); - } - } - /* Forget about the carry and about r[j+n]. */ - } - } - /* q* is determined. Store it as q[j]. */ - q_ptr[j] = q_star; - if (j == 0) - break; - j--; - } - } - r_len = b_len; - /* Normalise q. */ - if (q_ptr[q_len - 1] == 0) - q_len--; -# if 0 /* Not needed here, since we need r only to compare it with b/2, and - b is shifted left by s bits. */ - /* Shift r right by s bits. */ - if (s > 0) - { - mp_limb_t ptr = r_ptr + r_len; - mp_twolimb_t accu = 0; - size_t count; - for (count = r_len; count > 0; count--) - { - accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS; - accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s); - *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS); - } - } -# endif - /* Normalise r. */ - while (r_len > 0 && r_ptr[r_len - 1] == 0) - r_len--; - } - /* Compare r << 1 with b. */ - if (r_len > b_len) - goto increment_q; - { - size_t i; - for (i = b_len;;) - { - mp_limb_t r_i = - (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0) - | (i < r_len ? r_ptr[i] << 1 : 0); - mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0); - if (r_i > b_i) - goto increment_q; - if (r_i < b_i) - goto keep_q; - if (i == 0) - break; - i--; - } - } - if (q_len > 0 && ((q_ptr[0] & 1) != 0)) - /* q is odd. */ - increment_q: - { - size_t i; - for (i = 0; i < q_len; i++) - if (++(q_ptr[i]) != 0) - goto keep_q; - q_ptr[q_len++] = 1; - } - keep_q: - if (tmp_roomptr != NULL) - free (tmp_roomptr); - q->limbs = q_ptr; - q->nlimbs = q_len; - return roomptr; -} - -/* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal - representation. - Destroys the contents of a. - Return the allocated memory - containing the decimal digits in low-to-high - order, terminated with a NUL character - in case of success, NULL in case - of memory allocation failure. */ -static char * -convert_to_decimal (mpn_t a, size_t extra_zeroes) -{ - mp_limb_t *a_ptr = a.limbs; - size_t a_len = a.nlimbs; - /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ - size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); - char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); - if (c_ptr != NULL) - { - char *d_ptr = c_ptr; - for (; extra_zeroes > 0; extra_zeroes--) - *d_ptr++ = '0'; - while (a_len > 0) - { - /* Divide a by 10^9, in-place. */ - mp_limb_t remainder = 0; - mp_limb_t *ptr = a_ptr + a_len; - size_t count; - for (count = a_len; count > 0; count--) - { - mp_twolimb_t num = - ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr; - *ptr = num / 1000000000; - remainder = num % 1000000000; - } - /* Store the remainder as 9 decimal digits. */ - for (count = 9; count > 0; count--) - { - *d_ptr++ = '0' + (remainder % 10); - remainder = remainder / 10; - } - /* Normalize a. */ - if (a_ptr[a_len - 1] == 0) - a_len--; - } - /* Remove leading zeroes. */ - while (d_ptr > c_ptr && d_ptr[-1] == '0') - d_ptr--; - /* But keep at least one zero. */ - if (d_ptr == c_ptr) - *d_ptr++ = '0'; - /* Terminate the string. */ - *d_ptr = '\0'; - } - return c_ptr; -} - -# if NEED_PRINTF_LONG_DOUBLE - -/* Assuming x is finite and >= 0: - write x as x = 2^e * m, where m is a bignum. - Return the allocated memory in case of success, NULL in case of memory - allocation failure. */ -static void * -decode_long_double (long double x, int *ep, mpn_t *mp) -{ - mpn_t m; - int exp; - long double y; - size_t i; - - /* Allocate memory for result. */ - m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; - m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); - if (m.limbs == NULL) - return NULL; - /* Split into exponential part and mantissa. */ - y = frexpl (x, &exp); - if (!(y >= 0.0L && y < 1.0L)) - abort (); - /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the - latter is an integer. */ - /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs. - I'm not sure whether it's safe to cast a 'long double' value between - 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only - 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int', - doesn't matter). */ -# if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0 -# if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 - { - mp_limb_t hi, lo; - y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2)); - hi = (int) y; - y -= hi; - if (!(y >= 0.0L && y < 1.0L)) - abort (); - y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); - lo = (int) y; - y -= lo; - if (!(y >= 0.0L && y < 1.0L)) - abort (); - m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; - } -# else - { - mp_limb_t d; - y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS); - d = (int) y; - y -= d; - if (!(y >= 0.0L && y < 1.0L)) - abort (); - m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d; - } -# endif -# endif - for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) - { - mp_limb_t hi, lo; - y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); - hi = (int) y; - y -= hi; - if (!(y >= 0.0L && y < 1.0L)) - abort (); - y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); - lo = (int) y; - y -= lo; - if (!(y >= 0.0L && y < 1.0L)) - abort (); - m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; - } -#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess - precision. */ - if (!(y == 0.0L)) - abort (); -#endif - /* Normalise. */ - while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) - m.nlimbs--; - *mp = m; - *ep = exp - LDBL_MANT_BIT; - return m.limbs; -} - -# endif - -# if NEED_PRINTF_DOUBLE - -/* Assuming x is finite and >= 0: - write x as x = 2^e * m, where m is a bignum. - Return the allocated memory in case of success, NULL in case of memory - allocation failure. */ -static void * -decode_double (double x, int *ep, mpn_t *mp) -{ - mpn_t m; - int exp; - double y; - size_t i; - - /* Allocate memory for result. */ - m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; - m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); - if (m.limbs == NULL) - return NULL; - /* Split into exponential part and mantissa. */ - y = frexp (x, &exp); - if (!(y >= 0.0 && y < 1.0)) - abort (); - /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the - latter is an integer. */ - /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs. - I'm not sure whether it's safe to cast a 'double' value between - 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only - 'double' values between 0 and 2^16 (to 'unsigned int' or 'int', - doesn't matter). */ -# if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0 -# if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 - { - mp_limb_t hi, lo; - y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2)); - hi = (int) y; - y -= hi; - if (!(y >= 0.0 && y < 1.0)) - abort (); - y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); - lo = (int) y; - y -= lo; - if (!(y >= 0.0 && y < 1.0)) - abort (); - m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; - } -# else - { - mp_limb_t d; - y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS); - d = (int) y; - y -= d; - if (!(y >= 0.0 && y < 1.0)) - abort (); - m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d; - } -# endif -# endif - for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) - { - mp_limb_t hi, lo; - y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); - hi = (int) y; - y -= hi; - if (!(y >= 0.0 && y < 1.0)) - abort (); - y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); - lo = (int) y; - y -= lo; - if (!(y >= 0.0 && y < 1.0)) - abort (); - m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; - } - if (!(y == 0.0)) - abort (); - /* Normalise. */ - while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) - m.nlimbs--; - *mp = m; - *ep = exp - DBL_MANT_BIT; - return m.limbs; -} - -# endif - -/* Assuming x = 2^e * m is finite and >= 0, and n is an integer: - Returns the decimal representation of round (x * 10^n). - Return the allocated memory - containing the decimal digits in low-to-high - order, terminated with a NUL character - in case of success, NULL in case - of memory allocation failure. */ -static char * -scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n) -{ - int s; - size_t extra_zeroes; - unsigned int abs_n; - unsigned int abs_s; - mp_limb_t *pow5_ptr; - size_t pow5_len; - unsigned int s_limbs; - unsigned int s_bits; - mpn_t pow5; - mpn_t z; - void *z_memory; - char *digits; - - if (memory == NULL) - return NULL; - /* x = 2^e * m, hence - y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m) - = round (2^s * 5^n * m). */ - s = e + n; - extra_zeroes = 0; - /* Factor out a common power of 10 if possible. */ - if (s > 0 && n > 0) - { - extra_zeroes = (s < n ? s : n); - s -= extra_zeroes; - n -= extra_zeroes; - } - /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes. - Before converting to decimal, we need to compute - z = round (2^s * 5^n * m). */ - /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same - sign. 2.322 is slightly larger than log(5)/log(2). */ - abs_n = (n >= 0 ? n : -n); - abs_s = (s >= 0 ? s : -s); - pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1 - + abs_s / GMP_LIMB_BITS + 1) - * sizeof (mp_limb_t)); - if (pow5_ptr == NULL) - { - free (memory); - return NULL; - } - /* Initialize with 1. */ - pow5_ptr[0] = 1; - pow5_len = 1; - /* Multiply with 5^|n|. */ - if (abs_n > 0) - { - static mp_limb_t const small_pow5[13 + 1] = - { - 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, - 48828125, 244140625, 1220703125 - }; - unsigned int n13; - for (n13 = 0; n13 <= abs_n; n13 += 13) - { - mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13]; - size_t j; - mp_twolimb_t carry = 0; - for (j = 0; j < pow5_len; j++) - { - mp_limb_t digit2 = pow5_ptr[j]; - carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; - pow5_ptr[j] = (mp_limb_t) carry; - carry = carry >> GMP_LIMB_BITS; - } - if (carry > 0) - pow5_ptr[pow5_len++] = (mp_limb_t) carry; - } - } - s_limbs = abs_s / GMP_LIMB_BITS; - s_bits = abs_s % GMP_LIMB_BITS; - if (n >= 0 ? s >= 0 : s <= 0) - { - /* Multiply with 2^|s|. */ - if (s_bits > 0) - { - mp_limb_t *ptr = pow5_ptr; - mp_twolimb_t accu = 0; - size_t count; - for (count = pow5_len; count > 0; count--) - { - accu += (mp_twolimb_t) *ptr << s_bits; - *ptr++ = (mp_limb_t) accu; - accu = accu >> GMP_LIMB_BITS; - } - if (accu > 0) - { - *ptr = (mp_limb_t) accu; - pow5_len++; - } - } - if (s_limbs > 0) - { - size_t count; - for (count = pow5_len; count > 0;) - { - count--; - pow5_ptr[s_limbs + count] = pow5_ptr[count]; - } - for (count = s_limbs; count > 0;) - { - count--; - pow5_ptr[count] = 0; - } - pow5_len += s_limbs; - } - pow5.limbs = pow5_ptr; - pow5.nlimbs = pow5_len; - if (n >= 0) - { - /* Multiply m with pow5. No division needed. */ - z_memory = multiply (m, pow5, &z); - } - else - { - /* Divide m by pow5 and round. */ - z_memory = divide (m, pow5, &z); - } - } - else - { - pow5.limbs = pow5_ptr; - pow5.nlimbs = pow5_len; - if (n >= 0) - { - /* n >= 0, s < 0. - Multiply m with pow5, then divide by 2^|s|. */ - mpn_t numerator; - mpn_t denominator; - void *tmp_memory; - tmp_memory = multiply (m, pow5, &numerator); - if (tmp_memory == NULL) - { - free (pow5_ptr); - free (memory); - return NULL; - } - /* Construct 2^|s|. */ - { - mp_limb_t *ptr = pow5_ptr + pow5_len; - size_t i; - for (i = 0; i < s_limbs; i++) - ptr[i] = 0; - ptr[s_limbs] = (mp_limb_t) 1 << s_bits; - denominator.limbs = ptr; - denominator.nlimbs = s_limbs + 1; - } - z_memory = divide (numerator, denominator, &z); - free (tmp_memory); - } - else - { - /* n < 0, s > 0. - Multiply m with 2^s, then divide by pow5. */ - mpn_t numerator; - mp_limb_t *num_ptr; - num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1) - * sizeof (mp_limb_t)); - if (num_ptr == NULL) - { - free (pow5_ptr); - free (memory); - return NULL; - } - { - mp_limb_t *destptr = num_ptr; - { - size_t i; - for (i = 0; i < s_limbs; i++) - *destptr++ = 0; - } - if (s_bits > 0) - { - const mp_limb_t *sourceptr = m.limbs; - mp_twolimb_t accu = 0; - size_t count; - for (count = m.nlimbs; count > 0; count--) - { - accu += (mp_twolimb_t) *sourceptr++ << s_bits; - *destptr++ = (mp_limb_t) accu; - accu = accu >> GMP_LIMB_BITS; - } - if (accu > 0) - *destptr++ = (mp_limb_t) accu; - } - else - { - const mp_limb_t *sourceptr = m.limbs; - size_t count; - for (count = m.nlimbs; count > 0; count--) - *destptr++ = *sourceptr++; - } - numerator.limbs = num_ptr; - numerator.nlimbs = destptr - num_ptr; - } - z_memory = divide (numerator, pow5, &z); - free (num_ptr); - } - } - free (pow5_ptr); - free (memory); - - /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */ - - if (z_memory == NULL) - return NULL; - digits = convert_to_decimal (z, extra_zeroes); - free (z_memory); - return digits; -} - -# if NEED_PRINTF_LONG_DOUBLE - -/* Assuming x is finite and >= 0, and n is an integer: - Returns the decimal representation of round (x * 10^n). - Return the allocated memory - containing the decimal digits in low-to-high - order, terminated with a NUL character - in case of success, NULL in case - of memory allocation failure. */ -static char * -scale10_round_decimal_long_double (long double x, int n) -{ - int e IF_LINT(= 0); - mpn_t m; - void *memory = decode_long_double (x, &e, &m); - return scale10_round_decimal_decoded (e, m, memory, n); -} - -# endif - -# if NEED_PRINTF_DOUBLE - -/* Assuming x is finite and >= 0, and n is an integer: - Returns the decimal representation of round (x * 10^n). - Return the allocated memory - containing the decimal digits in low-to-high - order, terminated with a NUL character - in case of success, NULL in case - of memory allocation failure. */ -static char * -scale10_round_decimal_double (double x, int n) -{ - int e IF_LINT(= 0); - mpn_t m; - void *memory = decode_double (x, &e, &m); - return scale10_round_decimal_decoded (e, m, memory, n); -} - -# endif - -# if NEED_PRINTF_LONG_DOUBLE - -/* Assuming x is finite and > 0: - Return an approximation for n with 10^n <= x < 10^(n+1). - The approximation is usually the right n, but may be off by 1 sometimes. */ -static int -floorlog10l (long double x) -{ - int exp; - long double y; - double z; - double l; - - /* Split into exponential part and mantissa. */ - y = frexpl (x, &exp); - if (!(y >= 0.0L && y < 1.0L)) - abort (); - if (y == 0.0L) - return INT_MIN; - if (y < 0.5L) - { - while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) - { - y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); - exp -= GMP_LIMB_BITS; - } - if (y < (1.0L / (1 << 16))) - { - y *= 1.0L * (1 << 16); - exp -= 16; - } - if (y < (1.0L / (1 << 8))) - { - y *= 1.0L * (1 << 8); - exp -= 8; - } - if (y < (1.0L / (1 << 4))) - { - y *= 1.0L * (1 << 4); - exp -= 4; - } - if (y < (1.0L / (1 << 2))) - { - y *= 1.0L * (1 << 2); - exp -= 2; - } - if (y < (1.0L / (1 << 1))) - { - y *= 1.0L * (1 << 1); - exp -= 1; - } - } - if (!(y >= 0.5L && y < 1.0L)) - abort (); - /* Compute an approximation for l = log2(x) = exp + log2(y). */ - l = exp; - z = y; - if (z < 0.70710678118654752444) - { - z *= 1.4142135623730950488; - l -= 0.5; - } - if (z < 0.8408964152537145431) - { - z *= 1.1892071150027210667; - l -= 0.25; - } - if (z < 0.91700404320467123175) - { - z *= 1.0905077326652576592; - l -= 0.125; - } - if (z < 0.9576032806985736469) - { - z *= 1.0442737824274138403; - l -= 0.0625; - } - /* Now 0.95 <= z <= 1.01. */ - z = 1 - z; - /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) - Four terms are enough to get an approximation with error < 10^-7. */ - l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); - /* Finally multiply with log(2)/log(10), yields an approximation for - log10(x). */ - l *= 0.30102999566398119523; - /* Round down to the next integer. */ - return (int) l + (l < 0 ? -1 : 0); -} - -# endif - -# if NEED_PRINTF_DOUBLE - -/* Assuming x is finite and > 0: - Return an approximation for n with 10^n <= x < 10^(n+1). - The approximation is usually the right n, but may be off by 1 sometimes. */ -static int -floorlog10 (double x) -{ - int exp; - double y; - double z; - double l; - - /* Split into exponential part and mantissa. */ - y = frexp (x, &exp); - if (!(y >= 0.0 && y < 1.0)) - abort (); - if (y == 0.0) - return INT_MIN; - if (y < 0.5) - { - while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) - { - y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); - exp -= GMP_LIMB_BITS; - } - if (y < (1.0 / (1 << 16))) - { - y *= 1.0 * (1 << 16); - exp -= 16; - } - if (y < (1.0 / (1 << 8))) - { - y *= 1.0 * (1 << 8); - exp -= 8; - } - if (y < (1.0 / (1 << 4))) - { - y *= 1.0 * (1 << 4); - exp -= 4; - } - if (y < (1.0 / (1 << 2))) - { - y *= 1.0 * (1 << 2); - exp -= 2; - } - if (y < (1.0 / (1 << 1))) - { - y *= 1.0 * (1 << 1); - exp -= 1; - } - } - if (!(y >= 0.5 && y < 1.0)) - abort (); - /* Compute an approximation for l = log2(x) = exp + log2(y). */ - l = exp; - z = y; - if (z < 0.70710678118654752444) - { - z *= 1.4142135623730950488; - l -= 0.5; - } - if (z < 0.8408964152537145431) - { - z *= 1.1892071150027210667; - l -= 0.25; - } - if (z < 0.91700404320467123175) - { - z *= 1.0905077326652576592; - l -= 0.125; - } - if (z < 0.9576032806985736469) - { - z *= 1.0442737824274138403; - l -= 0.0625; - } - /* Now 0.95 <= z <= 1.01. */ - z = 1 - z; - /* log2(1-z) = 1/log(2) * (- z - z^2/2 - z^3/3 - z^4/4 - ...) - Four terms are enough to get an approximation with error < 10^-7. */ - l -= 1.4426950408889634074 * z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); - /* Finally multiply with log(2)/log(10), yields an approximation for - log10(x). */ - l *= 0.30102999566398119523; - /* Round down to the next integer. */ - return (int) l + (l < 0 ? -1 : 0); -} - -# endif - -/* Tests whether a string of digits consists of exactly PRECISION zeroes and - a single '1' digit. */ -static int -is_borderline (const char *digits, size_t precision) -{ - for (; precision > 0; precision--, digits++) - if (*digits != '0') - return 0; - if (*digits != '1') - return 0; - digits++; - return *digits == '\0'; -} - -#endif - -DCHAR_T * -VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, - const FCHAR_T *format, va_list args) -{ - DIRECTIVES d; - arguments a; - - if (PRINTF_PARSE (format, &d, &a) < 0) - /* errno is already set. */ - return NULL; - -#define CLEANUP() \ - free (d.dir); \ - if (a.arg) \ - free (a.arg); - - if (PRINTF_FETCHARGS (args, &a) < 0) - { - CLEANUP (); - errno = EINVAL; - return NULL; - } - - { - size_t buf_neededlength; - TCHAR_T *buf; - TCHAR_T *buf_malloced; - const FCHAR_T *cp; - size_t i; - DIRECTIVE *dp; - /* Output string accumulator. */ - DCHAR_T *result; - size_t allocated; - size_t length; - - /* Allocate a small buffer that will hold a directive passed to - sprintf or snprintf. */ - buf_neededlength = - xsum4 (7, d.max_width_length, d.max_precision_length, 6); -#if HAVE_ALLOCA - if (buf_neededlength < 4000 / sizeof (TCHAR_T)) - { - buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T)); - buf_malloced = NULL; - } - else -#endif - { - size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T)); - if (size_overflow_p (buf_memsize)) - goto out_of_memory_1; - buf = (TCHAR_T *) malloc (buf_memsize); - if (buf == NULL) - goto out_of_memory_1; - buf_malloced = buf; - } - - if (resultbuf != NULL) - { - result = resultbuf; - allocated = *lengthp; - } - else - { - result = NULL; - allocated = 0; - } - length = 0; - /* Invariants: - result is either == resultbuf or == NULL or malloc-allocated. - If length > 0, then result != NULL. */ - - /* Ensures that allocated >= needed. Aborts through a jump to - out_of_memory if needed is SIZE_MAX or otherwise too big. */ -#define ENSURE_ALLOCATION(needed) \ - if ((needed) > allocated) \ - { \ - size_t memory_size; \ - DCHAR_T *memory; \ - \ - allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \ - if ((needed) > allocated) \ - allocated = (needed); \ - memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ - if (size_overflow_p (memory_size)) \ - goto out_of_memory; \ - if (result == resultbuf || result == NULL) \ - memory = (DCHAR_T *) malloc (memory_size); \ - else \ - memory = (DCHAR_T *) realloc (result, memory_size); \ - if (memory == NULL) \ - goto out_of_memory; \ - if (result == resultbuf && length > 0) \ - DCHAR_CPY (memory, result, length); \ - result = memory; \ - } - - for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) - { - if (cp != dp->dir_start) - { - size_t n = dp->dir_start - cp; - size_t augmented_length = xsum (length, n); - - ENSURE_ALLOCATION (augmented_length); - /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we - need that the format string contains only ASCII characters - if FCHAR_T and DCHAR_T are not the same type. */ - if (sizeof (FCHAR_T) == sizeof (DCHAR_T)) - { - DCHAR_CPY (result + length, (const DCHAR_T *) cp, n); - length = augmented_length; - } - else - { - do - result[length++] = (unsigned char) *cp++; - while (--n > 0); - } - } - if (i == d.count) - break; - - /* Execute a single directive. */ - if (dp->conversion == '%') - { - size_t augmented_length; - - if (!(dp->arg_index == ARG_NONE)) - abort (); - augmented_length = xsum (length, 1); - ENSURE_ALLOCATION (augmented_length); - result[length] = '%'; - length = augmented_length; - } - else - { - if (!(dp->arg_index != ARG_NONE)) - abort (); - - if (dp->conversion == 'n') - { - switch (a.arg[dp->arg_index].type) - { - case TYPE_COUNT_SCHAR_POINTER: - *a.arg[dp->arg_index].a.a_count_schar_pointer = length; - break; - case TYPE_COUNT_SHORT_POINTER: - *a.arg[dp->arg_index].a.a_count_short_pointer = length; - break; - case TYPE_COUNT_INT_POINTER: - *a.arg[dp->arg_index].a.a_count_int_pointer = length; - break; - case TYPE_COUNT_LONGINT_POINTER: - *a.arg[dp->arg_index].a.a_count_longint_pointer = length; - break; -#if HAVE_LONG_LONG_INT - case TYPE_COUNT_LONGLONGINT_POINTER: - *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; - break; -#endif - default: - abort (); - } - } -#if ENABLE_UNISTDIO - /* The unistdio extensions. */ - else if (dp->conversion == 'U') - { - arg_type type = a.arg[dp->arg_index].type; - int flags = dp->flags; - int has_width; - size_t width; - int has_precision; - size_t precision; - - has_width = 0; - width = 0; - if (dp->width_start != dp->width_end) - { - if (dp->width_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->width_arg_index].a.a_int; - if (arg < 0) - { - /* "A negative field width is taken as a '-' flag - followed by a positive field width." */ - flags |= FLAG_LEFT; - width = (unsigned int) (-arg); - } - else - width = arg; - } - else - { - const FCHAR_T *digitp = dp->width_start; - - do - width = xsum (xtimes (width, 10), *digitp++ - '0'); - while (digitp != dp->width_end); - } - has_width = 1; - } - - has_precision = 0; - precision = 0; - if (dp->precision_start != dp->precision_end) - { - if (dp->precision_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->precision_arg_index].a.a_int; - /* "A negative precision is taken as if the precision - were omitted." */ - if (arg >= 0) - { - precision = arg; - has_precision = 1; - } - } - else - { - const FCHAR_T *digitp = dp->precision_start + 1; - - precision = 0; - while (digitp != dp->precision_end) - precision = xsum (xtimes (precision, 10), *digitp++ - '0'); - has_precision = 1; - } - } - - switch (type) - { - case TYPE_U8_STRING: - { - const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string; - const uint8_t *arg_end; - size_t characters; - - if (has_precision) - { - /* Use only PRECISION characters, from the left. */ - arg_end = arg; - characters = 0; - for (; precision > 0; precision--) - { - int count = u8_strmblen (arg_end); - if (count == 0) - break; - if (count < 0) - { - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EILSEQ; - return NULL; - } - arg_end += count; - characters++; - } - } - else if (has_width) - { - /* Use the entire string, and count the number of - characters. */ - arg_end = arg; - characters = 0; - for (;;) - { - int count = u8_strmblen (arg_end); - if (count == 0) - break; - if (count < 0) - { - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EILSEQ; - return NULL; - } - arg_end += count; - characters++; - } - } - else - { - /* Use the entire string. */ - arg_end = arg + u8_strlen (arg); - /* The number of characters doesn't matter. */ - characters = 0; - } - - if (has_width && width > characters - && !(dp->flags & FLAG_LEFT)) - { - size_t n = width - characters; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - -# if DCHAR_IS_UINT8_T - { - size_t n = arg_end - arg; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_CPY (result + length, arg, n); - length += n; - } -# else - { /* Convert. */ - DCHAR_T *converted = result + length; - size_t converted_len = allocated - length; -# if DCHAR_IS_TCHAR - /* Convert from UTF-8 to locale encoding. */ - if (u8_conv_to_encoding (locale_charset (), - iconveh_question_mark, - arg, arg_end - arg, NULL, - &converted, &converted_len) - < 0) -# else - /* Convert from UTF-8 to UTF-16/UTF-32. */ - converted = - U8_TO_DCHAR (arg, arg_end - arg, - converted, &converted_len); - if (converted == NULL) -# endif - { - int saved_errno = errno; - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = saved_errno; - return NULL; - } - if (converted != result + length) - { - ENSURE_ALLOCATION (xsum (length, converted_len)); - DCHAR_CPY (result + length, converted, converted_len); - free (converted); - } - length += converted_len; - } -# endif - - if (has_width && width > characters - && (dp->flags & FLAG_LEFT)) - { - size_t n = width - characters; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - } - break; - - case TYPE_U16_STRING: - { - const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string; - const uint16_t *arg_end; - size_t characters; - - if (has_precision) - { - /* Use only PRECISION characters, from the left. */ - arg_end = arg; - characters = 0; - for (; precision > 0; precision--) - { - int count = u16_strmblen (arg_end); - if (count == 0) - break; - if (count < 0) - { - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EILSEQ; - return NULL; - } - arg_end += count; - characters++; - } - } - else if (has_width) - { - /* Use the entire string, and count the number of - characters. */ - arg_end = arg; - characters = 0; - for (;;) - { - int count = u16_strmblen (arg_end); - if (count == 0) - break; - if (count < 0) - { - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EILSEQ; - return NULL; - } - arg_end += count; - characters++; - } - } - else - { - /* Use the entire string. */ - arg_end = arg + u16_strlen (arg); - /* The number of characters doesn't matter. */ - characters = 0; - } - - if (has_width && width > characters - && !(dp->flags & FLAG_LEFT)) - { - size_t n = width - characters; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - -# if DCHAR_IS_UINT16_T - { - size_t n = arg_end - arg; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_CPY (result + length, arg, n); - length += n; - } -# else - { /* Convert. */ - DCHAR_T *converted = result + length; - size_t converted_len = allocated - length; -# if DCHAR_IS_TCHAR - /* Convert from UTF-16 to locale encoding. */ - if (u16_conv_to_encoding (locale_charset (), - iconveh_question_mark, - arg, arg_end - arg, NULL, - &converted, &converted_len) - < 0) -# else - /* Convert from UTF-16 to UTF-8/UTF-32. */ - converted = - U16_TO_DCHAR (arg, arg_end - arg, - converted, &converted_len); - if (converted == NULL) -# endif - { - int saved_errno = errno; - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = saved_errno; - return NULL; - } - if (converted != result + length) - { - ENSURE_ALLOCATION (xsum (length, converted_len)); - DCHAR_CPY (result + length, converted, converted_len); - free (converted); - } - length += converted_len; - } -# endif - - if (has_width && width > characters - && (dp->flags & FLAG_LEFT)) - { - size_t n = width - characters; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - } - break; - - case TYPE_U32_STRING: - { - const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string; - const uint32_t *arg_end; - size_t characters; - - if (has_precision) - { - /* Use only PRECISION characters, from the left. */ - arg_end = arg; - characters = 0; - for (; precision > 0; precision--) - { - int count = u32_strmblen (arg_end); - if (count == 0) - break; - if (count < 0) - { - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EILSEQ; - return NULL; - } - arg_end += count; - characters++; - } - } - else if (has_width) - { - /* Use the entire string, and count the number of - characters. */ - arg_end = arg; - characters = 0; - for (;;) - { - int count = u32_strmblen (arg_end); - if (count == 0) - break; - if (count < 0) - { - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EILSEQ; - return NULL; - } - arg_end += count; - characters++; - } - } - else - { - /* Use the entire string. */ - arg_end = arg + u32_strlen (arg); - /* The number of characters doesn't matter. */ - characters = 0; - } - - if (has_width && width > characters - && !(dp->flags & FLAG_LEFT)) - { - size_t n = width - characters; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - -# if DCHAR_IS_UINT32_T - { - size_t n = arg_end - arg; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_CPY (result + length, arg, n); - length += n; - } -# else - { /* Convert. */ - DCHAR_T *converted = result + length; - size_t converted_len = allocated - length; -# if DCHAR_IS_TCHAR - /* Convert from UTF-32 to locale encoding. */ - if (u32_conv_to_encoding (locale_charset (), - iconveh_question_mark, - arg, arg_end - arg, NULL, - &converted, &converted_len) - < 0) -# else - /* Convert from UTF-32 to UTF-8/UTF-16. */ - converted = - U32_TO_DCHAR (arg, arg_end - arg, - converted, &converted_len); - if (converted == NULL) -# endif - { - int saved_errno = errno; - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = saved_errno; - return NULL; - } - if (converted != result + length) - { - ENSURE_ALLOCATION (xsum (length, converted_len)); - DCHAR_CPY (result + length, converted, converted_len); - free (converted); - } - length += converted_len; - } -# endif - - if (has_width && width > characters - && (dp->flags & FLAG_LEFT)) - { - size_t n = width - characters; - ENSURE_ALLOCATION (xsum (length, n)); - DCHAR_SET (result + length, ' ', n); - length += n; - } - } - break; - - default: - abort (); - } - } -#endif -#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL - else if ((dp->conversion == 'a' || dp->conversion == 'A') -# if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) - && (0 -# if NEED_PRINTF_DOUBLE - || a.arg[dp->arg_index].type == TYPE_DOUBLE -# endif -# if NEED_PRINTF_LONG_DOUBLE - || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE -# endif - ) -# endif - ) - { - arg_type type = a.arg[dp->arg_index].type; - int flags = dp->flags; - int has_width; - size_t width; - int has_precision; - size_t precision; - size_t tmp_length; - DCHAR_T tmpbuf[700]; - DCHAR_T *tmp; - DCHAR_T *pad_ptr; - DCHAR_T *p; - - has_width = 0; - width = 0; - if (dp->width_start != dp->width_end) - { - if (dp->width_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->width_arg_index].a.a_int; - if (arg < 0) - { - /* "A negative field width is taken as a '-' flag - followed by a positive field width." */ - flags |= FLAG_LEFT; - width = (unsigned int) (-arg); - } - else - width = arg; - } - else - { - const FCHAR_T *digitp = dp->width_start; - - do - width = xsum (xtimes (width, 10), *digitp++ - '0'); - while (digitp != dp->width_end); - } - has_width = 1; - } - - has_precision = 0; - precision = 0; - if (dp->precision_start != dp->precision_end) - { - if (dp->precision_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->precision_arg_index].a.a_int; - /* "A negative precision is taken as if the precision - were omitted." */ - if (arg >= 0) - { - precision = arg; - has_precision = 1; - } - } - else - { - const FCHAR_T *digitp = dp->precision_start + 1; - - precision = 0; - while (digitp != dp->precision_end) - precision = xsum (xtimes (precision, 10), *digitp++ - '0'); - has_precision = 1; - } - } - - /* Allocate a temporary buffer of sufficient size. */ - if (type == TYPE_LONGDOUBLE) - tmp_length = - (unsigned int) ((LDBL_DIG + 1) - * 0.831 /* decimal -> hexadecimal */ - ) - + 1; /* turn floor into ceil */ - else - tmp_length = - (unsigned int) ((DBL_DIG + 1) - * 0.831 /* decimal -> hexadecimal */ - ) - + 1; /* turn floor into ceil */ - if (tmp_length < precision) - tmp_length = precision; - /* Account for sign, decimal point etc. */ - tmp_length = xsum (tmp_length, 12); - - if (tmp_length < width) - tmp_length = width; - - tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ - - if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) - tmp = tmpbuf; - else - { - size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); - - if (size_overflow_p (tmp_memsize)) - /* Overflow, would lead to out of memory. */ - goto out_of_memory; - tmp = (DCHAR_T *) malloc (tmp_memsize); - if (tmp == NULL) - /* Out of memory. */ - goto out_of_memory; - } - - pad_ptr = NULL; - p = tmp; - if (type == TYPE_LONGDOUBLE) - { -# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE - long double arg = a.arg[dp->arg_index].a.a_longdouble; - - if (isnanl (arg)) - { - if (dp->conversion == 'A') - { - *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; - } - else - { - *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; - } - } - else - { - int sign = 0; - DECL_LONG_DOUBLE_ROUNDING - - BEGIN_LONG_DOUBLE_ROUNDING (); - - if (signbit (arg)) /* arg < 0.0L or negative zero */ - { - sign = -1; - arg = -arg; - } - - if (sign < 0) - *p++ = '-'; - else if (flags & FLAG_SHOWSIGN) - *p++ = '+'; - else if (flags & FLAG_SPACE) - *p++ = ' '; - - if (arg > 0.0L && arg + arg == arg) - { - if (dp->conversion == 'A') - { - *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; - } - else - { - *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; - } - } - else - { - int exponent; - long double mantissa; - - if (arg > 0.0L) - mantissa = printf_frexpl (arg, &exponent); - else - { - exponent = 0; - mantissa = 0.0L; - } - - if (has_precision - && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1) - { - /* Round the mantissa. */ - long double tail = mantissa; - size_t q; - - for (q = precision; ; q--) - { - int digit = (int) tail; - tail -= digit; - if (q == 0) - { - if (digit & 1 ? tail >= 0.5L : tail > 0.5L) - tail = 1 - tail; - else - tail = - tail; - break; - } - tail *= 16.0L; - } - if (tail != 0.0L) - for (q = precision; q > 0; q--) - tail *= 0.0625L; - mantissa += tail; - } - - *p++ = '0'; - *p++ = dp->conversion - 'A' + 'X'; - pad_ptr = p; - { - int digit; - - digit = (int) mantissa; - mantissa -= digit; - *p++ = '0' + digit; - if ((flags & FLAG_ALT) - || mantissa > 0.0L || precision > 0) - { - *p++ = decimal_point_char (); - /* This loop terminates because we assume - that FLT_RADIX is a power of 2. */ - while (mantissa > 0.0L) - { - mantissa *= 16.0L; - digit = (int) mantissa; - mantissa -= digit; - *p++ = digit - + (digit < 10 - ? '0' - : dp->conversion - 10); - if (precision > 0) - precision--; - } - while (precision > 0) - { - *p++ = '0'; - precision--; - } - } - } - *p++ = dp->conversion - 'A' + 'P'; -# if WIDE_CHAR_VERSION - { - static const wchar_t decimal_format[] = - { '%', '+', 'd', '\0' }; - SNPRINTF (p, 6 + 1, decimal_format, exponent); - } - while (*p != '\0') - p++; -# else - if (sizeof (DCHAR_T) == 1) - { - sprintf ((char *) p, "%+d", exponent); - while (*p != '\0') - p++; - } - else - { - char expbuf[6 + 1]; - const char *ep; - sprintf (expbuf, "%+d", exponent); - for (ep = expbuf; (*p = *ep) != '\0'; ep++) - p++; - } -# endif - } - - END_LONG_DOUBLE_ROUNDING (); - } -# else - abort (); -# endif - } - else - { -# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE - double arg = a.arg[dp->arg_index].a.a_double; - - if (isnand (arg)) - { - if (dp->conversion == 'A') - { - *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; - } - else - { - *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; - } - } - else - { - int sign = 0; - - if (signbit (arg)) /* arg < 0.0 or negative zero */ - { - sign = -1; - arg = -arg; - } - - if (sign < 0) - *p++ = '-'; - else if (flags & FLAG_SHOWSIGN) - *p++ = '+'; - else if (flags & FLAG_SPACE) - *p++ = ' '; - - if (arg > 0.0 && arg + arg == arg) - { - if (dp->conversion == 'A') - { - *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; - } - else - { - *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; - } - } - else - { - int exponent; - double mantissa; - - if (arg > 0.0) - mantissa = printf_frexp (arg, &exponent); - else - { - exponent = 0; - mantissa = 0.0; - } - - if (has_precision - && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1) - { - /* Round the mantissa. */ - double tail = mantissa; - size_t q; - - for (q = precision; ; q--) - { - int digit = (int) tail; - tail -= digit; - if (q == 0) - { - if (digit & 1 ? tail >= 0.5 : tail > 0.5) - tail = 1 - tail; - else - tail = - tail; - break; - } - tail *= 16.0; - } - if (tail != 0.0) - for (q = precision; q > 0; q--) - tail *= 0.0625; - mantissa += tail; - } - - *p++ = '0'; - *p++ = dp->conversion - 'A' + 'X'; - pad_ptr = p; - { - int digit; - - digit = (int) mantissa; - mantissa -= digit; - *p++ = '0' + digit; - if ((flags & FLAG_ALT) - || mantissa > 0.0 || precision > 0) - { - *p++ = decimal_point_char (); - /* This loop terminates because we assume - that FLT_RADIX is a power of 2. */ - while (mantissa > 0.0) - { - mantissa *= 16.0; - digit = (int) mantissa; - mantissa -= digit; - *p++ = digit - + (digit < 10 - ? '0' - : dp->conversion - 10); - if (precision > 0) - precision--; - } - while (precision > 0) - { - *p++ = '0'; - precision--; - } - } - } - *p++ = dp->conversion - 'A' + 'P'; -# if WIDE_CHAR_VERSION - { - static const wchar_t decimal_format[] = - { '%', '+', 'd', '\0' }; - SNPRINTF (p, 6 + 1, decimal_format, exponent); - } - while (*p != '\0') - p++; -# else - if (sizeof (DCHAR_T) == 1) - { - sprintf ((char *) p, "%+d", exponent); - while (*p != '\0') - p++; - } - else - { - char expbuf[6 + 1]; - const char *ep; - sprintf (expbuf, "%+d", exponent); - for (ep = expbuf; (*p = *ep) != '\0'; ep++) - p++; - } -# endif - } - } -# else - abort (); -# endif - } - /* The generated string now extends from tmp to p, with the - zero padding insertion point being at pad_ptr. */ - if (has_width && p - tmp < width) - { - size_t pad = width - (p - tmp); - DCHAR_T *end = p + pad; - - if (flags & FLAG_LEFT) - { - /* Pad with spaces on the right. */ - for (; pad > 0; pad--) - *p++ = ' '; - } - else if ((flags & FLAG_ZERO) && pad_ptr != NULL) - { - /* Pad with zeroes. */ - DCHAR_T *q = end; - - while (p > pad_ptr) - *--q = *--p; - for (; pad > 0; pad--) - *p++ = '0'; - } - else - { - /* Pad with spaces on the left. */ - DCHAR_T *q = end; - - while (p > tmp) - *--q = *--p; - for (; pad > 0; pad--) - *p++ = ' '; - } - - p = end; - } - - { - size_t count = p - tmp; - - if (count >= tmp_length) - /* tmp_length was incorrectly calculated - fix the - code above! */ - abort (); - - /* Make room for the result. */ - if (count >= allocated - length) - { - size_t n = xsum (length, count); - - ENSURE_ALLOCATION (n); - } - - /* Append the result. */ - memcpy (result + length, tmp, count * sizeof (DCHAR_T)); - if (tmp != tmpbuf) - free (tmp); - length += count; - } - } -#endif -#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL - else if ((dp->conversion == 'f' || dp->conversion == 'F' - || dp->conversion == 'e' || dp->conversion == 'E' - || dp->conversion == 'g' || dp->conversion == 'G' - || dp->conversion == 'a' || dp->conversion == 'A') - && (0 -# if NEED_PRINTF_DOUBLE - || a.arg[dp->arg_index].type == TYPE_DOUBLE -# elif NEED_PRINTF_INFINITE_DOUBLE - || (a.arg[dp->arg_index].type == TYPE_DOUBLE - /* The systems (mingw) which produce wrong output - for Inf, -Inf, and NaN also do so for -0.0. - Therefore we treat this case here as well. */ - && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double)) -# endif -# if NEED_PRINTF_LONG_DOUBLE - || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE -# elif NEED_PRINTF_INFINITE_LONG_DOUBLE - || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE - /* Some systems produce wrong output for Inf, - -Inf, and NaN. Some systems in this category - (IRIX 5.3) also do so for -0.0. Therefore we - treat this case here as well. */ - && is_infinite_or_zerol (a.arg[dp->arg_index].a.a_longdouble)) -# endif - )) - { -# if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) - arg_type type = a.arg[dp->arg_index].type; -# endif - int flags = dp->flags; - int has_width; - size_t width; - int has_precision; - size_t precision; - size_t tmp_length; - DCHAR_T tmpbuf[700]; - DCHAR_T *tmp; - DCHAR_T *pad_ptr; - DCHAR_T *p; - - has_width = 0; - width = 0; - if (dp->width_start != dp->width_end) - { - if (dp->width_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->width_arg_index].a.a_int; - if (arg < 0) - { - /* "A negative field width is taken as a '-' flag - followed by a positive field width." */ - flags |= FLAG_LEFT; - width = (unsigned int) (-arg); - } - else - width = arg; - } - else - { - const FCHAR_T *digitp = dp->width_start; - - do - width = xsum (xtimes (width, 10), *digitp++ - '0'); - while (digitp != dp->width_end); - } - has_width = 1; - } - - has_precision = 0; - precision = 0; - if (dp->precision_start != dp->precision_end) - { - if (dp->precision_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->precision_arg_index].a.a_int; - /* "A negative precision is taken as if the precision - were omitted." */ - if (arg >= 0) - { - precision = arg; - has_precision = 1; - } - } - else - { - const FCHAR_T *digitp = dp->precision_start + 1; - - precision = 0; - while (digitp != dp->precision_end) - precision = xsum (xtimes (precision, 10), *digitp++ - '0'); - has_precision = 1; - } - } - - /* POSIX specifies the default precision to be 6 for %f, %F, - %e, %E, but not for %g, %G. Implementations appear to use - the same default precision also for %g, %G. But for %a, %A, - the default precision is 0. */ - if (!has_precision) - if (!(dp->conversion == 'a' || dp->conversion == 'A')) - precision = 6; - - /* Allocate a temporary buffer of sufficient size. */ -# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE - tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1); -# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE - tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0); -# elif NEED_PRINTF_LONG_DOUBLE - tmp_length = LDBL_DIG + 1; -# elif NEED_PRINTF_DOUBLE - tmp_length = DBL_DIG + 1; -# else - tmp_length = 0; -# endif - if (tmp_length < precision) - tmp_length = precision; -# if NEED_PRINTF_LONG_DOUBLE -# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE - if (type == TYPE_LONGDOUBLE) -# endif - if (dp->conversion == 'f' || dp->conversion == 'F') - { - long double arg = a.arg[dp->arg_index].a.a_longdouble; - if (!(isnanl (arg) || arg + arg == arg)) - { - /* arg is finite and nonzero. */ - int exponent = floorlog10l (arg < 0 ? -arg : arg); - if (exponent >= 0 && tmp_length < exponent + precision) - tmp_length = exponent + precision; - } - } -# endif -# if NEED_PRINTF_DOUBLE -# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE - if (type == TYPE_DOUBLE) -# endif - if (dp->conversion == 'f' || dp->conversion == 'F') - { - double arg = a.arg[dp->arg_index].a.a_double; - if (!(isnand (arg) || arg + arg == arg)) - { - /* arg is finite and nonzero. */ - int exponent = floorlog10 (arg < 0 ? -arg : arg); - if (exponent >= 0 && tmp_length < exponent + precision) - tmp_length = exponent + precision; - } - } -# endif - /* Account for sign, decimal point etc. */ - tmp_length = xsum (tmp_length, 12); - - if (tmp_length < width) - tmp_length = width; - - tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ - - if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) - tmp = tmpbuf; - else - { - size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); - - if (size_overflow_p (tmp_memsize)) - /* Overflow, would lead to out of memory. */ - goto out_of_memory; - tmp = (DCHAR_T *) malloc (tmp_memsize); - if (tmp == NULL) - /* Out of memory. */ - goto out_of_memory; - } - - pad_ptr = NULL; - p = tmp; - -# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE -# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE - if (type == TYPE_LONGDOUBLE) -# endif - { - long double arg = a.arg[dp->arg_index].a.a_longdouble; - - if (isnanl (arg)) - { - if (dp->conversion >= 'A' && dp->conversion <= 'Z') - { - *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; - } - else - { - *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; - } - } - else - { - int sign = 0; - DECL_LONG_DOUBLE_ROUNDING - - BEGIN_LONG_DOUBLE_ROUNDING (); - - if (signbit (arg)) /* arg < 0.0L or negative zero */ - { - sign = -1; - arg = -arg; - } - - if (sign < 0) - *p++ = '-'; - else if (flags & FLAG_SHOWSIGN) - *p++ = '+'; - else if (flags & FLAG_SPACE) - *p++ = ' '; - - if (arg > 0.0L && arg + arg == arg) - { - if (dp->conversion >= 'A' && dp->conversion <= 'Z') - { - *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; - } - else - { - *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; - } - } - else - { -# if NEED_PRINTF_LONG_DOUBLE - pad_ptr = p; - - if (dp->conversion == 'f' || dp->conversion == 'F') - { - char *digits; - size_t ndigits; - - digits = - scale10_round_decimal_long_double (arg, precision); - if (digits == NULL) - { - END_LONG_DOUBLE_ROUNDING (); - goto out_of_memory; - } - ndigits = strlen (digits); - - if (ndigits > precision) - do - { - --ndigits; - *p++ = digits[ndigits]; - } - while (ndigits > precision); - else - *p++ = '0'; - /* Here ndigits <= precision. */ - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > ndigits; precision--) - *p++ = '0'; - while (ndigits > 0) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - - free (digits); - } - else if (dp->conversion == 'e' || dp->conversion == 'E') - { - int exponent; - - if (arg == 0.0L) - { - exponent = 0; - *p++ = '0'; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > 0; precision--) - *p++ = '0'; - } - } - else - { - /* arg > 0.0L. */ - int adjusted; - char *digits; - size_t ndigits; - - exponent = floorlog10l (arg); - adjusted = 0; - for (;;) - { - digits = - scale10_round_decimal_long_double (arg, - (int)precision - exponent); - if (digits == NULL) - { - END_LONG_DOUBLE_ROUNDING (); - goto out_of_memory; - } - ndigits = strlen (digits); - - if (ndigits == precision + 1) - break; - if (ndigits < precision - || ndigits > precision + 2) - /* The exponent was not guessed - precisely enough. */ - abort (); - if (adjusted) - /* None of two values of exponent is - the right one. Prevent an endless - loop. */ - abort (); - free (digits); - if (ndigits == precision) - exponent -= 1; - else - exponent += 1; - adjusted = 1; - } - /* Here ndigits = precision+1. */ - if (is_borderline (digits, precision)) - { - /* Maybe the exponent guess was too high - and a smaller exponent can be reached - by turning a 10...0 into 9...9x. */ - char *digits2 = - scale10_round_decimal_long_double (arg, - (int)precision - exponent + 1); - if (digits2 == NULL) - { - free (digits); - END_LONG_DOUBLE_ROUNDING (); - goto out_of_memory; - } - if (strlen (digits2) == precision + 1) - { - free (digits); - digits = digits2; - exponent -= 1; - } - else - free (digits2); - } - /* Here ndigits = precision+1. */ - - *p++ = digits[--ndigits]; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - while (ndigits > 0) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - - free (digits); - } - - *p++ = dp->conversion; /* 'e' or 'E' */ -# if WIDE_CHAR_VERSION - { - static const wchar_t decimal_format[] = - { '%', '+', '.', '2', 'd', '\0' }; - SNPRINTF (p, 6 + 1, decimal_format, exponent); - } - while (*p != '\0') - p++; -# else - if (sizeof (DCHAR_T) == 1) - { - sprintf ((char *) p, "%+.2d", exponent); - while (*p != '\0') - p++; - } - else - { - char expbuf[6 + 1]; - const char *ep; - sprintf (expbuf, "%+.2d", exponent); - for (ep = expbuf; (*p = *ep) != '\0'; ep++) - p++; - } -# endif - } - else if (dp->conversion == 'g' || dp->conversion == 'G') - { - if (precision == 0) - precision = 1; - /* precision >= 1. */ - - if (arg == 0.0L) - /* The exponent is 0, >= -4, < precision. - Use fixed-point notation. */ - { - size_t ndigits = precision; - /* Number of trailing zeroes that have to be - dropped. */ - size_t nzeroes = - (flags & FLAG_ALT ? 0 : precision - 1); - - --ndigits; - *p++ = '0'; - if ((flags & FLAG_ALT) || ndigits > nzeroes) - { - *p++ = decimal_point_char (); - while (ndigits > nzeroes) - { - --ndigits; - *p++ = '0'; - } - } - } - else - { - /* arg > 0.0L. */ - int exponent; - int adjusted; - char *digits; - size_t ndigits; - size_t nzeroes; - - exponent = floorlog10l (arg); - adjusted = 0; - for (;;) - { - digits = - scale10_round_decimal_long_double (arg, - (int)(precision - 1) - exponent); - if (digits == NULL) - { - END_LONG_DOUBLE_ROUNDING (); - goto out_of_memory; - } - ndigits = strlen (digits); - - if (ndigits == precision) - break; - if (ndigits < precision - 1 - || ndigits > precision + 1) - /* The exponent was not guessed - precisely enough. */ - abort (); - if (adjusted) - /* None of two values of exponent is - the right one. Prevent an endless - loop. */ - abort (); - free (digits); - if (ndigits < precision) - exponent -= 1; - else - exponent += 1; - adjusted = 1; - } - /* Here ndigits = precision. */ - if (is_borderline (digits, precision - 1)) - { - /* Maybe the exponent guess was too high - and a smaller exponent can be reached - by turning a 10...0 into 9...9x. */ - char *digits2 = - scale10_round_decimal_long_double (arg, - (int)(precision - 1) - exponent + 1); - if (digits2 == NULL) - { - free (digits); - END_LONG_DOUBLE_ROUNDING (); - goto out_of_memory; - } - if (strlen (digits2) == precision) - { - free (digits); - digits = digits2; - exponent -= 1; - } - else - free (digits2); - } - /* Here ndigits = precision. */ - - /* Determine the number of trailing zeroes - that have to be dropped. */ - nzeroes = 0; - if ((flags & FLAG_ALT) == 0) - while (nzeroes < ndigits - && digits[nzeroes] == '0') - nzeroes++; - - /* The exponent is now determined. */ - if (exponent >= -4 - && exponent < (long)precision) - { - /* Fixed-point notation: - max(exponent,0)+1 digits, then the - decimal point, then the remaining - digits without trailing zeroes. */ - if (exponent >= 0) - { - size_t count = exponent + 1; - /* Note: count <= precision = ndigits. */ - for (; count > 0; count--) - *p++ = digits[--ndigits]; - if ((flags & FLAG_ALT) || ndigits > nzeroes) - { - *p++ = decimal_point_char (); - while (ndigits > nzeroes) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - } - else - { - size_t count = -exponent - 1; - *p++ = '0'; - *p++ = decimal_point_char (); - for (; count > 0; count--) - *p++ = '0'; - while (ndigits > nzeroes) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - } - else - { - /* Exponential notation. */ - *p++ = digits[--ndigits]; - if ((flags & FLAG_ALT) || ndigits > nzeroes) - { - *p++ = decimal_point_char (); - while (ndigits > nzeroes) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ -# if WIDE_CHAR_VERSION - { - static const wchar_t decimal_format[] = - { '%', '+', '.', '2', 'd', '\0' }; - SNPRINTF (p, 6 + 1, decimal_format, exponent); - } - while (*p != '\0') - p++; -# else - if (sizeof (DCHAR_T) == 1) - { - sprintf ((char *) p, "%+.2d", exponent); - while (*p != '\0') - p++; - } - else - { - char expbuf[6 + 1]; - const char *ep; - sprintf (expbuf, "%+.2d", exponent); - for (ep = expbuf; (*p = *ep) != '\0'; ep++) - p++; - } -# endif - } - - free (digits); - } - } - else - abort (); -# else - /* arg is finite. */ - if (!(arg == 0.0L)) - abort (); - - pad_ptr = p; - - if (dp->conversion == 'f' || dp->conversion == 'F') - { - *p++ = '0'; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > 0; precision--) - *p++ = '0'; - } - } - else if (dp->conversion == 'e' || dp->conversion == 'E') - { - *p++ = '0'; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > 0; precision--) - *p++ = '0'; - } - *p++ = dp->conversion; /* 'e' or 'E' */ - *p++ = '+'; - *p++ = '0'; - *p++ = '0'; - } - else if (dp->conversion == 'g' || dp->conversion == 'G') - { - *p++ = '0'; - if (flags & FLAG_ALT) - { - size_t ndigits = - (precision > 0 ? precision - 1 : 0); - *p++ = decimal_point_char (); - for (; ndigits > 0; --ndigits) - *p++ = '0'; - } - } - else if (dp->conversion == 'a' || dp->conversion == 'A') - { - *p++ = '0'; - *p++ = dp->conversion - 'A' + 'X'; - pad_ptr = p; - *p++ = '0'; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > 0; precision--) - *p++ = '0'; - } - *p++ = dp->conversion - 'A' + 'P'; - *p++ = '+'; - *p++ = '0'; - } - else - abort (); -# endif - } - - END_LONG_DOUBLE_ROUNDING (); - } - } -# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE - else -# endif -# endif -# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE - { - double arg = a.arg[dp->arg_index].a.a_double; - - if (isnand (arg)) - { - if (dp->conversion >= 'A' && dp->conversion <= 'Z') - { - *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; - } - else - { - *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; - } - } - else - { - int sign = 0; - - if (signbit (arg)) /* arg < 0.0 or negative zero */ - { - sign = -1; - arg = -arg; - } - - if (sign < 0) - *p++ = '-'; - else if (flags & FLAG_SHOWSIGN) - *p++ = '+'; - else if (flags & FLAG_SPACE) - *p++ = ' '; - - if (arg > 0.0 && arg + arg == arg) - { - if (dp->conversion >= 'A' && dp->conversion <= 'Z') - { - *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; - } - else - { - *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; - } - } - else - { -# if NEED_PRINTF_DOUBLE - pad_ptr = p; - - if (dp->conversion == 'f' || dp->conversion == 'F') - { - char *digits; - size_t ndigits; - - digits = - scale10_round_decimal_double (arg, precision); - if (digits == NULL) - goto out_of_memory; - ndigits = strlen (digits); - - if (ndigits > precision) - do - { - --ndigits; - *p++ = digits[ndigits]; - } - while (ndigits > precision); - else - *p++ = '0'; - /* Here ndigits <= precision. */ - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > ndigits; precision--) - *p++ = '0'; - while (ndigits > 0) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - - free (digits); - } - else if (dp->conversion == 'e' || dp->conversion == 'E') - { - int exponent; - - if (arg == 0.0) - { - exponent = 0; - *p++ = '0'; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > 0; precision--) - *p++ = '0'; - } - } - else - { - /* arg > 0.0. */ - int adjusted; - char *digits; - size_t ndigits; - - exponent = floorlog10 (arg); - adjusted = 0; - for (;;) - { - digits = - scale10_round_decimal_double (arg, - (int)precision - exponent); - if (digits == NULL) - goto out_of_memory; - ndigits = strlen (digits); - - if (ndigits == precision + 1) - break; - if (ndigits < precision - || ndigits > precision + 2) - /* The exponent was not guessed - precisely enough. */ - abort (); - if (adjusted) - /* None of two values of exponent is - the right one. Prevent an endless - loop. */ - abort (); - free (digits); - if (ndigits == precision) - exponent -= 1; - else - exponent += 1; - adjusted = 1; - } - /* Here ndigits = precision+1. */ - if (is_borderline (digits, precision)) - { - /* Maybe the exponent guess was too high - and a smaller exponent can be reached - by turning a 10...0 into 9...9x. */ - char *digits2 = - scale10_round_decimal_double (arg, - (int)precision - exponent + 1); - if (digits2 == NULL) - { - free (digits); - goto out_of_memory; - } - if (strlen (digits2) == precision + 1) - { - free (digits); - digits = digits2; - exponent -= 1; - } - else - free (digits2); - } - /* Here ndigits = precision+1. */ - - *p++ = digits[--ndigits]; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - while (ndigits > 0) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - - free (digits); - } - - *p++ = dp->conversion; /* 'e' or 'E' */ -# if WIDE_CHAR_VERSION - { - static const wchar_t decimal_format[] = - /* Produce the same number of exponent digits - as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - { '%', '+', '.', '3', 'd', '\0' }; -# else - { '%', '+', '.', '2', 'd', '\0' }; -# endif - SNPRINTF (p, 6 + 1, decimal_format, exponent); - } - while (*p != '\0') - p++; -# else - { - static const char decimal_format[] = - /* Produce the same number of exponent digits - as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - "%+.3d"; -# else - "%+.2d"; -# endif - if (sizeof (DCHAR_T) == 1) - { - sprintf ((char *) p, decimal_format, exponent); - while (*p != '\0') - p++; - } - else - { - char expbuf[6 + 1]; - const char *ep; - sprintf (expbuf, decimal_format, exponent); - for (ep = expbuf; (*p = *ep) != '\0'; ep++) - p++; - } - } -# endif - } - else if (dp->conversion == 'g' || dp->conversion == 'G') - { - if (precision == 0) - precision = 1; - /* precision >= 1. */ - - if (arg == 0.0) - /* The exponent is 0, >= -4, < precision. - Use fixed-point notation. */ - { - size_t ndigits = precision; - /* Number of trailing zeroes that have to be - dropped. */ - size_t nzeroes = - (flags & FLAG_ALT ? 0 : precision - 1); - - --ndigits; - *p++ = '0'; - if ((flags & FLAG_ALT) || ndigits > nzeroes) - { - *p++ = decimal_point_char (); - while (ndigits > nzeroes) - { - --ndigits; - *p++ = '0'; - } - } - } - else - { - /* arg > 0.0. */ - int exponent; - int adjusted; - char *digits; - size_t ndigits; - size_t nzeroes; - - exponent = floorlog10 (arg); - adjusted = 0; - for (;;) - { - digits = - scale10_round_decimal_double (arg, - (int)(precision - 1) - exponent); - if (digits == NULL) - goto out_of_memory; - ndigits = strlen (digits); - - if (ndigits == precision) - break; - if (ndigits < precision - 1 - || ndigits > precision + 1) - /* The exponent was not guessed - precisely enough. */ - abort (); - if (adjusted) - /* None of two values of exponent is - the right one. Prevent an endless - loop. */ - abort (); - free (digits); - if (ndigits < precision) - exponent -= 1; - else - exponent += 1; - adjusted = 1; - } - /* Here ndigits = precision. */ - if (is_borderline (digits, precision - 1)) - { - /* Maybe the exponent guess was too high - and a smaller exponent can be reached - by turning a 10...0 into 9...9x. */ - char *digits2 = - scale10_round_decimal_double (arg, - (int)(precision - 1) - exponent + 1); - if (digits2 == NULL) - { - free (digits); - goto out_of_memory; - } - if (strlen (digits2) == precision) - { - free (digits); - digits = digits2; - exponent -= 1; - } - else - free (digits2); - } - /* Here ndigits = precision. */ - - /* Determine the number of trailing zeroes - that have to be dropped. */ - nzeroes = 0; - if ((flags & FLAG_ALT) == 0) - while (nzeroes < ndigits - && digits[nzeroes] == '0') - nzeroes++; - - /* The exponent is now determined. */ - if (exponent >= -4 - && exponent < (long)precision) - { - /* Fixed-point notation: - max(exponent,0)+1 digits, then the - decimal point, then the remaining - digits without trailing zeroes. */ - if (exponent >= 0) - { - size_t count = exponent + 1; - /* Note: count <= precision = ndigits. */ - for (; count > 0; count--) - *p++ = digits[--ndigits]; - if ((flags & FLAG_ALT) || ndigits > nzeroes) - { - *p++ = decimal_point_char (); - while (ndigits > nzeroes) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - } - else - { - size_t count = -exponent - 1; - *p++ = '0'; - *p++ = decimal_point_char (); - for (; count > 0; count--) - *p++ = '0'; - while (ndigits > nzeroes) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - } - else - { - /* Exponential notation. */ - *p++ = digits[--ndigits]; - if ((flags & FLAG_ALT) || ndigits > nzeroes) - { - *p++ = decimal_point_char (); - while (ndigits > nzeroes) - { - --ndigits; - *p++ = digits[ndigits]; - } - } - *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ -# if WIDE_CHAR_VERSION - { - static const wchar_t decimal_format[] = - /* Produce the same number of exponent digits - as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - { '%', '+', '.', '3', 'd', '\0' }; -# else - { '%', '+', '.', '2', 'd', '\0' }; -# endif - SNPRINTF (p, 6 + 1, decimal_format, exponent); - } - while (*p != '\0') - p++; -# else - { - static const char decimal_format[] = - /* Produce the same number of exponent digits - as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - "%+.3d"; -# else - "%+.2d"; -# endif - if (sizeof (DCHAR_T) == 1) - { - sprintf ((char *) p, decimal_format, exponent); - while (*p != '\0') - p++; - } - else - { - char expbuf[6 + 1]; - const char *ep; - sprintf (expbuf, decimal_format, exponent); - for (ep = expbuf; (*p = *ep) != '\0'; ep++) - p++; - } - } -# endif - } - - free (digits); - } - } - else - abort (); -# else - /* arg is finite. */ - if (!(arg == 0.0)) - abort (); - - pad_ptr = p; - - if (dp->conversion == 'f' || dp->conversion == 'F') - { - *p++ = '0'; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > 0; precision--) - *p++ = '0'; - } - } - else if (dp->conversion == 'e' || dp->conversion == 'E') - { - *p++ = '0'; - if ((flags & FLAG_ALT) || precision > 0) - { - *p++ = decimal_point_char (); - for (; precision > 0; precision--) - *p++ = '0'; - } - *p++ = dp->conversion; /* 'e' or 'E' */ - *p++ = '+'; - /* Produce the same number of exponent digits as - the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - *p++ = '0'; -# endif - *p++ = '0'; - *p++ = '0'; - } - else if (dp->conversion == 'g' || dp->conversion == 'G') - { - *p++ = '0'; - if (flags & FLAG_ALT) - { - size_t ndigits = - (precision > 0 ? precision - 1 : 0); - *p++ = decimal_point_char (); - for (; ndigits > 0; --ndigits) - *p++ = '0'; - } - } - else - abort (); -# endif - } - } - } -# endif - - /* The generated string now extends from tmp to p, with the - zero padding insertion point being at pad_ptr. */ - if (has_width && p - tmp < width) - { - size_t pad = width - (p - tmp); - DCHAR_T *end = p + pad; - - if (flags & FLAG_LEFT) - { - /* Pad with spaces on the right. */ - for (; pad > 0; pad--) - *p++ = ' '; - } - else if ((flags & FLAG_ZERO) && pad_ptr != NULL) - { - /* Pad with zeroes. */ - DCHAR_T *q = end; - - while (p > pad_ptr) - *--q = *--p; - for (; pad > 0; pad--) - *p++ = '0'; - } - else - { - /* Pad with spaces on the left. */ - DCHAR_T *q = end; - - while (p > tmp) - *--q = *--p; - for (; pad > 0; pad--) - *p++ = ' '; - } - - p = end; - } - - { - size_t count = p - tmp; - - if (count >= tmp_length) - /* tmp_length was incorrectly calculated - fix the - code above! */ - abort (); - - /* Make room for the result. */ - if (count >= allocated - length) - { - size_t n = xsum (length, count); - - ENSURE_ALLOCATION (n); - } - - /* Append the result. */ - memcpy (result + length, tmp, count * sizeof (DCHAR_T)); - if (tmp != tmpbuf) - free (tmp); - length += count; - } - } -#endif - else - { - arg_type type = a.arg[dp->arg_index].type; - int flags = dp->flags; -#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION - int has_width; - size_t width; -#endif -#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION - int has_precision; - size_t precision; -#endif -#if NEED_PRINTF_UNBOUNDED_PRECISION - int prec_ourselves; -#else -# define prec_ourselves 0 -#endif -#if NEED_PRINTF_FLAG_LEFTADJUST -# define pad_ourselves 1 -#elif !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION - int pad_ourselves; -#else -# define pad_ourselves 0 -#endif - TCHAR_T *fbp; - unsigned int prefix_count; - int prefixes[2] IF_LINT (= { 0 }); -#if !USE_SNPRINTF - size_t tmp_length; - TCHAR_T tmpbuf[700]; - TCHAR_T *tmp; -#endif - -#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION - has_width = 0; - width = 0; - if (dp->width_start != dp->width_end) - { - if (dp->width_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->width_arg_index].a.a_int; - if (arg < 0) - { - /* "A negative field width is taken as a '-' flag - followed by a positive field width." */ - flags |= FLAG_LEFT; - width = (unsigned int) (-arg); - } - else - width = arg; - } - else - { - const FCHAR_T *digitp = dp->width_start; - - do - width = xsum (xtimes (width, 10), *digitp++ - '0'); - while (digitp != dp->width_end); - } - has_width = 1; - } -#endif - -#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION - has_precision = 0; - precision = 6; - if (dp->precision_start != dp->precision_end) - { - if (dp->precision_arg_index != ARG_NONE) - { - int arg; - - if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) - abort (); - arg = a.arg[dp->precision_arg_index].a.a_int; - /* "A negative precision is taken as if the precision - were omitted." */ - if (arg >= 0) - { - precision = arg; - has_precision = 1; - } - } - else - { - const FCHAR_T *digitp = dp->precision_start + 1; - - precision = 0; - while (digitp != dp->precision_end) - precision = xsum (xtimes (precision, 10), *digitp++ - '0'); - has_precision = 1; - } - } -#endif - - /* Decide whether to handle the precision ourselves. */ -#if NEED_PRINTF_UNBOUNDED_PRECISION - switch (dp->conversion) - { - case 'd': case 'i': case 'u': - case 'o': - case 'x': case 'X': case 'p': - prec_ourselves = has_precision && (precision > 0); - break; - default: - prec_ourselves = 0; - break; - } -#endif - - /* Decide whether to perform the padding ourselves. */ -#if !NEED_PRINTF_FLAG_LEFTADJUST && (!DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION) - switch (dp->conversion) - { -# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO - /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need - to perform the padding after this conversion. Functions - with unistdio extensions perform the padding based on - character count rather than element count. */ - case 'c': case 's': -# endif -# if NEED_PRINTF_FLAG_ZERO - case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': - case 'a': case 'A': -# endif - pad_ourselves = 1; - break; - default: - pad_ourselves = prec_ourselves; - break; - } -#endif - -#if !USE_SNPRINTF - /* Allocate a temporary buffer of sufficient size for calling - sprintf. */ - { - switch (dp->conversion) - { - - case 'd': case 'i': case 'u': -# if HAVE_LONG_LONG_INT - if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) - tmp_length = - (unsigned int) (sizeof (unsigned long long) * CHAR_BIT - * 0.30103 /* binary -> decimal */ - ) - + 1; /* turn floor into ceil */ - else -# endif - if (type == TYPE_LONGINT || type == TYPE_ULONGINT) - tmp_length = - (unsigned int) (sizeof (unsigned long) * CHAR_BIT - * 0.30103 /* binary -> decimal */ - ) - + 1; /* turn floor into ceil */ - else - tmp_length = - (unsigned int) (sizeof (unsigned int) * CHAR_BIT - * 0.30103 /* binary -> decimal */ - ) - + 1; /* turn floor into ceil */ - if (tmp_length < precision) - tmp_length = precision; - /* Multiply by 2, as an estimate for FLAG_GROUP. */ - tmp_length = xsum (tmp_length, tmp_length); - /* Add 1, to account for a leading sign. */ - tmp_length = xsum (tmp_length, 1); - break; - - case 'o': -# if HAVE_LONG_LONG_INT - if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) - tmp_length = - (unsigned int) (sizeof (unsigned long long) * CHAR_BIT - * 0.333334 /* binary -> octal */ - ) - + 1; /* turn floor into ceil */ - else -# endif - if (type == TYPE_LONGINT || type == TYPE_ULONGINT) - tmp_length = - (unsigned int) (sizeof (unsigned long) * CHAR_BIT - * 0.333334 /* binary -> octal */ - ) - + 1; /* turn floor into ceil */ - else - tmp_length = - (unsigned int) (sizeof (unsigned int) * CHAR_BIT - * 0.333334 /* binary -> octal */ - ) - + 1; /* turn floor into ceil */ - if (tmp_length < precision) - tmp_length = precision; - /* Add 1, to account for a leading sign. */ - tmp_length = xsum (tmp_length, 1); - break; - - case 'x': case 'X': -# if HAVE_LONG_LONG_INT - if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) - tmp_length = - (unsigned int) (sizeof (unsigned long long) * CHAR_BIT - * 0.25 /* binary -> hexadecimal */ - ) - + 1; /* turn floor into ceil */ - else -# endif - if (type == TYPE_LONGINT || type == TYPE_ULONGINT) - tmp_length = - (unsigned int) (sizeof (unsigned long) * CHAR_BIT - * 0.25 /* binary -> hexadecimal */ - ) - + 1; /* turn floor into ceil */ - else - tmp_length = - (unsigned int) (sizeof (unsigned int) * CHAR_BIT - * 0.25 /* binary -> hexadecimal */ - ) - + 1; /* turn floor into ceil */ - if (tmp_length < precision) - tmp_length = precision; - /* Add 2, to account for a leading sign or alternate form. */ - tmp_length = xsum (tmp_length, 2); - break; - - case 'f': case 'F': - if (type == TYPE_LONGDOUBLE) - tmp_length = - (unsigned int) (LDBL_MAX_EXP - * 0.30103 /* binary -> decimal */ - * 2 /* estimate for FLAG_GROUP */ - ) - + 1 /* turn floor into ceil */ - + 10; /* sign, decimal point etc. */ - else - tmp_length = - (unsigned int) (DBL_MAX_EXP - * 0.30103 /* binary -> decimal */ - * 2 /* estimate for FLAG_GROUP */ - ) - + 1 /* turn floor into ceil */ - + 10; /* sign, decimal point etc. */ - tmp_length = xsum (tmp_length, precision); - break; - - case 'e': case 'E': case 'g': case 'G': - tmp_length = - 12; /* sign, decimal point, exponent etc. */ - tmp_length = xsum (tmp_length, precision); - break; - - case 'a': case 'A': - if (type == TYPE_LONGDOUBLE) - tmp_length = - (unsigned int) (LDBL_DIG - * 0.831 /* decimal -> hexadecimal */ - ) - + 1; /* turn floor into ceil */ - else - tmp_length = - (unsigned int) (DBL_DIG - * 0.831 /* decimal -> hexadecimal */ - ) - + 1; /* turn floor into ceil */ - if (tmp_length < precision) - tmp_length = precision; - /* Account for sign, decimal point etc. */ - tmp_length = xsum (tmp_length, 12); - break; - - case 'c': -# if HAVE_WINT_T && !WIDE_CHAR_VERSION - if (type == TYPE_WIDE_CHAR) - tmp_length = MB_CUR_MAX; - else -# endif - tmp_length = 1; - break; - - case 's': -# if HAVE_WCHAR_T - if (type == TYPE_WIDE_STRING) - { - tmp_length = - local_wcslen (a.arg[dp->arg_index].a.a_wide_string); - -# if !WIDE_CHAR_VERSION - tmp_length = xtimes (tmp_length, MB_CUR_MAX); -# endif - } - else -# endif - tmp_length = strlen (a.arg[dp->arg_index].a.a_string); - break; - - case 'p': - tmp_length = - (unsigned int) (sizeof (void *) * CHAR_BIT - * 0.25 /* binary -> hexadecimal */ - ) - + 1 /* turn floor into ceil */ - + 2; /* account for leading 0x */ - break; - - default: - abort (); - } - - if (!pad_ourselves) - { -# if ENABLE_UNISTDIO - /* Padding considers the number of characters, therefore - the number of elements after padding may be - > max (tmp_length, width) - but is certainly - <= tmp_length + width. */ - tmp_length = xsum (tmp_length, width); -# else - /* Padding considers the number of elements, - says POSIX. */ - if (tmp_length < width) - tmp_length = width; -# endif - } - - tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ - } - - if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T)) - tmp = tmpbuf; - else - { - size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T)); - - if (size_overflow_p (tmp_memsize)) - /* Overflow, would lead to out of memory. */ - goto out_of_memory; - tmp = (TCHAR_T *) malloc (tmp_memsize); - if (tmp == NULL) - /* Out of memory. */ - goto out_of_memory; - } -#endif - - /* Construct the format string for calling snprintf or - sprintf. */ - fbp = buf; - *fbp++ = '%'; -#if NEED_PRINTF_FLAG_GROUPING - /* The underlying implementation doesn't support the ' flag. - Produce no grouping characters in this case; this is - acceptable because the grouping is locale dependent. */ -#else - if (flags & FLAG_GROUP) - *fbp++ = '\''; -#endif - if (flags & FLAG_LEFT) - *fbp++ = '-'; - if (flags & FLAG_SHOWSIGN) - *fbp++ = '+'; - if (flags & FLAG_SPACE) - *fbp++ = ' '; - if (flags & FLAG_ALT) - *fbp++ = '#'; - if (!pad_ourselves) - { - if (flags & FLAG_ZERO) - *fbp++ = '0'; - if (dp->width_start != dp->width_end) - { - size_t n = dp->width_end - dp->width_start; - /* The width specification is known to consist only - of standard ASCII characters. */ - if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) - { - memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T)); - fbp += n; - } - else - { - const FCHAR_T *mp = dp->width_start; - do - *fbp++ = (unsigned char) *mp++; - while (--n > 0); - } - } - } - if (!prec_ourselves) - { - if (dp->precision_start != dp->precision_end) - { - size_t n = dp->precision_end - dp->precision_start; - /* The precision specification is known to consist only - of standard ASCII characters. */ - if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) - { - memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T)); - fbp += n; - } - else - { - const FCHAR_T *mp = dp->precision_start; - do - *fbp++ = (unsigned char) *mp++; - while (--n > 0); - } - } - } - - switch (type) - { -#if HAVE_LONG_LONG_INT - case TYPE_LONGLONGINT: - case TYPE_ULONGLONGINT: -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ - *fbp++ = 'I'; - *fbp++ = '6'; - *fbp++ = '4'; - break; -# else - *fbp++ = 'l'; - /*FALLTHROUGH*/ -# endif -#endif - case TYPE_LONGINT: - case TYPE_ULONGINT: -#if HAVE_WINT_T - case TYPE_WIDE_CHAR: -#endif -#if HAVE_WCHAR_T - case TYPE_WIDE_STRING: -#endif - *fbp++ = 'l'; - break; - case TYPE_LONGDOUBLE: - *fbp++ = 'L'; - break; - default: - break; - } -#if NEED_PRINTF_DIRECTIVE_F - if (dp->conversion == 'F') - *fbp = 'f'; - else -#endif - *fbp = dp->conversion; -#if USE_SNPRINTF -# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) - fbp[1] = '%'; - fbp[2] = 'n'; - fbp[3] = '\0'; -# else - /* On glibc2 systems from glibc >= 2.3 - probably also older - ones - we know that snprintf's returns value conforms to - ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes. - Therefore we can avoid using %n in this situation. - On glibc2 systems from 2004-10-18 or newer, the use of %n - in format strings in writable memory may crash the program - (if compiled with _FORTIFY_SOURCE=2), so we should avoid it - in this situation. */ - /* On native Win32 systems (such as mingw), we can avoid using - %n because: - - Although the gl_SNPRINTF_TRUNCATION_C99 test fails, - snprintf does not write more than the specified number - of bytes. (snprintf (buf, 3, "%d %d", 4567, 89) writes - '4', '5', '6' into buf, not '4', '5', '\0'.) - - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf - allows us to recognize the case of an insufficient - buffer size: it returns -1 in this case. - On native Win32 systems (such as mingw) where the OS is - Windows Vista, the use of %n in format strings by default - crashes the program. See - <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and - <http://msdn2.microsoft.com/en-us/library/ms175782(VS.80).aspx> - So we should avoid %n in this situation. */ - fbp[1] = '\0'; -# endif -#else - fbp[1] = '\0'; -#endif - - /* Construct the arguments for calling snprintf or sprintf. */ - prefix_count = 0; - if (!pad_ourselves && dp->width_arg_index != ARG_NONE) - { - if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) - abort (); - prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int; - } - if (!prec_ourselves && dp->precision_arg_index != ARG_NONE) - { - if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) - abort (); - prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int; - } - -#if USE_SNPRINTF - /* The SNPRINTF result is appended after result[0..length]. - The latter is an array of DCHAR_T; SNPRINTF appends an - array of TCHAR_T to it. This is possible because - sizeof (TCHAR_T) divides sizeof (DCHAR_T) and - alignof (TCHAR_T) <= alignof (DCHAR_T). */ -# define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T)) - /* Ensure that maxlen below will be >= 2. Needed on BeOS, - where an snprintf() with maxlen==1 acts like sprintf(). */ - ENSURE_ALLOCATION (xsum (length, - (2 + TCHARS_PER_DCHAR - 1) - / TCHARS_PER_DCHAR)); - /* Prepare checking whether snprintf returns the count - via %n. */ - *(TCHAR_T *) (result + length) = '\0'; -#endif - - for (;;) - { - int count = -1; - -#if USE_SNPRINTF - int retcount = 0; - size_t maxlen = allocated - length; - /* SNPRINTF can fail if its second argument is - > INT_MAX. */ - if (maxlen > INT_MAX / TCHARS_PER_DCHAR) - maxlen = INT_MAX / TCHARS_PER_DCHAR; - maxlen = maxlen * TCHARS_PER_DCHAR; -# define SNPRINTF_BUF(arg) \ - switch (prefix_count) \ - { \ - case 0: \ - retcount = SNPRINTF ((TCHAR_T *) (result + length), \ - maxlen, buf, \ - arg, &count); \ - break; \ - case 1: \ - retcount = SNPRINTF ((TCHAR_T *) (result + length), \ - maxlen, buf, \ - prefixes[0], arg, &count); \ - break; \ - case 2: \ - retcount = SNPRINTF ((TCHAR_T *) (result + length), \ - maxlen, buf, \ - prefixes[0], prefixes[1], arg, \ - &count); \ - break; \ - default: \ - abort (); \ - } -#else -# define SNPRINTF_BUF(arg) \ - switch (prefix_count) \ - { \ - case 0: \ - count = sprintf (tmp, buf, arg); \ - break; \ - case 1: \ - count = sprintf (tmp, buf, prefixes[0], arg); \ - break; \ - case 2: \ - count = sprintf (tmp, buf, prefixes[0], prefixes[1],\ - arg); \ - break; \ - default: \ - abort (); \ - } -#endif - - switch (type) - { - case TYPE_SCHAR: - { - int arg = a.arg[dp->arg_index].a.a_schar; - SNPRINTF_BUF (arg); - } - break; - case TYPE_UCHAR: - { - unsigned int arg = a.arg[dp->arg_index].a.a_uchar; - SNPRINTF_BUF (arg); - } - break; - case TYPE_SHORT: - { - int arg = a.arg[dp->arg_index].a.a_short; - SNPRINTF_BUF (arg); - } - break; - case TYPE_USHORT: - { - unsigned int arg = a.arg[dp->arg_index].a.a_ushort; - SNPRINTF_BUF (arg); - } - break; - case TYPE_INT: - { - int arg = a.arg[dp->arg_index].a.a_int; - SNPRINTF_BUF (arg); - } - break; - case TYPE_UINT: - { - unsigned int arg = a.arg[dp->arg_index].a.a_uint; - SNPRINTF_BUF (arg); - } - break; - case TYPE_LONGINT: - { - long int arg = a.arg[dp->arg_index].a.a_longint; - SNPRINTF_BUF (arg); - } - break; - case TYPE_ULONGINT: - { - unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint; - SNPRINTF_BUF (arg); - } - break; -#if HAVE_LONG_LONG_INT - case TYPE_LONGLONGINT: - { - long long int arg = a.arg[dp->arg_index].a.a_longlongint; - SNPRINTF_BUF (arg); - } - break; - case TYPE_ULONGLONGINT: - { - unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint; - SNPRINTF_BUF (arg); - } - break; -#endif - case TYPE_DOUBLE: - { - double arg = a.arg[dp->arg_index].a.a_double; - SNPRINTF_BUF (arg); - } - break; - case TYPE_LONGDOUBLE: - { - long double arg = a.arg[dp->arg_index].a.a_longdouble; - SNPRINTF_BUF (arg); - } - break; - case TYPE_CHAR: - { - int arg = a.arg[dp->arg_index].a.a_char; - SNPRINTF_BUF (arg); - } - break; -#if HAVE_WINT_T - case TYPE_WIDE_CHAR: - { - wint_t arg = a.arg[dp->arg_index].a.a_wide_char; - SNPRINTF_BUF (arg); - } - break; -#endif - case TYPE_STRING: - { - const char *arg = a.arg[dp->arg_index].a.a_string; - SNPRINTF_BUF (arg); - } - break; -#if HAVE_WCHAR_T - case TYPE_WIDE_STRING: - { - const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; - SNPRINTF_BUF (arg); - } - break; -#endif - case TYPE_POINTER: - { - void *arg = a.arg[dp->arg_index].a.a_pointer; - SNPRINTF_BUF (arg); - } - break; - default: - abort (); - } - -#if USE_SNPRINTF - /* Portability: Not all implementations of snprintf() - are ISO C 99 compliant. Determine the number of - bytes that snprintf() has produced or would have - produced. */ - if (count >= 0) - { - /* Verify that snprintf() has NUL-terminated its - result. */ - if (count < maxlen - && ((TCHAR_T *) (result + length)) [count] != '\0') - abort (); - /* Portability hack. */ - if (retcount > count) - count = retcount; - } - else - { - /* snprintf() doesn't understand the '%n' - directive. */ - if (fbp[1] != '\0') - { - /* Don't use the '%n' directive; instead, look - at the snprintf() return value. */ - fbp[1] = '\0'; - continue; - } - else - { - /* Look at the snprintf() return value. */ - if (retcount < 0) - { - /* HP-UX 10.20 snprintf() is doubly deficient: - It doesn't understand the '%n' directive, - *and* it returns -1 (rather than the length - that would have been required) when the - buffer is too small. */ - size_t bigger_need = - xsum (xtimes (allocated, 2), 12); - ENSURE_ALLOCATION (bigger_need); - continue; - } - else - count = retcount; - } - } -#endif - - /* Attempt to handle failure. */ - if (count < 0) - { - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EINVAL; - return NULL; - } - -#if USE_SNPRINTF - /* Handle overflow of the allocated buffer. - If such an overflow occurs, a C99 compliant snprintf() - returns a count >= maxlen. However, a non-compliant - snprintf() function returns only count = maxlen - 1. To - cover both cases, test whether count >= maxlen - 1. */ - if ((unsigned int) count + 1 >= maxlen) - { - /* If maxlen already has attained its allowed maximum, - allocating more memory will not increase maxlen. - Instead of looping, bail out. */ - if (maxlen == INT_MAX / TCHARS_PER_DCHAR) - goto overflow; - else - { - /* Need at least (count + 1) * sizeof (TCHAR_T) - bytes. (The +1 is for the trailing NUL.) - But ask for (count + 2) * sizeof (TCHAR_T) - bytes, so that in the next round, we likely get - maxlen > (unsigned int) count + 1 - and so we don't get here again. - And allocate proportionally, to avoid looping - eternally if snprintf() reports a too small - count. */ - size_t n = - xmax (xsum (length, - ((unsigned int) count + 2 - + TCHARS_PER_DCHAR - 1) - / TCHARS_PER_DCHAR), - xtimes (allocated, 2)); - - ENSURE_ALLOCATION (n); - continue; - } - } -#endif - -#if NEED_PRINTF_UNBOUNDED_PRECISION - if (prec_ourselves) - { - /* Handle the precision. */ - TCHAR_T *prec_ptr = -# if USE_SNPRINTF - (TCHAR_T *) (result + length); -# else - tmp; -# endif - size_t prefix_count; - size_t move; - - prefix_count = 0; - /* Put the additional zeroes after the sign. */ - if (count >= 1 - && (*prec_ptr == '-' || *prec_ptr == '+' - || *prec_ptr == ' ')) - prefix_count = 1; - /* Put the additional zeroes after the 0x prefix if - (flags & FLAG_ALT) || (dp->conversion == 'p'). */ - else if (count >= 2 - && prec_ptr[0] == '0' - && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X')) - prefix_count = 2; - - move = count - prefix_count; - if (precision > move) - { - /* Insert zeroes. */ - size_t insert = precision - move; - TCHAR_T *prec_end; - -# if USE_SNPRINTF - size_t n = - xsum (length, - (count + insert + TCHARS_PER_DCHAR - 1) - / TCHARS_PER_DCHAR); - length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; - ENSURE_ALLOCATION (n); - length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; - prec_ptr = (TCHAR_T *) (result + length); -# endif - - prec_end = prec_ptr + count; - prec_ptr += prefix_count; - - while (prec_end > prec_ptr) - { - prec_end--; - prec_end[insert] = prec_end[0]; - } - - prec_end += insert; - do - *--prec_end = '0'; - while (prec_end > prec_ptr); - - count += insert; - } - } -#endif - -#if !USE_SNPRINTF - if (count >= tmp_length) - /* tmp_length was incorrectly calculated - fix the - code above! */ - abort (); -#endif - -#if !DCHAR_IS_TCHAR - /* Convert from TCHAR_T[] to DCHAR_T[]. */ - if (dp->conversion == 'c' || dp->conversion == 's') - { - /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING - TYPE_WIDE_STRING. - The result string is not certainly ASCII. */ - const TCHAR_T *tmpsrc; - DCHAR_T *tmpdst; - size_t tmpdst_len; - /* This code assumes that TCHAR_T is 'char'. */ - typedef int TCHAR_T_verify - [2 * (sizeof (TCHAR_T) == 1) - 1]; -# if USE_SNPRINTF - tmpsrc = (TCHAR_T *) (result + length); -# else - tmpsrc = tmp; -# endif - tmpdst = NULL; - tmpdst_len = 0; - if (DCHAR_CONV_FROM_ENCODING (locale_charset (), - iconveh_question_mark, - tmpsrc, count, - NULL, - &tmpdst, &tmpdst_len) - < 0) - { - int saved_errno = errno; - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = saved_errno; - return NULL; - } - ENSURE_ALLOCATION (xsum (length, tmpdst_len)); - DCHAR_CPY (result + length, tmpdst, tmpdst_len); - free (tmpdst); - count = tmpdst_len; - } - else - { - /* The result string is ASCII. - Simple 1:1 conversion. */ -# if USE_SNPRINTF - /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a - no-op conversion, in-place on the array starting - at (result + length). */ - if (sizeof (DCHAR_T) != sizeof (TCHAR_T)) -# endif - { - const TCHAR_T *tmpsrc; - DCHAR_T *tmpdst; - size_t n; - -# if USE_SNPRINTF - if (result == resultbuf) - { - tmpsrc = (TCHAR_T *) (result + length); - /* ENSURE_ALLOCATION will not move tmpsrc - (because it's part of resultbuf). */ - ENSURE_ALLOCATION (xsum (length, count)); - } - else - { - /* ENSURE_ALLOCATION will move the array - (because it uses realloc(). */ - ENSURE_ALLOCATION (xsum (length, count)); - tmpsrc = (TCHAR_T *) (result + length); - } -# else - tmpsrc = tmp; - ENSURE_ALLOCATION (xsum (length, count)); -# endif - tmpdst = result + length; - /* Copy backwards, because of overlapping. */ - tmpsrc += count; - tmpdst += count; - for (n = count; n > 0; n--) - *--tmpdst = (unsigned char) *--tmpsrc; - } - } -#endif - -#if DCHAR_IS_TCHAR && !USE_SNPRINTF - /* Make room for the result. */ - if (count > allocated - length) - { - /* Need at least count elements. But allocate - proportionally. */ - size_t n = - xmax (xsum (length, count), xtimes (allocated, 2)); - - ENSURE_ALLOCATION (n); - } -#endif - - /* Here count <= allocated - length. */ - - /* Perform padding. */ -#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION - if (pad_ourselves && has_width) - { - size_t w; -# if ENABLE_UNISTDIO - /* Outside POSIX, it's preferrable to compare the width - against the number of _characters_ of the converted - value. */ - w = DCHAR_MBSNLEN (result + length, count); -# else - /* The width is compared against the number of _bytes_ - of the converted value, says POSIX. */ - w = count; -# endif - if (w < width) - { - size_t pad = width - w; - - /* Make room for the result. */ - if (xsum (count, pad) > allocated - length) - { - /* Need at least count + pad elements. But - allocate proportionally. */ - size_t n = - xmax (xsum3 (length, count, pad), - xtimes (allocated, 2)); - -# if USE_SNPRINTF - length += count; - ENSURE_ALLOCATION (n); - length -= count; -# else - ENSURE_ALLOCATION (n); -# endif - } - /* Here count + pad <= allocated - length. */ - - { -# if !DCHAR_IS_TCHAR || USE_SNPRINTF - DCHAR_T * const rp = result + length; -# else - DCHAR_T * const rp = tmp; -# endif - DCHAR_T *p = rp + count; - DCHAR_T *end = p + pad; - DCHAR_T *pad_ptr; -# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO - if (dp->conversion == 'c' - || dp->conversion == 's') - /* No zero-padding for string directives. */ - pad_ptr = NULL; - else -# endif - { - pad_ptr = (*rp == '-' ? rp + 1 : rp); - /* No zero-padding of "inf" and "nan". */ - if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z') - || (*pad_ptr >= 'a' && *pad_ptr <= 'z')) - pad_ptr = NULL; - } - /* The generated string now extends from rp to p, - with the zero padding insertion point being at - pad_ptr. */ - - count = count + pad; /* = end - rp */ - - if (flags & FLAG_LEFT) - { - /* Pad with spaces on the right. */ - for (; pad > 0; pad--) - *p++ = ' '; - } - else if ((flags & FLAG_ZERO) && pad_ptr != NULL) - { - /* Pad with zeroes. */ - DCHAR_T *q = end; - - while (p > pad_ptr) - *--q = *--p; - for (; pad > 0; pad--) - *p++ = '0'; - } - else - { - /* Pad with spaces on the left. */ - DCHAR_T *q = end; - - while (p > rp) - *--q = *--p; - for (; pad > 0; pad--) - *p++ = ' '; - } - } - } - } -#endif - - /* Here still count <= allocated - length. */ - -#if !DCHAR_IS_TCHAR || USE_SNPRINTF - /* The snprintf() result did fit. */ -#else - /* Append the sprintf() result. */ - memcpy (result + length, tmp, count * sizeof (DCHAR_T)); -#endif -#if !USE_SNPRINTF - if (tmp != tmpbuf) - free (tmp); -#endif - -#if NEED_PRINTF_DIRECTIVE_F - if (dp->conversion == 'F') - { - /* Convert the %f result to upper case for %F. */ - DCHAR_T *rp = result + length; - size_t rc; - for (rc = count; rc > 0; rc--, rp++) - if (*rp >= 'a' && *rp <= 'z') - *rp = *rp - 'a' + 'A'; - } -#endif - - length += count; - break; - } - } - } - } - - /* Add the final NUL. */ - ENSURE_ALLOCATION (xsum (length, 1)); - result[length] = '\0'; - - if (result != resultbuf && length + 1 < allocated) - { - /* Shrink the allocated memory if possible. */ - DCHAR_T *memory; - - memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T)); - if (memory != NULL) - result = memory; - } - - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - *lengthp = length; - /* Note that we can produce a big string of a length > INT_MAX. POSIX - says that snprintf() fails with errno = EOVERFLOW in this case, but - that's only because snprintf() returns an 'int'. This function does - not have this limitation. */ - return result; - -#if USE_SNPRINTF - overflow: - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - CLEANUP (); - errno = EOVERFLOW; - return NULL; -#endif - - out_of_memory: - if (!(result == resultbuf || result == NULL)) - free (result); - if (buf_malloced != NULL) - free (buf_malloced); - out_of_memory_1: - CLEANUP (); - errno = ENOMEM; - return NULL; - } -} - -#undef TCHARS_PER_DCHAR -#undef SNPRINTF -#undef USE_SNPRINTF -#undef DCHAR_CPY -#undef PRINTF_PARSE -#undef DIRECTIVES -#undef DIRECTIVE -#undef DCHAR_IS_TCHAR -#undef TCHAR_T -#undef DCHAR_T -#undef FCHAR_T -#undef VASNPRINTF diff --git a/lib/version-etc.c b/lib/version-etc.c deleted file mode 100644 index 2258c2e21d04e84665e8803b170773415ea0ff62..0000000000000000000000000000000000000000 --- a/lib/version-etc.c +++ /dev/null @@ -1,186 +0,0 @@ -/* Print --version and bug-reporting information in a consistent format. - Copyright (C) 1999-2009 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 Jim Meyering. */ - -#include <config.h> - -/* Specification. */ -#include "version-etc.h" - -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -#include "gettext.h" -#define _(msgid) gettext (msgid) - -enum { COPYRIGHT_YEAR = 2009 }; - -/* Like version_etc, below, but with the NULL-terminated author list - provided via a variable of type va_list. */ -void -version_etc_va (FILE *stream, - const char *command_name, const char *package, - const char *version, va_list authors) -{ - size_t n_authors; - - /* Count the number of authors. */ - { - va_list tmp_authors; - - va_copy (tmp_authors, authors); - - n_authors = 0; - while (va_arg (tmp_authors, const char *) != NULL) - ++n_authors; - } - - if (command_name) - fprintf (stream, "%s (%s) %s\n", command_name, package, version); - else - fprintf (stream, "%s %s\n", package, version); - - /* TRANSLATORS: Translate "(C)" to the copyright symbol - (C-in-a-circle), if this symbol is available in the user's - locale. Otherwise, do not translate "(C)"; leave it as-is. */ - fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR); - - fputs (_("\ -\n\ -License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\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\ -"), - stream); - - switch (n_authors) - { - case 0: - /* The caller must provide at least one author name. */ - abort (); - case 1: - /* TRANSLATORS: %s denotes an author name. */ - vfprintf (stream, _("Written by %s.\n"), authors); - break; - case 2: - /* TRANSLATORS: Each %s denotes an author name. */ - vfprintf (stream, _("Written by %s and %s.\n"), authors); - break; - case 3: - /* TRANSLATORS: Each %s denotes an author name. */ - vfprintf (stream, _("Written by %s, %s, and %s.\n"), authors); - break; - case 4: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - vfprintf (stream, _("Written by %s, %s, %s,\nand %s.\n"), authors); - break; - case 5: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - vfprintf (stream, _("Written by %s, %s, %s,\n%s, and %s.\n"), authors); - break; - case 6: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - vfprintf (stream, _("Written by %s, %s, %s,\n%s, %s, and %s.\n"), - authors); - break; - case 7: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - vfprintf (stream, _("Written by %s, %s, %s,\n%s, %s, %s, and %s.\n"), - authors); - break; - case 8: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - vfprintf (stream, _("\ -Written by %s, %s, %s,\n%s, %s, %s, %s,\nand %s.\n"), - authors); - break; - case 9: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - vfprintf (stream, _("\ -Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, and %s.\n"), - authors); - break; - default: - /* 10 or more authors. Use an abbreviation, since the human reader - will probably not want to read the entire list anyway. */ - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - vfprintf (stream, _("\ -Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, %s, and others.\n"), - authors); - break; - } - va_end (authors); -} - - -/* Display the --version information the standard way. - - If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of - the program. The formats are therefore: - - PACKAGE VERSION - - or - - COMMAND_NAME (PACKAGE) VERSION. - - The author names are passed as separate arguments, with an additional - NULL argument at the end. */ -void -version_etc (FILE *stream, - const char *command_name, const char *package, - const char *version, /* const char *author1, ...*/ ...) -{ - va_list authors; - - va_start (authors, version); - version_etc_va (stream, command_name, package, version, authors); -} - -void -emit_bug_reporting_address (void) -{ - /* TRANSLATORS: The placeholder indicates the bug-reporting address - for this package. Please add _another line_ saying - "Report translation bugs to <...>\n" with the address for translation - bugs (typically your translation team's web or email address). */ - printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT); - printf (_("%s home page: <http://www.gnu.org/software/%s/>.\n"), - PACKAGE_NAME, PACKAGE); - fputs (_("General help using GNU software: <http://www.gnu.org/gethelp/>.\n"), - stdout); -} diff --git a/lib/version-etc.h b/lib/version-etc.h deleted file mode 100644 index 33a8e7f14352b4eabc54d66a407458c4c0806b58..0000000000000000000000000000000000000000 --- a/lib/version-etc.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Print --version and bug-reporting information in a consistent format. - Copyright (C) 1999, 2003, 2005, 2009 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 Jim Meyering. */ - -#ifndef VERSION_ETC_H -# define VERSION_ETC_H 1 - -# include <stdarg.h> -# include <stdio.h> - -extern const char version_etc_copyright[]; - -extern void version_etc_va (FILE *stream, - const char *command_name, const char *package, - const char *version, va_list authors); - -extern void version_etc (FILE *stream, - const char *command_name, const char *package, - const char *version, - /* const char *author1, ...*/ ...); - -extern void emit_bug_reporting_address (void); - -#endif /* VERSION_ETC_H */ diff --git a/lib/w32sock.h b/lib/w32sock.h deleted file mode 100644 index 0622985b8197a31c1687b29f7231d306ca710ec1..0000000000000000000000000000000000000000 --- a/lib/w32sock.h +++ /dev/null @@ -1,62 +0,0 @@ -/* w32sock.h --- internal auxilliary functions for Windows socket functions - - Copyright (C) 2008 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 Paolo Bonzini */ - -#include <errno.h> - -/* Get O_RDWR and O_BINARY. */ -#include <fcntl.h> - -/* Get _get_osfhandle() and _open_osfhandle(). */ -#include <io.h> - -#define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd))) -#define SOCKET_TO_FD(fh) (_open_osfhandle ((long) (fh), O_RDWR | O_BINARY)) - -static inline void -set_winsock_errno (void) -{ - int err = WSAGetLastError (); - WSASetLastError (0); - - /* Map some WSAE* errors to the runtime library's error codes. */ - switch (err) - { - case WSA_INVALID_HANDLE: - errno = EBADF; - break; - case WSA_NOT_ENOUGH_MEMORY: - errno = ENOMEM; - break; - case WSA_INVALID_PARAMETER: - errno = EINVAL; - break; - case WSAEWOULDBLOCK: - errno = EWOULDBLOCK; - break; - case WSAENAMETOOLONG: - errno = ENAMETOOLONG; - break; - case WSAENOTEMPTY: - errno = ENOTEMPTY; - break; - default: - errno = (err > 10000 && err < 10025) ? err - 10000 : err; - break; - } -} diff --git a/lib/waitpid.c b/lib/waitpid.c deleted file mode 100644 index eab9430bd0ec7b50eb473e32bb51ab8eaf7d7800..0000000000000000000000000000000000000000 --- a/lib/waitpid.c +++ /dev/null @@ -1,75 +0,0 @@ -/* Emulate waitpid on systems that just have wait. - Copyright 1994, 1995, 1998, 1999, 2007 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, 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; see the file COPYING. - If not, write to the Free Software Foundation, - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if HAVE_CONFIG_H -# include <config.h> -#endif - -#include <sys/types.h> -#include <sys/stat.h> - -#include <errno.h> -#ifndef errno -extern int errno; -#endif - -#define WAITPID_CHILDREN 8 -static pid_t waited_pid[WAITPID_CHILDREN]; -static int waited_status[WAITPID_CHILDREN]; - -pid_t -waitpid (pid_t pid, int *stat_loc, int options) -{ - int i; - pid_t p; - - if (!options && (pid == -1 || 0 < pid)) - { - /* If we have already waited for this child, return it immediately. */ - for (i = 0; i < WAITPID_CHILDREN; i++) - { - p = waited_pid[i]; - if (p && (p == pid || pid == -1)) - { - waited_pid[i] = 0; - goto success; - } - } - - /* The child has not returned yet; wait for it, accumulating status. */ - for (i = 0; i < WAITPID_CHILDREN; i++) - if (! waited_pid[i]) - { - p = wait (&waited_status[i]); - if (p < 0) - return p; - if (p == pid || pid == -1) - goto success; - waited_pid[i] = p; - } - } - - /* We cannot emulate this wait call, e.g. because of too many children. */ - errno = EINVAL; - return -1; - -success: - if (stat_loc) - *stat_loc = waited_status[i]; - return p; -} diff --git a/lib/wchar.in.h b/lib/wchar.in.h deleted file mode 100644 index 2d66c32ccc7412023ace2394a0fed39919e267fe..0000000000000000000000000000000000000000 --- a/lib/wchar.in.h +++ /dev/null @@ -1,308 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A substitute for ISO C99 <wchar.h>, for platforms that have issues. - - Copyright (C) 2007-2009 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by Eric Blake. */ - -/* - * ISO C 99 <wchar.h> for platforms that have issues. - * <http://www.opengroup.org/susv3xbd/wchar.h.html> - * - * For now, this just ensures proper prerequisite inclusion order and - * the declaration of wcwidth(). - */ - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -#if defined __need_mbstate_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H -/* Special invocation convention: - - Inside uClibc header files. - - On HP-UX 11.00 we have a sequence of nested includes - <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>, - once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h> - and once directly. In both situations 'wint_t' is not yet defined, - therefore we cannot provide the function overrides; instead include only - the system's <wchar.h>. - - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and - the latter includes <wchar.h>. But here, we have no way to detect whether - <wctype.h> is completely included or is still being included. */ - -#@INCLUDE_NEXT@ @NEXT_WCHAR_H@ - -#else -/* Normal invocation convention. */ - -#ifndef _GL_WCHAR_H - -#define _GL_ALREADY_INCLUDING_WCHAR_H - -/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before - <wchar.h>. - BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be - included before <wchar.h>. */ -#include <stddef.h> -#include <stdio.h> -#include <time.h> - -/* Include the original <wchar.h> if it exists. - Some builds of uClibc lack it. */ -/* The include_next requires a split double-inclusion guard. */ -#if @HAVE_WCHAR_H@ -# @INCLUDE_NEXT@ @NEXT_WCHAR_H@ -#endif - -#undef _GL_ALREADY_INCLUDING_WCHAR_H - -#ifndef _GL_WCHAR_H -#define _GL_WCHAR_H - -/* The definition of GL_LINK_WARNING is copied here. */ - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Define wint_t. (Also done in wctype.in.h.) */ -#if !@HAVE_WINT_T@ && !defined wint_t -# define wint_t int -# ifndef WEOF -# define WEOF -1 -# endif -#endif - - -/* Override mbstate_t if it is too small. - On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for - implementing mbrtowc for encodings like UTF-8. */ -#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ -typedef int rpl_mbstate_t; -# undef mbstate_t -# define mbstate_t rpl_mbstate_t -# define GNULIB_defined_mbstate_t 1 -#endif - - -/* Convert a single-byte character to a wide character. */ -#if @GNULIB_BTOWC@ -# if @REPLACE_BTOWC@ -# undef btowc -# define btowc rpl_btowc -# endif -# if !@HAVE_BTOWC@ || @REPLACE_BTOWC@ -extern wint_t btowc (int c); -# endif -#elif defined GNULIB_POSIXCHECK -# undef btowc -# define btowc(c) \ - (GL_LINK_WARNING ("btowc is unportable - " \ - "use gnulib module btowc for portability"), \ - btowc (c)) -#endif - - -/* Convert a wide character to a single-byte character. */ -#if @GNULIB_WCTOB@ -# if @REPLACE_WCTOB@ -# undef wctob -# define wctob rpl_wctob -# endif -# if (!defined wctob && !@HAVE_DECL_WCTOB@) || @REPLACE_WCTOB@ -/* wctob is provided by gnulib, or wctob exists but is not declared. */ -extern int wctob (wint_t wc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wctob -# define wctob(w) \ - (GL_LINK_WARNING ("wctob is unportable - " \ - "use gnulib module wctob for portability"), \ - wctob (w)) -#endif - - -/* Test whether *PS is in the initial state. */ -#if @GNULIB_MBSINIT@ -# if @REPLACE_MBSINIT@ -# undef mbsinit -# define mbsinit rpl_mbsinit -# endif -# if !@HAVE_MBSINIT@ || @REPLACE_MBSINIT@ -extern int mbsinit (const mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsinit -# define mbsinit(p) \ - (GL_LINK_WARNING ("mbsinit is unportable - " \ - "use gnulib module mbsinit for portability"), \ - mbsinit (p)) -#endif - - -/* Convert a multibyte character to a wide character. */ -#if @GNULIB_MBRTOWC@ -# if @REPLACE_MBRTOWC@ -# undef mbrtowc -# define mbrtowc rpl_mbrtowc -# endif -# if !@HAVE_MBRTOWC@ || @REPLACE_MBRTOWC@ -extern size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrtowc -# define mbrtowc(w,s,n,p) \ - (GL_LINK_WARNING ("mbrtowc is unportable - " \ - "use gnulib module mbrtowc for portability"), \ - mbrtowc (w, s, n, p)) -#endif - - -/* Recognize a multibyte character. */ -#if @GNULIB_MBRLEN@ -# if @REPLACE_MBRLEN@ -# undef mbrlen -# define mbrlen rpl_mbrlen -# endif -# if !@HAVE_MBRLEN@ || @REPLACE_MBRLEN@ -extern size_t mbrlen (const char *s, size_t n, mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrlen -# define mbrlen(s,n,p) \ - (GL_LINK_WARNING ("mbrlen is unportable - " \ - "use gnulib module mbrlen for portability"), \ - mbrlen (s, n, p)) -#endif - - -/* Convert a string to a wide string. */ -#if @GNULIB_MBSRTOWCS@ -# if @REPLACE_MBSRTOWCS@ -# undef mbsrtowcs -# define mbsrtowcs rpl_mbsrtowcs -# endif -# if !@HAVE_MBSRTOWCS@ || @REPLACE_MBSRTOWCS@ -extern size_t mbsrtowcs (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsrtowcs -# define mbsrtowcs(d,s,l,p) \ - (GL_LINK_WARNING ("mbsrtowcs is unportable - " \ - "use gnulib module mbsrtowcs for portability"), \ - mbsrtowcs (d, s, l, p)) -#endif - - -/* Convert a string to a wide string. */ -#if @GNULIB_MBSNRTOWCS@ -# if @REPLACE_MBSNRTOWCS@ -# undef mbsnrtowcs -# define mbsnrtowcs rpl_mbsnrtowcs -# endif -# if !@HAVE_MBSNRTOWCS@ || @REPLACE_MBSNRTOWCS@ -extern size_t mbsnrtowcs (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsnrtowcs -# define mbsnrtowcs(d,s,n,l,p) \ - (GL_LINK_WARNING ("mbsnrtowcs is unportable - " \ - "use gnulib module mbsnrtowcs for portability"), \ - mbsnrtowcs (d, s, n, l, p)) -#endif - - -/* Convert a wide character to a multibyte character. */ -#if @GNULIB_WCRTOMB@ -# if @REPLACE_WCRTOMB@ -# undef wcrtomb -# define wcrtomb rpl_wcrtomb -# endif -# if !@HAVE_WCRTOMB@ || @REPLACE_WCRTOMB@ -extern size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcrtomb -# define wcrtomb(s,w,p) \ - (GL_LINK_WARNING ("wcrtomb is unportable - " \ - "use gnulib module wcrtomb for portability"), \ - wcrtomb (s, w, p)) -#endif - - -/* Convert a wide string to a string. */ -#if @GNULIB_WCSRTOMBS@ -# if @REPLACE_WCSRTOMBS@ -# undef wcsrtombs -# define wcsrtombs rpl_wcsrtombs -# endif -# if !@HAVE_WCSRTOMBS@ || @REPLACE_WCSRTOMBS@ -extern size_t wcsrtombs (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsrtombs -# define wcsrtombs(d,s,l,p) \ - (GL_LINK_WARNING ("wcsrtombs is unportable - " \ - "use gnulib module wcsrtombs for portability"), \ - wcsrtombs (d, s, l, p)) -#endif - - -/* Convert a wide string to a string. */ -#if @GNULIB_WCSNRTOMBS@ -# if !@HAVE_WCSNRTOMBS@ -extern size_t wcsnrtombs (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsnrtombs -# define wcsnrtombs(d,s,n,l,p) \ - (GL_LINK_WARNING ("wcsnrtombs is unportable - " \ - "use gnulib module wcsnrtombs for portability"), \ - wcsnrtombs (d, s, n, l, p)) -#endif - - -/* Return the number of screen columns needed for WC. */ -#if @GNULIB_WCWIDTH@ -# if @REPLACE_WCWIDTH@ -# undef wcwidth -# define wcwidth rpl_wcwidth -extern int wcwidth (wchar_t); -# else -# if !defined wcwidth && !@HAVE_DECL_WCWIDTH@ -/* wcwidth exists but is not declared. */ -extern int wcwidth (int /* actually wchar_t */); -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcwidth -# define wcwidth(w) \ - (GL_LINK_WARNING ("wcwidth is unportable - " \ - "use gnulib module wcwidth for portability"), \ - wcwidth (w)) -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_WCHAR_H */ -#endif /* _GL_WCHAR_H */ -#endif diff --git a/lib/wctype.in.h b/lib/wctype.in.h deleted file mode 100644 index f7942edf15c1cffba84a287f7a11195e60224002..0000000000000000000000000000000000000000 --- a/lib/wctype.in.h +++ /dev/null @@ -1,186 +0,0 @@ -/* -*- buffer-read-only: t -*- vi: set ro: */ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A substitute for ISO C99 <wctype.h>, for platforms that lack it. - - Copyright (C) 2006-2008 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, 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, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Written by Bruno Haible and Paul Eggert. */ - -/* - * ISO C 99 <wctype.h> for platforms that lack it. - * <http://www.opengroup.org/susv3xbd/wctype.h.html> - * - * iswctype, towctrans, towlower, towupper, wctrans, wctype, - * wctrans_t, and wctype_t are not yet implemented. - */ - -#ifndef _GL_WCTYPE_H - -#if __GNUC__ >= 3 -@PRAGMA_SYSTEM_HEADER@ -#endif - -#if @HAVE_WINT_T@ -/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. - Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before - <wchar.h>. - BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be - included before <wchar.h>. */ -# include <stddef.h> -# include <stdio.h> -# include <time.h> -# include <wchar.h> -#endif - -/* Include the original <wctype.h> if it exists. - BeOS 5 has the functions but no <wctype.h>. */ -/* The include_next requires a split double-inclusion guard. */ -#if @HAVE_WCTYPE_H@ -# @INCLUDE_NEXT@ @NEXT_WCTYPE_H@ -#endif - -#ifndef _GL_WCTYPE_H -#define _GL_WCTYPE_H - -/* Define wint_t. (Also done in wchar.in.h.) */ -#if !@HAVE_WINT_T@ && !defined wint_t -# define wint_t int -# ifndef WEOF -# define WEOF -1 -# endif -#endif - -/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions. - Linux libc5 has <wctype.h> and the functions but they are broken. - Assume all 12 functions are implemented the same way, or not at all. */ -#if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@ - -/* IRIX 5.3 has macros but no functions, its isw* macros refer to an - undefined variable _ctmp_ and to <ctype.h> macros like _P, and they - refer to system functions like _iswctype that are not in the - standard C library. Rather than try to get ancient buggy - implementations like this to work, just disable them. */ -# undef iswalnum -# undef iswalpha -# undef iswblank -# undef iswcntrl -# undef iswdigit -# undef iswgraph -# undef iswlower -# undef iswprint -# undef iswpunct -# undef iswspace -# undef iswupper -# undef iswxdigit - -/* Linux libc5 has <wctype.h> and the functions but they are broken. */ -# if @REPLACE_ISWCNTRL@ -# define iswalnum rpl_iswalnum -# define iswalpha rpl_iswalpha -# define iswblank rpl_iswblank -# define iswcntrl rpl_iswcntrl -# define iswdigit rpl_iswdigit -# define iswgraph rpl_iswgraph -# define iswlower rpl_iswlower -# define iswprint rpl_iswprint -# define iswpunct rpl_iswpunct -# define iswspace rpl_iswspace -# define iswupper rpl_iswupper -# define iswxdigit rpl_iswxdigit -# endif - -static inline int -iswalnum (wint_t wc) -{ - return ((wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')); -} - -static inline int -iswalpha (wint_t wc) -{ - return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; -} - -static inline int -iswblank (wint_t wc) -{ - return wc == ' ' || wc == '\t'; -} - -static inline int -iswcntrl (wint_t wc) -{ - return (wc & ~0x1f) == 0 || wc == 0x7f; -} - -static inline int -iswdigit (wint_t wc) -{ - return wc >= '0' && wc <= '9'; -} - -static inline int -iswgraph (wint_t wc) -{ - return wc >= '!' && wc <= '~'; -} - -static inline int -iswlower (wint_t wc) -{ - return wc >= 'a' && wc <= 'z'; -} - -static inline int -iswprint (wint_t wc) -{ - return wc >= ' ' && wc <= '~'; -} - -static inline int -iswpunct (wint_t wc) -{ - return (wc >= '!' && wc <= '~' - && !((wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))); -} - -static inline int -iswspace (wint_t wc) -{ - return (wc == ' ' || wc == '\t' - || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'); -} - -static inline int -iswupper (wint_t wc) -{ - return wc >= 'A' && wc <= 'Z'; -} - -static inline int -iswxdigit (wint_t wc) -{ - return ((wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')); -} - -# endif /* ! HAVE_ISWCNTRL */ - -#endif /* _GL_WCTYPE_H */ -#endif /* _GL_WCTYPE_H */ diff --git a/m4/00gnulib.m4 b/m4/00gnulib.m4 index d4d04d1530a27c0921a542c6978da037107b9ee0..301469b31cef0ba55efc7c41e701ae5fa715834d 100644 --- a/m4/00gnulib.m4 +++ b/m4/00gnulib.m4 @@ -1,5 +1,5 @@ # 00gnulib.m4 serial 2 -dnl Copyright (C) 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2010 Free Software 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. diff --git a/m4/alloca.m4 b/m4/alloca.m4 index 4b978e137cbe7c2d9f76baa6546764f6e2f7a0a6..f3ee34380cda13d5463e465bdb2c6d691169d449 100644 --- a/m4/alloca.m4 +++ b/m4/alloca.m4 @@ -1,5 +1,6 @@ # alloca.m4 serial 9 -dnl Copyright (C) 2002-2004, 2006, 2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2006-2007, 2009-2010 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. diff --git a/m4/argmatch.m4 b/m4/argmatch.m4 index beda5a119134636c4acc886ed1b768958fc713e8..510fef9e48585163f7ebfa0569eaeb847196d49d 100644 --- a/m4/argmatch.m4 +++ b/m4/argmatch.m4 @@ -1,5 +1,5 @@ #serial 3 -dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2006, 2009, 2010 Free Software 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. diff --git a/m4/argp.m4 b/m4/argp.m4 index 7263a562ebc7052b47e03116e59340227a99aefa..819425bbb73bac8bd659edfb272be20ab1ab865f 100644 --- a/m4/argp.m4 +++ b/m4/argp.m4 @@ -1,5 +1,5 @@ -# argp.m4 serial 9 -dnl Copyright (C) 2003-2007, 2009 Free Software Foundation, Inc. +# argp.m4 serial 10 +dnl Copyright (C) 2003-2007, 2009-2010 Free Software 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. @@ -11,19 +11,19 @@ AC_DEFUN([gl_ARGP], AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl argp-parse.c depends on GNU getopt internals, therefore use GNU getopt dnl always. - gl_GETOPT_SUBSTITUTE - dnl Note: gl_GETOPT_SUBSTITUTE does AC_LIBOBJ([getopt]), AC_LIBOBJ([getopt1]). + gl_REPLACE_GETOPT + dnl Note: gl_REPLACE_GETOPT does AC_LIBOBJ([getopt]), AC_LIBOBJ([getopt1]). AC_CHECK_DECL([program_invocation_name], [AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_NAME], [1], [Define if program_invocation_name is declared])], - [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_NAME], [1], + [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_NAME], [1], [Define to 1 to add extern declaration of program_invocation_name to argp.h])], [#include <errno.h>]) AC_CHECK_DECL([program_invocation_short_name], [AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME], [1], [Define if program_invocation_short_name is declared])], - [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_SHORT_NAME], [1], + [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_SHORT_NAME], [1], [Define to 1 to add extern declaration of program_invocation_short_name to argp.h])], [#include <errno.h>]) diff --git a/m4/backupfile.m4 b/m4/backupfile.m4 index effbce6e914c3e8d36beb2186939595cb60831c8..0725ea925653ca93d6dfc5c167c64881a36add1b 100644 --- a/m4/backupfile.m4 +++ b/m4/backupfile.m4 @@ -1,5 +1,5 @@ # backupfile.m4 serial 12 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2010 Free Software 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. diff --git a/m4/bison.m4 b/m4/bison.m4 index eb05c36eac6d7dfc0e231a97c1ab03f1216b18b9..260cba6a60b42b3b55f5112afb10baac6e72a9d1 100644 --- a/m4/bison.m4 +++ b/m4/bison.m4 @@ -1,6 +1,6 @@ # serial 5 -# Copyright (C) 2002, 2005, 2009 Free Software Foundation, Inc. +# Copyright (C) 2002, 2005, 2009, 2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. diff --git a/m4/btowc.m4 b/m4/btowc.m4 index 64ff82906155bcfbf1cfdaaa4258c3221bbcebfa..2c75c8fb02a6e8794a140f44f4ce49d86028e4df 100644 --- a/m4/btowc.m4 +++ b/m4/btowc.m4 @@ -1,5 +1,5 @@ -# btowc.m4 serial 3 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +# btowc.m4 serial 5 +dnl Copyright (C) 2008-2010 Free Software 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. @@ -8,6 +8,11 @@ AC_DEFUN([gl_FUNC_BTOWC], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + dnl Check whether <wchar.h> is usable at all, first. Otherwise the test + dnl program below may lead to an endless loop. See + dnl <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. + AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) + AC_CHECK_FUNCS_ONCE([btowc]) if test $ac_cv_func_btowc = no; then HAVE_BTOWC=0 @@ -47,7 +52,7 @@ int main () }], [gl_cv_func_btowc_eof=yes], [gl_cv_func_btowc_eof=no], - []) + [:]) fi ]) case "$gl_cv_func_btowc_eof" in diff --git a/m4/canonicalize-lgpl.m4 b/m4/canonicalize-lgpl.m4 deleted file mode 100644 index 3a8ee2f9579d14f12f82b75b475af64f6996a665..0000000000000000000000000000000000000000 --- a/m4/canonicalize-lgpl.m4 +++ /dev/null @@ -1,35 +0,0 @@ -# canonicalize-lgpl.m4 serial 5 -dnl Copyright (C) 2003, 2006-2007, 2009 Free Software 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. - -AC_DEFUN([gl_CANONICALIZE_LGPL], -[ - dnl Do this replacement check manually because the file name is shorter - dnl than the function name. - AC_CHECK_DECLS_ONCE([canonicalize_file_name]) - AC_CHECK_FUNCS_ONCE([canonicalize_file_name]) - if test $ac_cv_func_canonicalize_file_name = no; then - AC_LIBOBJ([canonicalize-lgpl]) - AC_DEFINE([realpath], [rpl_realpath], - [Define to a replacement function name for realpath().]) - gl_PREREQ_CANONICALIZE_LGPL - fi -]) - -# Like gl_CANONICALIZE_LGPL, except prepare for separate compilation -# (no AC_LIBOBJ). -AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE], -[ - AC_CHECK_DECLS_ONCE([canonicalize_file_name]) - AC_CHECK_FUNCS_ONCE([canonicalize_file_name]) - gl_PREREQ_CANONICALIZE_LGPL -]) - -# Prerequisites of lib/canonicalize-lgpl.c. -AC_DEFUN([gl_PREREQ_CANONICALIZE_LGPL], -[ - AC_CHECK_HEADERS_ONCE([sys/param.h unistd.h]) - AC_CHECK_FUNCS_ONCE([getcwd readlink]) -]) diff --git a/m4/canonicalize.m4 b/m4/canonicalize.m4 new file mode 100644 index 0000000000000000000000000000000000000000..d418de8fb57674e352e172389fae73e76171cc06 --- /dev/null +++ b/m4/canonicalize.m4 @@ -0,0 +1,81 @@ +# canonicalize.m4 serial 16 + +dnl Copyright (C) 2003-2007, 2009-2010 Free Software 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. + +# Provides canonicalize_file_name and canonicalize_filename_mode, but does +# not provide or fix realpath. +AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE], +[ + AC_LIBOBJ([canonicalize]) + + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_CHECK_FUNCS_ONCE([canonicalize_file_name]) + AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) + AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) + if test $ac_cv_func_canonicalize_file_name = no; then + HAVE_CANONICALIZE_FILE_NAME=0 + elif test "$gl_cv_func_realpath_works" != yes; then + REPLACE_CANONICALIZE_FILE_NAME=1 + fi +]) + +# Provides canonicalize_file_name and realpath. +AC_DEFUN([gl_CANONICALIZE_LGPL], +[ + AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE]) + if test $ac_cv_func_canonicalize_file_name = no; then + HAVE_CANONICALIZE_FILE_NAME=0 + AC_LIBOBJ([canonicalize-lgpl]) + if test $ac_cv_func_realpath = no; then + HAVE_REALPATH=0 + elif test "$gl_cv_func_realpath_works" != yes; then + REPLACE_REALPATH=1 + fi + elif test "$gl_cv_func_realpath_works" != yes; then + AC_LIBOBJ([canonicalize-lgpl]) + REPLACE_REALPATH=1 + REPLACE_CANONICALIZE_FILE_NAME=1 + fi +]) + +# Like gl_CANONICALIZE_LGPL, except prepare for separate compilation +# (no AC_LIBOBJ). +AC_DEFUN([gl_CANONICALIZE_LGPL_SEPARATE], +[ + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_CHECK_FUNCS_ONCE([canonicalize_file_name getcwd readlink]) + AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) + AC_REQUIRE([gl_FUNC_REALPATH_WORKS]) + AC_CHECK_HEADERS_ONCE([sys/param.h]) +]) + +# Check whether realpath works. Assume that if a platform has both +# realpath and canonicalize_file_name, but the former is broken, then +# so is the latter. +AC_DEFUN([gl_FUNC_REALPATH_WORKS], +[ + AC_CHECK_FUNCS_ONCE([realpath]) + AC_CACHE_CHECK([whether realpath works], [gl_cv_func_realpath_works], [ + touch conftest.a + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ + #include <stdlib.h> + ]], [[ + char *name1 = realpath ("conftest.a", NULL); + char *name2 = realpath ("conftest.b/../conftest.a", NULL); + char *name3 = realpath ("conftest.a/", NULL); + return !(name1 && *name1 == '/' && !name2 && !name3); + ]]) + ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no], + [gl_cv_func_realpath_works="guessing no"]) + ]) + if test "$gl_cv_func_realpath_works" = yes; then + AC_DEFINE([FUNC_REALPATH_WORKS], [1], [Define to 1 if realpath() + can malloc memory, always gives an absolute path, and handles + trailing slash correctly.]) + fi +]) diff --git a/m4/chdir-long.m4 b/m4/chdir-long.m4 index 7f34f60cfecfebbf6ad2cabdfffb101c454b086f..17fe727a6c96a2c3aca705a63f90296b1b2c5a28 100644 --- a/m4/chdir-long.m4 +++ b/m4/chdir-long.m4 @@ -1,4 +1,4 @@ -#serial 10 +#serial 11 # Use Gnulib's robust chdir function. # It can handle arbitrarily long directory names, which means @@ -6,7 +6,7 @@ # never fails with ENAMETOOLONG. # Arrange to compile chdir-long.c only on systems that define PATH_MAX. -dnl Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2007, 2009-2010 Free Software 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. @@ -34,5 +34,6 @@ have_arbitrary_file_name_length_limit AC_DEFUN([gl_PREREQ_CHDIR_LONG], [ + AC_REQUIRE([AC_C_INLINE]) : ]) diff --git a/m4/chown.m4 b/m4/chown.m4 index 5d30ae3426293399990697201f7a6f1e69149d0c..0c32fa39ff623c068bd5ecb3d5d1927c0acbf12d 100644 --- a/m4/chown.m4 +++ b/m4/chown.m4 @@ -1,8 +1,8 @@ -# serial 18 +# serial 22 # Determine whether we need the chown wrapper. -dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009 -dnl Free Software Foundation, Inc. +dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2010 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, @@ -14,58 +14,120 @@ dnl with or without modifications, as long as this notice is preserved. # From Jim Meyering. -AC_DEFUN([gl_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_CHECK_FUNCS_ONCE([chown fchown]) - if test $ac_cv_func_chown_works = no; then - AC_DEFINE([CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE], [1], - [Define if chown is not POSIX compliant regarding IDs of -1.]) - fi - - # If chown has either of the above problems, then we need the wrapper. - if test $ac_cv_func_chown_works$gl_cv_func_chown_follows_symlink = yesyes; then - : # no wrapper needed - else - REPLACE_CHOWN=1 + dnl mingw lacks chown altogether. + if test $ac_cv_func_chown = no; then + HAVE_CHOWN=0 AC_LIBOBJ([chown]) - gl_PREREQ_CHOWN + else + dnl Some old systems treated chown like lchown. + if test $gl_cv_func_chown_follows_symlink = no; then + REPLACE_CHOWN=1 + AC_LIBOBJ([chown]) + fi + + dnl Some old systems tried to use uid/gid -1 literally. + if test $ac_cv_func_chown_works = no; then + 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 + AC_LIBOBJ([chown]) + fi + + dnl Solaris 9 ignores trailing slash. + dnl FreeBSD 7.2 mishandles trailing slash on symlinks. + 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], + [gl_cv_func_chown_slash_works="guessing no"]) + rm -f conftest.link conftest.file]) + if test "$gl_cv_func_chown_slash_works" != yes; then + AC_DEFINE([CHOWN_TRAILING_SLASH_BUG], [1], + [Define to 1 if chown mishandles trailing slash.]) + REPLACE_CHOWN=1 + AC_LIBOBJ([chown]) + fi + + 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], + [gl_cv_func_chown_ctime_works="guessing no"]) + rm -f conftest.file]) + if test "$gl_cv_func_chown_ctime_works" != yes; then + 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 + AC_LIBOBJ([chown]) + fi + + if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then + AC_LIBOBJ([fchown-stub]) + fi fi ]) # Determine whether chown follows symlinks (it should). -AC_DEFUN([gl_FUNC_CHOWN_FOLLOWS_SYMLINK], +AC_DEFUN_ONCE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK], [ AC_CACHE_CHECK( - [whether chown(2) dereferences symlinks], - gl_cv_func_chown_follows_symlink, + [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 () - { - char const *dangling_symlink = "conftest.dangle"; + int + main () + { + char const *dangling_symlink = "conftest.dangle"; - unlink (dangling_symlink); - if (symlink ("conftest.no-such", dangling_symlink)) - abort (); + 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. */ - exit ( ! (chown (dangling_symlink, getuid (), getgid ()) != 0 - && errno == ENOENT)); - } - ]])], - [gl_cv_func_chown_follows_symlink=yes], - [gl_cv_func_chown_follows_symlink=no], - [gl_cv_func_chown_follows_symlink=yes] + /* Exit successfully on a conforming system, + i.e., where chown must fail with ENOENT. */ + exit ( ! (chown (dangling_symlink, getuid (), getgid ()) != 0 + && errno == ENOENT)); + } + ]])], + [gl_cv_func_chown_follows_symlink=yes], + [gl_cv_func_chown_follows_symlink=no], + [gl_cv_func_chown_follows_symlink=yes] ) ] ) @@ -75,9 +137,3 @@ AC_DEFUN([gl_FUNC_CHOWN_FOLLOWS_SYMLINK], [Define if chown modifies symlinks.]) fi ]) - -# Prerequisites of lib/chown.c. -AC_DEFUN([gl_PREREQ_CHOWN], -[ - AC_CHECK_FUNC([fchown], , [AC_LIBOBJ([fchown-stub])]) -]) diff --git a/m4/clock_time.m4 b/m4/clock_time.m4 index d191072f57be7c1b79b1a04b1020581169d33ae0..8be179db8730c7b0d015c2ab360f43a63989c4d5 100644 --- a/m4/clock_time.m4 +++ b/m4/clock_time.m4 @@ -1,5 +1,5 @@ -# clock_time.m4 serial 9 -dnl Copyright (C) 2002-2006, 2009 Free Software Foundation, Inc. +# clock_time.m4 serial 10 +dnl Copyright (C) 2002-2006, 2009-2010 Free Software 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. @@ -20,11 +20,12 @@ AC_DEFUN([gl_CLOCK_TIME], # Save and restore LIBS so e.g., -lrt, isn't added to it. Otherwise, *all* # programs in the package would end up linked with that potentially-shared # library, inducing unnecessary run-time overhead. + LIB_CLOCK_GETTIME= + AC_SUBST([LIB_CLOCK_GETTIME]) gl_saved_libs=$LIBS AC_SEARCH_LIBS([clock_gettime], [rt posix4], [test "$ac_cv_search_clock_gettime" = "none required" || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime]) - AC_SUBST([LIB_CLOCK_GETTIME]) AC_CHECK_FUNCS([clock_gettime clock_settime]) LIBS=$gl_saved_libs ]) diff --git a/m4/close-stream.m4 b/m4/close-stream.m4 index b1f9d5477c39a4b2f3dfa7ec25ec16318cabe146..40d999dc650f062c9b33c702521653e907f14049 100644 --- a/m4/close-stream.m4 +++ b/m4/close-stream.m4 @@ -1,5 +1,5 @@ #serial 3 -dnl Copyright (C) 2006-2007 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2007, 2009-2010 Free Software 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. diff --git a/m4/close.m4 b/m4/close.m4 index 29d3abdd1365850bfc885d15688ee86dd3dea81e..1ee3add9b998a2c33893357e6af73201842519a0 100644 --- a/m4/close.m4 +++ b/m4/close.m4 @@ -1,5 +1,5 @@ -# close.m4 serial 2 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +# close.m4 serial 5 +dnl Copyright (C) 2008-2010 Free Software 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. @@ -9,6 +9,9 @@ AC_DEFUN([gl_FUNC_CLOSE], m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ gl_PREREQ_SYS_H_WINSOCK2 if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then + dnl Even if the 'socket' module is not used here, another part of the + dnl application may use it and pass file descriptors that refer to + dnl sockets to the close() function. So enable the support for sockets. gl_REPLACE_CLOSE fi ]) @@ -17,11 +20,7 @@ AC_DEFUN([gl_FUNC_CLOSE], AC_DEFUN([gl_REPLACE_CLOSE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) - if test $REPLACE_CLOSE != 1; then - AC_LIBOBJ([close]) - fi REPLACE_CLOSE=1 + AC_LIBOBJ([close]) gl_REPLACE_FCLOSE - LIB_CLOSE="-lws2_32" - AC_SUBST([LIB_CLOSE]) ]) diff --git a/m4/closeout.m4 b/m4/closeout.m4 index 55a65f0464b262bc72a83b6c93b3997f5ad2bc53..946944ecda8e65fa37c0ce8ea915d2fc8c0b8e23 100644 --- a/m4/closeout.m4 +++ b/m4/closeout.m4 @@ -1,5 +1,6 @@ # closeout.m4 serial 5 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 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. diff --git a/m4/codeset.m4 b/m4/codeset.m4 index 413217bd4a5f9ebb295528989c6e4e906c9438eb..a53c04260c0f5c1c347210fb7eb7e4ff63b41cb1 100644 --- a/m4/codeset.m4 +++ b/m4/codeset.m4 @@ -1,5 +1,5 @@ # codeset.m4 serial 4 (gettext-0.18) -dnl Copyright (C) 2000-2002, 2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2000-2002, 2006, 2008-2010 Free Software 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. diff --git a/m4/d-ino.m4 b/m4/d-ino.m4 index 9bab8f14943251c58f1df826f99a20ec2f1385ae..b019ae58790fbf8aa395c0eb9550b23659b598b9 100644 --- a/m4/d-ino.m4 +++ b/m4/d-ino.m4 @@ -5,7 +5,7 @@ dnl dnl Check whether struct dirent has a member named d_ino. dnl -# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009 Free Software +# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2010 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation @@ -14,25 +14,25 @@ dnl AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO], [AC_CACHE_CHECK([for d_ino member in directory struct], - gl_cv_struct_dirent_d_ino, + gl_cv_struct_dirent_d_ino, [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include <sys/types.h> - #include <sys/stat.h> - #include <dirent.h> - ]], - [[DIR *dp = opendir ("."); - struct dirent *e; - struct stat st; - if (! dp) - return 1; - e = readdir (dp); - return ! (e - && stat (e->d_name, &st) == 0 - && e->d_ino == st.st_ino);]])], - [gl_cv_struct_dirent_d_ino=yes], - [gl_cv_struct_dirent_d_ino=no], - [gl_cv_struct_dirent_d_ino=no])]) + [AC_LANG_PROGRAM( + [[#include <sys/types.h> + #include <sys/stat.h> + #include <dirent.h> + ]], + [[DIR *dp = opendir ("."); + struct dirent *e; + struct stat st; + if (! dp) + return 1; + e = readdir (dp); + return ! (e + && stat (e->d_name, &st) == 0 + && e->d_ino == st.st_ino);]])], + [gl_cv_struct_dirent_d_ino=yes], + [gl_cv_struct_dirent_d_ino=no], + [gl_cv_struct_dirent_d_ino=no])]) if test $gl_cv_struct_dirent_d_ino = yes; then AC_DEFINE([D_INO_IN_DIRENT], [1], [Define if struct dirent has a member d_ino that actually works.]) diff --git a/m4/fcntl-safer.m4 b/m4/dirent-safer.m4 similarity index 55% rename from m4/fcntl-safer.m4 rename to m4/dirent-safer.m4 index 3475b0a7cf42772500c12e1eb79c4cb2f3cfc22a..c48f3dc88516b6a483e6474ee85aabc5f55b2407 100644 --- a/m4/fcntl-safer.m4 +++ b/m4/dirent-safer.m4 @@ -1,11 +1,11 @@ -#serial 5 -dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. +#serial 1 +dnl Copyright (C) 2009, 2010 Free Software 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. -AC_DEFUN([gl_FCNTL_SAFER], +AC_DEFUN([gl_DIRENT_SAFER], [ - AC_LIBOBJ([open-safer]) - AC_LIBOBJ([creat-safer]) + AC_CHECK_FUNCS_ONCE([fdopendir]) + AC_LIBOBJ([opendir-safer]) ]) diff --git a/m4/dirent_h.m4 b/m4/dirent_h.m4 index e507e3de8c80c25dff857cc926c6b494aa90f20e..c3292d9cc07270f029f4cbc7616c8552df3837e5 100644 --- a/m4/dirent_h.m4 +++ b/m4/dirent_h.m4 @@ -1,5 +1,5 @@ -# dirent_h.m4 serial 4 -dnl Copyright (C) 2008-2009 Free Software Foundation, Inc. +# dirent_h.m4 serial 10 +dnl Copyright (C) 2008-2010 Free Software 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. @@ -12,14 +12,20 @@ AC_DEFUN([gl_DIRENT_H], dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) + dnl <dirent.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([dirent.h]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <dirent.h> + ]], [alphasort dirfd fdopendir scandir]) ]) dnl Unconditionally enables the replacement of <dirent.h>. AC_DEFUN([gl_REPLACE_DIRENT_H], [ - AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) - DIRENT_H='dirent.h' + dnl This is a no-op, because <dirent.h> is always overridden. + : ]) AC_DEFUN([gl_DIRENT_MODULE_INDICATOR], @@ -27,17 +33,23 @@ AC_DEFUN([gl_DIRENT_MODULE_INDICATOR], dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) ]) AC_DEFUN([gl_DIRENT_H_DEFAULTS], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR - GNULIB_DIRFD=0; AC_SUBST([GNULIB_DIRFD]) - GNULIB_SCANDIR=0; AC_SUBST([GNULIB_SCANDIR]) - GNULIB_ALPHASORT=0; AC_SUBST([GNULIB_ALPHASORT]) + GNULIB_DIRFD=0; AC_SUBST([GNULIB_DIRFD]) + GNULIB_FDOPENDIR=0; AC_SUBST([GNULIB_FDOPENDIR]) + GNULIB_SCANDIR=0; AC_SUBST([GNULIB_SCANDIR]) + GNULIB_ALPHASORT=0; AC_SUBST([GNULIB_ALPHASORT]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD]) - HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR]) - HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT]) - DIRENT_H=''; AC_SUBST([DIRENT_H]) + HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD]) + HAVE_FDOPENDIR=1; AC_SUBST([HAVE_FDOPENDIR]) + HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR]) + HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT]) + REPLACE_CLOSEDIR=0; AC_SUBST([REPLACE_CLOSEDIR]) + REPLACE_FDOPENDIR=0; AC_SUBST([REPLACE_FDOPENDIR]) + REPLACE_OPENDIR=0; AC_SUBST([REPLACE_OPENDIR]) ]) diff --git a/m4/dirfd.m4 b/m4/dirfd.m4 index 5f845f5cdae85ef3d375a4970d9b67cfce215db8..7fefa2e483acfa164b4109829b0339dff123e2a3 100644 --- a/m4/dirfd.m4 +++ b/m4/dirfd.m4 @@ -1,8 +1,8 @@ -# serial 16 -*- Autoconf -*- +# serial 17 -*- Autoconf -*- dnl Find out how to get the file descriptor associated with an open DIR*. -# Copyright (C) 2001-2006, 2008-2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2006, 2008-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -46,34 +46,34 @@ AC_DEFUN([gl_FUNC_DIRFD], = no,no,no; then AC_REPLACE_FUNCS([dirfd]) AC_CACHE_CHECK( - [how to get the file descriptor associated with an open DIR*], - gl_cv_sys_dir_fd_member_name, + [how to get the file descriptor associated with an open DIR*], + gl_cv_sys_dir_fd_member_name, [ - dirfd_save_CFLAGS=$CFLAGS - for ac_expr in d_fd dd_fd; do + dirfd_save_CFLAGS=$CFLAGS + for ac_expr in d_fd dd_fd; do - CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" - AC_TRY_COMPILE( - [#include <sys/types.h> - #include <dirent.h>], - [DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;], - dir_fd_found=yes - ) - CFLAGS=$dirfd_save_CFLAGS - test "$dir_fd_found" = yes && break - done - test "$dir_fd_found" = yes || ac_expr=no_such_member + CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include <sys/types.h> + #include <dirent.h>]], + [[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;]])], + [dir_fd_found=yes] + ) + CFLAGS=$dirfd_save_CFLAGS + test "$dir_fd_found" = yes && break + done + test "$dir_fd_found" = yes || ac_expr=no_such_member - gl_cv_sys_dir_fd_member_name=$ac_expr + gl_cv_sys_dir_fd_member_name=$ac_expr ] ) if test $gl_cv_sys_dir_fd_member_name != no_such_member; then AC_DEFINE_UNQUOTED([DIR_FD_MEMBER_NAME], - $gl_cv_sys_dir_fd_member_name, - [the name of the file descriptor member of DIR]) + $gl_cv_sys_dir_fd_member_name, + [the name of the file descriptor member of DIR]) fi AH_VERBATIM(DIR_TO_FD, - [#ifdef DIR_FD_MEMBER_NAME + [#ifdef DIR_FD_MEMBER_NAME # define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) #else # define DIR_TO_FD(Dir_p) -1 diff --git a/m4/dirname.m4 b/m4/dirname.m4 index e35da96582ba767db34fe7f1dfa73c046dfcca17..576b5bead2ad304bae9abe1168759947ec80ce80 100644 --- a/m4/dirname.m4 +++ b/m4/dirname.m4 @@ -1,18 +1,26 @@ -#serial 7 -*- autoconf -*- -dnl Copyright (C) 2002-2006 Free Software Foundation, Inc. +#serial 8 -*- autoconf -*- +dnl Copyright (C) 2002-2006, 2009-2010 Free Software 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. AC_DEFUN([gl_DIRNAME], [ + AC_REQUIRE([gl_DIRNAME_LGPL]) AC_LIBOBJ([basename]) AC_LIBOBJ([dirname]) +]) + +AC_DEFUN([gl_DIRNAME_LGPL], +[ + AC_LIBOBJ([basename-lgpl]) + AC_LIBOBJ([dirname-lgpl]) AC_LIBOBJ([stripslash]) dnl Prerequisites of lib/dirname.h. AC_REQUIRE([gl_AC_DOS]) AC_REQUIRE([gl_DOUBLE_SLASH_ROOT]) - dnl No prerequisites of lib/basename.c, lib/dirname.c, lib/stripslash.c. + dnl No prerequisites of lib/basename-lgpl.c, lib/dirname-lgpl.c, + dnl lib/stripslash.c. ]) diff --git a/m4/dos.m4 b/m4/dos.m4 index dd59571c0b06c62a66d75c04f50e6225cb2923b0..5660542be880a2f714e971adcfbf05c1b4c81168 100644 --- a/m4/dos.m4 +++ b/m4/dos.m4 @@ -1,9 +1,9 @@ -#serial 10 -*- autoconf -*- +#serial 11 -*- autoconf -*- # Define some macros required for proper operation of code in lib/*.c # on MSDOS/Windows systems. -# Copyright (C) 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2004-2006, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -14,31 +14,31 @@ AC_DEFUN([gl_AC_DOS], [ AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos], [ - AC_TRY_COMPILE([], - [#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ +#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__ neither MSDOS nor Windows -#endif], - [ac_cv_win_or_dos=yes], - [ac_cv_win_or_dos=no]) +#endif]])], + [ac_cv_win_or_dos=yes], + [ac_cv_win_or_dos=no]) ]) if test x"$ac_cv_win_or_dos" = xyes; then ac_fs_accepts_drive_letter_prefix=1 ac_fs_backslash_is_file_name_separator=1 AC_CACHE_CHECK([whether drive letter can start relative path], - [ac_cv_drive_letter_can_be_relative], - [ - AC_TRY_COMPILE([], - [#if defined __CYGWIN__ + [ac_cv_drive_letter_can_be_relative], + [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ +#if defined __CYGWIN__ drive letters are always absolute -#endif], - [ac_cv_drive_letter_can_be_relative=yes], - [ac_cv_drive_letter_can_be_relative=no]) - ]) +#endif]])], + [ac_cv_drive_letter_can_be_relative=yes], + [ac_cv_drive_letter_can_be_relative=no]) + ]) if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then - ac_fs_drive_letter_can_be_relative=1 + ac_fs_drive_letter_can_be_relative=1 else - ac_fs_drive_letter_can_be_relative=0 + ac_fs_drive_letter_can_be_relative=0 fi else ac_fs_accepts_drive_letter_prefix=0 diff --git a/m4/double-slash-root.m4 b/m4/double-slash-root.m4 index 8c6841bc83685a3bbeb54a126db640cda059a4db..66a79c0f217bcbd93b5a5e2323888c30b1598f8d 100644 --- a/m4/double-slash-root.m4 +++ b/m4/double-slash-root.m4 @@ -1,5 +1,5 @@ # double-slash-root.m4 serial 4 -*- Autoconf -*- -dnl Copyright (C) 2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2008-2010 Free Software 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. @@ -9,27 +9,27 @@ AC_DEFUN([gl_DOUBLE_SLASH_ROOT], AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_CHECK([whether // is distinct from /], [gl_cv_double_slash_root], [ if test x"$cross_compiling" = xyes ; then - # When cross-compiling, there is no way to tell whether // is special - # short of a list of hosts. However, the only known hosts to date - # that have a distinct // are Apollo DomainOS (too old to port to), - # Cygwin, and z/OS. If anyone knows of another system for which // has - # special semantics and is distinct from /, please report it to - # <bug-gnulib@gnu.org>. - case $host in - *-cygwin | i370-ibm-openedition) - gl_cv_double_slash_root=yes ;; - *) - # Be optimistic and assume that / and // are the same when we - # don't know. - gl_cv_double_slash_root='unknown, assuming no' ;; - esac + # When cross-compiling, there is no way to tell whether // is special + # short of a list of hosts. However, the only known hosts to date + # that have a distinct // are Apollo DomainOS (too old to port to), + # Cygwin, and z/OS. If anyone knows of another system for which // has + # special semantics and is distinct from /, please report it to + # <bug-gnulib@gnu.org>. + case $host in + *-cygwin | i370-ibm-openedition) + gl_cv_double_slash_root=yes ;; + *) + # Be optimistic and assume that / and // are the same when we + # don't know. + gl_cv_double_slash_root='unknown, assuming no' ;; + esac else - set x `ls -di / // 2>/dev/null` - if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then - gl_cv_double_slash_root=no - else - gl_cv_double_slash_root=yes - fi + set x `ls -di / // 2>/dev/null` + if test "$[2]" = "$[4]" && wc //dev/null >/dev/null 2>&1; then + gl_cv_double_slash_root=no + else + gl_cv_double_slash_root=yes + fi fi]) if test "$gl_cv_double_slash_root" = yes; then AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1], diff --git a/m4/dup2.m4 b/m4/dup2.m4 index 054982359e8797502185fdd66064a47c7d3eedfd..998d66f83b1f3812227ac15199331d42d83b96ed 100644 --- a/m4/dup2.m4 +++ b/m4/dup2.m4 @@ -1,5 +1,5 @@ -#serial 5 -dnl Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc. +#serial 10 +dnl Copyright (C) 2002, 2005, 2007, 2009-2010 Free Software 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. @@ -7,9 +7,52 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([dup2]) if test $ac_cv_func_dup2 = no; then HAVE_DUP2=0 AC_LIBOBJ([dup2]) + else + AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], + [AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[#include <unistd.h> +#include <errno.h>]], + [if (dup2 (1, 1) == 0) + return 1; + close (0); + if (dup2 (0, 0) != -1) + return 2; + /* Many gnulib modules require POSIX conformance of EBADF. */ + if (dup2 (1, 1000000) == -1 && errno != EBADF) + return 3; + return 0; + ]) + ], + [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], + [case "$host_os" in + mingw*) # on this platform, dup2 always returns 0 for success + gl_cv_func_dup2_works=no;; + cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 + gl_cv_func_dup2_works=no;; + linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a + # closed fd may yield -EBADF instead of -1 / errno=EBADF. + gl_cv_func_dup2_works=no;; + freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF. + gl_cv_func_dup2_works=no;; + *) gl_cv_func_dup2_works=yes;; + esac]) + ]) + if test "$gl_cv_func_dup2_works" = no; then + gl_REPLACE_DUP2 + fi fi ]) + +AC_DEFUN([gl_REPLACE_DUP2], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + if test $ac_cv_func_dup2 = yes; then + REPLACE_DUP2=1 + fi + AC_LIBOBJ([dup2]) +]) diff --git a/m4/eealloc.m4 b/m4/eealloc.m4 index 3c9c0b52a130cef3b119bc405596acab0df125fb..63dd92022782779127b2e087cbf3056cf0a3e642 100644 --- a/m4/eealloc.m4 +++ b/m4/eealloc.m4 @@ -1,5 +1,5 @@ # eealloc.m4 serial 2 -dnl Copyright (C) 2003, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2009, 2010 Free Software 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. diff --git a/m4/environ.m4 b/m4/environ.m4 index b17bb60a75c6809b481deb74b5ead320bfe9688c..5f50d6e3b02e22fbee18e10803044fac5ff89a57 100644 --- a/m4/environ.m4 +++ b/m4/environ.m4 @@ -1,10 +1,10 @@ -# environ.m4 serial 2 -dnl Copyright (C) 2001-2004, 2006-2009 Free Software Foundation, Inc. +# environ.m4 serial 3 +dnl Copyright (C) 2001-2004, 2006-2010 Free Software 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. -AC_DEFUN([gl_ENVIRON], +AC_DEFUN_ONCE([gl_ENVIRON], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade glibc <unistd.h> to declare environ. diff --git a/m4/errno_h.m4 b/m4/errno_h.m4 index 4d77672cb70e7190bd36a09fe84c272d9c9c0766..d02a039363dda9dbd4eaf43d40e9cdbccb699446 100644 --- a/m4/errno_h.m4 +++ b/m4/errno_h.m4 @@ -1,10 +1,9 @@ -# errno_h.m4 serial 4 -dnl Copyright (C) 2004, 2006, 2008, 2009 Free Software Foundation, Inc. +# errno_h.m4 serial 6 +dnl Copyright (C) 2004, 2006, 2008, 2009, 2010 Free Software 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. -dnl This macro must pass through AC_REQUIRE (never directly invoke it). AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) @@ -35,6 +34,9 @@ booboo #if !defined ENOTSUP booboo #endif +#if !defined ESTALE +booboo +#endif #if !defined ECANCELED booboo #endif diff --git a/m4/error.m4 b/m4/error.m4 index 7c7746e2cc8ddbf6b94471cf666fca7fe8f1a4c9..9f1307a428e297d89b8ef96a9affe82dcf091384 100644 --- a/m4/error.m4 +++ b/m4/error.m4 @@ -1,7 +1,6 @@ -#serial 11 +#serial 12 -# Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2004 Free Software -# Foundation, Inc. +# Copyright (C) 1996-1998, 2001-2004, 2009-2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -18,5 +17,6 @@ AC_DEFUN([gl_ERROR], AC_DEFUN([gl_PREREQ_ERROR], [ AC_REQUIRE([AC_FUNC_STRERROR_R]) + AC_REQUIRE([AC_C_INLINE]) : ]) diff --git a/m4/exclude.m4 b/m4/exclude.m4 index 23727e6322710214e9ce3d13360d19e043bc8184..72328ca299e4c4e58a65c01e4e0de117bd6c7cc5 100644 --- a/m4/exclude.m4 +++ b/m4/exclude.m4 @@ -1,5 +1,6 @@ # exclude.m4 serial 7 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2003, 2005, 2006, 2009, 2010 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. diff --git a/m4/extensions.m4 b/m4/extensions.m4 index ba6d5e190f9f2df6ae1b080fc8f2d16490b5e3b2..7d9458a8d65a0b085d93b695beaaa6685b824c18 100644 --- a/m4/extensions.m4 +++ b/m4/extensions.m4 @@ -1,7 +1,7 @@ -# serial 8 -*- Autoconf -*- +# serial 9 -*- Autoconf -*- # Enable extensions on systems that normally disable them. -# Copyright (C) 2003, 2006-2009 Free Software Foundation, Inc. +# Copyright (C) 2003, 2006-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -12,6 +12,20 @@ # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. +# If autoconf reports a warning +# warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS +# or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS +# the fix is +# 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked +# but always AC_REQUIREd, +# 2) to ensure that for each occurrence of +# AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) +# or +# AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) +# the corresponding gnulib module description has 'extensions' among +# its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS +# invocation occurs in gl_EARLY, not in gl_INIT. + # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, @@ -74,8 +88,8 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ -# define __EXTENSIONS__ 1 - ]AC_INCLUDES_DEFAULT])], +# define __EXTENSIONS__ 1 + ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) test $ac_cv_safe_to_define___extensions__ = yes && diff --git a/m4/fchdir.m4 b/m4/fchdir.m4 index d5dd3e2d065d0e3ab9b7ce5143aab72f9b1a5dca..c05e9255577ca727ff4f5522c944cab98e318ae0 100644 --- a/m4/fchdir.m4 +++ b/m4/fchdir.m4 @@ -1,5 +1,5 @@ -# fchdir.m4 serial 7 -dnl Copyright (C) 2006-2009 Free Software Foundation, Inc. +# fchdir.m4 serial 13 +dnl Copyright (C) 2006-2010 Free Software 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. @@ -8,16 +8,38 @@ AC_DEFUN([gl_FUNC_FCHDIR], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([fchdir]) if test $ac_cv_func_fchdir = no; then REPLACE_FCHDIR=1 AC_LIBOBJ([fchdir]) gl_PREREQ_FCHDIR - AC_DEFINE([FCHDIR_REPLACEMENT], [1], - [Define if gnulib's fchdir() replacement is used.]) + AC_DEFINE([REPLACE_FCHDIR], [1], + [Define to 1 if gnulib's fchdir() replacement is used.]) + dnl We must also replace anything that can manipulate a directory fd, + dnl to keep our bookkeeping up-to-date. We don't have to replace + dnl fstatat, since no platform has fstatat but lacks fchdir. + REPLACE_OPENDIR=1 + REPLACE_CLOSEDIR=1 + REPLACE_DUP=1 gl_REPLACE_OPEN gl_REPLACE_CLOSE + gl_REPLACE_DUP2 + dnl dup3 is already unconditionally replaced + gl_REPLACE_FCNTL gl_REPLACE_DIRENT_H + AC_CACHE_CHECK([whether open can visit directories], + [gl_cv_func_open_directory_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <fcntl.h> +]], [return open(".", O_RDONLY) < 0;])], + [gl_cv_func_open_directory_works=yes], + [gl_cv_func_open_directory_works=no], + [gl_cv_func_open_directory_works="guessing no"])]) + if test "$gl_cv_func_open_directory_works" != yes; then + AC_DEFINE([REPLACE_OPEN_DIRECTORY], [1], [Define to 1 if open() should +work around the inability to open a directory.]) + REPLACE_FSTAT=1 + fi fi ]) diff --git a/m4/fclose.m4 b/m4/fclose.m4 index d10c104fa93526c72321b64cac5ee08d358f27ca..85de6294231a91ec24ee68257f48c3f8543c40d0 100644 --- a/m4/fclose.m4 +++ b/m4/fclose.m4 @@ -1,5 +1,5 @@ -# fclose.m4 serial 1 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +# fclose.m4 serial 2 +dnl Copyright (C) 2008-2010 Free Software 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. @@ -11,8 +11,6 @@ AC_DEFUN([gl_FUNC_FCLOSE], AC_DEFUN([gl_REPLACE_FCLOSE], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) - if test $REPLACE_FCLOSE != 1; then - AC_LIBOBJ([fclose]) - fi REPLACE_FCLOSE=1 + AC_LIBOBJ([fclose]) ]) diff --git a/m4/fcntl-o.m4 b/m4/fcntl-o.m4 new file mode 100644 index 0000000000000000000000000000000000000000..67167cbdab440897db2cf4839a7a34d61bf37ccf --- /dev/null +++ b/m4/fcntl-o.m4 @@ -0,0 +1,81 @@ +# fcntl-o.m4 serial 1 +dnl Copyright (C) 2006, 2009, 2010 Free Software 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. + +dnl Written by Paul Eggert. + +# Test whether the flags O_NOATIME and O_NOFOLLOW actually work. +# Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. +# Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. +AC_DEFUN([gl_FCNTL_O_FLAGS], +[ + dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/types.h> + #include <sys/stat.h> + #include <unistd.h> + #include <fcntl.h> + #ifndef O_NOATIME + #define O_NOATIME 0 + #endif + #ifndef O_NOFOLLOW + #define O_NOFOLLOW 0 + #endif + static int const constants[] = + { + O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, + O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY + }; + ]], + [[ + int status = !constants; + { + static char const sym[] = "conftest.sym"; + if (symlink (".", sym) != 0 + || close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0) + status |= 32; + unlink (sym); + } + { + static char const file[] = "confdefs.h"; + int fd = open (file, O_RDONLY | O_NOATIME); + char c; + struct stat st0, st1; + if (fd < 0 + || fstat (fd, &st0) != 0 + || sleep (1) != 0 + || read (fd, &c, 1) != 1 + || close (fd) != 0 + || stat (file, &st1) != 0 + || st0.st_atime != st1.st_atime) + status |= 64; + } + return status;]])], + [gl_cv_header_working_fcntl_h=yes], + [case $? in #( + 32) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( + 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( + 96) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( + *) gl_cv_header_working_fcntl_h='no';; + esac], + [gl_cv_header_working_fcntl_h=cross-compiling])]) + + case $gl_cv_header_working_fcntl_h in #( + *O_NOATIME* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], + [Define to 1 if O_NOATIME works.]) + + case $gl_cv_header_working_fcntl_h in #( + *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( + *) ac_val=1;; + esac + AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], + [Define to 1 if O_NOFOLLOW works.]) +]) diff --git a/m4/fcntl.m4 b/m4/fcntl.m4 new file mode 100644 index 0000000000000000000000000000000000000000..fcb5f4471114d81b238c81083bc835a93a302d08 --- /dev/null +++ b/m4/fcntl.m4 @@ -0,0 +1,83 @@ +# fcntl.m4 serial 3 +dnl Copyright (C) 2009, 2010 Free Software 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. + +# For now, this module ensures that fcntl() +# - supports F_DUPFD correctly +# - supports or emulates F_DUPFD_CLOEXEC +# - supports F_GETFD +# Still to be ported to mingw: +# - F_SETFD +# - F_GETFL, F_SETFL +# - F_GETOWN, F_SETOWN +# - F_GETLK, F_SETLK, F_SETLKW +AC_DEFUN([gl_FUNC_FCNTL], +[ + dnl Persuade glibc to expose F_DUPFD_CLOEXEC. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CHECK_FUNCS_ONCE([fcntl]) + if test $ac_cv_func_fcntl = no; then + gl_REPLACE_FCNTL + else + dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target + AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly], + [gl_cv_func_fcntl_f_dupfd_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include <fcntl.h> +]], [[return fcntl (0, F_DUPFD, -1) != -1; + ]])], + [gl_cv_func_fcntl_f_dupfd_works=yes], + [gl_cv_func_fcntl_f_dupfd_works=no], + [# Guess that it works on glibc systems + case $host_os in #(( + *-gnu*) gl_cv_func_fcntl_f_dupfd_works="guessing yes";; + *) gl_cv_func_fcntl_f_dupfd_works="guessing no";; + esac])]) + case $gl_cv_func_fcntl_f_dupfd_works in + *yes) ;; + *) gl_REPLACE_FCNTL + AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD + behavior does not match POSIX]) ;; + esac + + dnl Many systems lack F_DUPFD_CLOEXEC + AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC], + [gl_cv_func_fcntl_f_dupfd_cloexec], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include <fcntl.h> +#ifndef F_DUPFD_CLOEXEC +choke me +#endif + ]])], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#ifdef __linux__ +/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace + it to support the semantics on older kernels that failed with EINVAL. */ +choke me +#endif + ]])], + [gl_cv_func_fcntl_f_dupfd_cloexec=yes], + [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"])], + [gl_cv_func_fcntl_f_dupfd_cloexec=no])]) + if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then + gl_REPLACE_FCNTL + dnl No witness macro needed for this bug. + fi + fi +]) + +AC_DEFUN([gl_REPLACE_FCNTL], +[ + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([fcntl]) + if test $ac_cv_func_fcntl = no; then + HAVE_FCNTL=0 + else + REPLACE_FCNTL=1 + fi + AC_LIBOBJ([fcntl]) +]) diff --git a/m4/fcntl_h.m4 b/m4/fcntl_h.m4 index 4a7fc42b2b2f5f98119361049b5d8ad2fbd1c7ea..67122e5ccb9b4d6839c94ca0b44d257c53f638db 100644 --- a/m4/fcntl_h.m4 +++ b/m4/fcntl_h.m4 @@ -1,5 +1,6 @@ +# serial 11 # Configure fcntl.h. -dnl Copyright (C) 2006, 2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2007, 2009, 2010 Free Software 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. @@ -9,74 +10,14 @@ dnl Written by Paul Eggert. AC_DEFUN([gl_FCNTL_H], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) - AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include <sys/types.h> - #include <sys/stat.h> - #include <unistd.h> - #include <fcntl.h> - #ifndef O_NOATIME - #define O_NOATIME 0 - #endif - #ifndef O_NOFOLLOW - #define O_NOFOLLOW 0 - #endif - static int const constants[] = - { - O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, - O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY - }; - ]], - [[ - int status = !constants; - { - static char const sym[] = "conftest.sym"; - if (symlink (".", sym) != 0 - || close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0) - status |= 32; - } - { - static char const file[] = "confdefs.h"; - int fd = open (file, O_RDONLY | O_NOATIME); - char c; - struct stat st0, st1; - if (fd < 0 - || fstat (fd, &st0) != 0 - || sleep (1) != 0 - || read (fd, &c, 1) != 1 - || close (fd) != 0 - || stat (file, &st1) != 0 - || st0.st_atime != st1.st_atime) - status |= 64; - } - return status;]])], - [gl_cv_header_working_fcntl_h=yes], - [case $? in #( - 32) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( - 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( - 96) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( - *) gl_cv_header_working_fcntl_h='no';; - esac], - [gl_cv_header_working_fcntl_h=cross-compiling])]) - - case $gl_cv_header_working_fcntl_h in #( - *O_NOATIME* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], - [Define to 1 if O_NOATIME works.]) - - case $gl_cv_header_working_fcntl_h in #( - *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( - *) ac_val=1;; - esac - AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], - [Define to 1 if O_NOFOLLOW works.]) - + AC_REQUIRE([gl_FCNTL_O_FLAGS]) gl_CHECK_NEXT_HEADERS([fcntl.h]) - FCNTL_H='fcntl.h' - AC_SUBST([FCNTL_H]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, if it is not common + dnl enough to be declared everywhere. + gl_WARN_ON_USE_PREPARE([[#include <fcntl.h> + ]], [fcntl openat]) ]) AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], @@ -84,11 +25,19 @@ AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) ]) AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ - GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) + GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) + GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) + GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) dnl Assume proper GNU behavior unless another module says otherwise. - REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) + HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) + HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) + REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) + REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) + REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) diff --git a/m4/fdopendir.m4 b/m4/fdopendir.m4 new file mode 100644 index 0000000000000000000000000000000000000000..7282d4b063f187a215ae389370dac2f3c139cbde --- /dev/null +++ b/m4/fdopendir.m4 @@ -0,0 +1,38 @@ +# serial 3 +# See if we need to provide fdopendir. + +dnl Copyright (C) 2009-2010 Free Software 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. + +# Written by Eric Blake. + +AC_DEFUN([gl_FUNC_FDOPENDIR], +[ + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + AC_CHECK_FUNCS_ONCE([fdopendir]) + if test $ac_cv_func_fdopendir = no; then + AC_LIBOBJ([openat-proc]) + AC_LIBOBJ([fdopendir]) + gl_REPLACE_DIRENT_H + HAVE_FDOPENDIR=0 + else + AC_CACHE_CHECK([whether fdopendir works], + [gl_cv_func_fdopendir_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include <dirent.h> +#include <fcntl.h> +]], [int fd = open ("conftest.c", O_RDONLY); + if (fd < 0) return 2; + return !!fdopendir (fd);])], + [gl_cv_func_fdopendir_works=yes], + [gl_cv_func_fdopendir_works=no], + [gl_cv_func_fdopendir_works="guessing no"])]) + if test "$gl_cv_func_fdopendir_works" != yes; then + REPLACE_FDOPENDIR=1 + gl_REPLACE_DIRENT_H + AC_LIBOBJ([fdopendir]) + fi + fi +]) diff --git a/m4/fileblocks.m4 b/m4/fileblocks.m4 index 0a9c0a5d2d559252109f29aab379d5d9b28cb4be..7b74ca1ac55bfe0a856e493065bf918d4e4d1edb 100644 --- a/m4/fileblocks.m4 +++ b/m4/fileblocks.m4 @@ -1,5 +1,5 @@ # fileblocks.m4 serial 5 -dnl Copyright (C) 2002, 2005, 2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2006, 2009-2010 Free Software 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. diff --git a/m4/float_h.m4 b/m4/float_h.m4 index d36e3a46caef916dfd5d0c4dd26182d70850b3ae..a74a0d957f2ea89a010102dba7da48add2fccbfe 100644 --- a/m4/float_h.m4 +++ b/m4/float_h.m4 @@ -1,5 +1,5 @@ # float_h.m4 serial 3 -dnl Copyright (C) 2007 Free Software Foundation, Inc. +dnl Copyright (C) 2007, 2009, 2010 Free Software 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. diff --git a/m4/fnmatch.m4 b/m4/fnmatch.m4 index 47bb36b430e97be44474beacdd2743b52239fd63..212ead57291fe6fcb88929b91250c891de3b012f 100644 --- a/m4/fnmatch.m4 +++ b/m4/fnmatch.m4 @@ -1,6 +1,6 @@ -# Check for fnmatch - serial 2. +# Check for fnmatch - serial 4. -# Copyright (C) 2000-2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2000-2007, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -8,119 +8,114 @@ # Autoconf defines AC_FUNC_FNMATCH, but that is obsolescent. # New applications should use the macros below instead. -# _AC_FUNC_FNMATCH_IF([STANDARD = GNU | POSIX], [CACHE_VAR], [IF-TRUE], [IF-FALSE]) -# ------------------------------------------------------------------------- -# If a STANDARD compliant fnmatch is found, run IF-TRUE, otherwise -# IF-FALSE. Use CACHE_VAR. -AC_DEFUN([_AC_FUNC_FNMATCH_IF], -[AC_CACHE_CHECK( - [for working $1 fnmatch], - [$2], - [dnl Some versions of Solaris, SCO, and the GNU C Library - dnl have a broken or incompatible fnmatch. - dnl So we run a test program. If we are cross-compiling, take no chance. - dnl Thanks to John Oleynick, François Pinard, and Paul Eggert for this test. - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#include <fnmatch.h> - static int - y (char const *pattern, char const *string, int flags) - { - return fnmatch (pattern, string, flags) == 0; - } - static int - n (char const *pattern, char const *string, int flags) - { - return fnmatch (pattern, string, flags) == FNM_NOMATCH; - } - ]], - [[char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]"; - char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]"; - static char const A_1[] = { 'A' - 1, 0 }; - static char const A01[] = { 'A' + 1, 0 }; - static char const a_1[] = { 'a' - 1, 0 }; - static char const a01[] = { 'a' + 1, 0 }; - static char const bs_1[] = { '\\\\' - 1, 0 }; - static char const bs01[] = { '\\\\' + 1, 0 }; - return - !(n ("a*", "", 0) - && y ("a*", "abc", 0) - && n ("d*/*1", "d/s/1", FNM_PATHNAME) - && y ("a\\\\bc", "abc", 0) - && n ("a\\\\bc", "abc", FNM_NOESCAPE) - && y ("*x", ".x", 0) - && n ("*x", ".x", FNM_PERIOD) - && y (Apat, "\\\\", 0) && y (Apat, "A", 0) - && y (apat, "\\\\", 0) && y (apat, "a", 0) - && n (Apat, A_1, 0) == ('A' < '\\\\') - && n (apat, a_1, 0) == ('a' < '\\\\') - && y (Apat, A01, 0) == ('A' < '\\\\') - && y (apat, a01, 0) == ('a' < '\\\\') - && y (Apat, bs_1, 0) == ('A' < '\\\\') - && y (apat, bs_1, 0) == ('a' < '\\\\') - && n (Apat, bs01, 0) == ('A' < '\\\\') - && n (apat, bs01, 0) == ('a' < '\\\\') - && ]m4_if([$1], [GNU], - [y ("xxXX", "xXxX", FNM_CASEFOLD) - && y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH) - && n ("d*/*1", "d/s/1", FNM_FILE_NAME) - && y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) - && y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) - && y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR)], - 1))[;]])], - [$2=yes], - [$2=no], - [$2=cross])]) -AS_IF([test $$2 = yes], [$3], [$4]) -])# _AC_FUNC_FNMATCH_IF - - -# _AC_LIBOBJ_FNMATCH -# ------------------ -# Prepare the replacement of fnmatch. -AC_DEFUN([_AC_LIBOBJ_FNMATCH], -[AC_REQUIRE([AC_FUNC_ALLOCA])dnl -AC_REQUIRE([AC_TYPE_MBSTATE_T])dnl -AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>]) -AC_CHECK_FUNCS_ONCE([btowc isblank iswctype mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy]) -AC_CHECK_HEADERS_ONCE([wctype.h]) -AC_LIBOBJ([fnmatch]) -FNMATCH_H=fnmatch.h -])# _AC_LIBOBJ_FNMATCH - - +# Request a POSIX compliant fnmatch function. AC_DEFUN([gl_FUNC_FNMATCH_POSIX], [ + m4_divert_text([DEFAULTS], [gl_fnmatch_required=POSIX]) + + dnl Persuade glibc <fnmatch.h> to declare FNM_CASEFOLD etc. + dnl This is only needed if gl_fnmatch_required = GNU. It would be possible + dnl to avoid this dependency for gl_FUNC_FNMATCH_POSIX by putting + dnl gl_FUNC_FNMATCH_GNU into a separate .m4 file. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + FNMATCH_H= - _AC_FUNC_FNMATCH_IF([POSIX], [ac_cv_func_fnmatch_posix], - [rm -f lib/fnmatch.h], - [_AC_LIBOBJ_FNMATCH]) - if test $ac_cv_func_fnmatch_posix != yes; then + gl_fnmatch_required_lowercase=`echo $gl_fnmatch_required | tr 'A-Z' 'a-z'` + gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}" + AC_CACHE_CHECK([for working $gl_fnmatch_required fnmatch], + [$gl_fnmatch_cache_var], + [dnl Some versions of Solaris, SCO, and the GNU C Library + dnl have a broken or incompatible fnmatch. + dnl So we run a test program. If we are cross-compiling, take no chance. + dnl Thanks to John Oleynick, François Pinard, and Paul Eggert for this + dnl test. + if test $gl_fnmatch_required = GNU; then + gl_fnmatch_gnu_start= + gl_fnmatch_gnu_end= + else + gl_fnmatch_gnu_start='#if 0' + gl_fnmatch_gnu_end='#endif' + fi + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <fnmatch.h> + static int + y (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == 0; + } + static int + n (char const *pattern, char const *string, int flags) + { + return fnmatch (pattern, string, flags) == FNM_NOMATCH; + } + ]], + [[char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]"; + char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]"; + static char const A_1[] = { 'A' - 1, 0 }; + static char const A01[] = { 'A' + 1, 0 }; + static char const a_1[] = { 'a' - 1, 0 }; + static char const a01[] = { 'a' + 1, 0 }; + static char const bs_1[] = { '\\\\' - 1, 0 }; + static char const bs01[] = { '\\\\' + 1, 0 }; + return + !(n ("a*", "", 0) + && y ("a*", "abc", 0) + && n ("d*/*1", "d/s/1", FNM_PATHNAME) + && y ("a\\\\bc", "abc", 0) + && n ("a\\\\bc", "abc", FNM_NOESCAPE) + && y ("*x", ".x", 0) + && n ("*x", ".x", FNM_PERIOD) + && y (Apat, "\\\\", 0) && y (Apat, "A", 0) + && y (apat, "\\\\", 0) && y (apat, "a", 0) + && n (Apat, A_1, 0) == ('A' < '\\\\') + && n (apat, a_1, 0) == ('a' < '\\\\') + && y (Apat, A01, 0) == ('A' < '\\\\') + && y (apat, a01, 0) == ('a' < '\\\\') + && y (Apat, bs_1, 0) == ('A' < '\\\\') + && y (apat, bs_1, 0) == ('a' < '\\\\') + && n (Apat, bs01, 0) == ('A' < '\\\\') + && n (apat, bs01, 0) == ('a' < '\\\\') + $gl_fnmatch_gnu_start + && y ("xxXX", "xXxX", FNM_CASEFOLD) + && y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH) + && n ("d*/*1", "d/s/1", FNM_FILE_NAME) + && y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) + && y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) + && y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR) + $gl_fnmatch_gnu_end + ); + ]])], + [eval "$gl_fnmatch_cache_var=yes"], + [eval "$gl_fnmatch_cache_var=no"], + [eval "$gl_fnmatch_cache_var=\"guessing no\""]) + ]) + eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\"" + if test "$gl_fnmatch_result" = yes; then + dnl Not strictly necessary. Only to avoid spurious leftover files if people + dnl don't do "make distclean". + rm -f "$gl_source_base/fnmatch.h" + else + FNMATCH_H=fnmatch.h + AC_LIBOBJ([fnmatch]) dnl We must choose a different name for our function, since on ELF systems dnl a broken fnmatch() in libc.so would override our fnmatch() if it is dnl compiled into a shared library. - AC_DEFINE([fnmatch], [posix_fnmatch], + AC_DEFINE_UNQUOTED([fnmatch], [${gl_fnmatch_required_lowercase}_fnmatch], [Define to a replacement function name for fnmatch().]) + dnl Prerequisites of lib/fnmatch.c. + AC_REQUIRE([AC_TYPE_MBSTATE_T]) + AC_CHECK_DECLS([isblank], [], [], [#include <ctype.h>]) + AC_CHECK_FUNCS_ONCE([btowc isblank iswctype mbsrtowcs mempcpy wmemchr wmemcpy wmempcpy]) + AC_CHECK_HEADERS_ONCE([wctype.h]) fi AC_SUBST([FNMATCH_H]) ]) - +# Request a POSIX compliant fnmatch function with GNU extensions. AC_DEFUN([gl_FUNC_FNMATCH_GNU], [ - dnl Persuade glibc <fnmatch.h> to declare FNM_CASEFOLD etc. - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + m4_divert_text([INIT_PREPARE], [gl_fnmatch_required=GNU]) - FNMATCH_H= - _AC_FUNC_FNMATCH_IF([GNU], [ac_cv_func_fnmatch_gnu], - [rm -f lib/fnmatch.h], - [_AC_LIBOBJ_FNMATCH]) - if test $ac_cv_func_fnmatch_gnu != yes; then - dnl We must choose a different name for our function, since on ELF systems - dnl a broken fnmatch() in libc.so would override our fnmatch() if it is - dnl compiled into a shared library. - AC_DEFINE([fnmatch], [gnu_fnmatch], - [Define to a replacement function name for fnmatch().]) - fi - AC_SUBST([FNMATCH_H]) + AC_REQUIRE([gl_FUNC_FNMATCH_POSIX]) ]) diff --git a/m4/fpending.m4 b/m4/fpending.m4 index 7860d7074172b2ce44ef3f6a150217513ab99f35..09ae7e3febe6c7c4058b829a220267bda12d9371 100644 --- a/m4/fpending.m4 +++ b/m4/fpending.m4 @@ -1,6 +1,6 @@ -# serial 14 +# serial 15 -# Copyright (C) 2000-2001, 2004-2009 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2004-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -26,55 +26,53 @@ AC_DEFUN([gl_FUNC_FPENDING], AC_CHECK_DECLS([__fpending], , , $fp_headers) if test $ac_cv_func___fpending = no; then AC_CACHE_CHECK( - [how to determine the number of pending output bytes on a stream], - ac_cv_sys_pending_output_n_bytes, + [how to determine the number of pending output bytes on a stream], + ac_cv_sys_pending_output_n_bytes, [ - for ac_expr in \ - \ - '# glibc2' \ - 'fp->_IO_write_ptr - fp->_IO_write_base' \ - \ - '# traditional Unix' \ - 'fp->_ptr - fp->_base' \ - \ - '# BSD' \ - 'fp->_p - fp->_bf._base' \ - \ - '# SCO, Unixware' \ - '(fp->__ptr ? fp->__ptr - fp->__base : 0)' \ - \ - '# QNX' \ - '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \ - \ - '# old glibc?' \ - 'fp->__bufp - fp->__buffer' \ - \ - '# old glibc iostream?' \ - 'fp->_pptr - fp->_pbase' \ - \ - '# emx+gcc' \ - 'fp->_ptr - fp->_buffer' \ - \ - '# VMS' \ - '(*fp)->_ptr - (*fp)->_base' \ - \ - '# e.g., DGUX R4.11; the info is not available' \ - 1 \ - ; do + for ac_expr in \ + \ + '# glibc2' \ + 'fp->_IO_write_ptr - fp->_IO_write_base' \ + \ + '# traditional Unix' \ + 'fp->_ptr - fp->_base' \ + \ + '# BSD' \ + 'fp->_p - fp->_bf._base' \ + \ + '# SCO, Unixware' \ + '(fp->__ptr ? fp->__ptr - fp->__base : 0)' \ + \ + '# QNX' \ + '(fp->_Mode & 0x2000 /*_MWRITE*/ ? fp->_Next - fp->_Buf : 0)' \ + \ + '# old glibc?' \ + 'fp->__bufp - fp->__buffer' \ + \ + '# old glibc iostream?' \ + 'fp->_pptr - fp->_pbase' \ + \ + '# emx+gcc' \ + 'fp->_ptr - fp->_buffer' \ + \ + '# VMS' \ + '(*fp)->_ptr - (*fp)->_base' \ + \ + '# e.g., DGUX R4.11; the info is not available' \ + 1 \ + ; do - # Skip each embedded comment. - case "$ac_expr" in '#'*) continue;; esac + # Skip each embedded comment. + case "$ac_expr" in '#'*) continue;; esac - AC_TRY_COMPILE( - [#include <stdio.h> - ], - [FILE *fp = stdin; (void) ($ac_expr);], - fp_done=yes - ) - test "$fp_done" = yes && break - done + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], + [[FILE *fp = stdin; (void) ($ac_expr);]])], + [fp_done=yes] + ) + test "$fp_done" = yes && break + done - ac_cv_sys_pending_output_n_bytes=$ac_expr + ac_cv_sys_pending_output_n_bytes=$ac_expr ] ) AC_DEFINE_UNQUOTED([PENDING_OUTPUT_N_BYTES], diff --git a/m4/fseeko.m4 b/m4/fseeko.m4 index 3d773656886d4f9811ee80be0fe07a37f347a9c9..5f7f97729c067cdbaec9527fefd3cabe4020e9cc 100644 --- a/m4/fseeko.m4 +++ b/m4/fseeko.m4 @@ -1,5 +1,5 @@ -# fseeko.m4 serial 4 -dnl Copyright (C) 2007-2008 Free Software Foundation, Inc. +# fseeko.m4 serial 7 +dnl Copyright (C) 2007-2010 Free Software 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. @@ -15,13 +15,12 @@ AC_DEFUN([gl_FUNC_FSEEKO], AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko], [ - AC_TRY_LINK([#include <stdio.h>], [fseeko (stdin, 0, 0);], - [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h> +]], [fseeko (stdin, 0, 0);])], + [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) ]) - if test $gl_cv_func_fseeko = no; then - HAVE_FSEEKO=0 - gl_REPLACE_FSEEKO - elif test $gl_cv_var_stdin_large_offset = no; then + if test $gl_cv_func_fseeko = no \ + || test $gl_cv_var_stdin_large_offset = no; then gl_REPLACE_FSEEKO fi ]) @@ -31,4 +30,6 @@ AC_DEFUN([gl_REPLACE_FSEEKO], AC_LIBOBJ([fseeko]) AC_REQUIRE([gl_STDIO_H_DEFAULTS]) REPLACE_FSEEKO=1 + dnl If we are also using the fseek module, then fseek needs replacing, too. + m4_ifdef([gl_REPLACE_FSEEK], [gl_REPLACE_FSEEK]) ]) diff --git a/m4/ftruncate.m4 b/m4/ftruncate.m4 index e43c15f2a52a7e929d88db418cc00c9d6d9f7039..95e371b0c04b092838618540d49bd109a8965f03 100644 --- a/m4/ftruncate.m4 +++ b/m4/ftruncate.m4 @@ -2,7 +2,7 @@ # See if we need to emulate a missing ftruncate function using fcntl or chsize. -# Copyright (C) 2000, 2001, 2003-2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -30,10 +30,10 @@ AC_DEFUN([gl_FUNC_FTRUNCATE], # a bug report to inform us about it. if test x"$SKIP_FTRUNCATE_CHECK" != xyes; then AC_MSG_FAILURE([Your system lacks the ftruncate function. - Please report this, along with the output of "uname -a", to the - bug-coreutils@gnu.org mailing list. To continue past this point, - rerun configure with SKIP_FTRUNCATE_CHECK=yes. - E.g., ./configure SKIP_FTRUNCATE_CHECK=yes]) + Please report this, along with the output of "uname -a", to the + bug-coreutils@gnu.org mailing list. To continue past this point, + rerun configure with SKIP_FTRUNCATE_CHECK=yes. + E.g., ./configure SKIP_FTRUNCATE_CHECK=yes]) fi esac fi diff --git a/m4/getcwd-abort-bug.m4 b/m4/getcwd-abort-bug.m4 index 07e2c18cc5335359fe52be9b6634694d1acd31a8..59c3daaa52ba3134c9907a60be2abb5d389aed83 100644 --- a/m4/getcwd-abort-bug.m4 +++ b/m4/getcwd-abort-bug.m4 @@ -3,7 +3,7 @@ # name is unusually large. Any length between 4k and 16k trigger the bug # when using glibc-2.4.90-9 or older. -# Copyright (C) 2006, 2009 Free Software Foundation, Inc. +# Copyright (C) 2006, 2009, 2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -23,7 +23,7 @@ AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG], ac_clean_files="$ac_clean_files confdir-14B---" AC_RUN_IFELSE( [AC_LANG_SOURCE( - [[ + [[ #include <stdlib.h> #include <unistd.h> #include <limits.h> @@ -69,14 +69,14 @@ main () initial_cwd_len = strlen (cwd); free (cwd); desired_depth = ((TARGET_LEN - 1 - initial_cwd_len) - / (1 + strlen (dir_name))); + / (1 + strlen (dir_name))); for (d = 0; d < desired_depth; d++) { if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0) - { - fail = 3; /* Unable to construct deep hierarchy. */ - break; - } + { + fail = 3; /* Unable to construct deep hierarchy. */ + break; + } } /* If libc has the bug in question, this invocation of getcwd @@ -91,7 +91,7 @@ main () while (0 < d--) { if (chdir ("..") < 0) - break; + break; rmdir (dir_name); } diff --git a/m4/getcwd-path-max.m4 b/m4/getcwd-path-max.m4 index 14784999d454a312d08a637dc3cb59489eb12919..ecf6192842e11b38144840c6869d8c02b2c21657 100644 --- a/m4/getcwd-path-max.m4 +++ b/m4/getcwd-path-max.m4 @@ -6,7 +6,7 @@ # I've heard that this is due to a Linux kernel bug, and that it has # been fixed between 2.4.21-pre3 and 2.4.21-pre4. */ -# Copyright (C) 2003-2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2003-2007, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -23,7 +23,7 @@ AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX], ac_clean_files="$ac_clean_files confdir3" AC_RUN_IFELSE( [AC_LANG_SOURCE( - [[ + [[ #include <errno.h> #include <stdlib.h> #include <unistd.h> @@ -77,7 +77,7 @@ main () exit (0); #else char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) - + DIR_NAME_SIZE + BUF_SLOP]; + + DIR_NAME_SIZE + BUF_SLOP]; char *cwd = getcwd (buf, PATH_MAX); size_t initial_cwd_len; size_t cwd_len; @@ -96,58 +96,58 @@ main () cwd_len += DIR_NAME_SIZE; /* 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. */ + 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. */ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0) - { - if (! (errno == ERANGE || is_ENAMETOOLONG (errno))) - fail = 2; - break; - } + { + if (! (errno == ERANGE || is_ENAMETOOLONG (errno))) + fail = 2; + break; + } if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE) - { - c = getcwd (buf, PATH_MAX); - if (!c && errno == ENOENT) - { - fail = 1; - break; - } - if (c || ! (errno == ERANGE || is_ENAMETOOLONG (errno))) - { - fail = 2; - break; - } - } + { + c = getcwd (buf, PATH_MAX); + if (!c && errno == ENOENT) + { + fail = 1; + break; + } + if (c || ! (errno == ERANGE || is_ENAMETOOLONG (errno))) + { + fail = 2; + break; + } + } if (dotdot_max <= cwd_len - initial_cwd_len) - { - if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len) - break; - c = getcwd (buf, cwd_len + 1); - if (!c) - { - if (! (errno == ERANGE || errno == ENOENT - || is_ENAMETOOLONG (errno))) - { - fail = 2; - break; - } - if (AT_FDCWD || errno == ERANGE || errno == ENOENT) - { - fail = 1; - break; - } - } - } + { + if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len) + break; + c = getcwd (buf, cwd_len + 1); + if (!c) + { + if (! (errno == ERANGE || errno == ENOENT + || is_ENAMETOOLONG (errno))) + { + fail = 2; + break; + } + if (AT_FDCWD || errno == ERANGE || errno == ENOENT) + { + fail = 1; + break; + } + } + } if (c && strlen (c) != cwd_len) - { - fail = 2; - break; - } + { + fail = 2; + break; + } ++n_chdirs; } @@ -161,10 +161,10 @@ main () rmdir (DIR_NAME); for (i = 0; i <= n_chdirs; i++) { - if (chdir ("..") < 0) - break; - if (rmdir (DIR_NAME) != 0) - break; + if (chdir ("..") < 0) + break; + if (rmdir (DIR_NAME) != 0) + break; } } diff --git a/m4/getcwd.m4 b/m4/getcwd.m4 index 6ebe2fce4d03d0119299e4c70d0a6ce2b709ee70..df9c96869fd3646b7b0e27bf0af0a41915088feb 100644 --- a/m4/getcwd.m4 +++ b/m4/getcwd.m4 @@ -1,53 +1,69 @@ # getcwd.m4 - check for working getcwd that is compatible with glibc -# Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software +# Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. +# serial 2 AC_DEFUN([gl_FUNC_GETCWD_NULL], [ AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result], [gl_cv_func_getcwd_null], - [AC_TRY_RUN( - [ -# include <stdlib.h> -# include <unistd.h> -# ifndef getcwd - char *getcwd (); -# endif - int - main () - { - if (chdir ("/") != 0) - exit (1); - else - { - char *f = getcwd (NULL, 0); - exit (! (f && f[0] == '/' && !f[1])); - } - }], - [gl_cv_func_getcwd_null=yes], - [gl_cv_func_getcwd_null=no], - [gl_cv_func_getcwd_null=no])]) + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +# include <unistd.h> +# ifndef getcwd + char *getcwd (); +# endif +]], [[ +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +/* mingw cwd does not start with '/', but getcwd does allocate. */ +#else + if (chdir ("/") != 0) + return 1; + else + { + char *f = getcwd (NULL, 0); + return ! (f && f[0] == '/' && !f[1]); + } +#endif + ]])], + [gl_cv_func_getcwd_null=yes], + [gl_cv_func_getcwd_null=no], + [[ + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on Cygwin. + cygwin*) gl_cv_func_getcwd_null="guessing yes";; + # Guess yes on mingw. + mingw*) gl_cv_func_getcwd_null="guessing yes";; + # If we don't know, assume the worst. + *) gl_cv_func_getcwd_null="guessing no";; + esac + ]])]) ]) AC_DEFUN([gl_FUNC_GETCWD], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETCWD_NULL]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_abort_bug=no - case $gl_cv_func_getcwd_null in - yes) + case $gl_cv_func_getcwd_null,$host_os in + *,mingw*) + gl_cv_func_getcwd_path_max=yes;; + yes,*) gl_FUNC_GETCWD_PATH_MAX gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes]);; esac case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_path_max,$gl_abort_bug in - yes,yes,no) ;; + *yes,yes,no) ;; *) REPLACE_GETCWD=1 AC_LIBOBJ([getcwd]) diff --git a/m4/getdate.m4 b/m4/getdate.m4 index 67f9c6566da136f77dc1f5592a62271c75ff9114..5f98229f6a9306134f3fe197716f21c1d46c3c77 100644 --- a/m4/getdate.m4 +++ b/m4/getdate.m4 @@ -1,5 +1,5 @@ -# getdate.m4 serial 14 -dnl Copyright (C) 2002-2006, 2008, 2009 Free Software Foundation, Inc. +# getdate.m4 serial 16 +dnl Copyright (C) 2002-2006, 2008-2010 Free Software 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. @@ -13,9 +13,9 @@ dnl static variables (even though gcc supports this in pre-C99 mode). AC_DEFUN([gl_C_COMPOUND_LITERALS], [ AC_CACHE_CHECK([for compound literals], [gl_cv_compound_literals], - [AC_TRY_COMPILE([struct s { int i, j; };], - [struct s t = (struct s) { 3, 4 }; - if (t.i != 0) return 0;], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[struct s { int i, j; };]], + [[struct s t = (struct s) { 3, 4 }; + if (t.i != 0) return 0;]])], gl_cv_compound_literals=yes, gl_cv_compound_literals=no)]) if test $gl_cv_compound_literals = yes; then @@ -36,4 +36,18 @@ AC_DEFUN([gl_GETDATE], AC_STRUCT_TIMEZONE AC_REQUIRE([gl_CLOCK_TIME]) AC_REQUIRE([gl_TM_GMTOFF]) + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([[ +#include <time.h> /* for time_t */ +#include <limits.h> /* for CHAR_BIT, LONG_MIN, LONG_MAX */ +#define TYPE_MINIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) +#define TYPE_MAXIMUM(t) \ + ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) +typedef int verify_min[2 * (LONG_MIN <= TYPE_MINIMUM (time_t)) - 1]; +typedef int verify_max[2 * (TYPE_MAXIMUM (time_t) <= LONG_MAX) - 1]; + ]])], + [AC_DEFINE([TIME_T_FITS_IN_LONG_INT], [1], + [Define to 1 if all 'time_t' values fit in a 'long int'.]) + ]) ]) diff --git a/m4/getdelim.m4 b/m4/getdelim.m4 index 7760f8279bd9b8df7ab5982781f656068454d5e6..4beb1501c2bec8f54bc90d748233c546a8cac514 100644 --- a/m4/getdelim.m4 +++ b/m4/getdelim.m4 @@ -1,6 +1,6 @@ -# getdelim.m4 serial 5 +# getdelim.m4 serial 6 -dnl Copyright (C) 2005, 2006, 2007 Free Software dnl Foundation, Inc. +dnl Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc. dnl dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -15,16 +15,71 @@ AC_DEFUN([gl_FUNC_GETDELIM], dnl Persuade glibc <stdio.h> to declare getdelim(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - AC_REPLACE_FUNCS([getdelim]) AC_CHECK_DECLS_ONCE([getdelim]) - if test $ac_cv_func_getdelim = no; then - gl_PREREQ_GETDELIM + AC_CHECK_FUNCS_ONCE([getdelim]) + if test $ac_cv_func_getdelim = yes; then + dnl Found it in some library. Verify that it works. + AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim], + [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +# include <stdio.h> +# include <stdlib.h> +# include <string.h> + int main () + { + FILE *in = fopen ("./conftest.data", "r"); + if (!in) + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getdelim (&line, &siz, '\n', in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + return 1; + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getdelim (&line, &siz, '\n', in) == -1) + return 1; + } + return 0; + } + ]])], [gl_cv_func_working_getdelim=yes] dnl The library version works. + , [gl_cv_func_working_getdelim=no] dnl The library version does NOT work. + , dnl We're cross compiling. Assume it works on glibc2 systems. + [AC_EGREP_CPP([Lucky GNU user], + [ +#include <features.h> +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ >= 2) + Lucky GNU user + #endif +#endif + ], + [gl_cv_func_working_getdelim=yes], + [gl_cv_func_working_getdelim=no])] + )]) + else + gl_cv_func_working_getdelim=no fi if test $ac_cv_have_decl_getdelim = no; then HAVE_DECL_GETDELIM=0 fi + + if test $gl_cv_func_working_getdelim = no; then + if test $ac_cv_func_getdelim = yes; then + REPLACE_GETDELIM=1 + fi + AC_LIBOBJ([getdelim]) + gl_PREREQ_GETDELIM + fi ]) # Prerequisites of lib/getdelim.c. diff --git a/m4/getdtablesize.m4 b/m4/getdtablesize.m4 new file mode 100644 index 0000000000000000000000000000000000000000..d238628455653b4392691ad38a1690fb107fd4cd --- /dev/null +++ b/m4/getdtablesize.m4 @@ -0,0 +1,15 @@ +# getdtablesize.m4 serial 1 +dnl Copyright (C) 2008, 2009, 2010 Free Software 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. + +AC_DEFUN([gl_FUNC_GETDTABLESIZE], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([getdtablesize]) + if test $ac_cv_func_getdtablesize != yes; then + HAVE_GETDTABLESIZE=0 + AC_LIBOBJ([getdtablesize]) + fi +]) diff --git a/m4/getline.m4 b/m4/getline.m4 index 99933455f094b07d37d675e109de3b6483537f91..83005600d65b23657095a15d8b6d246d62f8da0e 100644 --- a/m4/getline.m4 +++ b/m4/getline.m4 @@ -1,6 +1,7 @@ -# getline.m4 serial 19 +# getline.m4 serial 21 -dnl Copyright (C) 1998-2003, 2005-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1998-2003, 2005-2007, 2009-2010 Free Software Foundation, +dnl Inc. dnl dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -23,29 +24,42 @@ AC_DEFUN([gl_FUNC_GETLINE], gl_getline_needs_run_time_check=no AC_CHECK_FUNC([getline], - dnl Found it in some library. Verify that it works. - gl_getline_needs_run_time_check=yes, - am_cv_func_working_getline=no) + [dnl Found it in some library. Verify that it works. + gl_getline_needs_run_time_check=yes], + [am_cv_func_working_getline=no]) if test $gl_getline_needs_run_time_check = yes; then AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline], - [echo fooN |tr -d '\012'|tr N '\012' > conftest.data - AC_TRY_RUN([ + [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data + AC_RUN_IFELSE([AC_LANG_SOURCE([[ # include <stdio.h> # include <stdlib.h> # include <string.h> int main () - { /* Based on a test program from Karl Heuer. */ - char *line = NULL; - size_t siz = 0; - int len; + { FILE *in = fopen ("./conftest.data", "r"); if (!in) - return 1; - len = getline (&line, &siz, in); - exit ((len == 4 && line && strcmp (line, "foo\n") == 0) ? 0 : 1); + return 1; + { + /* Test result for a NULL buffer and a zero size. + Based on a test program from Karl Heuer. */ + char *line = NULL; + size_t siz = 0; + int len = getline (&line, &siz, in); + if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) + return 1; + } + { + /* Test result for a NULL buffer and a non-zero size. + This crashes on FreeBSD 8.0. */ + char *line = NULL; + size_t siz = (size_t)(~0) / 4; + if (getline (&line, &siz, in) == -1) + return 1; + } + return 0; } - ], am_cv_func_working_getline=yes dnl The library version works. - , am_cv_func_working_getline=no dnl The library version does NOT work. + ]])], [am_cv_func_working_getline=yes] dnl The library version works. + , [am_cv_func_working_getline=no] dnl The library version does NOT work. , dnl We're cross compiling. Assume it works on glibc2 systems. [AC_EGREP_CPP([Lucky GNU user], [ @@ -66,6 +80,9 @@ AC_DEFUN([gl_FUNC_GETLINE], fi if test $am_cv_func_working_getline = no; then + dnl Set REPLACE_GETLINE always: Even if we have not found the broken + dnl getline function among $LIBS, it may exist in libinet and the + dnl executable may be linked with -linet. REPLACE_GETLINE=1 AC_LIBOBJ([getline]) diff --git a/m4/getopt.m4 b/m4/getopt.m4 index 9b683c2febbd599f6a8351105b01ff4633996b33..a19805eaa4041a41462fd3001146e4dd70ad8f73 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,82 +1,272 @@ -# getopt.m4 serial 14 -dnl Copyright (C) 2002-2006, 2008 Free Software Foundation, Inc. +# getopt.m4 serial 24 +dnl Copyright (C) 2002-2006, 2008-2010 Free Software 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. -# The getopt module assume you want GNU getopt, with getopt_long etc, -# rather than vanilla POSIX getopt. This means your code should -# always include <getopt.h> for the getopt prototypes. +# Request a POSIX compliant getopt function. +AC_DEFUN([gl_FUNC_GETOPT_POSIX], +[ + m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + gl_GETOPT_IFELSE([ + gl_REPLACE_GETOPT + ], + []) +]) + +# Request a POSIX compliant getopt function with GNU extensions (such as +# options with optional arguments) and the functions getopt_long, +# getopt_long_only. +AC_DEFUN([gl_FUNC_GETOPT_GNU], +[ + m4_divert_text([INIT_PREPARE], [gl_getopt_required=GNU]) + + AC_REQUIRE([gl_FUNC_GETOPT_POSIX]) +]) -AC_DEFUN([gl_GETOPT_SUBSTITUTE], +# Request the gnulib implementation of the getopt functions unconditionally. +# argp.m4 uses this. +AC_DEFUN([gl_REPLACE_GETOPT], [ + dnl Arrange for getopt.h to be created. + gl_GETOPT_SUBSTITUTE_HEADER + dnl Arrange for unistd.h to include getopt.h. + GNULIB_UNISTD_H_GETOPT=1 + dnl Arrange to compile the getopt implementation. AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) - gl_GETOPT_SUBSTITUTE_HEADER gl_PREREQ_GETOPT ]) -AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], +# emacs' configure.in uses this. +AC_DEFUN([gl_GETOPT_IFELSE], [ - GETOPT_H=getopt.h - AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], - [Define to rpl_ if the getopt replacement functions and variables - should be used.]) - AC_SUBST([GETOPT_H]) + AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) + AS_IF([test -n "$gl_replace_getopt"], [$1], [$2]) ]) +# Determine whether to replace the entire getopt facility. AC_DEFUN([gl_GETOPT_CHECK_HEADERS], [ - if test -z "$GETOPT_H"; then - AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Persuade Solaris <unistd.h> to declare optarg, optind, opterr, optopt. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + gl_CHECK_NEXT_HEADERS([getopt.h]) + AC_CHECK_HEADERS_ONCE([getopt.h]) + if test $ac_cv_header_getopt_h = yes; then + HAVE_GETOPT_H=1 + else + HAVE_GETOPT_H=0 + fi + AC_SUBST([HAVE_GETOPT_H]) + + gl_replace_getopt= + + dnl Test whether <getopt.h> is available. + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + AC_CHECK_HEADERS([getopt.h], [], [gl_replace_getopt=yes]) + fi + + dnl Test whether the function getopt_long is available. + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + AC_CHECK_FUNCS([getopt_long_only], [], [gl_replace_getopt=yes]) fi - if test -z "$GETOPT_H"; then - AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h]) + dnl BSD getopt_long uses an incompatible method to reset option processing. + dnl Existence of the variable, in and of itself, is not a reason to replace + dnl getopt, but knowledge of the variable is needed to determine how to + dnl reset and whether a reset reparses the environment. + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + AC_CHECK_DECLS([optreset], [], [], + [[#include <getopt.h>]]) fi - dnl BSD getopt_long uses an incompatible method to reset option processing, - dnl and (as of 2004-10-15) mishandles optional option-arguments. - if test -z "$GETOPT_H"; then - AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>]) + dnl mingw's getopt (in libmingwex.a) does weird things when the options + dnl strings starts with '+' and it's not the first call. Some internal state + dnl is left over from earlier calls, and neither setting optind = 0 nor + dnl setting optreset = 1 get rid of this internal state. + dnl POSIX is silent on optind vs. optreset, so we allow either behavior. + if test -z "$gl_replace_getopt"; then + AC_CACHE_CHECK([whether getopt is POSIX compatible], + [gl_cv_func_getopt_posix], + [ + dnl This test fails on mingw and succeeds on all other platforms. + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include <unistd.h> +#include <stdlib.h> +#include <string.h> + +#if !HAVE_DECL_OPTRESET +# define OPTIND_MIN 0 +#else +# define OPTIND_MIN 1 +#endif + +int +main () +{ + { + int argc = 0; + char *argv[10]; + int c; + + argv[argc++] = "program"; + argv[argc++] = "-a"; + argv[argc++] = "foo"; + argv[argc++] = "bar"; + argv[argc] = NULL; + optind = OPTIND_MIN; + opterr = 0; + + c = getopt (argc, argv, "ab"); + if (!(c == 'a')) + return 1; + c = getopt (argc, argv, "ab"); + if (!(c == -1)) + return 2; + if (!(optind == 2)) + return 3; + } + /* Some internal state exists at this point. */ + { + int argc = 0; + char *argv[10]; + int c; + + argv[argc++] = "program"; + argv[argc++] = "donald"; + argv[argc++] = "-p"; + argv[argc++] = "billy"; + argv[argc++] = "duck"; + argv[argc++] = "-a"; + argv[argc++] = "bar"; + argv[argc] = NULL; + optind = OPTIND_MIN; + opterr = 0; + + c = getopt (argc, argv, "+abp:q:"); + if (!(c == -1)) + return 4; + if (!(strcmp (argv[0], "program") == 0)) + return 5; + if (!(strcmp (argv[1], "donald") == 0)) + return 6; + if (!(strcmp (argv[2], "-p") == 0)) + return 7; + if (!(strcmp (argv[3], "billy") == 0)) + return 8; + if (!(strcmp (argv[4], "duck") == 0)) + return 9; + if (!(strcmp (argv[5], "-a") == 0)) + return 10; + if (!(strcmp (argv[6], "bar") == 0)) + return 11; + if (!(optind == 1)) + return 12; + } + + return 0; +} +]])], + [gl_cv_func_getopt_posix=yes], [gl_cv_func_getopt_posix=no], + [case "$host_os" in + mingw*) gl_cv_func_getopt_posix="guessing no";; + *) gl_cv_func_getopt_posix="guessing yes";; + esac + ]) + ]) + case "$gl_cv_func_getopt_posix" in + *no) gl_replace_getopt=yes ;; + esac fi - dnl Solaris 10 getopt doesn't handle `+' as a leading character in an - dnl option string (as of 2005-05-05). - if test -z "$GETOPT_H"; then - AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[#include <getopt.h>]], - [[ - char *myargv[3]; - myargv[0] = "conftest"; - myargv[1] = "-+"; - myargv[2] = 0; - return getopt (2, myargv, "+a") != '?'; - ]])], - [gl_cv_func_gnu_getopt=yes], - [gl_cv_func_gnu_getopt=no], - [dnl cross compiling - pessimistically guess based on decls - dnl Solaris 10 getopt doesn't handle `+' as a leading character in an - dnl option string (as of 2005-05-05). - AC_CHECK_DECL([getopt_clip], - [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes], - [#include <getopt.h>])])]) - if test "$gl_cv_func_gnu_getopt" = "no"; then - GETOPT_H=getopt.h + if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then + AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_getopt_gnu], + [# Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the + # optstring is necessary for programs like m4 that have POSIX-mandated + # semantics for supporting options interspersed with files. + # Also, since getopt_long is a GNU extension, we require optind=0. + gl_had_POSIXLY_CORRECT=${POSIXLY_CORRECT:+yes} + POSIXLY_CORRECT=1 + export POSIXLY_CORRECT + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([[#include <getopt.h> + #include <stddef.h> + #include <string.h> + ]], [[ + /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, + and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, + OSF/1 5.1, Solaris 10. */ + { + char *myargv[3]; + myargv[0] = "conftest"; + myargv[1] = "-+"; + myargv[2] = 0; + opterr = 0; + if (getopt (2, myargv, "+a") != '?') + return 1; + } + /* This code succeeds on glibc 2.8, mingw, + and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, + IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ + { + char *argv[] = { "program", "-p", "foo", "bar", NULL }; + + optind = 1; + if (getopt (4, argv, "p::") != 'p') + return 2; + if (optarg != NULL) + return 3; + if (getopt (4, argv, "p::") != -1) + return 4; + if (optind != 2) + return 5; + } + /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ + { + char *argv[] = { "program", "foo", "-p", NULL }; + optind = 0; + if (getopt (3, argv, "-p") != 1) + return 6; + if (getopt (3, argv, "-p") != 'p') + return 7; + } + return 0; + ]])], + [gl_cv_func_getopt_gnu=yes], + [gl_cv_func_getopt_gnu=no], + [dnl Cross compiling. Guess based on host and declarations. + case $host_os:$ac_cv_have_decl_optreset in + *-gnu*:* | mingw*:*) gl_cv_func_getopt_gnu=no;; + *:yes) gl_cv_func_getopt_gnu=no;; + *) gl_cv_func_getopt_gnu=yes;; + esac + ]) + if test "$gl_had_POSIXLY_CORRECT" != yes; then + AS_UNSET([POSIXLY_CORRECT]) + fi + ]) + if test "$gl_cv_func_getopt_gnu" = "no"; then + gl_replace_getopt=yes fi fi ]) -AC_DEFUN([gl_GETOPT_IFELSE], +# emacs' configure.in uses this. +AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], [ - AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) - AS_IF([test -n "$GETOPT_H"], [$1], [$2]) + GETOPT_H=getopt.h + AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], + [Define to rpl_ if the getopt replacement functions and variables + should be used.]) + AC_SUBST([GETOPT_H]) ]) -AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])]) - # Prerequisites of lib/getopt*. +# emacs' configure.in uses this. AC_DEFUN([gl_PREREQ_GETOPT], [ AC_CHECK_DECLS_ONCE([getenv]) diff --git a/m4/getpagesize.m4 b/m4/getpagesize.m4 index 0d07a3a53bb95aa2dd8f387630f0c7578cac1e50..8968516e2c7f462e4ed028cd286193d46304bb82 100644 --- a/m4/getpagesize.m4 +++ b/m4/getpagesize.m4 @@ -1,5 +1,6 @@ # getpagesize.m4 serial 7 -dnl Copyright (C) 2002, 2004-2005, 2007 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2010 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. diff --git a/m4/gettext.m4 b/m4/gettext.m4 index ffec9dedff08c686bc2e8e29004c2a8b3a054c63..9f0762ed8eec3b8252131f715f3bb3ed0b9dfffb 100644 --- a/m4/gettext.m4 +++ b/m4/gettext.m4 @@ -1,5 +1,5 @@ # gettext.m4 serial 62 (gettext-0.18) -dnl Copyright (C) 1995-2009 Free Software Foundation, Inc. +dnl Copyright (C) 1995-2010 Free Software 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. diff --git a/m4/gettime.m4 b/m4/gettime.m4 index 11643e8422f4f69be09fa061d09c935b4bd3f154..9e7fde4272f5f60d1e3942501fab0a9ab314c5f0 100644 --- a/m4/gettime.m4 +++ b/m4/gettime.m4 @@ -1,5 +1,5 @@ # gettime.m4 serial 7 -dnl Copyright (C) 2002, 2004, 2005, 2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004-2006, 2009-2010 Free Software 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. diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4 index 0fec7d42b7c7dfcca7f73e679b849b351d2b8315..709a4d4fb4723c132082ced5fdbc454945985743 100644 --- a/m4/gettimeofday.m4 +++ b/m4/gettimeofday.m4 @@ -1,6 +1,6 @@ -# serial 12 +# serial 15 -# Copyright (C) 2001-2003, 2005, 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2001-2003, 2005, 2007, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -11,33 +11,53 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_SYS_TIME_H]) + AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([gettimeofday]) - AC_CACHE_CHECK([for gettimeofday with POSIX signature], - [gl_cv_func_gettimeofday_posix_signature], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include <sys/time.h> - struct timeval c; - ]], - [[ - int (*f) (struct timeval *restrict, void *restrict) = gettimeofday; - int x = f (&c, 0); - return !(x | c.tv_sec | c.tv_usec); - ]])], - [gl_cv_func_gettimeofday_posix_signature=yes], - [gl_cv_func_gettimeofday_posix_signature=no])]) - - gl_FUNC_GETTIMEOFDAY_CLOBBER - - if test $gl_cv_func_gettimeofday_posix_signature != yes; then - REPLACE_GETTIMEOFDAY=1 - SYS_TIME_H=sys/time.h - if test $gl_cv_func_gettimeofday_clobber != yes; then + gl_gettimeofday_timezone=void + if test $ac_cv_func_gettimeofday != yes; then + HAVE_GETTIMEOFDAY=0 + AC_LIBOBJ([gettimeofday]) + gl_PREREQ_GETTIMEOFDAY + else + gl_FUNC_GETTIMEOFDAY_CLOBBER + AC_CACHE_CHECK([for gettimeofday with POSIX signature], + [gl_cv_func_gettimeofday_posix_signature], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/time.h> + struct timeval c; + int gettimeofday (struct timeval *restrict, void *restrict); + ]], + [[/* glibc uses struct timezone * rather than the POSIX void * + if _GNU_SOURCE is defined. However, since the only portable + use of gettimeofday uses NULL as the second parameter, and + since the glibc definition is actually more typesafe, it is + not worth wrapping this to get a compliant signature. */ + int (*f) (struct timeval *restrict, void *restrict) + = gettimeofday; + int x = f (&c, 0); + return !(x | c.tv_sec | c.tv_usec); + ]])], + [gl_cv_func_gettimeofday_posix_signature=yes], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/time.h> +int gettimeofday (struct timeval *restrict, struct timezone *restrict); + ]])], + [gl_cv_func_gettimeofday_posix_signature=almost], + [gl_cv_func_gettimeofday_posix_signature=no])])]) + if test $gl_cv_func_gettimeofday_posix_signature = almost; then + gl_gettimeofday_timezone='struct timezone' + elif test $gl_cv_func_gettimeofday_posix_signature != yes; then + REPLACE_GETTIMEOFDAY=1 AC_LIBOBJ([gettimeofday]) gl_PREREQ_GETTIMEOFDAY fi fi + AC_DEFINE_UNQUOTED([GETTIMEOFDAY_TIMEZONE], [$gl_gettimeofday_timezone], + [Define this to 'void' or 'struct timezone' to match the system's + declaration of the second argument to gettimeofday.]) ]) @@ -56,21 +76,21 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER], [gl_cv_func_gettimeofday_clobber], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( - [[#include <string.h> - #include <sys/time.h> - #include <time.h> - #include <stdlib.h> - ]], - [[ - time_t t = 0; - struct tm *lt; - struct tm saved_lt; - struct timeval tv; - lt = localtime (&t); - saved_lt = *lt; - gettimeofday (&tv, NULL); - return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; - ]])], + [[#include <string.h> + #include <sys/time.h> + #include <time.h> + #include <stdlib.h> + ]], + [[ + time_t t = 0; + struct tm *lt; + struct tm saved_lt; + struct timeval tv; + lt = localtime (&t); + saved_lt = *lt; + gettimeofday (&tv, NULL); + return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0; + ]])], [gl_cv_func_gettimeofday_clobber=no], [gl_cv_func_gettimeofday_clobber=yes], dnl When crosscompiling, assume it is broken. @@ -78,7 +98,6 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER], if test $gl_cv_func_gettimeofday_clobber = yes; then REPLACE_GETTIMEOFDAY=1 - SYS_TIME_H=sys/time.h gl_GETTIMEOFDAY_REPLACE_LOCALTIME AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [1], [Define if gettimeofday clobbers the localtime buffer.]) diff --git a/m4/glibc21.m4 b/m4/glibc21.m4 index 93fbf4745922719a47db7f0300eb1f202310eaf6..68ada9d4d5b844e3ff5be076ec1156c542f6630e 100644 --- a/m4/glibc21.m4 +++ b/m4/glibc21.m4 @@ -1,5 +1,5 @@ # glibc21.m4 serial 4 -dnl Copyright (C) 2000-2002, 2004, 2008 Free Software Foundation, Inc. +dnl Copyright (C) 2000-2002, 2004, 2008-2010 Free Software 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. @@ -12,16 +12,16 @@ AC_DEFUN([gl_GLIBC21], AC_CACHE_CHECK([whether we are using the GNU C Library 2.1 or newer], [ac_cv_gnu_library_2_1], [AC_EGREP_CPP([Lucky GNU user], - [ + [ #include <features.h> #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif - ], - [ac_cv_gnu_library_2_1=yes], - [ac_cv_gnu_library_2_1=no]) + ], + [ac_cv_gnu_library_2_1=yes], + [ac_cv_gnu_library_2_1=no]) ] ) AC_SUBST([GLIBC21]) diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index 50e399aa1c18f37ff4f1737df0db707d6ecef6a6..80ba26332fa6600589b57ba5efe4083dc5569110 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,5 +1,5 @@ -# gnulib-common.m4 serial 10 -dnl Copyright (C) 2007-2009 Free Software Foundation, Inc. +# gnulib-common.m4 serial 13 +dnl Copyright (C) 2007-2010 Free Software 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. @@ -23,14 +23,17 @@ AC_DEFUN([gl_COMMON_BODY], [ # define __GNUC_STDC_INLINE__ 1 #endif]) AH_VERBATIM([unused_parameter], -[/* Define as a marker that can be attached to function parameter declarations - for parameters that are not used. This helps to reduce warnings, such as - from GCC -Wunused-parameter. */ +[/* Define as a marker that can be attached to declarations that might not + be used. This helps to reduce warnings, such as from + GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) -# define _UNUSED_PARAMETER_ __attribute__ ((__unused__)) +# define _GL_UNUSED __attribute__ ((__unused__)) #else -# define _UNUSED_PARAMETER_ +# define _GL_UNUSED #endif +/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name + is a misnomer outside of parameter lists. */ +#define _UNUSED_PARAMETER_ _GL_UNUSED ]) ]) @@ -49,10 +52,25 @@ m4_ifndef([m4_foreach_w], [m4_define([m4_foreach_w], [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) +# AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) +# ---------------------------------------------------- +# Backport of autoconf-2.63b's macro. +# Remove this macro when we can assume autoconf >= 2.64. +m4_ifndef([AS_VAR_IF], +[m4_define([AS_VAR_IF], +[AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])]) + # AC_PROG_MKDIR_P -# is a backport of autoconf-2.60's AC_PROG_MKDIR_P. -# Remove this macro when we can assume autoconf >= 2.60. -m4_ifdef([AC_PROG_MKDIR_P], [], [ +# is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix +# for interoperability with automake-1.9.6 from autoconf-2.62. +# Remove this macro when we can assume autoconf >= 2.62 or +# autoconf >= 2.60 && automake >= 1.10. +m4_ifdef([AC_PROG_MKDIR_P], [ + dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. + m4_define([AC_PROG_MKDIR_P], + m4_defn([AC_PROG_MKDIR_P])[ + AC_SUBST([MKDIR_P])])], [ + dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. AC_DEFUN_ONCE([AC_PROG_MKDIR_P], [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake MKDIR_P='$(mkdir_p)' @@ -70,13 +88,13 @@ AC_DEFUN([AC_C_RESTRICT], for ac_kw in __restrict __restrict__ _Restrict restrict; do AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; + int foo (int_ptr $ac_kw ip) { + return ip[0]; }]], [[int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t)]])], + int * $ac_kw t = s; + t[0] = 0; + return foo(t)]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done @@ -109,3 +127,16 @@ AC_DEFUN([gl_BIGENDIAN], [ AC_C_BIGENDIAN ]) + +# gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) +# is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not +# output a spurious "(cached)" mark in the midst of other configure output. +# This macro should be used instead of AC_CACHE_VAL when it is not surrounded +# by an AC_MSG_CHECKING/AC_MSG_RESULT pair. +AC_DEFUN([gl_CACHE_VAL_SILENT], +[ + saved_as_echo_n="$as_echo_n" + as_echo_n=':' + AC_CACHE_VAL([$1], [$2]) + as_echo_n="$saved_as_echo_n" +]) diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 6eea276988f18555f1145742950b7bb7f959c79e..f9a584dd0e344a73c3602de217ec227c70c414ef 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -1,7 +1,7 @@ # -*- buffer-read-only: t -*- vi: set ro: # DO NOT EDIT! GENERATED AUTOMATICALLY! # DO NOT EDIT! GENERATED AUTOMATICALLY! -# Copyright (C) 2002-2009 Free Software Foundation, Inc. +# Copyright (C) 2002-2010 Free Software Foundation, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General @@ -51,18 +51,20 @@ AC_DEFUN([gl_INIT], m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) gl_COMMON - gl_source_base='.#bootmp/lib' + gl_source_base='gnu' gl_FUNC_ALLOCA gl_ARGMATCH gl_ARGP m4_ifdef([AM_XGETTEXT_OPTION], - [AM_XGETTEXT_OPTION([--flag=argp_error:2:c-format]) - AM_XGETTEXT_OPTION([--flag=argp_failure:4:c-format])]) + [AM_][XGETTEXT_OPTION([--flag=argp_error:2:c-format]) + AM_][XGETTEXT_OPTION([--flag=argp_failure:4:c-format])]) gl_BACKUPFILE + AC_REQUIRE([AC_C_INLINE]) gl_FUNC_BTOWC gl_WCHAR_MODULE_INDICATOR([btowc]) - gl_CANONICALIZE_LGPL - gl_MODULE_INDICATOR([canonicalize-lgpl]) + gl_FUNC_CANONICALIZE_FILENAME_MODE + gl_MODULE_INDICATOR([canonicalize]) + gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name]) gl_FUNC_CHDIR_LONG gl_FUNC_CHOWN gl_UNISTD_MODULE_INDICATOR([chown]) @@ -74,31 +76,36 @@ AC_DEFUN([gl_INIT], gl_CLOSEOUT gl_CHECK_TYPE_STRUCT_DIRENT_D_INO gl_DIRENT_H + gl_DIRENT_SAFER + gl_MODULE_INDICATOR([dirent-safer]) gl_FUNC_DIRFD gl_DIRENT_MODULE_INDICATOR([dirfd]) gl_DIRNAME + gl_MODULE_INDICATOR([dirname]) + gl_DIRNAME_LGPL gl_DOUBLE_SLASH_ROOT gl_FUNC_DUP2 gl_UNISTD_MODULE_INDICATOR([dup2]) gl_ENVIRON gl_UNISTD_MODULE_INDICATOR([environ]) - AC_REQUIRE([gl_HEADER_ERRNO_H]) + gl_HEADER_ERRNO_H gl_ERROR m4_ifdef([AM_XGETTEXT_OPTION], - [AM_XGETTEXT_OPTION([--flag=error:3:c-format]) - AM_XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) + [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) + AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) gl_EXCLUDE - gl_EXITFAIL gl_FUNC_FCHDIR gl_UNISTD_MODULE_INDICATOR([fchdir]) gl_FUNC_FCLOSE gl_STDIO_MODULE_INDICATOR([fclose]) + gl_FUNC_FCNTL + gl_FCNTL_MODULE_INDICATOR([fcntl]) gl_FCNTL_H - gl_FCNTL_SAFER - gl_MODULE_INDICATOR([fcntl-safer]) + gl_FUNC_FDOPENDIR + gl_DIRENT_MODULE_INDICATOR([fdopendir]) gl_FILEBLOCKS gl_FLOAT_H - # No macro. You should also use one of fnmatch-posix or fnmatch-gnu. + gl_FUNC_FNMATCH_POSIX gl_FUNC_FNMATCH_GNU gl_FUNC_FPENDING gl_FUNC_FSEEKO @@ -110,9 +117,13 @@ AC_DEFUN([gl_INIT], gl_GETDATE gl_FUNC_GETDELIM gl_STDIO_MODULE_INDICATOR([getdelim]) + gl_FUNC_GETDTABLESIZE + gl_UNISTD_MODULE_INDICATOR([getdtablesize]) gl_FUNC_GETLINE gl_STDIO_MODULE_INDICATOR([getline]) - gl_GETOPT + gl_FUNC_GETOPT_GNU + gl_MODULE_INDICATOR([getopt-gnu]) + gl_FUNC_GETOPT_POSIX gl_FUNC_GETPAGESIZE gl_UNISTD_MODULE_INDICATOR([getpagesize]) dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac. @@ -121,11 +132,13 @@ AC_DEFUN([gl_INIT], AC_SUBST([LTLIBINTL]) gl_GETTIME gl_FUNC_GETTIMEOFDAY + gl_SYS_TIME_MODULE_INDICATOR([gettimeofday]) gl_HASH gl_HUMAN gl_INLINE gl_INTTOSTR gl_INTTYPES_H + gl_LANGINFO_H gl_FUNC_LCHOWN gl_UNISTD_MODULE_INDICATOR([lchown]) gl_LOCALCHARSET @@ -143,20 +156,27 @@ AC_DEFUN([gl_INIT], gl_MBCHAR gl_FUNC_MBRTOWC gl_WCHAR_MODULE_INDICATOR([mbrtowc]) - gl_FUNC_MBSCASECMP gl_STRING_MODULE_INDICATOR([mbscasecmp]) gl_FUNC_MBSINIT gl_WCHAR_MODULE_INDICATOR([mbsinit]) + gl_FUNC_MBSRTOWCS + gl_WCHAR_MODULE_INDICATOR([mbsrtowcs]) gl_MBITER + gl_FUNC_MEMCHR + gl_STRING_MODULE_INDICATOR([memchr]) gl_FUNC_MEMPCPY gl_STRING_MODULE_INDICATOR([mempcpy]) gl_FUNC_MEMRCHR gl_STRING_MODULE_INDICATOR([memrchr]) + gl_FUNC_MKDIR gt_FUNC_MKDTEMP gl_STDLIB_MODULE_INDICATOR([mkdtemp]) gl_FUNC_MKTIME + gl_TIME_MODULE_INDICATOR([mktime]) gl_MODECHANGE - AC_REQUIRE([gl_MULTIARCH]) + gl_MULTIARCH + gl_FUNC_NL_LANGINFO + gl_LANGINFO_MODULE_INDICATOR([nl_langinfo]) AC_FUNC_OBSTACK dnl Note: AC_FUNC_OBSTACK does AC_LIBSOURCES([obstack.h, obstack.c]). gl_FUNC_OPEN @@ -164,6 +184,9 @@ AC_DEFUN([gl_INIT], gl_FCNTL_MODULE_INDICATOR([open]) gl_FUNC_OPENAT gl_PATHMAX + gl_PRIV_SET + AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>]) + AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>]) gl_QUOTE gl_QUOTEARG gl_FUNC_RAWMEMCHR @@ -173,10 +196,13 @@ AC_DEFUN([gl_INIT], gl_FUNC_REALLOC_POSIX gl_STDLIB_MODULE_INDICATOR([realloc-posix]) gl_REGEX + gl_FUNC_RMDIR + gl_UNISTD_MODULE_INDICATOR([rmdir]) gl_FUNC_RPMATCH gl_STDLIB_MODULE_INDICATOR([rpmatch]) gl_SAFE_READ gl_SAFE_WRITE + gl_SAME gl_SAVE_CWD gl_SAVEDIR gl_FUNC_SETENV @@ -187,10 +213,13 @@ AC_DEFUN([gl_INIT], gl_FUNC_SNPRINTF gl_STDIO_MODULE_INDICATOR([snprintf]) gt_TYPE_SSIZE_T + gl_FUNC_STAT + gl_SYS_STAT_MODULE_INDICATOR([stat]) gl_STAT_TIME gl_STAT_BIRTHTIME gl_STDARG_H AM_STDBOOL_H + gl_STDDEF_H gl_STDINT_H gl_STDIO_H gl_STDLIB_H @@ -230,13 +259,20 @@ AC_DEFUN([gl_INIT], gl_TIMESPEC gl_UNISTD_H gl_UNISTD_SAFER + gl_FUNC_UNLINK + gl_UNISTD_MODULE_INDICATOR([unlink]) gl_UNLINKDIR gl_FUNC_GLIBC_UNLOCKED_IO gl_FUNC_UNSETENV gl_STDLIB_MODULE_INDICATOR([unsetenv]) - gl_FUNC_UTIME gl_UTIMENS gl_FUNC_VASNPRINTF + gl_FUNC_VASPRINTF + gl_STDIO_MODULE_INDICATOR([vasprintf]) + m4_ifdef([AM_XGETTEXT_OPTION], + [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format]) + AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])]) + gl_VERSION_ETC gl_FUNC_VSNPRINTF gl_STDIO_MODULE_INDICATOR([vsnprintf]) gl_WCHAR_H @@ -252,6 +288,9 @@ AC_DEFUN([gl_INIT], gl_XSIZE gl_XSTRNDUP gl_XSTRTOL + gl_XVASPRINTF + m4_ifdef([AM_XGETTEXT_OPTION], + [AM_][XGETTEXT_OPTION([--flag=xasprintf:1:c-format])]) m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || for gl_file in ]gl_LIBSOURCES_LIST[ ; do @@ -274,7 +313,7 @@ AC_DEFUN([gl_INIT], if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' - for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do + for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done @@ -290,7 +329,7 @@ AC_DEFUN([gl_INIT], m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) gl_COMMON - gl_source_base='.#bootmp/tests' + gl_source_base='tests' m4_ifval(gltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || for gl_file in ]gltests_LIBSOURCES_LIST[ ; do @@ -313,7 +352,7 @@ AC_DEFUN([gl_INIT], if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' - for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do + for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done @@ -321,10 +360,10 @@ AC_DEFUN([gl_INIT], AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) ]) - LIBTAR_LIBDEPS="$gl_libdeps" - AC_SUBST([LIBTAR_LIBDEPS]) - LIBTAR_LTLIBDEPS="$gl_ltlibdeps" - AC_SUBST([LIBTAR_LTLIBDEPS]) + LIBGNU_LIBDEPS="$gl_libdeps" + AC_SUBST([LIBGNU_LIBDEPS]) + LIBGNU_LTLIBDEPS="$gl_ltlibdeps" + AC_SUBST([LIBGNU_LTLIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes @@ -348,7 +387,7 @@ AC_DEFUN([gl_REPLACE_FUNCS], [ AC_DEFUN([gl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ - m4_define([gl_LIBSOURCES_DIR], [.#bootmp/lib]) + m4_define([gl_LIBSOURCES_DIR], [gnu]) m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) @@ -375,7 +414,7 @@ AC_DEFUN([gltests_REPLACE_FUNCS], [ AC_DEFUN([gltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ - m4_define([gltests_LIBSOURCES_DIR], [.#bootmp/tests]) + m4_define([gltests_LIBSOURCES_DIR], [tests]) m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) @@ -384,11 +423,16 @@ AC_DEFUN([gltests_LIBSOURCES], [ # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ + build-aux/arg-nonnull.h + build-aux/c++defs.h build-aux/config.rpath - build-aux/link-warning.h + build-aux/gitlog-to-changelog + build-aux/warn-on-use.h doc/getdate.texi lib/alloca.c lib/alloca.in.h + lib/areadlink-with-size.c + lib/areadlink.h lib/argmatch.c lib/argmatch.h lib/argp-ba.c @@ -402,30 +446,39 @@ AC_DEFUN([gl_FILE_LIST], [ lib/argp-pin.c lib/argp-pv.c lib/argp-pvh.c + lib/argp-version-etc.c + lib/argp-version-etc.h lib/argp-xinl.c lib/argp.h lib/asnprintf.c + lib/asprintf.c lib/at-func.c lib/backupfile.c lib/backupfile.h + lib/basename-lgpl.c lib/basename.c + lib/bitrotate.h lib/btowc.c lib/c-ctype.c lib/c-ctype.h - lib/canonicalize-lgpl.c + lib/canonicalize.c lib/canonicalize.h lib/chdir-long.c lib/chdir-long.h lib/chown.c + lib/close-hook.c + lib/close-hook.h lib/close-stream.c lib/close-stream.h lib/close.c lib/closeout.c lib/closeout.h lib/config.charset - lib/creat-safer.c + lib/dirent--.h + lib/dirent-safer.h lib/dirent.in.h lib/dirfd.c + lib/dirname-lgpl.c lib/dirname.c lib/dirname.h lib/dup-safer.c @@ -442,10 +495,12 @@ AC_DEFUN([gl_FILE_LIST], [ lib/fchown-stub.c lib/fchownat.c lib/fclose.c - lib/fcntl--.h - lib/fcntl-safer.h + lib/fcntl.c lib/fcntl.in.h lib/fd-safer.c + lib/fdopendir.c + lib/file-set.c + lib/file-set.h lib/fileblocks.c lib/float+.h lib/float.in.h @@ -463,6 +518,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/getdate.h lib/getdate.y lib/getdelim.c + lib/getdtablesize.c lib/getline.c lib/getopt.c lib/getopt.in.h @@ -472,6 +528,10 @@ AC_DEFUN([gl_FILE_LIST], [ lib/gettext.h lib/gettime.c lib/gettimeofday.c + lib/hash-pjw.c + lib/hash-pjw.h + lib/hash-triple.c + lib/hash-triple.h lib/hash.c lib/hash.h lib/human.c @@ -481,6 +541,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/inttostr.c lib/inttostr.h lib/inttypes.in.h + lib/langinfo.in.h lib/lchown.c lib/localcharset.c lib/localcharset.h @@ -495,30 +556,41 @@ AC_DEFUN([gl_FILE_LIST], [ lib/mbrtowc.c lib/mbscasecmp.c lib/mbsinit.c + lib/mbsrtowcs-state.c + lib/mbsrtowcs.c lib/mbuiter.h + lib/memchr.c + lib/memchr.valgrind lib/mempcpy.c lib/memrchr.c + lib/mkdir.c lib/mkdirat.c lib/mkdtemp.c + lib/mktime-internal.h lib/mktime.c lib/modechange.c lib/modechange.h + lib/nl_langinfo.c lib/obstack.c lib/obstack.h lib/offtostr.c - lib/open-safer.c lib/open.c lib/openat-die.c lib/openat-priv.h lib/openat-proc.c lib/openat.c lib/openat.h + lib/opendir-safer.c lib/pathmax.h lib/pipe-safer.c lib/printf-args.c lib/printf-args.h lib/printf-parse.c lib/printf-parse.h + lib/priv-set.c + lib/priv-set.h + lib/progname.c + lib/progname.h lib/quote.c lib/quote.h lib/quotearg.c @@ -535,12 +607,15 @@ AC_DEFUN([gl_FILE_LIST], [ lib/regex_internal.c lib/regex_internal.h lib/regexec.c + lib/rmdir.c lib/rpmatch.c lib/safe-read.c lib/safe-read.h lib/safe-write.c lib/safe-write.h lib/same-inode.h + lib/same.c + lib/same.h lib/save-cwd.c lib/save-cwd.h lib/savedir.c @@ -551,8 +626,10 @@ AC_DEFUN([gl_FILE_LIST], [ lib/snprintf.c lib/stat-macros.h lib/stat-time.h + lib/stat.c lib/stdarg.in.h lib/stdbool.in.h + lib/stddef.in.h lib/stdint.in.h lib/stdio-impl.h lib/stdio-write.c @@ -596,21 +673,22 @@ AC_DEFUN([gl_FILE_LIST], [ lib/uniwidth.h lib/uniwidth/cjk.h lib/uniwidth/width.c + lib/unlink.c + lib/unlinkat.c lib/unlinkdir.c lib/unlinkdir.h lib/unlocked-io.h lib/unsetenv.c - lib/utime.c lib/utimens.c lib/utimens.h lib/vasnprintf.c lib/vasnprintf.h + lib/vasprintf.c lib/verify.h lib/version-etc-fsf.c lib/version-etc.c lib/version-etc.h lib/vsnprintf.c - lib/w32sock.h lib/wchar.in.h lib/wcrtomb.c lib/wctype.in.h @@ -618,6 +696,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/write.c lib/xalloc-die.c lib/xalloc.h + lib/xasprintf.c lib/xgetcwd.c lib/xgetcwd.h lib/xmalloc.c @@ -629,6 +708,8 @@ AC_DEFUN([gl_FILE_LIST], [ lib/xstrtol.h lib/xstrtoul.c lib/xstrtoumax.c + lib/xvasprintf.c + lib/xvasprintf.h m4/00gnulib.m4 m4/alloca.m4 m4/argmatch.m4 @@ -636,7 +717,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/backupfile.m4 m4/bison.m4 m4/btowc.m4 - m4/canonicalize-lgpl.m4 + m4/canonicalize.m4 m4/chdir-long.m4 m4/chown.m4 m4/clock_time.m4 @@ -645,6 +726,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/closeout.m4 m4/codeset.m4 m4/d-ino.m4 + m4/dirent-safer.m4 m4/dirent_h.m4 m4/dirfd.m4 m4/dirname.m4 @@ -656,12 +738,13 @@ AC_DEFUN([gl_FILE_LIST], [ m4/errno_h.m4 m4/error.m4 m4/exclude.m4 - m4/exitfail.m4 m4/extensions.m4 m4/fchdir.m4 m4/fclose.m4 - m4/fcntl-safer.m4 + m4/fcntl-o.m4 + m4/fcntl.m4 m4/fcntl_h.m4 + m4/fdopendir.m4 m4/fileblocks.m4 m4/float_h.m4 m4/fnmatch.m4 @@ -673,6 +756,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/getcwd.m4 m4/getdate.m4 m4/getdelim.m4 + m4/getdtablesize.m4 m4/getline.m4 m4/getopt.m4 m4/getpagesize.m4 @@ -697,6 +781,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 + m4/langinfo_h.m4 m4/lchown.m4 m4/lcmessage.m4 m4/lib-ld.m4 @@ -715,15 +800,20 @@ AC_DEFUN([gl_FILE_LIST], [ m4/mbchar.m4 m4/mbiter.m4 m4/mbrtowc.m4 - m4/mbscasecmp.m4 m4/mbsinit.m4 + m4/mbsrtowcs.m4 m4/mbstate_t.m4 + m4/memchr.m4 m4/mempcpy.m4 m4/memrchr.m4 + m4/mkdir.m4 m4/mkdtemp.m4 m4/mktime.m4 + m4/mmap-anon.m4 + m4/mode_t.m4 m4/modechange.m4 m4/multiarch.m4 + m4/nl_langinfo.m4 m4/nls.m4 m4/open.m4 m4/openat.m4 @@ -731,6 +821,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/po.m4 m4/printf-posix.m4 m4/printf.m4 + m4/priv-set.m4 m4/progtest.m4 m4/quote.m4 m4/quotearg.m4 @@ -738,9 +829,11 @@ AC_DEFUN([gl_FILE_LIST], [ m4/readlink.m4 m4/realloc.m4 m4/regex.m4 + m4/rmdir.m4 m4/rpmatch.m4 m4/safe-read.m4 m4/safe-write.m4 + m4/same.m4 m4/save-cwd.m4 m4/savedir.m4 m4/setenv.m4 @@ -749,8 +842,10 @@ AC_DEFUN([gl_FILE_LIST], [ m4/snprintf.m4 m4/ssize_t.m4 m4/stat-time.m4 + m4/stat.m4 m4/stdarg.m4 m4/stdbool.m4 + m4/stddef_h.m4 m4/stdint.m4 m4/stdint_h.m4 m4/stdio_h.m4 @@ -782,20 +877,22 @@ AC_DEFUN([gl_FILE_LIST], [ m4/uintmax_t.m4 m4/unistd-safer.m4 m4/unistd_h.m4 + m4/unlink.m4 m4/unlinkdir.m4 m4/unlocked-io.m4 m4/utimbuf.m4 - m4/utime.m4 m4/utimens.m4 - m4/utimes-null.m4 m4/utimes.m4 m4/vasnprintf.m4 + m4/vasprintf.m4 + m4/version-etc.m4 m4/visibility.m4 m4/vsnprintf.m4 - m4/wchar.m4 + m4/warn-on-use.m4 + m4/wchar_h.m4 m4/wchar_t.m4 m4/wcrtomb.m4 - m4/wctype.m4 + m4/wctype_h.m4 m4/wcwidth.m4 m4/wint_t.m4 m4/write.m4 @@ -804,4 +901,5 @@ AC_DEFUN([gl_FILE_LIST], [ m4/xsize.m4 m4/xstrndup.m4 m4/xstrtol.m4 + m4/xvasprintf.m4 ]) diff --git a/m4/hash.m4 b/m4/hash.m4 index 1b1873c326dc4fc80dda2f9f20cef6be87da3727..414a2137d3fed0fc6d20b61b502607745957eb82 100644 --- a/m4/hash.m4 +++ b/m4/hash.m4 @@ -1,5 +1,6 @@ # hash.m4 serial 6 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 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. diff --git a/m4/human.m4 b/m4/human.m4 index 72f2176f8e97cef17b68434cd7de53c46bff7c27..eda47da58f329e150eb96729a25700a55120c97c 100644 --- a/m4/human.m4 +++ b/m4/human.m4 @@ -1,5 +1,6 @@ #serial 10 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009, 2010 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. diff --git a/m4/iconv.m4 b/m4/iconv.m4 index 3cc626829edffdf2c02bc5ad7517b7eb225c746a..f46ff1421541e2a8b0bef692bc3299a902f5226d 100644 --- a/m4/iconv.m4 +++ b/m4/iconv.m4 @@ -1,5 +1,5 @@ -# iconv.m4 serial AM7 (gettext-0.18) -dnl Copyright (C) 2000-2002, 2007-2009 Free Software Foundation, Inc. +# iconv.m4 serial 9 (gettext-0.18) +dnl Copyright (C) 2000-2002, 2007-2010 Free Software 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. @@ -58,7 +58,7 @@ AC_DEFUN([AM_ICONV_LINK], ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ - dnl This tests against bugs in AIX 5.1 and HP-UX 11.11. + dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" @@ -87,6 +87,25 @@ int main () return 1; } } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { @@ -172,8 +191,8 @@ size_t iconv(); ], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([${ac_t:- - }$am_cv_proto_iconv]) + AC_MSG_RESULT([ + $am_cv_proto_iconv]) AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) fi diff --git a/m4/include_next.m4 b/m4/include_next.m4 index 752263901c7ac0f084ae45180f4f533e742aed96..c7e0672f60c01b02fa96a2a4427907c69f483879 100644 --- a/m4/include_next.m4 +++ b/m4/include_next.m4 @@ -1,5 +1,5 @@ -# include_next.m4 serial 11 -dnl Copyright (C) 2006-2009 Free Software Foundation, Inc. +# include_next.m4 serial 14 +dnl Copyright (C) 2006-2010 Free Software 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. @@ -32,14 +32,15 @@ AC_DEFUN([gl_INCLUDE_NEXT], [gl_cv_have_include_next], [rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 - dnl The include of <stdio.h> is because IBM C 9.0, 10.1 (original - dnl versions, prior to 2009-01 updates) on AIX 6.1 supports include_next - dnl when used as first preprocessor directive in a file, but not when - dnl preceded by another include directive. Additionally, with this same - dnl compiler, include_next is a no-op when used in a header file that was - dnl included by specifying its absolute file name. Despite these two bugs, - dnl include_next is used in the compiler's <math.h>. By virtue of the - dnl second bug, we need to use include_next as well in this case. + dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on + dnl AIX 6.1 support include_next when used as first preprocessor directive + dnl in a file, but not when preceded by another include directive. Check + dnl for this bug by including <stdio.h>. + dnl Additionally, with this same compiler, include_next is a no-op when + dnl used in a header file that was included by specifying its absolute + dnl file name. Despite these two bugs, include_next is used in the + dnl compiler's <math.h>. By virtue of the second bug, we need to use + dnl include_next as well in this case. cat <<EOF > conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next <conftest.h> @@ -103,10 +104,16 @@ EOF # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be # '<foo.h>'; otherwise define it to be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. +# Also, if #include_next works as first preprocessing directive in a file, +# define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be '<foo.h>'; otherwise define it to +# be +# '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # That way, a header file with the following line: -# #@INCLUDE_NEXT@ @NEXT_FOO_H@ +# #@INCLUDE_NEXT@ @NEXT_FOO_H@ +# or +# #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ # behaves (after sed substitution) as if it contained -# #include_next <foo.h> +# #include_next <foo.h> # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". @@ -122,49 +129,59 @@ AC_DEFUN([gl_CHECK_NEXT_HEADERS], m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], - [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME]))) + [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( - [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>], - m4_quote(m4_defn([gl_next_header])), - [AS_VAR_PUSHDEF([gl_header_exists], - [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME]))) - if test AS_VAR_GET(gl_header_exists) = yes; then - AC_LANG_CONFTEST( - [AC_LANG_SOURCE( - [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]] - )]) - dnl AIX "xlc -E" and "cc -E" omit #line directives for header files - dnl that contain only a #include of other header files and no - dnl non-comment tokens of their own. This leads to a failure to - dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h> - dnl and others. The workaround is to force preservation of comments - dnl through option -C. This ensures all necessary #line directives - dnl are present. GCC supports option -C as well. - case "$host_os" in - aix*) gl_absname_cpp="$ac_cpp -C" ;; - *) gl_absname_cpp="$ac_cpp" ;; - esac - dnl eval is necessary to expand gl_absname_cpp. - dnl Ultrix and Pyramid sh refuse to redirect output of eval, - dnl so use subshell. - AS_VAR_SET([gl_next_header], - ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | - sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{ - s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1# - s#^/[^/]#//&# - p - q - }'`'"']) - else - AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) - fi - AS_VAR_POPDEF([gl_header_exists])]) + [absolute name of <]m4_defn([gl_HEADER_NAME])[>], + m4_defn([gl_next_header]), + [AS_VAR_PUSHDEF([gl_header_exists], + [ac_cv_header_]m4_defn([gl_HEADER_NAME])) + if test AS_VAR_GET(gl_header_exists) = yes; then + AC_LANG_CONFTEST( + [AC_LANG_SOURCE( + [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]] + )]) + dnl AIX "xlc -E" and "cc -E" omit #line directives for header files + dnl that contain only a #include of other header files and no + dnl non-comment tokens of their own. This leads to a failure to + dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h> + dnl and others. The workaround is to force preservation of comments + dnl through option -C. This ensures all necessary #line directives + dnl are present. GCC supports option -C as well. + case "$host_os" in + aix*) gl_absname_cpp="$ac_cpp -C" ;; + *) gl_absname_cpp="$ac_cpp" ;; + esac + dnl eval is necessary to expand gl_absname_cpp. + dnl Ultrix and Pyramid sh refuse to redirect output of eval, + dnl so use subshell. + AS_VAR_SET([gl_next_header], + ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | + sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{ + s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1# + s#^/[^/]#//&# + p + q + }'`'"']) + else + AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>']) + fi + AS_VAR_POPDEF([gl_header_exists])]) fi AC_SUBST( - AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))), + AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), [AS_VAR_GET([gl_next_header])]) + if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' + gl_next_as_first_directive='<'gl_HEADER_NAME'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=AS_VAR_GET([gl_next_header]) + fi + AC_SUBST( + AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), + [$gl_next_as_first_directive]) AS_VAR_POPDEF([gl_next_header])]) ]) diff --git a/m4/inline.m4 b/m4/inline.m4 index cee51099f1c2e79261dfb835f3144ac3050800ae..4ef768de7243da810ce459cd24eaf3ca53bf264c 100644 --- a/m4/inline.m4 +++ b/m4/inline.m4 @@ -1,5 +1,5 @@ # inline.m4 serial 4 -dnl Copyright (C) 2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2009, 2010 Free Software 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. diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 index c24837c4290ad25aa30bc9c9b91cf8dff973a63b..dd91025962741fb1e5fd697ffbb88c9df66b202f 100644 --- a/m4/intlmacosx.m4 +++ b/m4/intlmacosx.m4 @@ -1,5 +1,5 @@ # intlmacosx.m4 serial 3 (gettext-0.18) -dnl Copyright (C) 2004-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2010 Free Software 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. diff --git a/m4/intmax_t.m4 b/m4/intmax_t.m4 index 264cb57184dc384c67591764196eecb59f859f4c..975caac50670d193a88577508de756a7aa17c560 100644 --- a/m4/intmax_t.m4 +++ b/m4/intmax_t.m4 @@ -1,5 +1,6 @@ # intmax_t.m4 serial 7 -dnl Copyright (C) 1997-2004, 2006-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2004, 2006-2007, 2009-2010 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. diff --git a/m4/inttostr.m4 b/m4/inttostr.m4 index 0a41fad731ce08225ba14f72e66bc585db8dd400..3e17ed59f197eb15df08f966b42324e9e6b71edf 100644 --- a/m4/inttostr.m4 +++ b/m4/inttostr.m4 @@ -1,5 +1,5 @@ #serial 7 -dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2004, 2005, 2006, 2009, 2010 Free Software 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. diff --git a/m4/inttypes-pri.m4 b/m4/inttypes-pri.m4 index 98fec7bcf69d2f56fc0a000bb37aae5631c696af..718a4f4e19f4e0ae45cd9be70a1aef0df4df307e 100644 --- a/m4/inttypes-pri.m4 +++ b/m4/inttypes-pri.m4 @@ -1,5 +1,5 @@ # inttypes-pri.m4 serial 6 (gettext-0.18) -dnl Copyright (C) 1997-2002, 2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2002, 2006, 2008-2010 Free Software 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. diff --git a/m4/inttypes.m4 b/m4/inttypes.m4 index 8b4e4f852a24ad895d022b06b1cfb043c6531058..3ee174dc8bfb7785d25723484c0d34fe21483e1e 100644 --- a/m4/inttypes.m4 +++ b/m4/inttypes.m4 @@ -1,5 +1,5 @@ -# inttypes.m4 serial 14 -dnl Copyright (C) 2006-2009 Free Software Foundation, Inc. +# inttypes.m4 serial 17 +dnl Copyright (C) 2006-2010 Free Software 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. @@ -11,6 +11,7 @@ AC_DEFUN([gl_INTTYPES_H], [ AC_REQUIRE([gl_STDINT_H]) AC_REQUIRE([gt_INTTYPES_PRI]) + AC_CHECK_HEADERS_ONCE([inttypes.h]) AC_CHECK_DECLS_ONCE([imaxabs]) AC_CHECK_DECLS_ONCE([imaxdiv]) AC_CHECK_DECLS_ONCE([strtoimax]) @@ -26,13 +27,13 @@ AC_DEFUN([gl_INTTYPES_H], [gl_cv_header_working_inttypes_h], [gl_cv_header_working_inttypes_h=no if test "$gl_cv_header_working_stdint_h" = yes \ - && test $ac_cv_header_inttypes_h = yes \ - && test "$ac_cv_have_decl_imaxabs" = yes \ - && test "$ac_cv_have_decl_imaxdiv" = yes \ - && test "$ac_cv_have_decl_strtoimax" = yes \ - && test "$ac_cv_have_decl_strtoumax" = yes; then + && test $ac_cv_header_inttypes_h = yes \ + && test "$ac_cv_have_decl_imaxabs" = yes \ + && test "$ac_cv_have_decl_imaxdiv" = yes \ + && test "$ac_cv_have_decl_strtoimax" = yes \ + && test "$ac_cv_have_decl_strtoumax" = yes; then AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ + AC_LANG_PROGRAM([[ #include <stddef.h> #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ @@ -131,30 +132,25 @@ const char *l = /* implicit string concatenation */ SCNoPTR SCNuPTR SCNxPTR #endif ; - ]])], - [gl_cv_header_working_inttypes_h=yes]) + ]])], + [gl_cv_header_working_inttypes_h=yes]) fi]) dnl Override <inttypes.h> always, so that the portability warnings work. - if false && test $gl_cv_header_working_inttypes_h = yes; then - dnl Use the existing <inttypes.h>. - INTTYPES_H='' - else - - AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) - gl_CHECK_NEXT_HEADERS([inttypes.h]) + AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) + gl_CHECK_NEXT_HEADERS([inttypes.h]) - AC_REQUIRE([gl_MULTIARCH]) + AC_REQUIRE([gl_MULTIARCH]) - dnl Ensure that <stdint.h> defines the limit macros, since gnulib's - dnl <inttypes.h> relies on them. This macro is only needed when a - dnl C++ compiler is in use; it has no effect for a C compiler. - dnl Also be careful to define __STDC_LIMIT_MACROS only when gnulib's - dnl <inttypes.h> is going to be created, and to avoid redefinition warnings - dnl if the __STDC_LIMIT_MACROS is already defined through the CPPFLAGS. - AC_DEFINE([GL_TRIGGER_STDC_LIMIT_MACROS], [1], - [Define to make the limit macros in <stdint.h> visible.]) - AH_VERBATIM([__STDC_LIMIT_MACROS_ZZZ], + dnl Ensure that <stdint.h> defines the limit macros, since gnulib's + dnl <inttypes.h> relies on them. This macro is only needed when a + dnl C++ compiler is in use; it has no effect for a C compiler. + dnl Also be careful to define __STDC_LIMIT_MACROS only when gnulib's + dnl <inttypes.h> is going to be created, and to avoid redefinition warnings + dnl if the __STDC_LIMIT_MACROS is already defined through the CPPFLAGS. + AC_DEFINE([GL_TRIGGER_STDC_LIMIT_MACROS], [1], + [Define to make the limit macros in <stdint.h> visible.]) + AH_VERBATIM([__STDC_LIMIT_MACROS_ZZZ], [/* Ensure that <stdint.h> defines the limit macros, since gnulib's <inttypes.h> relies on them. */ #if defined __cplusplus && !defined __STDC_LIMIT_MACROS && GL_TRIGGER_STDC_LIMIT_MACROS @@ -162,85 +158,86 @@ const char *l = /* implicit string concatenation */ #endif ]) - PRIPTR_PREFIX= - if test -n "$STDINT_H"; then - dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'. - PRIPTR_PREFIX='"l"' - else - dnl Using the system's <stdint.h>. - for glpfx in '' l ll I64; do - case $glpfx in - '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - I64) gltype1='__int64';; - esac - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#include <stdint.h> - extern intptr_t foo; - extern $gltype1 foo;]])], - [PRIPTR_PREFIX='"'$glpfx'"']) - test -n "$PRIPTR_PREFIX" && break - done - fi - AC_SUBST([PRIPTR_PREFIX]) + PRIPTR_PREFIX= + if test -n "$STDINT_H"; then + dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'. + PRIPTR_PREFIX='"l"' + else + dnl Using the system's <stdint.h>. + for glpfx in '' l ll I64; do + case $glpfx in + '') gltype1='int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + I64) gltype1='__int64';; + esac + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <stdint.h> + extern intptr_t foo; + extern $gltype1 foo;]])], + [PRIPTR_PREFIX='"'$glpfx'"']) + test -n "$PRIPTR_PREFIX" && break + done + fi + AC_SUBST([PRIPTR_PREFIX]) - if test "$ac_cv_have_decl_imaxabs" = yes; then - HAVE_DECL_IMAXABS=1 - else - HAVE_DECL_IMAXABS=0 - fi + if test "$ac_cv_have_decl_imaxabs" = yes; then + HAVE_DECL_IMAXABS=1 + else + HAVE_DECL_IMAXABS=0 + fi - if test "$ac_cv_have_decl_imaxdiv" = yes; then - HAVE_DECL_IMAXDIV=1 - else - HAVE_DECL_IMAXDIV=0 - fi + if test "$ac_cv_have_decl_imaxdiv" = yes; then + HAVE_DECL_IMAXDIV=1 + else + HAVE_DECL_IMAXDIV=0 + fi - if test "$ac_cv_have_decl_strtoimax" = yes; then - HAVE_DECL_STRTOIMAX=1 - else - HAVE_DECL_STRTOIMAX=0 - fi + if test "$ac_cv_have_decl_strtoimax" = yes; then + HAVE_DECL_STRTOIMAX=1 + else + HAVE_DECL_STRTOIMAX=0 + fi - if test "$ac_cv_have_decl_strtoumax" = yes; then - HAVE_DECL_STRTOUMAX=1 - else - HAVE_DECL_STRTOUMAX=0 - fi + if test "$ac_cv_have_decl_strtoumax" = yes; then + HAVE_DECL_STRTOUMAX=1 + else + HAVE_DECL_STRTOUMAX=0 + fi + gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( + [INT32_MAX_LT_INTMAX_MAX], + [defined INT32_MAX && defined INTMAX_MAX], + [INT32_MAX < INTMAX_MAX], + [sizeof (int) < sizeof (long long int)]) + if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [INT32_MAX_LT_INTMAX_MAX], - [defined INT32_MAX && defined INTMAX_MAX], - [INT32_MAX < INTMAX_MAX], - [sizeof (int) < sizeof (long long int)]) - if test $APPLE_UNIVERSAL_BUILD = 0; then - gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [INT64_MAX_EQ_LONG_MAX], - [defined INT64_MAX], - [INT64_MAX == LONG_MAX], - [sizeof (long long int) == sizeof (long int)]) - else - INT64_MAX_EQ_LONG_MAX=-1 - fi + [INT64_MAX_EQ_LONG_MAX], + [defined INT64_MAX], + [INT64_MAX == LONG_MAX], + [sizeof (long long int) == sizeof (long int)]) + else + INT64_MAX_EQ_LONG_MAX=-1 + fi + gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( + [UINT32_MAX_LT_UINTMAX_MAX], + [defined UINT32_MAX && defined UINTMAX_MAX], + [UINT32_MAX < UINTMAX_MAX], + [sizeof (unsigned int) < sizeof (unsigned long long int)]) + if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [UINT32_MAX_LT_UINTMAX_MAX], - [defined UINT32_MAX && defined UINTMAX_MAX], - [UINT32_MAX < UINTMAX_MAX], - [sizeof (unsigned int) < sizeof (unsigned long long int)]) - if test $APPLE_UNIVERSAL_BUILD = 0; then - gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( - [UINT64_MAX_EQ_ULONG_MAX], - [defined UINT64_MAX], - [UINT64_MAX == ULONG_MAX], - [sizeof (unsigned long long int) == sizeof (unsigned long int)]) - else - UINT64_MAX_EQ_ULONG_MAX=-1 - fi - - INTTYPES_H='inttypes.h' + [UINT64_MAX_EQ_ULONG_MAX], + [defined UINT64_MAX], + [UINT64_MAX == ULONG_MAX], + [sizeof (unsigned long long int) == sizeof (unsigned long int)]) + else + UINT64_MAX_EQ_ULONG_MAX=-1 fi - AC_SUBST([INTTYPES_H]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <inttypes.h> + ]], [imaxabs imaxdiv strtoimax strtoumax]) ]) # Define the symbol $1 to be 1 if the condition is true, 0 otherwise. @@ -255,25 +252,25 @@ AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION], [gl_cv_test_$1], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[/* Work also in C++ mode. */ - #define __STDC_LIMIT_MACROS 1 + [[/* Work also in C++ mode. */ + #define __STDC_LIMIT_MACROS 1 - /* Work if build is not clean. */ - #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H + /* Work if build is not clean. */ + #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H - #include <limits.h> - #if HAVE_STDINT_H - #include <stdint.h> - #endif + #include <limits.h> + #if HAVE_STDINT_H + #include <stdint.h> + #endif - #if $2 - #define CONDITION ($3) - #elif HAVE_LONG_LONG_INT - #define CONDITION ($4) - #else - #define CONDITION 0 - #endif - int test[CONDITION ? 1 : -1];]])], + #if $2 + #define CONDITION ($3) + #elif HAVE_LONG_LONG_INT + #define CONDITION ($4) + #else + #define CONDITION 0 + #endif + int test[CONDITION ? 1 : -1];]])], [gl_cv_test_$1=yes], [gl_cv_test_$1=no])]) if test $gl_cv_test_$1 = yes; then diff --git a/m4/inttypes_h.m4 b/m4/inttypes_h.m4 index f4ca16021cf78da48bb7541c86d43ded2b4352c3..782d77ed8b1e0629d7b5ac2938db0ef6010e61d6 100644 --- a/m4/inttypes_h.m4 +++ b/m4/inttypes_h.m4 @@ -1,5 +1,5 @@ # inttypes_h.m4 serial 9 -dnl Copyright (C) 1997-2004, 2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2004, 2006, 2008-2010 Free Software 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. diff --git a/m4/langinfo_h.m4 b/m4/langinfo_h.m4 new file mode 100644 index 0000000000000000000000000000000000000000..5e4922afd46984995881e908bb41e1697fa78a46 --- /dev/null +++ b/m4/langinfo_h.m4 @@ -0,0 +1,76 @@ +# langinfo_h.m4 serial 4 +dnl Copyright (C) 2009, 2010 Free Software 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. + +AC_DEFUN([gl_LANGINFO_H], +[ + AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) + + dnl Persuade glibc-2.0.6 <langinfo.h> to define CODESET. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + gl_CHECK_NEXT_HEADERS([langinfo.h]) + + dnl Determine whether <langinfo.h> exists. It is missing on mingw and BeOS. + HAVE_LANGINFO_CODESET=0 + HAVE_LANGINFO_ERA=0 + AC_CHECK_HEADERS_ONCE([langinfo.h]) + if test $ac_cv_header_langinfo_h = yes; then + HAVE_LANGINFO_H=1 + dnl Determine what <langinfo.h> defines. CODESET and ERA etc. are missing + dnl on OpenBSD 3.8. + AC_CACHE_CHECK([whether langinfo.h defines CODESET], + [gl_cv_header_langinfo_codeset], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <langinfo.h> +int a = CODESET; +]])], + [gl_cv_header_langinfo_codeset=yes], + [gl_cv_header_langinfo_codeset=no]) + ]) + if test $gl_cv_header_langinfo_codeset = yes; then + HAVE_LANGINFO_CODESET=1 + fi + AC_CACHE_CHECK([whether langinfo.h defines ERA], + [gl_cv_header_langinfo_era], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <langinfo.h> +int a = ERA; +]])], + [gl_cv_header_langinfo_era=yes], + [gl_cv_header_langinfo_era=no]) + ]) + if test $gl_cv_header_langinfo_era = yes; then + HAVE_LANGINFO_ERA=1 + fi + else + HAVE_LANGINFO_H=0 + fi + AC_SUBST([HAVE_LANGINFO_H]) + AC_SUBST([HAVE_LANGINFO_CODESET]) + AC_SUBST([HAVE_LANGINFO_ERA]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <langinfo.h> + ]], [nl_langinfo]) +]) + +AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) +]) + +AC_DEFUN([gl_LANGINFO_H_DEFAULTS], +[ + GNULIB_NL_LANGINFO=0; AC_SUBST([GNULIB_NL_LANGINFO]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_NL_LANGINFO=1; AC_SUBST([HAVE_NL_LANGINFO]) + REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO]) +]) diff --git a/m4/lchown.m4 b/m4/lchown.m4 index f509fde04abc21c58c0a77569315bf9b46ff183e..646dd9f34f6a01815d59cbc2ccd0821b1b897ec2 100644 --- a/m4/lchown.m4 +++ b/m4/lchown.m4 @@ -1,21 +1,29 @@ -# serial 13 +# serial 15 # Determine whether we need the lchown wrapper. -dnl Copyright (C) 1998, 2001, 2003-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2010 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. +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_REPLACE_FUNCS([lchown]) if test $ac_cv_func_lchown = no; then + HAVE_LCHOWN=0 + elif test "$gl_cv_func_chown_slash_works" != yes \ + || test "$gl_cv_func_chown_ctime_works" != yes; then + dnl Trailing slash and ctime bugs in chown also occur in lchown. + AC_LIBOBJ([lchown]) REPLACE_LCHOWN=1 fi ]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 index e4863f2c9b76a6cc8a3979bb41244a615d194c84..ebb30528bd5abfdfcc2126175cbe1de99d902457 100644 --- a/m4/lib-ld.m4 +++ b/m4/lib-ld.m4 @@ -1,5 +1,5 @@ # lib-ld.m4 serial 4 (gettext-0.18) -dnl Copyright (C) 1996-2003, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1996-2003, 2009-2010 Free Software 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. @@ -59,7 +59,7 @@ if test "$GCC" = yes; then # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; @@ -89,9 +89,9 @@ AC_CACHE_VAL([acl_cv_path_LD], # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) - test "$with_gnu_ld" != no && break ;; + test "$with_gnu_ld" != no && break ;; *) - test "$with_gnu_ld" != yes && break ;; + test "$with_gnu_ld" != yes && break ;; esac fi done diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 index fcd3391bbcef44773f3fa8568a1aa2f87a8b0708..90e1ac9170d3418035f0c6a299d16ae8aadcebee 100644 --- a/m4/lib-link.m4 +++ b/m4/lib-link.m4 @@ -1,5 +1,5 @@ -# lib-link.m4 serial 18 (gettext-0.18) -dnl Copyright (C) 2001-2009 Free Software Foundation, Inc. +# lib-link.m4 serial 20 (gettext-0.18) +dnl Copyright (C) 2001-2010 Free Software 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. @@ -43,12 +43,13 @@ AC_DEFUN([AC_LIB_LINKFLAGS], popdef([Name]) ]) -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and -dnl the ability to compile and link the specified testcode. If found, it -dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and -dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl the ability to compile and link the specified testcode. The missing-message +dnl defaults to 'no' and may contain additional hints for the user. +dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} +dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname @@ -74,12 +75,14 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" - AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + AC_TRY_LINK([$3], [$4], + [ac_cv_lib[]Name=yes], + [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes - AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else @@ -207,6 +210,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 index 3bdc0fc574abd05e85a4f380131fb0f5bb363d80..1601ceaefd3c2b447b569f991813be12b0e06e2d 100644 --- a/m4/lib-prefix.m4 +++ b/m4/lib-prefix.m4 @@ -1,5 +1,5 @@ -# lib-prefix.m4 serial 6 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008 Free Software Foundation, Inc. +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2010 Free Software 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. @@ -206,6 +206,9 @@ sixtyfour bits if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; diff --git a/m4/localcharset.m4 b/m4/localcharset.m4 index e9601041c5b079fc71944de859f3af6f1fe293e0..ee2e801bdd9a32ab89c007e1a128a174523cbe73 100644 --- a/m4/localcharset.m4 +++ b/m4/localcharset.m4 @@ -1,5 +1,5 @@ -# localcharset.m4 serial 6 -dnl Copyright (C) 2002, 2004, 2006, 2009 Free Software Foundation, Inc. +# localcharset.m4 serial 7 +dnl Copyright (C) 2002, 2004, 2006, 2009, 2010 Free Software 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. @@ -8,6 +8,7 @@ AC_DEFUN([gl_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_REQUIRE([gl_FCNTL_O_FLAGS]) AC_CHECK_DECLS_ONCE([getc_unlocked]) dnl Prerequisites of the lib/Makefile.am snippet. diff --git a/m4/locale-fr.m4 b/m4/locale-fr.m4 index 653a5bc2bd841615fc12fa7663e7b8e5e622cbcf..001f53906f5e1464ac84e7679704ad210a36b456 100644 --- a/m4/locale-fr.m4 +++ b/m4/locale-fr.m4 @@ -1,5 +1,5 @@ # locale-fr.m4 serial 11 -dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2005-2010 Free Software 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. diff --git a/m4/locale-ja.m4 b/m4/locale-ja.m4 index 936057647cf5ace3df97fac9134706e18cc9afd4..0eedaf149aab11a18940ce2cfe63398b6a895f01 100644 --- a/m4/locale-ja.m4 +++ b/m4/locale-ja.m4 @@ -1,5 +1,5 @@ # locale-ja.m4 serial 7 -dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2005-2010 Free Software 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. diff --git a/m4/locale-zh.m4 b/m4/locale-zh.m4 index 36a5f1dfb0bd4ea6727eebace8d34ec48fc0dbee..777fd1418eddfeff2087d1509723d7ffac40452d 100644 --- a/m4/locale-zh.m4 +++ b/m4/locale-zh.m4 @@ -1,5 +1,5 @@ # locale-zh.m4 serial 6 -dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2005-2010 Free Software 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. diff --git a/m4/longlong.m4 b/m4/longlong.m4 index eedc8d56826218e41849ce337e63964a968b7a1a..cca3c1a90fa9d399493c7a7b9a885b4ca5270971 100644 --- a/m4/longlong.m4 +++ b/m4/longlong.m4 @@ -1,5 +1,5 @@ # longlong.m4 serial 14 -dnl Copyright (C) 1999-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1999-2007, 2009-2010 Free Software 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. @@ -20,30 +20,30 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT], [AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. - dnl If cross compiling, assume the bug isn't important, since - dnl nobody cross compiles for this platform as far as we know. - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[@%:@include <limits.h> - @%:@ifndef LLONG_MAX - @%:@ define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - @%:@ define LLONG_MAX (HALF - 1 + HALF) - @%:@endif]], - [[long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0;]])], - [ac_cv_type_long_long_int=yes], - [ac_cv_type_long_long_int=no], - [ac_cv_type_long_long_int=yes])], + dnl If cross compiling, assume the bug isn't important, since + dnl nobody cross compiles for this platform as far as we know. + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[@%:@include <limits.h> + @%:@ifndef LLONG_MAX + @%:@ define HALF \ + (1LL << (sizeof (long long int) * CHAR_BIT - 2)) + @%:@ define LLONG_MAX (HALF - 1 + HALF) + @%:@endif]], + [[long long int n = 1; + int i; + for (i = 0; ; i++) + { + long long int m = n << i; + if (m >> i != n) + return 1; + if (LLONG_MAX / 2 < m) + break; + } + return 0;]])], + [ac_cv_type_long_long_int=yes], + [ac_cv_type_long_long_int=no], + [ac_cv_type_long_long_int=yes])], [ac_cv_type_long_long_int=no])]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], @@ -83,24 +83,24 @@ AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], [ AC_LANG_PROGRAM( [[/* For now, do not test the preprocessor; as of 2007 there are too many - implementations with broken preprocessors. Perhaps this can - be revisited in 2012. In the meantime, code should not expect - #if to work with literals wider than 32 bits. */ + implementations with broken preprocessors. Perhaps this can + be revisited in 2012. In the meantime, code should not expect + #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; + ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; + ? 1 : -1)]; int i = 63;]], [[/* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull));]]) + | (llmax / ll) | (llmax % ll) + | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) + | (ullmax / ull) | (ullmax % ull));]]) ]) diff --git a/m4/lseek.m4 b/m4/lseek.m4 index f336990709c2636072aacfd763a764da1d12db4a..9bf4dc2d046b4536500fd5526f1ab178976b91e1 100644 --- a/m4/lseek.m4 +++ b/m4/lseek.m4 @@ -1,5 +1,5 @@ -# lseek.m4 serial 4 -dnl Copyright (C) 2007 Free Software Foundation, Inc. +# lseek.m4 serial 5 +dnl Copyright (C) 2007, 2009, 2010 Free Software 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. @@ -19,21 +19,22 @@ int main () /* Exit with success only if stdin is seekable. */ return lseek (0, (off_t)0, SEEK_CUR) < 0; }], - [if test -s conftest$ac_exeext \ - && ./conftest$ac_exeext < conftest.$ac_ext \ - && { echo hi | ./conftest$ac_exeext; test $? = 1; }; then - gl_cv_func_lseek_pipe=yes - else - gl_cv_func_lseek_pipe=no - fi], - [gl_cv_func_lseek_pipe=no]) + [if test -s conftest$ac_exeext \ + && ./conftest$ac_exeext < conftest.$ac_ext \ + && test 1 = "`echo hi \ + | { ./conftest$ac_exeext; echo $?; cat >/dev/null; }`"; then + gl_cv_func_lseek_pipe=yes + else + gl_cv_func_lseek_pipe=no + fi], + [gl_cv_func_lseek_pipe=no]) else AC_COMPILE_IFELSE([ #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__ /* mingw and BeOS mistakenly return 0 when trying to seek on pipes. */ Choke me. #endif], - [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) + [gl_cv_func_lseek_pipe=yes], [gl_cv_func_lseek_pipe=no]) fi]) if test $gl_cv_func_lseek_pipe = no; then gl_REPLACE_LSEEK @@ -46,5 +47,5 @@ AC_DEFUN([gl_REPLACE_LSEEK], AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) REPLACE_LSEEK=1 AC_DEFINE([LSEEK_PIPE_BROKEN], [1], - [Define to 1 if lseek does not detect pipes.]) + [Define to 1 if lseek does not detect pipes.]) ]) diff --git a/m4/lstat.m4 b/m4/lstat.m4 index 74c78fe48a72f7852cb1ab9ad99954ca68483a60..5dbd16e28ffe875a46d4696df5a4a164b32b929f 100644 --- a/m4/lstat.m4 +++ b/m4/lstat.m4 @@ -1,6 +1,6 @@ -# serial 19 +# serial 20 -# Copyright (C) 1997-2001, 2003-2009 Free Software Foundation, Inc. +# Copyright (C) 1997-2001, 2003-2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12,15 +12,17 @@ AC_DEFUN([gl_FUNC_LSTAT], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl If lstat does not exist, the replacement <sys/stat.h> does - dnl "#define lstat stat", and lstat.c does not need to be compiled. + dnl "#define lstat stat", and lstat.c is a no-op. AC_CHECK_FUNCS_ONCE([lstat]) if test $ac_cv_func_lstat = yes; then - AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK - dnl Note: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK does AC_LIBOBJ([lstat]). + AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) if test $ac_cv_func_lstat_dereferences_slashed_symlink = no; then + dnl Note: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK does AC_LIBOBJ([lstat]). REPLACE_LSTAT=1 fi # Prerequisites of lib/lstat.c. AC_REQUIRE([AC_C_INLINE]) + else + HAVE_LSTAT=0 fi ]) diff --git a/m4/malloc.m4 b/m4/malloc.m4 index 807017166ba35812585f8e41667b8181f4f20afa..910ac92292c8c9b2840ad1e9c8cfcb8d9a867f4c 100644 --- a/m4/malloc.m4 +++ b/m4/malloc.m4 @@ -1,5 +1,5 @@ # malloc.m4 serial 9 -dnl Copyright (C) 2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2007, 2009, 2010 Free Software 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. diff --git a/m4/malloca.m4 b/m4/malloca.m4 index 2841ae83a7474e85a2bf1a8ec671a54a1efdfc65..e07c6d933166a84da94ae3faa802319c1272c5f8 100644 --- a/m4/malloca.m4 +++ b/m4/malloca.m4 @@ -1,5 +1,6 @@ # malloca.m4 serial 1 -dnl Copyright (C) 2003-2004, 2006-2007 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2004, 2006-2007, 2009-2010 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. diff --git a/m4/mbchar.m4 b/m4/mbchar.m4 index e73e2b4befbd553d4602205d824f8829d0546c6f..116ce7e5c90a929f9de4f14c01f87dc1de52e30d 100644 --- a/m4/mbchar.m4 +++ b/m4/mbchar.m4 @@ -1,5 +1,5 @@ -# mbchar.m4 serial 7 -dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. +# mbchar.m4 serial 8 +dnl Copyright (C) 2005-2007, 2009-2010 Free Software 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. @@ -10,4 +10,5 @@ dnl From Bruno Haible. AC_DEFUN([gl_MBCHAR], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([AC_C_INLINE]) ]) diff --git a/m4/mbiter.m4 b/m4/mbiter.m4 index 88ba5694039327676f5d57ed5185b59c48c789c1..3481050726983f392b05d82066f532cffe0dfe0b 100644 --- a/m4/mbiter.m4 +++ b/m4/mbiter.m4 @@ -1,5 +1,5 @@ -# mbiter.m4 serial 4 -dnl Copyright (C) 2005, 2008 Free Software Foundation, Inc. +# mbiter.m4 serial 5 +dnl Copyright (C) 2005, 2008, 2009, 2010 Free Software 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. @@ -9,6 +9,7 @@ dnl From Bruno Haible. AC_DEFUN([gl_MBITER], [ + AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) dnl The following line is that so the user can test HAVE_MBRTOWC before dnl #include "mbiter.h" or "mbuiter.h". It can be removed in 2010. diff --git a/m4/mbrtowc.m4 b/m4/mbrtowc.m4 index 726497b6cfcef8e46272b72cbe4fb7e2eb14f096..9ec93f561575d64d89959130279d6f90154bf0f3 100644 --- a/m4/mbrtowc.m4 +++ b/m4/mbrtowc.m4 @@ -1,5 +1,6 @@ -# mbrtowc.m4 serial 13 -dnl Copyright (C) 2001-2002, 2004-2005, 2008, 2009 Free Software Foundation, Inc. +# mbrtowc.m4 serial 16 +dnl Copyright (C) 2001-2002, 2004-2005, 2008-2010 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. @@ -65,9 +66,15 @@ AC_DEFUN([gl_MBSTATE_T_BROKEN], AC_CHECK_FUNCS_ONCE([mbrtowc]) if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then gl_MBRTOWC_INCOMPLETE_STATE + gl_MBRTOWC_SANITYCHECK + REPLACE_MBSTATE_T=0 case "$gl_cv_func_mbrtowc_incomplete_state" in - *yes) REPLACE_MBSTATE_T=0 ;; - *) REPLACE_MBSTATE_T=1 ;; + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; esac else REPLACE_MBSTATE_T=1 @@ -121,7 +128,59 @@ int main () }], [gl_cv_func_mbrtowc_incomplete_state=yes], [gl_cv_func_mbrtowc_incomplete_state=no], - []) + [:]) + fi + ]) +]) + +dnl Test whether mbrtowc works not worse than mbtowc. +dnl Result is gl_cv_func_mbrtowc_sanitycheck. + +AC_DEFUN([gl_MBRTOWC_SANITYCHECK], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_ZH_CN]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc works as well as mbtowc], + [gl_cv_func_mbrtowc_sanitycheck], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_ZH_CN != none; then + AC_TRY_RUN([ +#include <locale.h> +#include <stdlib.h> +#include <string.h> +#include <wchar.h> +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 1; + } + return 0; +}], + [gl_cv_func_mbrtowc_sanitycheck=yes], + [gl_cv_func_mbrtowc_sanitycheck=no], + [:]) fi ]) ]) @@ -168,7 +227,7 @@ int main () return 1; } return 0; -}], [gl_cv_func_mbrtowc_null_arg=yes], [gl_cv_func_mbrtowc_null_arg=no], []) +}], [gl_cv_func_mbrtowc_null_arg=yes], [gl_cv_func_mbrtowc_null_arg=no], [:]) fi ]) ]) @@ -238,7 +297,7 @@ int main () }], [gl_cv_func_mbrtowc_retval=yes], [gl_cv_func_mbrtowc_retval=no], - []) + [:]) fi ]) ]) @@ -258,10 +317,10 @@ AC_DEFUN([gl_MBRTOWC_NUL_RETVAL], dnl is present. changequote(,)dnl case "$host_os" in - # Guess no on Solaris 9. - solaris2.9) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; + # Guess no on Solaris 8 and 9. + solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_ZH_CN != none; then @@ -271,7 +330,7 @@ changequote([,])dnl #include <wchar.h> int main () { - /* This fails on Solaris 9. */ + /* This fails on Solaris 8 and 9. */ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) { mbstate_t state; @@ -285,7 +344,7 @@ int main () }], [gl_cv_func_mbrtowc_nul_retval=yes], [gl_cv_func_mbrtowc_nul_retval=no], - []) + [:]) fi ]) ]) diff --git a/m4/mbscasecmp.m4 b/m4/mbscasecmp.m4 deleted file mode 100644 index d76d10f5ab277a18d4b6db7fec48f6909dff48e0..0000000000000000000000000000000000000000 --- a/m4/mbscasecmp.m4 +++ /dev/null @@ -1,16 +0,0 @@ -# mbscasecmp.m4 serial 2 -dnl Copyright (C) 2007-2008 Free Software 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. - -AC_DEFUN([gl_FUNC_MBSCASECMP], -[ - gl_PREREQ_MBSCASECMP -]) - -# Prerequisites of lib/mbscasecmp.c. -AC_DEFUN([gl_PREREQ_MBSCASECMP], [ - AC_REQUIRE([AC_FUNC_MBRTOWC]) - : -]) diff --git a/m4/mbsinit.m4 b/m4/mbsinit.m4 index 03b055cd80fda5fd3d22d0a70534fc7493ec3a33..13907a516773e0dff5ae5dfac94ca7855a4ffdb2 100644 --- a/m4/mbsinit.m4 +++ b/m4/mbsinit.m4 @@ -1,5 +1,5 @@ # mbsinit.m4 serial 3 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +dnl Copyright (C) 2008, 2009, 2010 Free Software 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. diff --git a/m4/mbsrtowcs.m4 b/m4/mbsrtowcs.m4 new file mode 100644 index 0000000000000000000000000000000000000000..846a29345fe2acc41f2d488fcc12328ebcd3fd22 --- /dev/null +++ b/m4/mbsrtowcs.m4 @@ -0,0 +1,121 @@ +# mbsrtowcs.m4 serial 5 +dnl Copyright (C) 2008-2010 Free Software 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. + +AC_DEFUN([gl_FUNC_MBSRTOWCS], +[ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + + AC_REQUIRE([AC_TYPE_MBSTATE_T]) + gl_MBSTATE_T_BROKEN + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBSRTOWCS=1 + fi + AC_CHECK_FUNCS_ONCE([mbsrtowcs]) + if test $ac_cv_func_mbsrtowcs = no; then + HAVE_MBSRTOWCS=0 + fi + if test $HAVE_MBSRTOWCS != 0 && test $REPLACE_MBSRTOWCS != 1; then + gl_MBSRTOWCS_WORKS + case "$gl_cv_func_mbsrtowcs_works" in + *yes) ;; + *) REPLACE_MBSRTOWCS=1 ;; + esac + fi + if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then + gl_REPLACE_WCHAR_H + AC_LIBOBJ([mbsrtowcs]) + AC_LIBOBJ([mbsrtowcs-state]) + gl_PREREQ_MBSRTOWCS + fi +]) + +dnl Test whether mbsrtowcs works. +dnl Result is gl_cv_func_mbsrtowcs_works. + +AC_DEFUN([gl_MBSRTOWCS_WORKS], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_FR_UTF8]) + AC_REQUIRE([gt_LOCALE_JA]) + AC_REQUIRE([gt_LOCALE_ZH_CN]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbsrtowcs works], + [gl_cv_func_mbsrtowcs_works], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on HP-UX and Solaris. + hpux* | solaris*) gl_cv_func_mbsrtowcs_works="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbsrtowcs_works="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then + AC_TRY_RUN([ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + /* Test whether the function works when started with a conversion state + in non-initial state. This fails on HP-UX 11.11 and Solaris 10. */ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + return 1; + } + } + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "<\306\374\313\334\270\354>"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 4; + if (mbsrtowcs (NULL, &src, 10, &state) != 3) + return 1; + } + } + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + const char input[] = "B\250\271\201\060\211\070er"; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2)) + if (!mbsinit (&state)) + { + const char *src = input + 2; + if (mbsrtowcs (NULL, &src, 10, &state) != 4) + return 1; + } + } + return 0; +}], + [gl_cv_func_mbsrtowcs_works=yes], + [gl_cv_func_mbsrtowcs_works=no], + [:]) + fi + ]) +]) + +# Prerequisites of lib/mbsrtowcs.c. +AC_DEFUN([gl_PREREQ_MBSRTOWCS], [ + : +]) diff --git a/m4/mbstate_t.m4 b/m4/mbstate_t.m4 index d4ec6f0fc7107449a362452387e0ed1963799ee4..3e2df29f8aa13b71eb4038480ce3c85d25fdbb3c 100644 --- a/m4/mbstate_t.m4 +++ b/m4/mbstate_t.m4 @@ -1,5 +1,5 @@ # mbstate_t.m4 serial 12 -dnl Copyright (C) 2000-2002, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2000-2002, 2008-2010 Free Software 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. @@ -18,17 +18,17 @@ AC_DEFUN([AC_TYPE_MBSTATE_T], AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t], [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [AC_INCLUDES_DEFAULT[ -# include <wchar.h>]], - [[mbstate_t x; return sizeof x;]])], - [ac_cv_type_mbstate_t=yes], - [ac_cv_type_mbstate_t=no])]) + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT[ +# include <wchar.h>]], + [[mbstate_t x; return sizeof x;]])], + [ac_cv_type_mbstate_t=yes], + [ac_cv_type_mbstate_t=no])]) if test $ac_cv_type_mbstate_t = yes; then AC_DEFINE([HAVE_MBSTATE_T], [1], - [Define to 1 if <wchar.h> declares mbstate_t.]) + [Define to 1 if <wchar.h> declares mbstate_t.]) else AC_DEFINE([mbstate_t], [int], - [Define to a type if <wchar.h> does not define.]) + [Define to a type if <wchar.h> does not define.]) fi ]) diff --git a/m4/memchr.m4 b/m4/memchr.m4 new file mode 100644 index 0000000000000000000000000000000000000000..94596ef959a860c5dbba620109bb0341f99528e0 --- /dev/null +++ b/m4/memchr.m4 @@ -0,0 +1,86 @@ +# memchr.m4 serial 7 +dnl Copyright (C) 2002-2004, 2009-2010 Free Software 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. + +AC_DEFUN_ONCE([gl_FUNC_MEMCHR], +[ + dnl Check for prerequisites for memory fence checks. + gl_FUNC_MMAP_ANON + AC_CHECK_HEADERS_ONCE([sys/mman.h]) + AC_CHECK_FUNCS_ONCE([mprotect]) + + dnl These days, we assume memchr is present. But just in case... + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + AC_REPLACE_FUNCS([memchr]) + if test $ac_cv_func_memchr = no; then + gl_PREREQ_MEMCHR + REPLACE_MEMCHR=1 + fi + + if test $ac_cv_func_memchr = yes; then + # Detect platform-specific bugs in some versions of glibc: + # memchr should not dereference anything with length 0 + # http://bugzilla.redhat.com/499689 + # memchr should not dereference overestimated length after a match + # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737 + # http://sourceware.org/bugzilla/show_bug.cgi?id=10162 + # Assume that memchr works on platforms that lack mprotect. + AC_CACHE_CHECK([whether memchr works], [gl_cv_func_memchr_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include <string.h> +#if HAVE_SYS_MMAN_H +# include <fcntl.h> +# include <unistd.h> +# include <sys/types.h> +# include <sys/mman.h> +# ifndef MAP_FILE +# define MAP_FILE 0 +# endif +#endif +]], [[ + char *fence = NULL; +#if HAVE_SYS_MMAN_H && HAVE_MPROTECT +# if HAVE_MAP_ANONYMOUS + const int flags = MAP_ANONYMOUS | MAP_PRIVATE; + const int fd = -1; +# else /* !HAVE_MAP_ANONYMOUS */ + const int flags = MAP_FILE | MAP_PRIVATE; + int fd = open ("/dev/zero", O_RDONLY, 0666); + if (fd >= 0) +# endif + { + int pagesize = getpagesize (); + char *two_pages = + (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE, + flags, fd, 0); + if (two_pages != (char *)(-1) + && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0) + fence = two_pages + pagesize; + } +#endif + if (fence) + { + if (memchr (fence, 0, 0)) + return 1; + strcpy (fence - 9, "12345678"); + if (memchr (fence - 9, 0, 79) != fence - 1) + return 2; + } + return 0; +]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no], + [dnl Be pessimistic for now. + gl_cv_func_memchr_works="guessing no"])]) + if test "$gl_cv_func_memchr_works" != yes; then + gl_PREREQ_MEMCHR + REPLACE_MEMCHR=1 + AC_LIBOBJ([memchr]) + fi + fi +]) + +# Prerequisites of lib/memchr.c. +AC_DEFUN([gl_PREREQ_MEMCHR], [ + AC_CHECK_HEADERS([bp-sym.h]) +]) diff --git a/m4/mempcpy.m4 b/m4/mempcpy.m4 index a3c022f70b25465e7422ec1d634c05138d48b4b8..12df771e4c9937a3197eb151faffe30e98d9ffcb 100644 --- a/m4/mempcpy.m4 +++ b/m4/mempcpy.m4 @@ -1,5 +1,6 @@ # mempcpy.m4 serial 10 -dnl Copyright (C) 2003-2004, 2006-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2004, 2006-2007, 2009-2010 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. diff --git a/m4/memrchr.m4 b/m4/memrchr.m4 index b74de75afad1240d0586611753af83891be5e6bd..57ed978a29f22744c175d2187f3b7aa9c6feaed6 100644 --- a/m4/memrchr.m4 +++ b/m4/memrchr.m4 @@ -1,5 +1,6 @@ # memrchr.m4 serial 9 -dnl Copyright (C) 2002, 2003, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 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. diff --git a/m4/mkdir.m4 b/m4/mkdir.m4 new file mode 100644 index 0000000000000000000000000000000000000000..87f5f21c9557a1f28d4f7ada8198bfe22d33b823 --- /dev/null +++ b/m4/mkdir.m4 @@ -0,0 +1,52 @@ +# serial 9 + +# Copyright (C) 2001, 2003-2004, 2006, 2008-2010 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# On some systems, mkdir ("foo/", 0700) fails because of the trailing slash. +# On others, mkdir ("foo/./", 0700) mistakenly succeeds. +# On such systems, arrange to use a wrapper function. +AC_DEFUN([gl_FUNC_MKDIR], +[dnl + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + AC_CHECK_HEADERS_ONCE([unistd.h]) + AC_CACHE_CHECK([whether mkdir handles trailing slash], + [gl_cv_func_mkdir_trailing_slash_works], + [rm -rf conftest.dir + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +# include <sys/types.h> +# include <sys/stat.h> +]], [return mkdir ("conftest.dir/", 0700);])], + [gl_cv_func_mkdir_trailing_slash_works=yes], + [gl_cv_func_mkdir_trailing_slash_works=no], + [gl_cv_func_mkdir_trailing_slash_works="guessing no"]) + rm -rf conftest.dir + ] + ) + if test "$gl_cv_func_mkdir_trailing_slash_works" != yes; then + REPLACE_MKDIR=1 + AC_LIBOBJ([mkdir]) + fi + + AC_CACHE_CHECK([whether mkdir handles trailing dot], + [gl_cv_func_mkdir_trailing_dot_works], + [rm -rf conftest.dir + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +# include <sys/types.h> +# include <sys/stat.h> +]], [return !mkdir ("conftest.dir/./", 0700);])], + [gl_cv_func_mkdir_trailing_dot_works=yes], + [gl_cv_func_mkdir_trailing_dot_works=no], + [gl_cv_func_mkdir_trailing_dot_works="guessing no"]) + rm -rf conftest.dir + ] + ) + if test "$gl_cv_func_mkdir_trailing_dot_works" != yes; then + REPLACE_MKDIR=1 + AC_LIBOBJ([mkdir]) + AC_DEFINE([FUNC_MKDIR_DOT_BUG], [1], [Define to 1 if mkdir mistakenly + creates a directory given with a trailing dot component.]) + fi +]) diff --git a/m4/mkdtemp.m4 b/m4/mkdtemp.m4 index 444b61837cd640edd50b084c085e56559f17903f..6a07e0294c1c0e4f6e4acb20f8267bffbfa0f7f0 100644 --- a/m4/mkdtemp.m4 +++ b/m4/mkdtemp.m4 @@ -1,5 +1,6 @@ # mkdtemp.m4 serial 6 -dnl Copyright (C) 2001-2003, 2006-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2003, 2006-2007, 2009-2010 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. diff --git a/m4/mktime.m4 b/m4/mktime.m4 index 1e926e86b095eda7475aaac4dcbf58ec3314f25e..44b8d87885361a1eb6181f13d5cf34bd43685b6c 100644 --- a/m4/mktime.m4 +++ b/m4/mktime.m4 @@ -1,5 +1,6 @@ # serial 15 -dnl Copyright (C) 2002-2003, 2005-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 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. @@ -85,8 +86,8 @@ static int mktime_test (time_t now) { return (mktime_test1 (now) - && mktime_test1 ((time_t) (time_t_max - now)) - && mktime_test1 ((time_t) (time_t_min + now))); + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); } static int @@ -116,17 +117,17 @@ bigtime_test (int j) { struct tm *lt = localtime (&now); if (! (lt - && lt->tm_year == tm.tm_year - && lt->tm_mon == tm.tm_mon - && lt->tm_mday == tm.tm_mday - && lt->tm_hour == tm.tm_hour - && lt->tm_min == tm.tm_min - && lt->tm_sec == tm.tm_sec - && lt->tm_yday == tm.tm_yday - && lt->tm_wday == tm.tm_wday - && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) - == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - return 0; + && lt->tm_year == tm.tm_year + && lt->tm_mon == tm.tm_mon + && lt->tm_mday == tm.tm_mday + && lt->tm_hour == tm.tm_hour + && lt->tm_min == tm.tm_min + && lt->tm_sec == tm.tm_sec + && lt->tm_yday == tm.tm_yday + && lt->tm_wday == tm.tm_wday + && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) + == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) + return 0; } return 1; } @@ -158,7 +159,7 @@ year_2050_test () to the correct answer that we can assume the discrepancy is due to leap seconds. */ return (t == (time_t) -1 - || (0 < t && answer - 120 <= t && t <= answer + 120)); + || (0 < t && answer - 120 <= t && t <= answer + 120)); } int @@ -176,7 +177,7 @@ main () { t = (time_t_max << 1) + 1; if (t <= time_t_max) - break; + break; time_t_max = t; } time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; @@ -185,29 +186,29 @@ main () for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) - putenv (tz_strings[i]); + putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) - if (! mktime_test (t)) - return 1; + if (! mktime_test (t)) + return 1; if (! (mktime_test ((time_t) 1) - && mktime_test ((time_t) (60 * 60)) - && mktime_test ((time_t) (60 * 60 * 24)))) - return 1; + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + return 1; for (j = 1; ; j <<= 1) - if (! bigtime_test (j)) - return 1; - else if (INT_MAX / 2 < j) - break; + if (! bigtime_test (j)) + return 1; + else if (INT_MAX / 2 < j) + break; if (! bigtime_test (INT_MAX)) - return 1; + return 1; } return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); }]])], - [ac_cv_func_working_mktime=yes], - [ac_cv_func_working_mktime=no], - [ac_cv_func_working_mktime=no])]) + [ac_cv_func_working_mktime=yes], + [ac_cv_func_working_mktime=no], + [ac_cv_func_working_mktime=no])]) if test $ac_cv_func_working_mktime = no; then AC_LIBOBJ([mktime]) fi @@ -215,12 +216,14 @@ fi AC_DEFUN([gl_FUNC_MKTIME], [ + AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_FUNC_MKTIME dnl Note: AC_FUNC_MKTIME does AC_LIBOBJ([mktime]). if test $ac_cv_func_working_mktime = no; then - AC_DEFINE([mktime], [rpl_mktime], - [Define to rpl_mktime if the replacement function should be used.]) + REPLACE_MKTIME=1 gl_PREREQ_MKTIME + else + REPLACE_MKTIME=0 fi ]) diff --git a/m4/mmap-anon.m4 b/m4/mmap-anon.m4 new file mode 100644 index 0000000000000000000000000000000000000000..a6b7b9ac3b4954a5603f27408b2f5b3c3e90b61b --- /dev/null +++ b/m4/mmap-anon.m4 @@ -0,0 +1,59 @@ +# mmap-anon.m4 serial 8 +dnl Copyright (C) 2005, 2007, 2009-2010 Free Software 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. + +# Detect how mmap can be used to create anonymous (not file-backed) memory +# mappings. +# - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS +# and MAP_ANON exist and have the same value. +# - On HP-UX, only MAP_ANONYMOUS exists. +# - On MacOS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists. +# - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be +# used. + +AC_DEFUN([gl_FUNC_MMAP_ANON], +[ + dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57. + AC_REQUIRE([AC_PROG_CPP]) + AC_REQUIRE([AC_PROG_EGREP]) + + dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS. + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) + + # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it + # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is + # irrelevant for anonymous mappings. + AC_CHECK_FUNC([mmap], [gl_have_mmap=yes], [gl_have_mmap=no]) + + # Try to allow MAP_ANONYMOUS. + gl_have_mmap_anonymous=no + if test $gl_have_mmap = yes; then + AC_MSG_CHECKING([for MAP_ANONYMOUS]) + AC_EGREP_CPP([I cant identify this map.], [ +#include <sys/mman.h> +#ifdef MAP_ANONYMOUS + I cant identify this map. +#endif +], + [gl_have_mmap_anonymous=yes]) + if test $gl_have_mmap_anonymous != yes; then + AC_EGREP_CPP([I cant identify this map.], [ +#include <sys/mman.h> +#ifdef MAP_ANON + I cant identify this map. +#endif +], + [AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON], + [Define to a substitute value for mmap()'s MAP_ANONYMOUS flag.]) + gl_have_mmap_anonymous=yes]) + fi + AC_MSG_RESULT([$gl_have_mmap_anonymous]) + if test $gl_have_mmap_anonymous = yes; then + AC_DEFINE([HAVE_MAP_ANONYMOUS], [1], + [Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including + config.h and <sys/mman.h>.]) + fi + fi +]) diff --git a/m4/mode_t.m4 b/m4/mode_t.m4 new file mode 100644 index 0000000000000000000000000000000000000000..3178dfd3b8ce5e9b66a4a8dc2d56256a0e2bbd0e --- /dev/null +++ b/m4/mode_t.m4 @@ -0,0 +1,26 @@ +# mode_t.m4 serial 2 +dnl Copyright (C) 2009-2010 Free Software 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. + +# For using mode_t, it's sufficient to use AC_TYPE_MODE_T and +# include <sys/types.h>. + +# Define PROMOTED_MODE_T to the type that is the result of "default argument +# promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. +AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], +[ + AC_REQUIRE([AC_TYPE_MODE_T]) + AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ + dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', + dnl and to itself otherwise. This assumption is not guaranteed by the ISO C + dnl standard, but we don't know of any real-world counterexamples. + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], + [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], + [gl_cv_promoted_mode_t='int'], + [gl_cv_promoted_mode_t='mode_t']) + ]) + AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], + [Define to the type that is the result of default argument promotions of type mode_t.]) +]) diff --git a/m4/modechange.m4 b/m4/modechange.m4 index 3b23955e5fca038171e3b31891b09f3f93005f36..475649aa89be178847635ef55f077ac68d1fdc43 100644 --- a/m4/modechange.m4 +++ b/m4/modechange.m4 @@ -1,5 +1,6 @@ # modechange.m4 serial 6 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 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. diff --git a/m4/multiarch.m4 b/m4/multiarch.m4 index 3948e6e0dba4d5962e23537dca014cc43d1183f0..389bd2bbaa6e73bbccc10e73f88c2ab079a24e0b 100644 --- a/m4/multiarch.m4 +++ b/m4/multiarch.m4 @@ -1,5 +1,5 @@ -# multiarch.m4 serial 4 -dnl Copyright (C) 2008, 2009 Free Software Foundation, Inc. +# multiarch.m4 serial 5 +dnl Copyright (C) 2008, 2009, 2010 Free Software 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. @@ -19,7 +19,6 @@ dnl with or without modifications, as long as this notice is preserved. # Detect this situation and set the macro AA_APPLE_UNIVERSAL_BUILD at the # beginning of config.h and set APPLE_UNIVERSAL_BUILD accordingly. -dnl This macro must pass through AC_REQUIRE (never directly invoke it). AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. diff --git a/m4/nl_langinfo.m4 b/m4/nl_langinfo.m4 new file mode 100644 index 0000000000000000000000000000000000000000..ad456a264ce925faa0c181e9a8dc4f28517af663 --- /dev/null +++ b/m4/nl_langinfo.m4 @@ -0,0 +1,25 @@ +# nl_langinfo.m4 serial 3 +dnl Copyright (C) 2009, 2010 Free Software 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. + +AC_DEFUN([gl_FUNC_NL_LANGINFO], +[ + AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) + AC_REQUIRE([gl_LANGINFO_H]) + AC_CHECK_FUNCS_ONCE([nl_langinfo]) + if test $ac_cv_func_nl_langinfo = yes; then + if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1; then + : + else + REPLACE_NL_LANGINFO=1 + AC_DEFINE([REPLACE_NL_LANGINFO], [1], + [Define if nl_langinfo exists but is overridden by gnulib.]) + AC_LIBOBJ([nl_langinfo]) + fi + else + HAVE_NL_LANGINFO=0 + AC_LIBOBJ([nl_langinfo]) + fi +]) diff --git a/m4/nls.m4 b/m4/nls.m4 index 0b364342158dbc5ae0589d7a82b1cb5c3f0d0bd9..003704c4b93b51bf11bd430c4344be47b63cb856 100644 --- a/m4/nls.m4 +++ b/m4/nls.m4 @@ -1,5 +1,6 @@ # nls.m4 serial 5 (gettext-0.18) -dnl Copyright (C) 1995-2003, 2005-2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 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. diff --git a/m4/open.m4 b/m4/open.m4 index 6e286c96e8415b5d4f9b5c6fe0d787ca40842e36..d705b3a1eff807faf1fb50bc373fa1c4eceef7e8 100644 --- a/m4/open.m4 +++ b/m4/open.m4 @@ -1,5 +1,5 @@ -# open.m4 serial 5 -dnl Copyright (C) 2007-2009 Free Software Foundation, Inc. +# open.m4 serial 8 +dnl Copyright (C) 2007-2010 Free Software 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. @@ -13,10 +13,15 @@ AC_DEFUN([gl_FUNC_OPEN], ;; *) dnl open("foo/") should not create a file when the file name has a - dnl trailing slash. + dnl trailing slash. FreeBSD only has the problem on symlinks. + AC_CHECK_FUNCS_ONCE([lstat]) AC_CACHE_CHECK([whether open recognizes a trailing slash], [gl_cv_func_open_slash], - [ + [# Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + touch conftest.tmp + ln -s conftest.tmp conftest.lnk + fi AC_TRY_RUN([ #include <fcntl.h> #if HAVE_UNISTD_H @@ -24,18 +29,22 @@ AC_DEFUN([gl_FUNC_OPEN], #endif int main () { +#if HAVE_LSTAT + if (open ("conftest.lnk/", O_RDONLY) != -1) return 2; +#endif return open ("conftest.sl/", O_CREAT, 0600) >= 0; }], [gl_cv_func_open_slash=yes], [gl_cv_func_open_slash=no], [ changequote(,)dnl case "$host_os" in + freebsd*) gl_cv_func_open_slash="guessing no" ;; solaris2.[0-9]*) gl_cv_func_open_slash="guessing no" ;; hpux*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac changequote([,])dnl ]) - rm -f conftest.sl + rm -f conftest.sl conftest.tmp conftest.lnk ]) case "$gl_cv_func_open_slash" in *no) @@ -51,16 +60,15 @@ changequote([,])dnl AC_DEFUN([gl_REPLACE_OPEN], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) - if test $REPLACE_OPEN != 1; then - AC_LIBOBJ([open]) - gl_PREREQ_OPEN - fi REPLACE_OPEN=1 + AC_LIBOBJ([open]) + gl_PREREQ_OPEN ]) # Prerequisites of lib/open.c. AC_DEFUN([gl_PREREQ_OPEN], [ AC_REQUIRE([AC_C_INLINE]) + AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) diff --git a/m4/openat.m4 b/m4/openat.m4 index 10eac5c12eafa937bbbf6e0581441ec117560adf..7975efb47e22ab04033a0ceccfb246eedb7af948 100644 --- a/m4/openat.m4 +++ b/m4/openat.m4 @@ -1,7 +1,7 @@ -# serial 17 +# serial 27 # See if we need to use our replacement for Solaris' openat et al functions. -dnl Copyright (C) 2004-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2010 Free Software 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. @@ -10,20 +10,53 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_OPENAT], [ + AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) + GNULIB_OPENAT=1 + + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + GNULIB_FCHMODAT=1 + GNULIB_FSTATAT=1 + GNULIB_MKDIRAT=1 + + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + GNULIB_FCHOWNAT=1 + GNULIB_UNLINKAT=1 + AC_LIBOBJ([openat-proc]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_FUNCS_ONCE([lchmod]) - AC_CHECK_FUNCS_ONCE([fdopendir]) - AC_REPLACE_FUNCS([fchmodat mkdirat openat]) + AC_REPLACE_FUNCS([fchmodat fstatat mkdirat openat unlinkat]) AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) + AC_REQUIRE([gl_FUNC_UNLINK]) case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in - yes+yes) ;; - yes+*) AC_LIBOBJ([fstatat]);; + yes+yes) + # GNU/Hurd has unlinkat, but it has the same bug as unlink. + if test $REPLACE_UNLINK = 1; then + AC_LIBOBJ([unlinkat]) + REPLACE_UNLINKAT=1 + fi ;; + yes+*) + # Solaris 9 has *at functions, but uniformly mishandles trailing + # slash in all of them. + AC_LIBOBJ([openat]) + REPLACE_OPENAT=1 + AC_LIBOBJ([fstatat]) + REPLACE_FSTATAT=1 + AC_LIBOBJ([unlinkat]) + REPLACE_UNLINKAT=1 + ;; *) - AC_DEFINE([__OPENAT_PREFIX], [[rpl_]], - [Define to rpl_ if the openat replacement function should be used.]) + HAVE_OPENAT=0 + HAVE_UNLINKAT=0 # No known system with unlinkat but not openat + HAVE_FSTATAT=0 # No known system with fstatat but not openat gl_PREREQ_OPENAT;; esac + if test $ac_cv_func_fchmodat != yes; then + HAVE_FCHMODAT=0 + fi + if test $ac_cv_func_mkdirat != yes; then + HAVE_MKDIRAT=0 + fi gl_FUNC_FCHOWNAT ]) @@ -41,7 +74,7 @@ AC_DEFUN([gl_FUNC_FCHOWNAT_DEREF_BUG], ln -s conftest.no-such $gl_dangle AC_RUN_IFELSE( [AC_LANG_SOURCE( - [[ + [[ #include <fcntl.h> #include <unistd.h> #include <stdlib.h> @@ -51,10 +84,10 @@ int main () { return (fchownat (AT_FDCWD, "$gl_dangle", -1, getgid (), - AT_SYMLINK_NOFOLLOW) != 0 - && errno == ENOENT); + AT_SYMLINK_NOFOLLOW) != 0 + && errno == ENOENT); } - ]])], + ]])], [gl_cv_func_fchownat_nofollow_works=yes], [gl_cv_func_fchownat_nofollow_works=no], [gl_cv_func_fchownat_nofollow_works=no], @@ -69,23 +102,23 @@ main () # Also use the replacement function if fchownat is simply not available. AC_DEFUN([gl_FUNC_FCHOWNAT], [ - # Assume we'll use the replacement function. - # The only case in which we won't is when we have fchownat, and it works. - use_replacement_fchownat=yes - - AC_CHECK_FUNC([fchownat], [have_fchownat=yes], [have_fchownat=no]) - if test $have_fchownat = yes; then - gl_FUNC_FCHOWNAT_DEREF_BUG([], [use_replacement_fchownat=no]) + AC_REQUIRE([gl_FUNC_CHOWN]) + AC_CHECK_FUNC([fchownat], + [gl_FUNC_FCHOWNAT_DEREF_BUG([REPLACE_FCHOWNAT=1 + AC_DEFINE([FCHOWNAT_NOFOLLOW_BUG], [1], [Define to 1 if your + platform has fchownat, but it cannot perform lchown tasks.])])], + [HAVE_FCHOWNAT=0]) + if test $REPLACE_CHOWN = 1; then + REPLACE_FCHOWNAT=1 fi - - if test $use_replacement_fchownat = yes; then + if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then AC_LIBOBJ([fchownat]) - AC_DEFINE([fchownat], [rpl_fchownat], - [Define to rpl_fchownat if the replacement function should be used.]) fi ]) AC_DEFUN([gl_PREREQ_OPENAT], [ + AC_REQUIRE([AC_C_INLINE]) + AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) diff --git a/m4/pathmax.m4 b/m4/pathmax.m4 index e88fdb4ca49e7b301726b55e3fc8f8715a08d8ee..6a3f857e3ae49bd13f6667f1d5a8b070c15a8ffb 100644 --- a/m4/pathmax.m4 +++ b/m4/pathmax.m4 @@ -1,5 +1,6 @@ -# pathmax.m4 serial 7 -dnl Copyright (C) 2002, 2003, 2005, 2006, 2009 Free Software Foundation, Inc. +# pathmax.m4 serial 8 +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 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. @@ -7,5 +8,6 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PATHMAX], [ dnl Prerequisites of lib/pathmax.h. + AC_CHECK_FUNCS_ONCE([pathconf]) AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) diff --git a/m4/po.m4 b/m4/po.m4 index 2284fa5054f5b863c25365bb1bbe08d53a36d423..960efe15d4e121d74e5ca16810c6597ef7545581 100644 --- a/m4/po.m4 +++ b/m4/po.m4 @@ -1,5 +1,5 @@ # po.m4 serial 17 (gettext-0.18) -dnl Copyright (C) 1995-2009 Free Software Foundation, Inc. +dnl Copyright (C) 1995-2010 Free Software 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. diff --git a/m4/printf.m4 b/m4/printf.m4 index a1d4dadd7bb6819e7739162482fcc0b99cfc3567..ebca5364c467d51f91324b50bb2b248b3cc725a0 100644 --- a/m4/printf.m4 +++ b/m4/printf.m4 @@ -1,5 +1,5 @@ -# printf.m4 serial 28 -dnl Copyright (C) 2003, 2007-2009 Free Software Foundation, Inc. +# printf.m4 serial 33 +dnl Copyright (C) 2003, 2007-2010 Free Software 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. @@ -125,7 +125,8 @@ changequote([,])dnl ]) dnl Test whether the *printf family of functions supports infinite and NaN -dnl 'double' arguments in the %f, %e, %g directives. (ISO C99, POSIX:2001) +dnl 'double' arguments and negative zero arguments in the %f, %e, %g +dnl directives. (ISO C99, POSIX:2001) dnl Result is gl_cv_func_printf_infinite. AC_DEFUN([gl_PRINTF_INFINITE], @@ -156,6 +157,13 @@ strisnan (const char *string, size_t start_index, size_t end_index) } return 0; } +static int +have_minus_zero () +{ + static double plus_zero = 0.0; + double minus_zero = - plus_zero; + return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0; +} static char buf[10000]; static double zero = 0.0; int main () @@ -187,6 +195,11 @@ int main () if (sprintf (buf, "%g", zero / zero) < 0 || !strisnan (buf, 0, strlen (buf))) return 1; + /* This test fails on HP-UX 10.20. */ + if (have_minus_zero ()) + if (sprintf (buf, "%g", - zero) < 0 + || strcmp (buf, "-0") != 0) + return 1; return 0; }], [gl_cv_func_printf_infinite=yes], [gl_cv_func_printf_infinite=no], [ @@ -545,7 +558,7 @@ int main () if (sprintf (buf, "%F", 1.0 / 0.0) < 0 || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0)) return 1; - /* This catches a Cygwin 2007 bug. */ + /* This catches a Cygwin 1.5.x bug. */ if (sprintf (buf, "%.F", 1234.0) < 0 || strcmp (buf, "1234") != 0) return 1; @@ -612,6 +625,84 @@ changequote([,])dnl ]) ]) +dnl Test whether the *printf family of functions supports the %ls format +dnl directive and in particular, when a precision is specified, whether +dnl the functions stop converting the wide string argument when the number +dnl of bytes that have been produced by this conversion equals or exceeds +dnl the precision. +dnl Result is gl_cv_func_printf_directive_ls. + +AC_DEFUN([gl_PRINTF_DIRECTIVE_LS], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether printf supports the 'ls' directive], + [gl_cv_func_printf_directive_ls], + [ + AC_TRY_RUN([ +/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before + <wchar.h>. + BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be + included before <wchar.h>. */ +#include <stddef.h> +#include <stdio.h> +#include <time.h> +#include <wchar.h> +#include <string.h> +int main () +{ + char buf[100]; + /* Test whether %ls works at all. + This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on + Cygwin 1.5. */ + { + static const wchar_t wstring[] = { 'a', 'b', 'c', 0 }; + buf[0] = '\0'; + if (sprintf (buf, "%ls", wstring) < 0 + || strcmp (buf, "abc") != 0) + return 1; + } + /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an + assertion failure inside libc), but not on OpenBSD 4.0. */ + { + static const wchar_t wstring[] = { 'a', 0 }; + buf[0] = '\0'; + if (sprintf (buf, "%ls", wstring) < 0 + || strcmp (buf, "a") != 0) + return 1; + } + /* Test whether precisions in %ls are supported as specified in ISO C 99 + section 7.19.6.1: + "If a precision is specified, no more than that many bytes are written + (including shift sequences, if any), and the array shall contain a + null wide character if, to equal the multibyte character sequence + length given by the precision, the function would need to access a + wide character one past the end of the array." + This test fails on Solaris 10. */ + { + static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 }; + buf[0] = '\0'; + if (sprintf (buf, "%.2ls", wstring) < 0 + || strcmp (buf, "ab") != 0) + return 1; + } + return 0; +}], [gl_cv_func_printf_directive_ls=yes], [gl_cv_func_printf_directive_ls=no], + [ +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";; + *) gl_cv_func_printf_directive_ls="guessing yes";; + esac +changequote([,])dnl + ]) + ]) +]) + dnl Test whether the *printf family of functions supports POSIX/XSI format dnl strings with positions. (POSIX:2001) dnl Result is gl_cv_func_printf_positions. @@ -1261,18 +1352,19 @@ dnl 4 = gl_PRINTF_INFINITE_LONG_DOUBLE dnl 5 = gl_PRINTF_DIRECTIVE_A dnl 6 = gl_PRINTF_DIRECTIVE_F dnl 7 = gl_PRINTF_DIRECTIVE_N -dnl 8 = gl_PRINTF_POSITIONS -dnl 9 = gl_PRINTF_FLAG_GROUPING -dnl 10 = gl_PRINTF_FLAG_LEFTADJUST -dnl 11 = gl_PRINTF_FLAG_ZERO -dnl 12 = gl_PRINTF_PRECISION -dnl 13 = gl_PRINTF_ENOMEM -dnl 14 = gl_SNPRINTF_PRESENCE -dnl 15 = gl_SNPRINTF_TRUNCATION_C99 -dnl 16 = gl_SNPRINTF_RETVAL_C99 -dnl 17 = gl_SNPRINTF_DIRECTIVE_N -dnl 18 = gl_SNPRINTF_SIZE1 -dnl 19 = gl_VSNPRINTF_ZEROSIZE_C99 +dnl 8 = gl_PRINTF_DIRECTIVE_LS +dnl 9 = gl_PRINTF_POSITIONS +dnl 10 = gl_PRINTF_FLAG_GROUPING +dnl 11 = gl_PRINTF_FLAG_LEFTADJUST +dnl 12 = gl_PRINTF_FLAG_ZERO +dnl 13 = gl_PRINTF_PRECISION +dnl 14 = gl_PRINTF_ENOMEM +dnl 15 = gl_SNPRINTF_PRESENCE +dnl 16 = gl_SNPRINTF_TRUNCATION_C99 +dnl 17 = gl_SNPRINTF_RETVAL_C99 +dnl 18 = gl_SNPRINTF_DIRECTIVE_N +dnl 19 = gl_SNPRINTF_SIZE1 +dnl 20 = gl_VSNPRINTF_ZEROSIZE_C99 dnl dnl 1 = checking whether printf supports size specifiers as in C99... dnl 2 = checking whether printf supports 'long double' arguments... @@ -1281,42 +1373,44 @@ dnl 4 = checking whether printf supports infinite 'long double' arguments... dnl 5 = checking whether printf supports the 'a' and 'A' directives... dnl 6 = checking whether printf supports the 'F' directive... dnl 7 = checking whether printf supports the 'n' directive... -dnl 8 = checking whether printf supports POSIX/XSI format strings with positions... -dnl 9 = checking whether printf supports the grouping flag... -dnl 10 = checking whether printf supports the left-adjust flag correctly... -dnl 11 = checking whether printf supports the zero flag correctly... -dnl 12 = checking whether printf supports large precisions... -dnl 13 = checking whether printf survives out-of-memory conditions... -dnl 14 = checking for snprintf... -dnl 15 = checking whether snprintf truncates the result as in C99... -dnl 16 = checking whether snprintf returns a byte count as in C99... -dnl 17 = checking whether snprintf fully supports the 'n' directive... -dnl 18 = checking whether snprintf respects a size of 1... -dnl 19 = checking whether vsnprintf respects a zero size as in C99... +dnl 8 = checking whether printf supports the 'ls' directive... +dnl 9 = checking whether printf supports POSIX/XSI format strings with positions... +dnl 10 = checking whether printf supports the grouping flag... +dnl 11 = checking whether printf supports the left-adjust flag correctly... +dnl 12 = checking whether printf supports the zero flag correctly... +dnl 13 = checking whether printf supports large precisions... +dnl 14 = checking whether printf survives out-of-memory conditions... +dnl 15 = checking for snprintf... +dnl 16 = checking whether snprintf truncates the result as in C99... +dnl 17 = checking whether snprintf returns a byte count as in C99... +dnl 18 = checking whether snprintf fully supports the 'n' directive... +dnl 19 = checking whether snprintf respects a size of 1... +dnl 20 = checking whether vsnprintf respects a zero size as in C99... dnl dnl . = yes, # = no. dnl -dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . -dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . -dnl FreeBSD 5.4, 6.1 . . . . # . . . . . # . # . . . . . . -dnl MacOS X 10.3.9 . . . . # . . . . . # . # . . . . . . -dnl OpenBSD 3.9, 4.0 . . # # # # . . # . # . # . . . . . . -dnl Cygwin 2007 (= Cygwin 1.5.24) . . . . # # . . . ? # ? ? . . . . . . -dnl Cygwin 2006 (= Cygwin 1.5.19) # . . . # # . . # ? # ? ? . . . . . . -dnl Solaris 10 . . # # # . . . . . # . . . . . . . . -dnl Solaris 2.6 ... 9 # . # # # # . . . . # . . . . . . . . -dnl Solaris 2.5.1 # . # # # # . . . . # . . # # # # # # -dnl AIX 5.2 . . # # # . . . . . # . . . . . . . . -dnl AIX 4.3.2, 5.1 # . # # # # . . . . # . . . . . . . . -dnl HP-UX 11.31 . . . . # . . . . . # . . . . # # . . -dnl HP-UX 11.{00,11,23} # . . . # # . . . . # . . . . # # . # -dnl HP-UX 10.20 # . . . # # . . . # # . . . . # # ? # -dnl IRIX 6.5 # . # # # # . . . . # . . . . # . . . -dnl OSF/1 5.1 # . # # # # . . . . # . . . . # . . # -dnl OSF/1 4.0d # . # # # # . . . . # . . # # # # # # -dnl NetBSD 4.0 . ? ? ? ? ? . . ? ? ? ? ? . . . ? ? ? -dnl NetBSD 3.0 . . . . # # . # # ? # . # . . . . . . -dnl Haiku . . . # # # . . . . . . ? . . . . . . -dnl BeOS # # . # # # . # . ? . # ? . . . . . . -dnl mingw # # # # # # . # # . # # ? . # # # . . +dnl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . . +dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . . +dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . # . # . . . . . . +dnl MacOS X 10.3.9 . . . . # . . . . . . # . # . . . . . . +dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . # . # . . . . . . +dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . . +dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . . +dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . . +dnl Solaris 10 . . # # # . . # . . . # . . . . . . . . +dnl Solaris 2.6 ... 9 # . # # # # . # . . . # . . . . . . . . +dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # # +dnl AIX 5.2 . . # # # . . . . . . # . . . . . . . . +dnl AIX 4.3.2, 5.1 # . # # # # . . . . . # . . . . . . . . +dnl HP-UX 11.31 . . . . # . . . . . . # . . . . # # . . +dnl HP-UX 11.{00,11,23} # . . . # # . . . . . # . . . . # # . # +dnl HP-UX 10.20 # . # . # # . ? . . # # . . . . # # ? # +dnl IRIX 6.5 # . # # # # . # . . . # . . . . # . . . +dnl OSF/1 5.1 # . # # # # . . . . . # . . . . # . . # +dnl OSF/1 4.0d # . # # # # . . . . . # . . # # # # # # +dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? . . . ? ? ? +dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . . +dnl Haiku . . . # # # . # . . . . . ? . . . . . . +dnl BeOS # # . # # # . ? # . ? . # ? . . . . . . +dnl mingw # # # # # # . . # # . # # ? . # # # . . diff --git a/m4/priv-set.m4 b/m4/priv-set.m4 new file mode 100644 index 0000000000000000000000000000000000000000..205b00c6c1d11e5949b818fb0f76c1e5fc5b99d6 --- /dev/null +++ b/m4/priv-set.m4 @@ -0,0 +1,15 @@ +# serial 6 + +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Written by David Bartley. + +AC_DEFUN([gl_PRIV_SET], +[ + AC_REQUIRE([AC_C_INLINE]) + AC_CHECK_FUNCS([getppriv]) +]) diff --git a/m4/progtest.m4 b/m4/progtest.m4 index e1d445d26734ecfbf6c756776d006878470a3715..2d804ac99d7087a595be309ce76de5c98f89ce92 100644 --- a/m4/progtest.m4 +++ b/m4/progtest.m4 @@ -1,5 +1,5 @@ # progtest.m4 serial 6 (gettext-0.18) -dnl Copyright (C) 1996-2003, 2005, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1996-2003, 2005, 2008-2010 Free Software 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. diff --git a/m4/quote.m4 b/m4/quote.m4 index 0f08791a9005ea01a545e98e2d6fccca1f4e964b..e07554269edcb7ec86b76432e31166fd9755386f 100644 --- a/m4/quote.m4 +++ b/m4/quote.m4 @@ -1,5 +1,6 @@ # quote.m4 serial 5 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2003, 2005, 2006, 2009, 2010 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. diff --git a/m4/quotearg.m4 b/m4/quotearg.m4 index 88478612fb677feb07e1cbb97182da619285dda1..f72fd621f8cff4906d3a0c46b2535f5984093667 100644 --- a/m4/quotearg.m4 +++ b/m4/quotearg.m4 @@ -1,5 +1,5 @@ -# quotearg.m4 serial 7 -dnl Copyright (C) 2002, 2004-2008 Free Software Foundation, Inc. +# quotearg.m4 serial 8 +dnl Copyright (C) 2002, 2004-2010 Free Software 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. @@ -7,9 +7,4 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_QUOTEARG], [ AC_LIBOBJ([quotearg]) - - dnl Prerequisites of lib/quotearg.c. - AC_CHECK_FUNCS_ONCE([mbsinit]) - AC_TYPE_MBSTATE_T - AC_FUNC_MBRTOWC ]) diff --git a/m4/rawmemchr.m4 b/m4/rawmemchr.m4 index 1ac7b7440fae5c205166481cd20950593af1b40b..2a25a490419fa2f642201a37cae6081d87391841 100644 --- a/m4/rawmemchr.m4 +++ b/m4/rawmemchr.m4 @@ -1,5 +1,5 @@ # rawmemchr.m4 serial 1 -dnl Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007, 2008, 2009, 2010 Free Software 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. diff --git a/m4/readlink.m4 b/m4/readlink.m4 index ff3f1f5876f1947ea35afa4c43c941ef3975bdd9..36cd41f9b8e1b7ae49a36ed9d6fb99eb97e7e2dc 100644 --- a/m4/readlink.m4 +++ b/m4/readlink.m4 @@ -1,5 +1,5 @@ -# readlink.m4 serial 5 -dnl Copyright (C) 2003, 2007, 2009 Free Software Foundation, Inc. +# readlink.m4 serial 9 +dnl Copyright (C) 2003, 2007, 2009, 2010 Free Software 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. @@ -12,6 +12,39 @@ AC_DEFUN([gl_FUNC_READLINK], HAVE_READLINK=0 AC_LIBOBJ([readlink]) gl_PREREQ_READLINK + else + AC_CACHE_CHECK([whether readlink signature is correct], + [gl_cv_decl_readlink_works], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <unistd.h> + /* Cause compilation failure if original declaration has wrong type. */ + ssize_t readlink (const char *, char *, size_t);]])], + [gl_cv_decl_readlink_works=yes], [gl_cv_decl_readlink_works=no])]) + dnl Solaris 9 ignores trailing slash. + dnl FreeBSD 7.2 dereferences only one level of links with trailing slash. + AC_CACHE_CHECK([whether readlink handles trailing slash correctly], + [gl_cv_func_readlink_works], + [# We have readlink, so assume ln -s works. + ln -s conftest.no-such conftest.link + ln -s conftest.link conftest.lnk2 + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <unistd.h> +]], [[char buf[20]; + return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])], + [gl_cv_func_readlink_works=yes], [gl_cv_func_readlink_works=no], + [gl_cv_func_readlink_works="guessing no"]) + rm -f conftest.link conftest.lnk2]) + if test "$gl_cv_func_readlink_works" != yes; then + AC_DEFINE([READLINK_TRAILING_SLASH_BUG], [1], [Define to 1 if readlink + fails to recognize a trailing slash.]) + REPLACE_READLINK=1 + AC_LIBOBJ([readlink]) + elif test "$gl_cv_decl_readlink_works" != yes; then + REPLACE_READLINK=1 + AC_LIBOBJ([readlink]) + fi fi ]) diff --git a/m4/realloc.m4 b/m4/realloc.m4 index 5925796864e033cb4e0794c9e751378f513b97c5..dc30235c176cb5f7228dfbf091aaed3f96d8f9c6 100644 --- a/m4/realloc.m4 +++ b/m4/realloc.m4 @@ -1,5 +1,5 @@ # realloc.m4 serial 9 -dnl Copyright (C) 2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2007, 2009, 2010 Free Software 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. diff --git a/m4/regex.m4 b/m4/regex.m4 index 43b04638c2ebcbdf9a5c5ab207e07b5c59570ccd..6bd6b8f7d4e6218874d715bf7041b9aa91cbdca6 100644 --- a/m4/regex.m4 +++ b/m4/regex.m4 @@ -1,7 +1,7 @@ -# serial 53 +# serial 55 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -18,149 +18,153 @@ AC_DEFUN([gl_REGEX], AC_ARG_WITH([included-regex], [AS_HELP_STRING([--without-included-regex], - [don't compile regex; this is the default on 32-bit - systems with recent-enough versions of the GNU C - Library (use with caution on other systems). - On systems with 64-bit ptrdiff_t and 32-bit int, - --with-included-regex is the default, in case - regex functions operate on very long strings (>2GB)])]) + [don't compile regex; this is the default on systems + with recent-enough versions of the GNU C Library + (use with caution on other systems).])]) case $with_included_regex in #( yes|no) ac_use_included_regex=$with_included_regex - ;; + ;; '') # If the system regex support is good enough that it passes the # following run test, then default to *not* using the included regex.c. # If cross compiling, assume the test would fail and use the included # regex.c. AC_CACHE_CHECK([for working re_compile_pattern], - [gl_cv_func_re_compile_pattern_working], + [gl_cv_func_re_compile_pattern_working], [AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [AC_INCLUDES_DEFAULT[ - #if HAVE_LOCALE_H - #include <locale.h> - #endif - #include <limits.h> - #include <regex.h> - ]], - [[static struct re_pattern_buffer regex; - unsigned char folded_chars[UCHAR_MAX + 1]; - int i; - const char *s; - struct re_registers regs; - - #if HAVE_LOCALE_H - /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html - This test needs valgrind to catch the bug on Debian - GNU/Linux 3.1 x86, but it might catch the bug better - on other platforms and it shouldn't hurt to try the - test here. */ - if (setlocale (LC_ALL, "en_US.UTF-8")) - { - static char const pat[] = "insert into"; - static char const data[] = - "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; - re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE - | RE_ICASE); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern (pat, sizeof pat - 1, ®ex); - if (s) - return 1; - if (re_search (®ex, data, sizeof data - 1, - 0, sizeof data - 1, ®s) - != -1) - return 1; - if (! setlocale (LC_ALL, "C")) - return 1; - } - #endif - - /* This test is from glibc bug 3957, reported by Andrew Mackey. */ - re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("a[^x]b", 6, ®ex); - if (s) - return 1; - - /* This should fail, but succeeds for glibc-2.5. */ - if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) - return 1; - - /* This regular expression is from Spencer ere test number 75 - in grep-2.3. */ - re_set_syntax (RE_SYNTAX_POSIX_EGREP); - memset (®ex, 0, sizeof regex); - for (i = 0; i <= UCHAR_MAX; i++) - folded_chars[i] = i; - regex.translate = folded_chars; - s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); - /* This should fail with _Invalid character class name_ error. */ - if (!s) - return 1; - - /* This should succeed, but does not for glibc-2.1.3. */ - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("{1", 2, ®ex); - - if (s) - return 1; - - /* The following example is derived from a problem report - against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("[an\371]*n", 7, ®ex); - if (s) - return 1; - - /* This should match, but does not for glibc-2.2.1. */ - if (re_match (®ex, "an", 2, 0, ®s) != 2) - return 1; - - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("x", 1, ®ex); - if (s) - return 1; - - /* glibc-2.2.93 does not work with a negative RANGE argument. */ - if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) - return 1; - - /* The version of regex.c in older versions of gnulib - ignored RE_ICASE. Detect that problem too. */ - re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("x", 1, ®ex); - if (s) - return 1; - - if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) - return 1; - - /* Catch a bug reported by Vin Shelton in - http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html - */ - re_set_syntax (RE_SYNTAX_POSIX_BASIC - & ~RE_CONTEXT_INVALID_DUP - & ~RE_NO_EMPTY_RANGES); - memset (®ex, 0, sizeof regex); - s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); - if (s) - return 1; - - /* REG_STARTEND was added to glibc on 2004-01-15. - Reject older versions. */ - if (! REG_STARTEND) - return 1; - - /* Reject hosts whose regoff_t values are too narrow. - These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t - and 32-bit int. */ - if (sizeof (regoff_t) < sizeof (ptrdiff_t) - || sizeof (regoff_t) < sizeof (ssize_t)) - return 1; - - return 0;]])], + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT[ + #if HAVE_LOCALE_H + #include <locale.h> + #endif + #include <limits.h> + #include <regex.h> + ]], + [[static struct re_pattern_buffer regex; + unsigned char folded_chars[UCHAR_MAX + 1]; + int i; + const char *s; + struct re_registers regs; + + #if HAVE_LOCALE_H + /* http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html + This test needs valgrind to catch the bug on Debian + GNU/Linux 3.1 x86, but it might catch the bug better + on other platforms and it shouldn't hurt to try the + test here. */ + if (setlocale (LC_ALL, "en_US.UTF-8")) + { + static char const pat[] = "insert into"; + static char const data[] = + "\xFF\0\x12\xA2\xAA\xC4\xB1,K\x12\xC4\xB1*\xACK"; + re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE + | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern (pat, sizeof pat - 1, ®ex); + if (s) + return 1; + if (re_search (®ex, data, sizeof data - 1, + 0, sizeof data - 1, ®s) + != -1) + return 1; + if (! setlocale (LC_ALL, "C")) + return 1; + } + #endif + + /* This test is from glibc bug 3957, reported by Andrew Mackey. */ + re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[^x]b", 6, ®ex); + if (s) + return 1; + + /* This should fail, but succeeds for glibc-2.5. */ + if (re_search (®ex, "a\nb", 3, 0, 3, ®s) != -1) + return 1; + + /* This regular expression is from Spencer ere test number 75 + in grep-2.3. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + for (i = 0; i <= UCHAR_MAX; i++) + folded_chars[i] = i; + regex.translate = folded_chars; + s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, ®ex); + /* This should fail with _Invalid character class name_ error. */ + if (!s) + return 1; + + /* Ensure that [b-a] is diagnosed as invalid. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("a[b-a]", 6, ®ex); + if (s == 0) + return 1; + + /* This should succeed, but does not for glibc-2.1.3. */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("{1", 2, ®ex); + + if (s) + return 1; + + /* The following example is derived from a problem report + against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */ + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[an\371]*n", 7, ®ex); + if (s) + return 1; + + /* This should match, but does not for glibc-2.2.1. */ + if (re_match (®ex, "an", 2, 0, ®s) != 2) + return 1; + + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + return 1; + + /* glibc-2.2.93 does not work with a negative RANGE argument. */ + if (re_search (®ex, "wxy", 3, 2, -2, ®s) != 1) + return 1; + + /* The version of regex.c in older versions of gnulib + ignored RE_ICASE. Detect that problem too. */ + re_set_syntax (RE_SYNTAX_EMACS | RE_ICASE); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("x", 1, ®ex); + if (s) + return 1; + + if (re_search (®ex, "WXY", 3, 0, 3, ®s) < 0) + return 1; + + /* Catch a bug reported by Vin Shelton in + http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html + */ + re_set_syntax (RE_SYNTAX_POSIX_BASIC + & ~RE_CONTEXT_INVALID_DUP + & ~RE_NO_EMPTY_RANGES); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, ®ex); + if (s) + return 1; + + /* REG_STARTEND was added to glibc on 2004-01-15. + Reject older versions. */ + if (! REG_STARTEND) + return 1; + + /* Reject hosts whose regoff_t values are too narrow. + These include glibc 2.3.5 on hosts with 64-bit ptrdiff_t + and 32-bit int. */ + if (sizeof (regoff_t) < sizeof (ptrdiff_t) + || sizeof (regoff_t) < sizeof (ssize_t)) + return 1; + + return 0;]])], [gl_cv_func_re_compile_pattern_working=yes], [gl_cv_func_re_compile_pattern_working=no], dnl When crosscompiling, assume it is not working. @@ -216,6 +220,7 @@ AC_DEFUN([gl_REGEX], AC_DEFUN([gl_PREREQ_REGEX], [ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_CHECK_HEADERS([libintl.h]) diff --git a/m4/rmdir.m4 b/m4/rmdir.m4 new file mode 100644 index 0000000000000000000000000000000000000000..8d6bee8bb5a5d4c5fc340ccaecea9be13120356c --- /dev/null +++ b/m4/rmdir.m4 @@ -0,0 +1,44 @@ +# rmdir.m4 serial 7 +dnl Copyright (C) 2002, 2005, 2009-2010 Free Software 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. + +AC_DEFUN([gl_FUNC_RMDIR], +[ + AC_REQUIRE([gl_AC_DOS]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + dnl FIXME: simplify this module in 2010 if no one reports a missing rmdir + AC_REPLACE_FUNCS([rmdir]) + if test $ac_cv_func_rmdir = no; then + REPLACE_RMDIR=1 + # If someone lacks rmdir, make configure fail, and request + # a bug report to inform us about it. + if test x"$SKIP_RMDIR_CHECK" != xyes; then + AC_MSG_FAILURE([Your system lacks the rmdir function. + Please report this, along with the output of "uname -a", to the + bug-coreutils@gnu.org mailing list. To continue past this point, + rerun configure with SKIP_RMDIR_CHECK=yes. + E.g., ./configure SKIP_RMDIR_CHECK=yes]) + fi + else + dnl Detect cygwin 1.5.x bug. + AC_CACHE_CHECK([whether rmdir works], [gl_cv_func_rmdir_works], + [mkdir conftest.dir + touch conftest.file + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <stdio.h> + #include <errno.h> + #include <unistd.h> +]], [[return !rmdir ("conftest.file/") || errno != ENOTDIR + || !rmdir ("conftest.dir/./");]])], + [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no], + [gl_cv_func_rmdir_works="guessing no"]) + rm -rf conftest.dir conftest.file]) + if test x"$gl_cv_func_rmdir_works" != xyes; then + REPLACE_RMDIR=1 + AC_LIBOBJ([rmdir]) + fi + fi +]) diff --git a/m4/rpmatch.m4 b/m4/rpmatch.m4 index 387deffbf82559b658b820eced3dc459fcb84fa8..c6222ae5d6f66256e9345405235469dbdf9a435e 100644 --- a/m4/rpmatch.m4 +++ b/m4/rpmatch.m4 @@ -1,5 +1,5 @@ -# rpmatch.m4 serial 8 -dnl Copyright (C) 2002-2003, 2007-2009 Free Software Foundation, Inc. +# rpmatch.m4 serial 9 +dnl Copyright (C) 2002-2003, 2007-2010 Free Software 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. @@ -20,8 +20,8 @@ AC_DEFUN([gl_FUNC_RPMATCH], # Prerequisites of lib/rpmatch.c. AC_DEFUN([gl_PREREQ_RPMATCH], [ AC_CACHE_CHECK([for nl_langinfo and YESEXPR], [gl_cv_langinfo_yesexpr], - [AC_TRY_LINK([#include <langinfo.h>], - [char* cs = nl_langinfo(YESEXPR); return !cs;], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], + [[char* cs = nl_langinfo(YESEXPR); return !cs;]])], [gl_cv_langinfo_yesexpr=yes], [gl_cv_langinfo_yesexpr=no]) ]) diff --git a/m4/safe-read.m4 b/m4/safe-read.m4 index 7a89d0a6c16012f9a7f19165175e5c0b6bf18419..d087bd30fdd8f4f2c3545daad7c1e651c758bc8e 100644 --- a/m4/safe-read.m4 +++ b/m4/safe-read.m4 @@ -1,5 +1,6 @@ # safe-read.m4 serial 5 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 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. diff --git a/m4/safe-write.m4 b/m4/safe-write.m4 index db119ffa59b5c710b0999c90a61ab1d98bd45ec6..2ff11d27a2dd1622c5a95387cb0063d6f9417eac 100644 --- a/m4/safe-write.m4 +++ b/m4/safe-write.m4 @@ -1,5 +1,5 @@ # safe-write.m4 serial 3 -dnl Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2006, 2009-2010 Free Software 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. diff --git a/m4/same.m4 b/m4/same.m4 new file mode 100644 index 0000000000000000000000000000000000000000..73c82bb5d8a0ace8240c6eb80de10f781ca96b02 --- /dev/null +++ b/m4/same.m4 @@ -0,0 +1,15 @@ +#serial 8 +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 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. + +AC_DEFUN([gl_SAME], +[ + AC_LIBOBJ([same]) + + dnl Prerequisites of lib/same.c. + AC_REQUIRE([AC_SYS_LONG_FILE_NAMES]) + AC_CHECK_FUNCS_ONCE([pathconf]) +]) diff --git a/m4/save-cwd.m4 b/m4/save-cwd.m4 index c9b3a3b448310fd76e6c4ecb9d40544ba78b2012..06dd16be1bcdc11eb66ed8fc45d320aa909f9da1 100644 --- a/m4/save-cwd.m4 +++ b/m4/save-cwd.m4 @@ -1,5 +1,5 @@ # serial 9 -dnl Copyright (C) 2002-2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2010 Free Software 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. diff --git a/m4/savedir.m4 b/m4/savedir.m4 index 1fc6c8150e505dc7387437030c2e94c43207c096..06a4c80fdee35e84aa091be906f6196ea8d2b9f6 100644 --- a/m4/savedir.m4 +++ b/m4/savedir.m4 @@ -1,5 +1,6 @@ # savedir.m4 serial 9 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2010 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. diff --git a/m4/setenv.m4 b/m4/setenv.m4 index e28407ee172b28686471b3ef7226deebf6dd18b6..ae4dd863fc4574401dd4e22b5c3c9a585fd37dbb 100644 --- a/m4/setenv.m4 +++ b/m4/setenv.m4 @@ -1,17 +1,14 @@ -# setenv.m4 serial 11 -dnl Copyright (C) 2001-2004, 2006-2009 Free Software Foundation, Inc. +# setenv.m4 serial 15 +dnl Copyright (C) 2001-2004, 2006-2010 Free Software 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. AC_DEFUN([gl_FUNC_SETENV], [ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_CHECK_FUNCS_ONCE([setenv]) - if test $ac_cv_func_setenv = no; then - HAVE_SETENV=0 + AC_REQUIRE([gl_FUNC_SETENV_SEPARATE]) + if test $HAVE_SETENV$REPLACE_SETENV != 10; then AC_LIBOBJ([setenv]) - gl_PREREQ_SETENV fi ]) @@ -22,6 +19,24 @@ AC_DEFUN([gl_FUNC_SETENV_SEPARATE], AC_CHECK_FUNCS_ONCE([setenv]) if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 + else + AC_CACHE_CHECK([whether setenv validates arguments], + [gl_cv_func_setenv_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #include <stdlib.h> + #include <errno.h> + ]], [[ + if (setenv ("", "", 0) != -1) return 1; + if (errno != EINVAL) return 2; + if (setenv ("a", "=", 1) != 0) return 3; + if (strcmp (getenv ("a"), "=") != 0) return 4; + ]])], + [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], + [gl_cv_func_setenv_works="guessing no"])]) + if test "$gl_cv_func_setenv_works" != yes; then + REPLACE_SETENV=1 + AC_LIBOBJ([setenv]) + fi fi gl_PREREQ_SETENV ]) @@ -35,6 +50,7 @@ AC_DEFUN([gl_FUNC_UNSETENV], AC_LIBOBJ([unsetenv]) gl_PREREQ_UNSETENV else + dnl Some BSDs return void, failing to do error checking. AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret], [AC_TRY_COMPILE([#include <stdlib.h> extern @@ -48,7 +64,30 @@ int unsetenv(); #endif ], , gt_cv_func_unsetenv_ret='int', gt_cv_func_unsetenv_ret='void')]) if test $gt_cv_func_unsetenv_ret = 'void'; then - VOID_UNSETENV=1 + AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void + instead of int.]) + REPLACE_UNSETENV=1 + AC_LIBOBJ([unsetenv]) + fi + + dnl Solaris 10 unsetenv does not remove all copies of a name. + AC_CACHE_CHECK([whether unsetenv works on duplicates], + [gl_cv_func_unsetenv_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #include <stdlib.h> + ]], [[ + char entry[] = "b=2"; + if (putenv ((char *) "a=1")) return 1; + if (putenv (entry)) return 2; + entry[0] = 'a'; + unsetenv ("a"); + if (getenv ("a")) return 3; + ]])], + [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no], + [gl_cv_func_unsetenv_works="guessing no"])]) + if test "$gl_cv_func_unsetenv_works" != yes; then + REPLACE_UNSETENV=1 + AC_LIBOBJ([unsetenv]) fi fi ]) diff --git a/m4/size_max.m4 b/m4/size_max.m4 index e0e7b3ff9542839b454870968c510e67d52c5913..ce992db1f18336a0775f3bd98bdd12cdb7e4e70f 100644 --- a/m4/size_max.m4 +++ b/m4/size_max.m4 @@ -1,5 +1,5 @@ -# size_max.m4 serial 7 -dnl Copyright (C) 2003, 2005-2006, 2008 Free Software Foundation, Inc. +# size_max.m4 serial 9 +dnl Copyright (C) 2003, 2005-2006, 2008-2010 Free Software 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. @@ -10,8 +10,7 @@ AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS([stdint.h]) dnl First test whether the system already has SIZE_MAX. - AC_MSG_CHECKING([for SIZE_MAX]) - AC_CACHE_VAL([gl_cv_size_max], [ + AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [ gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include <limits.h> @@ -54,11 +53,19 @@ Found it fi fi ]) - AC_MSG_RESULT([$gl_cv_size_max]) if test "$gl_cv_size_max" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi + dnl Don't redefine SIZE_MAX in config.h if config.h is re-included after + dnl <stdint.h>. Remember that the #undef in AH_VERBATIM gets replaced with + dnl #define by AC_DEFINE_UNQUOTED. + AH_VERBATIM([SIZE_MAX], +[/* Define as the maximum value of type 'size_t', if the system doesn't define + it. */ +#ifndef SIZE_MAX +# undef SIZE_MAX +#endif]) ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. diff --git a/m4/sleep.m4 b/m4/sleep.m4 index 474ba07ba9814e952a07d31370130d5502fefd5e..a5ec655201ebbddd8353e70df6564576dbc4f197 100644 --- a/m4/sleep.m4 +++ b/m4/sleep.m4 @@ -1,5 +1,5 @@ -# sleep.m4 serial 2 -dnl Copyright (C) 2007-2008 Free Software Foundation, Inc. +# sleep.m4 serial 3 +dnl Copyright (C) 2007-2010 Free Software 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. @@ -13,12 +13,37 @@ AC_DEFUN([gl_FUNC_SLEEP], dnl it takes the number of milliseconds as argument and returns void. dnl mingw does not declare this function. AC_CHECK_DECLS([sleep], , , [#include <unistd.h>]) + AC_CHECK_FUNCS_ONCE([sleep]) if test $ac_cv_have_decl_sleep != yes; then HAVE_SLEEP=0 AC_LIBOBJ([sleep]) - gl_PREREQ_SLEEP + else + dnl Cygwin 1.5.x has a bug where sleep can't exceed 49.7 days. + AC_CACHE_CHECK([for working sleep], [gl_cv_func_sleep_works], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include <errno.h> +#include <unistd.h> +#include <signal.h> +static void +handle_alarm (int sig) +{ + if (sig != SIGALRM) + _exit (2); +} +]], [[ + /* Failure to compile this test due to missing alarm is okay, + since all such platforms (mingw) also lack sleep. */ + unsigned int pentecost = 50 * 24 * 60 * 60; /* 50 days. */ + unsigned int remaining; + signal (SIGALRM, handle_alarm); + alarm (1); + remaining = sleep (pentecost); + return !(pentecost - 10 < remaining && remaining <= pentecost);]])], + [gl_cv_func_sleep_works=yes], [gl_cv_func_sleep_works=no], + [gl_cv_func_sleep_works="guessing no"])]) + if test "$gl_cv_func_sleep_works" != yes; then + REPLACE_SLEEP=1 + AC_LIBOBJ([sleep]) + fi fi ]) - -# Prerequisites of lib/sleep.c. -AC_DEFUN([gl_PREREQ_SLEEP], [:]) diff --git a/m4/snprintf.m4 b/m4/snprintf.m4 index 6021786ee146ea02ca697a1a90360dc95c6043d4..522b107b12679079050a1459d80b74c067d04743 100644 --- a/m4/snprintf.m4 +++ b/m4/snprintf.m4 @@ -1,5 +1,5 @@ # snprintf.m4 serial 5 -dnl Copyright (C) 2002-2004, 2007-2008 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2007-2010 Free Software 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. diff --git a/m4/ssize_t.m4 b/m4/ssize_t.m4 index 4eaef93ce37ece14d9ba6b26b2e28ec3016b4d17..e0ccee3a5c55bf26611116e575742fbdf63f78a7 100644 --- a/m4/ssize_t.m4 +++ b/m4/ssize_t.m4 @@ -1,5 +1,5 @@ # ssize_t.m4 serial 4 (gettext-0.15) -dnl Copyright (C) 2001-2003, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2003, 2006, 2009-2010 Free Software 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. diff --git a/m4/stat-time.m4 b/m4/stat-time.m4 index b860be82e2656a90eca6e0ecddf251cff6d1725e..e653c4341ea1f45fd205649c0bad8e21058de7b8 100644 --- a/m4/stat-time.m4 +++ b/m4/stat-time.m4 @@ -1,6 +1,6 @@ # Checks for stat-related time functions. -# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009 Free Software +# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2010 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation @@ -26,36 +26,36 @@ AC_DEFUN([gl_STAT_TIME], AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec], [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec], [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec], - [AC_TRY_COMPILE( - [ - #include <sys/types.h> - #include <sys/stat.h> - #if HAVE_SYS_TIME_H - # include <sys/time.h> - #endif - #include <time.h> - struct timespec ts; - struct stat st; - ], - [ - st.st_atim = ts; - ], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], - [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[ + #include <sys/types.h> + #include <sys/stat.h> + #if HAVE_SYS_TIME_H + # include <sys/time.h> + #endif + #include <time.h> + struct timespec ts; + struct stat st; + ]], + [[ + st.st_atim = ts; + ]])], + [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes], + [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1], - [Define to 1 if the type of the st_atim member of a struct stat is - struct timespec.]) + [Define to 1 if the type of the st_atim member of a struct stat is + struct timespec.]) fi], [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_atimensec], [], - [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], - [#include <sys/types.h> - #include <sys/stat.h>])], - [#include <sys/types.h> - #include <sys/stat.h>])], + [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [], + [#include <sys/types.h> + #include <sys/stat.h>])], + [#include <sys/types.h> + #include <sys/stat.h>])], [#include <sys/types.h> - #include <sys/stat.h>])], + #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>]) ]) @@ -76,10 +76,10 @@ AC_DEFUN([gl_STAT_BIRTHTIME], AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], - [#include <sys/types.h> - #include <sys/stat.h>])], + [#include <sys/types.h> + #include <sys/stat.h>])], [#include <sys/types.h> - #include <sys/stat.h>])], + #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>]) ]) diff --git a/m4/stat.m4 b/m4/stat.m4 new file mode 100644 index 0000000000000000000000000000000000000000..acd32d86a084ea6cbfcbd47bf1c3a756b94ccf61 --- /dev/null +++ b/m4/stat.m4 @@ -0,0 +1,63 @@ +# serial 4 + +# Copyright (C) 2009, 2010 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_STAT], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_REQUIRE([gl_AC_DOS]) + AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) + AC_CHECK_FUNCS_ONCE([lstat]) + dnl mingw is the only known platform where stat(".") and stat("./") differ + AC_CACHE_CHECK([whether stat handles trailing slashes on directories], + [gl_cv_func_stat_dir_slash], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/stat.h> +]], [[struct stat st; return stat (".", &st) != stat ("./", &st);]])], + [gl_cv_func_stat_dir_slash=yes], [gl_cv_func_stat_dir_slash=no], + [case $host_os in + mingw*) gl_cv_func_stat_dir_slash="guessing no";; + *) gl_cv_func_stat_dir_slash="guessing yes";; + esac])]) + dnl Solaris 9 mistakenly succeeds on stat("file/") + dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/") + AC_CACHE_CHECK([whether stat handles trailing slashes on files], + [gl_cv_func_stat_file_slash], + [touch conftest.tmp + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.tmp conftest.lnk + fi + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/stat.h> +]], [[struct stat st; + if (!stat ("conftest.tmp/", &st)) return 1; +#if HAVE_LSTAT + if (!stat ("conftest.lnk/", &st)) return 2; +#endif + ]])], + [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], + [gl_cv_func_stat_file_slash="guessing no"]) + rm -f conftest.tmp conftest.lnk]) + case $gl_cv_func_stat_dir_slash in + *no) REPLACE_STAT=1 + AC_DEFINE([REPLACE_FUNC_STAT_DIR], [1], [Define to 1 if stat needs + help when passed a directory name with a trailing slash]);; + esac + case $gl_cv_func_stat_file_slash in + *no) REPLACE_STAT=1 + AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs + help when passed a file name with a trailing slash]);; + esac + if test $REPLACE_STAT = 1; then + AC_LIBOBJ([stat]) + dnl Prerequisites of lib/stat.c. + AC_REQUIRE([AC_C_INLINE]) + fi +]) diff --git a/m4/stdarg.m4 b/m4/stdarg.m4 index 21910e4becd9fc84edc7be592bc9e25e70fb13c3..5c87bd8b5f6da4b6b64bb94f68fc61f8c2956e9d 100644 --- a/m4/stdarg.m4 +++ b/m4/stdarg.m4 @@ -1,5 +1,5 @@ -# stdarg.m4 serial 2 -dnl Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# stdarg.m4 serial 3 +dnl Copyright (C) 2006, 2008-2010 Free Software 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. @@ -46,7 +46,7 @@ void (*func) (va_list, va_list) = va_copy; else dnl Provide a substitute in <config.h>, either __va_copy or as a simple dnl assignment. - AC_CACHE_VAL([gl_cv_func___va_copy], [ + gl_CACHE_VAL_SILENT([gl_cv_func___va_copy], [ AC_TRY_COMPILE([#include <stdarg.h>], [ #ifndef __va_copy error, bail out diff --git a/m4/stdbool.m4 b/m4/stdbool.m4 index 57c804a80ff7da006714ce54b11da37c58557faa..3d672d7476b217bdc8777d6759f1f3bc5c53343d 100644 --- a/m4/stdbool.m4 +++ b/m4/stdbool.m4 @@ -1,6 +1,6 @@ # Check for stdbool.h that conforms to C99. -dnl Copyright (C) 2002-2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2010 Free Software 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. @@ -38,77 +38,77 @@ AC_DEFUN([AC_HEADER_STDBOOL], [AC_CACHE_CHECK([for stdbool.h that conforms to C99], [ac_cv_header_stdbool_h], [AC_TRY_COMPILE( - [ - #include <stdbool.h> - #ifndef bool - "error: bool is not defined" - #endif - #ifndef false - "error: false is not defined" - #endif - #if false - "error: false is not 0" - #endif - #ifndef true - "error: true is not defined" - #endif - #if true != 1 - "error: true is not 1" - #endif - #ifndef __bool_true_false_are_defined - "error: __bool_true_false_are_defined is not defined" - #endif + [ + #include <stdbool.h> + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif - struct s { _Bool s: 1; _Bool t; } s; + struct s { _Bool s: 1; _Bool t; } s; - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) 0.5 == true ? 1 : -1]; - bool e = &s; - char f[(_Bool) 0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; - enum { j = false, k = true, l = false * true, m = true * 256 }; - _Bool n[m]; - char o[sizeof n == m * sizeof n[0] ? 1 : -1]; - char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; - #if defined __xlc__ || defined __GNUC__ - /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 - reported by James Lemley on 2005-10-05; see - http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html - This test is not quite right, since xlc is allowed to - reject this program, as the initializer for xlcbug is - not one of the forms that C requires support for. - However, doing the test right would require a run-time - test, and that would make cross-compilation harder. - Let us hope that IBM fixes the xlc bug, and also adds - support for this kind of constant expression. In the - meantime, this test will reject xlc, which is OK, since - our stdbool.h substitute should suffice. We also test - this with GCC, where it should work, to detect more - quickly whether someone messes up the test in the - future. */ - char digs[] = "0123456789"; - int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); - #endif - /* Catch a bug in an HP-UX C compiler. See - http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html - */ - _Bool q = true; - _Bool *pq = &q; - ], - [ - *pq |= q; - *pq |= ! q; - /* Refer to every declared value, to avoid compiler optimizations. */ - return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l - + !m + !n + !o + !p + !q + !pq); - ], - [ac_cv_header_stdbool_h=yes], - [ac_cv_header_stdbool_h=no])]) + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + bool e = &s; + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + #if defined __xlc__ || defined __GNUC__ + /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 + reported by James Lemley on 2005-10-05; see + http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html + This test is not quite right, since xlc is allowed to + reject this program, as the initializer for xlcbug is + not one of the forms that C requires support for. + However, doing the test right would require a run-time + test, and that would make cross-compilation harder. + Let us hope that IBM fixes the xlc bug, and also adds + support for this kind of constant expression. In the + meantime, this test will reject xlc, which is OK, since + our stdbool.h substitute should suffice. We also test + this with GCC, where it should work, to detect more + quickly whether someone messes up the test in the + future. */ + char digs[] = "0123456789"; + int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); + #endif + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; + ], + [ + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); + ], + [ac_cv_header_stdbool_h=yes], + [ac_cv_header_stdbool_h=no])]) AC_CHECK_TYPES([_Bool]) if test $ac_cv_header_stdbool_h = yes; then AC_DEFINE([HAVE_STDBOOL_H], [1], [Define to 1 if stdbool.h conforms to C99.]) diff --git a/m4/stddef_h.m4 b/m4/stddef_h.m4 new file mode 100644 index 0000000000000000000000000000000000000000..c8572de947dcd3fe6492189ec54b7811c4c9f4d0 --- /dev/null +++ b/m4/stddef_h.m4 @@ -0,0 +1,45 @@ +dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues. +# stddef_h.m4 serial 1 +dnl Copyright (C) 2009, 2010 Free Software 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. + +AC_DEFUN([gl_STDDEF_H], +[ + AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) + AC_REQUIRE([gt_TYPE_WCHAR_T]) + if test $gt_cv_c_wchar_t = no; then + HAVE_WCHAR_T=0 + STDDEF_H=stddef.h + fi + AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], + [gl_cv_decl_null_works], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h> + int test[2 * (sizeof NULL == sizeof (void *)) -1]; +]])], + [gl_cv_decl_null_works=yes], + [gl_cv_decl_null_works=no])]) + if test $gl_cv_decl_null_works = no; then + REPLACE_NULL=1 + STDDEF_H=stddef.h + fi + if test -n "$STDDEF_H"; then + gl_CHECK_NEXT_HEADERS([stddef.h]) + fi +]) + +AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 +]) + +AC_DEFUN([gl_STDDEF_H_DEFAULTS], +[ + dnl Assume proper GNU behavior unless another module says otherwise. + REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) + HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) + STDDEF_H=''; AC_SUBST([STDDEF_H]) +]) diff --git a/m4/stdint.m4 b/m4/stdint.m4 index b4194c8adc129667a648e882d2381a8b971a9dd6..1cc57e6e9608a820725378eb081e253c6e35806f 100644 --- a/m4/stdint.m4 +++ b/m4/stdint.m4 @@ -1,5 +1,5 @@ -# stdint.m4 serial 33 -dnl Copyright (C) 2001-2009 Free Software Foundation, Inc. +# stdint.m4 serial 34 +dnl Copyright (C) 2001-2010 Free Software 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. @@ -201,7 +201,75 @@ struct s { int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; ]])], - [gl_cv_header_working_stdint_h=yes])]) + [dnl Determine whether the various *_MIN, *_MAX macros are usable + dnl in preprocessor expression. We could do it by compiling a test + dnl program for each of these macros. It is faster to run a program + dnl that inspects the macro expansion. + dnl This detects a bug on HP-UX 11.23/ia64. + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ +#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ +#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ +#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ +#include <stdint.h> +] +gl_STDINT_INCLUDES +[ +#include <stdio.h> +#include <string.h> +#define MVAL(macro) MVAL1(macro) +#define MVAL1(expression) #expression +static const char *macro_values[] = + { +#ifdef INT8_MAX + MVAL (INT8_MAX), +#endif +#ifdef INT16_MAX + MVAL (INT16_MAX), +#endif +#ifdef INT32_MAX + MVAL (INT32_MAX), +#endif +#ifdef INT64_MAX + MVAL (INT64_MAX), +#endif +#ifdef UINT8_MAX + MVAL (UINT8_MAX), +#endif +#ifdef UINT16_MAX + MVAL (UINT16_MAX), +#endif +#ifdef UINT32_MAX + MVAL (UINT32_MAX), +#endif +#ifdef UINT64_MAX + MVAL (UINT64_MAX), +#endif + NULL + }; +]], [[ + const char **mv; + for (mv = macro_values; *mv != NULL; mv++) + { + const char *value = *mv; + /* Test whether it looks like a cast expression. */ + if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 + || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 + || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 + || strncmp (value, "((int)"/*)*/, 6) == 0 + || strncmp (value, "((signed short)"/*)*/, 15) == 0 + || strncmp (value, "((signed char)"/*)*/, 14) == 0) + return 1; + } + return 0; +]])], + [gl_cv_header_working_stdint_h=yes], + [], + [dnl When cross-compiling, assume it works. + gl_cv_header_working_stdint_h=yes + ]) + ]) + ]) fi if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= @@ -328,12 +396,12 @@ AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; - l) gltype1='long int';; - ll) gltype1='long long int';; - i64) gltype1='__int64';; - u) gltype1='unsigned int';; - ul) gltype1='unsigned long int';; - ull) gltype1='unsigned long long int';; + l) gltype1='long int';; + ll) gltype1='long long int';; + i64) gltype1='__int64';; + u) gltype1='unsigned int';; + ul) gltype1='unsigned long int';; + ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac AC_COMPILE_IFELSE( diff --git a/m4/stdint_h.m4 b/m4/stdint_h.m4 index 82f0c244c8ee0c7a34de7b75fead88478e5bd08e..b8e3c6cc711f17ab409131b9411ea51fe23d8d01 100644 --- a/m4/stdint_h.m4 +++ b/m4/stdint_h.m4 @@ -1,5 +1,5 @@ # stdint_h.m4 serial 8 -dnl Copyright (C) 1997-2004, 2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2004, 2006, 2008-2010 Free Software 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. diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4 index 846b65d302cbe5197c136ab96f019c88f6392d00..681fd8b8506db3e0757aa4cddc42ec1104f6c077 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -1,5 +1,5 @@ -# stdio_h.m4 serial 15 -dnl Copyright (C) 2007-2009 Free Software Foundation, Inc. +# stdio_h.m4 serial 26 +dnl Copyright (C) 2007-2010 Free Software 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. @@ -7,6 +7,7 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDIO_H], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([AC_C_INLINE]) gl_CHECK_NEXT_HEADERS([stdio.h]) dnl No need to create extra modules for these functions. Everyone who uses dnl <stdio.h> likely needs them. @@ -30,6 +31,13 @@ AC_DEFUN([gl_STDIO_H], AC_LIBOBJ([stdio-write]) fi ]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not + dnl guaranteed by C89. + gl_WARN_ON_USE_PREPARE([[#include <stdio.h> + ]], [dprintf fpurge fseeko ftello getdelim getline popen renameat + snprintf vdprintf vsnprintf]) ]) AC_DEFUN([gl_STDIO_MODULE_INDICATOR], @@ -37,79 +45,92 @@ AC_DEFUN([gl_STDIO_MODULE_INDICATOR], dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDIO_H_DEFAULTS]) GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], [ - GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) - GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) - GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) - GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) - GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) - GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) - GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) - GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) - GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) - GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) - GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) - GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) - GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) - GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) - GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) - GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) + GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) + GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) + GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) + GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) + GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) + GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) + GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) - GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) - GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) - GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) - GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) - GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) - GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) - GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) + GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) + GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) + GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN]) + GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) + GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) + GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) + GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) + GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) + GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) + GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) + GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) + GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) + GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) + GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) + GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) + GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) + GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) + GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) + GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) + GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) + GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) dnl Assume proper GNU behavior unless another module says otherwise. - REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) - REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) - REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) - REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) - REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) - REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) + HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) + HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) + HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) + HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) - REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) - REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) - REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) - REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) - HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) - REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) + HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) - REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) - HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) - REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) + HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) + REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) + REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) + REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) + REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) + REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) - HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) - REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) - HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) - REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) + REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) - REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) - REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) - HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) - HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) + REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) + REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) + REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) + REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) + REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) + REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) + REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) + REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) + REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) + REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) + REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) + REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) + REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) + REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) + REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) + REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) + REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) dnl Code shared by fseeko and ftello. Determine if large files are supported, @@ -128,6 +149,6 @@ AC_DEFUN([gl_STDIN_LARGE_OFFSET], choke me # endif #endif]])], - [gl_cv_var_stdin_large_offset=yes], - [gl_cv_var_stdin_large_offset=no])]) + [gl_cv_var_stdin_large_offset=yes], + [gl_cv_var_stdin_large_offset=no])]) ]) diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4 index 515befeb7e962adf71c50171bf854d0a3402ca1e..77344bda860c4d50ebfc1db5687c27384b354e5a 100644 --- a/m4/stdlib_h.m4 +++ b/m4/stdlib_h.m4 @@ -1,5 +1,5 @@ -# stdlib_h.m4 serial 14 -dnl Copyright (C) 2007-2009 Free Software Foundation, Inc. +# stdlib_h.m4 serial 23 +dnl Copyright (C) 2007-2010 Free Software 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. @@ -8,7 +8,7 @@ AC_DEFUN([gl_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([stdlib.h]) - AC_CHECK_HEADERS([random.h]) + AC_CHECK_HEADERS([random.h], [], [], [AC_INCLUDES_DEFAULT]) if test $ac_cv_header_random_h = yes; then HAVE_RANDOM_H=1 else @@ -22,6 +22,20 @@ AC_DEFUN([gl_STDLIB_H], # include <random.h> #endif ]]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not + dnl guaranteed by C89. + gl_WARN_ON_USE_PREPARE([[#include <stdlib.h> +#if HAVE_SYS_LOADAVG_H +# include <sys/loadavg.h> +#endif +#if HAVE_RANDOM_H +# include <random.h> +#endif + ]], [atoll canonicalize_file_name getloadavg getsubopt mkdtemp + mkostemp mkostemps mkstemp mkstemps random_r initstat_r srandom_r + setstate_r realpath rpmatch setenv strtod strtoll strtoull unsetenv]) ]) AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], @@ -29,20 +43,27 @@ AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ - GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) - GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) - GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL]) + GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) + GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME]) GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG]) GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) + GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) + GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) + GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) + GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) + GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) + GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH]) GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) @@ -52,11 +73,17 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], dnl Assume proper GNU behavior unless another module says otherwise. HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CALLOC_POSIX=1; AC_SUBST([HAVE_CALLOC_POSIX]) + HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) + HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_MALLOC_POSIX=1; AC_SUBST([HAVE_MALLOC_POSIX]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) - HAVE_REALLOC_POSIX=1; AC_SUBST([HAVE_REALLOC_POSIX]) + HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) + HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) + HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) + HAVE_REALLOC_POSIX=1; AC_SUBST([HAVE_REALLOC_POSIX]) + HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) @@ -65,9 +92,11 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNSETENV=1; AC_SUBST([HAVE_UNSETENV]) - HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) + REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) + REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) + REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) - VOID_UNSETENV=0; AC_SUBST([VOID_UNSETENV]) + REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) ]) diff --git a/m4/stpcpy.m4 b/m4/stpcpy.m4 index 96de86795a9acee2f280dc0247fa75aae16d1c1d..d32d93a873471458bdd19a5ef43af47e10e9a690 100644 --- a/m4/stpcpy.m4 +++ b/m4/stpcpy.m4 @@ -1,5 +1,5 @@ # stpcpy.m4 serial 7 -dnl Copyright (C) 2002, 2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2007, 2009, 2010 Free Software 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. diff --git a/m4/strcase.m4 b/m4/strcase.m4 index 0dfdb1a18148e7207f62d9be4593e3a8c3cc3e68..33de423a02e92cb6ee9ad029c46170fb8dc4908c 100644 --- a/m4/strcase.m4 +++ b/m4/strcase.m4 @@ -1,5 +1,5 @@ # strcase.m4 serial 10 -dnl Copyright (C) 2002, 2005-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2010 Free Software 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. diff --git a/m4/strchrnul.m4 b/m4/strchrnul.m4 index 7e270d065e33957b8eb05118ac5d312b47047cd1..0072e60e76446bbdb0a2c56b29493d788fb27c5d 100644 --- a/m4/strchrnul.m4 +++ b/m4/strchrnul.m4 @@ -1,5 +1,5 @@ # strchrnul.m4 serial 7 -dnl Copyright (C) 2003, 2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007, 2009, 2010 Free Software 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. diff --git a/m4/strdup.m4 b/m4/strdup.m4 index d7daac2baba843d45890b04bb551a87a0195aaef..3a3b07dd5d290dcb6104336b455163b92f48c581 100644 --- a/m4/strdup.m4 +++ b/m4/strdup.m4 @@ -1,6 +1,6 @@ # strdup.m4 serial 11 -dnl Copyright (C) 2002-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, diff --git a/m4/strerror.m4 b/m4/strerror.m4 index 8c16ca9a879a5de8720a7651cf15ee5b22033adf..1649b2451133f93bfcf2d2d725f17499e5a0a3da 100644 --- a/m4/strerror.m4 +++ b/m4/strerror.m4 @@ -1,5 +1,5 @@ # strerror.m4 serial 9 -dnl Copyright (C) 2002, 2007-2008 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2007-2010 Free Software 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. diff --git a/m4/string_h.m4 b/m4/string_h.m4 index 2d5553c37441e6a5e6c492c41aa3bccf31a863eb..a8a366c70292b76eddb90c5aca552c910508cbde 100644 --- a/m4/string_h.m4 +++ b/m4/string_h.m4 @@ -1,11 +1,11 @@ # Configure a GNU-like replacement for <string.h>. -# Copyright (C) 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2007-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 6 +# serial 12 # Written by Paul Eggert. @@ -21,6 +21,13 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY], AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([string.h]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not + dnl guaranteed by C89. + gl_WARN_ON_USE_PREPARE([[#include <string.h> + ]], [memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup + strndup strnlen strpbrk strsep strcasestr strtok_r strsignal strverscmp]) ]) AC_DEFUN([gl_STRING_MODULE_INDICATOR], @@ -28,10 +35,13 @@ AC_DEFUN([gl_STRING_MODULE_INDICATOR], dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) ]) AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [ + GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) @@ -63,30 +73,34 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) - GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) + GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) + HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) - HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) - HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) - HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) - HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) - HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) - HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) - HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) - HAVE_STRNDUP=1; AC_SUBST([HAVE_STRNDUP]) - HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) - HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) - HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) - HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) - HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) - HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) - HAVE_DECL_STRERROR=1; AC_SUBST([HAVE_DECL_STRERROR]) - HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) - HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) - REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) - REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) - REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) - REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) - REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) - REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) + HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) + HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) + HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) + HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) + HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) + HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) + HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) + HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) + HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) + HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) + HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) + HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) + HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) + HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) + HAVE_DECL_STRERROR=1; AC_SUBST([HAVE_DECL_STRERROR]) + HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) + HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) + REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) + REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) + REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) + REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) + REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) + REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) + REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) + REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) + REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) + UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) diff --git a/m4/strings_h.m4 b/m4/strings_h.m4 index 03ac182f3315f173a9db52f291d6394799e0b953..26aa1f782ac1a1c775ca44277cbbfe6f03185491 100644 --- a/m4/strings_h.m4 +++ b/m4/strings_h.m4 @@ -1,6 +1,7 @@ # Configure a replacement for <string.h>. +# serial 2 -# Copyright (C) 2007 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,6 +17,11 @@ AC_DEFUN([gl_HEADER_STRINGS_H_BODY], [ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([strings.h]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <strings.h> + ]], [strcasecmp strncasecmp]) ]) AC_DEFUN([gl_STRINGS_MODULE_INDICATOR], diff --git a/m4/strndup.m4 b/m4/strndup.m4 index 4fa7d5a7c9356c170a8af76dce4ccfad95aacf7f..810313cd12478d9ba60c0f607093eadcdf20a004 100644 --- a/m4/strndup.m4 +++ b/m4/strndup.m4 @@ -1,5 +1,5 @@ -# strndup.m4 serial 16 -dnl Copyright (C) 2002-2003, 2005-2009 Free Software Foundation, Inc. +# strndup.m4 serial 17 +dnl Copyright (C) 2002-2003, 2005-2010 Free Software 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. @@ -9,17 +9,20 @@ AC_DEFUN([gl_FUNC_STRNDUP], dnl Persuade glibc <string.h> to declare strndup(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([strndup]) + AC_CHECK_FUNCS_ONCE([strndup]) if test $ac_cv_have_decl_strndup = no; then HAVE_DECL_STRNDUP=0 fi - # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. - AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup], - [AC_RUN_IFELSE([ - AC_LANG_PROGRAM([[#include <string.h> - #include <stdlib.h>]], [[ + if test $ac_cv_func_strndup = yes; then + # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. + AC_CACHE_CHECK([for working strndup], [gl_cv_func_strndup_works], + [AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[#include <string.h> + #include <stdlib.h>]], [[ #ifndef HAVE_DECL_STRNDUP extern char *strndup (const char *, size_t); #endif @@ -28,26 +31,19 @@ AC_DEFUN([gl_FUNC_STRNDUP], free (s); s = strndup ("shorter string", 13); return s[13] != '\0';]])], - [gl_cv_func_strndup=yes], - [gl_cv_func_strndup=no], - [AC_CHECK_FUNC([strndup], - [AC_EGREP_CPP([too risky], [ -#ifdef _AIX - too risky -#endif - ], - [gl_cv_func_strndup=no], - [gl_cv_func_strndup=yes])], - [gl_cv_func_strndup=no])])]) - if test $gl_cv_func_strndup = yes; then - AC_DEFINE([HAVE_STRNDUP], [1], - [Define if you have the strndup() function and it works.]) + [gl_cv_func_strndup_works=yes], + [gl_cv_func_strndup_works=no], + [case $host_os in + aix*) gl_cv_func_strndup_works="guessing no";; + *) gl_cv_func_strndup_works="guessing yes";; + esac])]) + case $gl_cv_func_strndup_works in + *no) + REPLACE_STRNDUP=1 + AC_LIBOBJ([strndup]) + ;; + esac else - HAVE_STRNDUP=0 AC_LIBOBJ([strndup]) - gl_PREREQ_STRNDUP fi ]) - -# Prerequisites of lib/strndup.c. -AC_DEFUN([gl_PREREQ_STRNDUP], [:]) diff --git a/m4/strnlen.m4 b/m4/strnlen.m4 index 1c97859db1c25e9c5cf8a2d02c461ec38cb7243a..cd48948f68808f330642cc39e80734433704f421 100644 --- a/m4/strnlen.m4 +++ b/m4/strnlen.m4 @@ -1,5 +1,6 @@ # strnlen.m4 serial 10 -dnl Copyright (C) 2002-2003, 2005-2007, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 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. diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4 index 70b3ba418a23c1fbdb3ce64c475d4573de6d3367..8d8298b99321428da08576383c5d3a1a25c7b716 100644 --- a/m4/strtoimax.m4 +++ b/m4/strtoimax.m4 @@ -1,5 +1,6 @@ # strtoimax.m4 serial 7 -dnl Copyright (C) 2002, 2003, 2004, 2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2003, 2004, 2006, 2009, 2010 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. diff --git a/m4/strtol.m4 b/m4/strtol.m4 index 25c09fdd8606798d7d34075094129752a36e523c..2f27ce88c93c4fb4c8390498e8a44abbb7f15255 100644 --- a/m4/strtol.m4 +++ b/m4/strtol.m4 @@ -1,5 +1,5 @@ # strtol.m4 serial 5 -dnl Copyright (C) 2002, 2003, 2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2003, 2006, 2009, 2010 Free Software 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. diff --git a/m4/strtoll.m4 b/m4/strtoll.m4 index 7879c6fcaf66faa43572ffa97397298598cd4648..065047a66b49e7119415caf98f648fc8ec6ff83b 100644 --- a/m4/strtoll.m4 +++ b/m4/strtoll.m4 @@ -1,5 +1,6 @@ # strtoll.m4 serial 6 -dnl Copyright (C) 2002, 2004, 2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004, 2006, 2008, 2009, 2010 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. diff --git a/m4/strtoul.m4 b/m4/strtoul.m4 index ca700062f3b88b69bf265daed9601b8cbec30775..5da011c596903492b0061d9bbfc7067f6de61d3e 100644 --- a/m4/strtoul.m4 +++ b/m4/strtoul.m4 @@ -1,5 +1,5 @@ # strtoul.m4 serial 4 -dnl Copyright (C) 2002, 2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2006, 2009, 2010 Free Software 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. diff --git a/m4/strtoull.m4 b/m4/strtoull.m4 index 5075d95254543041d4b28a2e5f987ccb07a0a23f..e58e13666db48c2196fa5e8b63ab150600cbf4c0 100644 --- a/m4/strtoull.m4 +++ b/m4/strtoull.m4 @@ -1,5 +1,6 @@ # strtoull.m4 serial 6 -dnl Copyright (C) 2002, 2004, 2006, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004, 2006, 2008, 2009, 2010 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. diff --git a/m4/strtoumax.m4 b/m4/strtoumax.m4 index 43236a03f106349c2eb2ef97832762615afa8d9b..684634f5d67434c4dc67ab9bf7cbc4499ee5dac4 100644 --- a/m4/strtoumax.m4 +++ b/m4/strtoumax.m4 @@ -1,5 +1,6 @@ # strtoumax.m4 serial 7 -dnl Copyright (C) 2002, 2003, 2004, 2006, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2003, 2004, 2006, 2009, 2010 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. diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4 index 20c82edf931d700ee16f6cca4b66ef74cb318be6..54d74caa91892f29b90d7021718658c0cfb6cc14 100644 --- a/m4/sys_stat_h.m4 +++ b/m4/sys_stat_h.m4 @@ -1,26 +1,16 @@ -# sys_stat_h.m4 serial 10 -*- Autoconf -*- -dnl Copyright (C) 2006-2008 Free Software Foundation, Inc. +# sys_stat_h.m4 serial 23 -*- Autoconf -*- +dnl Copyright (C) 2006-2010 Free Software 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. dnl From Eric Blake. -dnl Test whether <sys/stat.h> contains lstat and mkdir or must be substituted. +dnl Provide a GNU-like <sys/stat.h>. AC_DEFUN([gl_HEADER_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) - dnl Check for lstat. Systems that lack it (mingw) also lack symlinks, so - dnl stat is a good replacement. - AC_CHECK_FUNCS_ONCE([lstat]) - if test $ac_cv_func_lstat = yes; then - HAVE_LSTAT=1 - else - HAVE_LSTAT=0 - fi - AC_SUBST([HAVE_LSTAT]) - dnl For the mkdir substitute. AC_REQUIRE([AC_C_INLINE]) @@ -28,8 +18,6 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H], AC_REQUIRE([AC_HEADER_STAT]) gl_CHECK_NEXT_HEADERS([sys/stat.h]) - SYS_STAT_H='sys/stat.h' - AC_SUBST([SYS_STAT_H]) dnl Define types that are supposed to be defined in <sys/types.h> or dnl <sys/stat.h>. @@ -39,6 +27,11 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H], [#include <sys/types.h> #include <sys/stat.h>]) + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h> + ]], [fchmodat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat + mknod mknodat stat utimensat]) ]) # gl_HEADER_SYS_STAT_H AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], @@ -46,14 +39,44 @@ AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [ - GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD]) - GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR + GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT]) + GNULIB_FSTATAT=0; AC_SUBST([GNULIB_FSTATAT]) + GNULIB_FUTIMENS=0; AC_SUBST([GNULIB_FUTIMENS]) + GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD]) + GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT]) + GNULIB_MKDIRAT=0; AC_SUBST([GNULIB_MKDIRAT]) + GNULIB_MKFIFO=0; AC_SUBST([GNULIB_MKFIFO]) + GNULIB_MKFIFOAT=0; AC_SUBST([GNULIB_MKFIFOAT]) + GNULIB_MKNOD=0; AC_SUBST([GNULIB_MKNOD]) + GNULIB_MKNODAT=0; AC_SUBST([GNULIB_MKNODAT]) + GNULIB_STAT=0; AC_SUBST([GNULIB_STAT]) + GNULIB_UTIMENSAT=0; AC_SUBST([GNULIB_UTIMENSAT]) dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) - REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) - REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) + HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) + HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) + HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) + HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) + HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) + HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) + HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) + HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) + HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) + HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) + HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) + REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) + REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) + REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) + REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) + REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) + REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) + REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) + REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) + REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) ]) diff --git a/m4/sys_time_h.m4 b/m4/sys_time_h.m4 index 13ac5763b3d5c76a26c6d5e5d0740f3b63f77cfb..2835a40c266639c6db1c75bda9513b1309676571 100644 --- a/m4/sys_time_h.m4 +++ b/m4/sys_time_h.m4 @@ -1,6 +1,7 @@ # Configure a replacement for <sys/time.h>. +# serial 5 -# Copyright (C) 2007 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -18,40 +19,54 @@ AC_DEFUN([gl_HEADER_SYS_TIME_H], AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) + AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) + AC_CHECK_HEADERS_ONCE([sys/time.h]) gl_CHECK_NEXT_HEADERS([sys/time.h]) - if test $ac_cv_header_sys_time_h = yes; then - HAVE_SYS_TIME_H=1 - else + if test $ac_cv_header_sys_time_h != yes; then HAVE_SYS_TIME_H=0 fi - AC_SUBST([HAVE_SYS_TIME_H]) AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[#if HAVE_SYS_TIME_H - #include <sys/time.h> - #endif - #include <time.h> - ]], - [[static struct timeval x; x.tv_sec = x.tv_usec;]])], + [[#if HAVE_SYS_TIME_H + #include <sys/time.h> + #endif + #include <time.h> + ]], + [[static struct timeval x; x.tv_sec = x.tv_usec;]])], [gl_cv_sys_struct_timeval=yes], [gl_cv_sys_struct_timeval=no])]) - if test $gl_cv_sys_struct_timeval = yes; then - HAVE_STRUCT_TIMEVAL=1 - else + if test $gl_cv_sys_struct_timeval != yes; then HAVE_STRUCT_TIMEVAL=0 fi - AC_SUBST([HAVE_STRUCT_TIMEVAL]) + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[ +#if HAVE_SYS_TIME_H +# include <sys/time.h> +#endif +#include <time.h> + ]], [gettimeofday]) +]) + +AC_DEFUN([gl_SYS_TIME_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) +]) + +AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS], +[ + GNULIB_GETTIMEOFDAY=0; AC_SUBST([GNULIB_GETTIMEOFDAY]) dnl Assume POSIX behavior unless another module says otherwise. - REPLACE_GETTIMEOFDAY=0 - AC_SUBST([REPLACE_GETTIMEOFDAY]) - if test $HAVE_SYS_TIME_H = 0 || test $HAVE_STRUCT_TIMEVAL = 0; then - SYS_TIME_H=sys/time.h - else - SYS_TIME_H= - fi - AC_SUBST([SYS_TIME_H]) + HAVE_GETTIMEOFDAY=1; AC_SUBST([HAVE_GETTIMEOFDAY]) + HAVE_STRUCT_TIMEVAL=1; AC_SUBST([HAVE_STRUCT_TIMEVAL]) + HAVE_SYS_TIME_H=1; AC_SUBST([HAVE_SYS_TIME_H]) + REPLACE_GETTIMEOFDAY=0; AC_SUBST([REPLACE_GETTIMEOFDAY]) ]) diff --git a/m4/sysexits.m4 b/m4/sysexits.m4 index bbd6973c20265640ad5a55fce075f02995244aae..b3baa51ca863a05662118774c9c9a2f1dd54304e 100644 --- a/m4/sysexits.m4 +++ b/m4/sysexits.m4 @@ -1,5 +1,5 @@ -# sysexits.m4 serial 4 -dnl Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc. +# sysexits.m4 serial 5 +dnl Copyright (C) 2003, 2005, 2007, 2009, 2010 Free Software 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. @@ -10,28 +10,28 @@ AC_DEFUN([gl_SYSEXITS], if test $ac_cv_header_sysexits_h = yes; then HAVE_SYSEXITS_H=1 gl_CHECK_NEXT_HEADERS([sysexits.h]) - AC_TRY_COMPILE([#include <sysexits.h>], - [switch (0) - { - case EX_OK: - case EX_USAGE: - case EX_DATAERR: - case EX_NOINPUT: - case EX_NOUSER: - case EX_NOHOST: - case EX_UNAVAILABLE: - case EX_SOFTWARE: - case EX_OSERR: - case EX_OSFILE: - case EX_CANTCREAT: - case EX_IOERR: - case EX_TEMPFAIL: - case EX_PROTOCOL: - case EX_NOPERM: - case EX_CONFIG: - break; - } - ], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sysexits.h>]], + [[switch (0) + { + case EX_OK: + case EX_USAGE: + case EX_DATAERR: + case EX_NOINPUT: + case EX_NOUSER: + case EX_NOHOST: + case EX_UNAVAILABLE: + case EX_SOFTWARE: + case EX_OSERR: + case EX_OSFILE: + case EX_CANTCREAT: + case EX_IOERR: + case EX_TEMPFAIL: + case EX_PROTOCOL: + case EX_NOPERM: + case EX_CONFIG: + break; + } + ]])], [SYSEXITS_H=], [SYSEXITS_H=sysexits.h]) else diff --git a/m4/system.m4 b/m4/system.m4 index f0845afb88c5bf462c20cfb5f3826594601e8bb2..bafedda49fcd385b6bc8f9905c0cafffe9f8048c 100644 --- a/m4/system.m4 +++ b/m4/system.m4 @@ -1,6 +1,6 @@ # Configuration for paxutils/lib/system.h. -# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -24,6 +24,8 @@ AC_DEFUN([PU_SYSTEM],[ AC_REQUIRE([AC_STRUCT_ST_BLKSIZE]) AC_CHECK_FUNCS_ONCE(lstat mkfifo setlocale) - AC_REQUIRE([gl_INTTYPES_H]) + AC_REQUIRE([gl_INTTOSTR]) AC_REQUIRE([gl_STDINT_H]) + + AC_SEARCH_LIBS(gethostbyname, nsl) ]) diff --git a/m4/tempname.m4 b/m4/tempname.m4 index 4c44d37da9418d487b6fe6ceac518f445062784c..bf83f1957f97fa809f90d1063b8c78e1c1e1da22 100644 --- a/m4/tempname.m4 +++ b/m4/tempname.m4 @@ -1,6 +1,6 @@ #serial 3 -# Copyright (C) 2006-2007 Free Software Foundation, Inc. +# Copyright (C) 2006-2007, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. diff --git a/m4/time_h.m4 b/m4/time_h.m4 index d42a635ece4cdb36055b474f60c77eb8f5d9ae4d..ba2e194608c072b6c0d947d9c6fc537606382626 100644 --- a/m4/time_h.m4 +++ b/m4/time_h.m4 @@ -1,7 +1,6 @@ # Configure a more-standard replacement for <time.h>. -# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software -# Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -24,17 +23,6 @@ AC_DEFUN([gl_HEADER_TIME_H_BODY], AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) ]) -AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], -[ - dnl If another module says to replace or to not replace, do that. - dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; - dnl this lets maintainers check for portability. - REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) - REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) - REPLACE_STRPTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRPTIME]) - REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) -]) - dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared dnl in time.h or sys/time.h. @@ -45,9 +33,9 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [gl_cv_sys_struct_timespec_in_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[#include <time.h> - ]], - [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], + [[#include <time.h> + ]], + [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_time_h=yes], [gl_cv_sys_struct_timespec_in_time_h=no])]) @@ -59,12 +47,12 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], AC_CACHE_CHECK([for struct timespec in <sys/time.h>], [gl_cv_sys_struct_timespec_in_sys_time_h], [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#include <sys/time.h> - ]], - [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], - [gl_cv_sys_struct_timespec_in_sys_time_h=yes], - [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) + [AC_LANG_PROGRAM( + [[#include <sys/time.h> + ]], + [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], + [gl_cv_sys_struct_timespec_in_sys_time_h=yes], + [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 fi @@ -72,3 +60,28 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) ]) + +AC_DEFUN([gl_TIME_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) +]) + +AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], +[ + GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) + GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) + GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) + GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) + dnl If another module says to replace or to not replace, do that. + dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; + dnl this lets maintainers check for portability. + REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) + REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) + REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) + REPLACE_STRPTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_STRPTIME]) + REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) +]) diff --git a/m4/time_r.m4 b/m4/time_r.m4 index c871b56d76f0ac97bda6736bb660dcff90db9e8f..b5938e79638a846153d3ac660a33bb24abb063f5 100644 --- a/m4/time_r.m4 +++ b/m4/time_r.m4 @@ -1,6 +1,7 @@ dnl Reentrant time functions like localtime_r. -dnl Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 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. @@ -17,15 +18,15 @@ AC_DEFUN([gl_TIME_R], AC_CACHE_CHECK([whether localtime_r is compatible with its POSIX signature], [gl_cv_time_r_posix], - [AC_TRY_COMPILE( - [#include <time.h>], - [/* We don't need to append 'restrict's to the argument types, - even though the POSIX signature has the 'restrict's, - since C99 says they can't affect type compatibility. */ - struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r; - if (ptr) return 0; - /* Check the return type is a pointer. On HP-UX 10 it is 'int'. */ - *localtime_r (0, 0);], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[#include <time.h>]], + [[/* We don't need to append 'restrict's to the argument types, + even though the POSIX signature has the 'restrict's, + since C99 says they can't affect type compatibility. */ + struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r; + if (ptr) return 0; + /* Check the return type is a pointer. On HP-UX 10 it is 'int'. */ + *localtime_r (0, 0);]])], [gl_cv_time_r_posix=yes], [gl_cv_time_r_posix=no])]) if test $gl_cv_time_r_posix = yes; then diff --git a/m4/timespec.m4 b/m4/timespec.m4 index 36f1238e8b71ca6d06adbb76852e4cb3b145b6f3..5dbaed74a048576ad23faf693344366abe1b9734 100644 --- a/m4/timespec.m4 +++ b/m4/timespec.m4 @@ -1,7 +1,6 @@ #serial 14 -# Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software -# Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2010 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/tm_gmtoff.m4 b/m4/tm_gmtoff.m4 index 911af0a40390582cc9c2dd77f24e75c104d06d42..43bda96f9ea40bda7fde5d280a94346c01de9e96 100644 --- a/m4/tm_gmtoff.m4 +++ b/m4/tm_gmtoff.m4 @@ -1,5 +1,5 @@ # tm_gmtoff.m4 serial 3 -dnl Copyright (C) 2002, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2009-2010 Free Software 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. diff --git a/m4/unistd-safer.m4 b/m4/unistd-safer.m4 index 09adf931f57c89e53e93a1795b5faac04791bb85..74c3ce6012dba23a0210058a2ffe81cb444bf912 100644 --- a/m4/unistd-safer.m4 +++ b/m4/unistd-safer.m4 @@ -1,5 +1,5 @@ #serial 8 -dnl Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2006, 2009-2010 Free Software 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. diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4 index ff9a4ea0a59f3c43d7c06bbc973fa5918c7bf11c..f6c35d2a761423e26cb745435822e03feca7a78a 100644 --- a/m4/unistd_h.m4 +++ b/m4/unistd_h.m4 @@ -1,5 +1,5 @@ -# unistd_h.m4 serial 17 -dnl Copyright (C) 2006-2009 Free Software Foundation, Inc. +# unistd_h.m4 serial 40 +dnl Copyright (C) 2006-2010 Free Software 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. @@ -11,6 +11,7 @@ AC_DEFUN([gl_UNISTD_H], dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_C_INLINE]) gl_CHECK_NEXT_HEADERS([unistd.h]) @@ -21,6 +22,24 @@ AC_DEFUN([gl_UNISTD_H], HAVE_UNISTD_H=0 fi AC_SUBST([HAVE_UNISTD_H]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <unistd.h> +/* Some systems declare various items in the wrong headers. */ +#ifndef __GLIBC__ +# include <fcntl.h> +# include <stdio.h> +# include <stdlib.h> +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# include <io.h> +# endif +#endif + ]], [chown dup2 dup3 environ euidaccess faccessat fchdir fchownat + fsync ftruncate getcwd getdomainname getdtablesize getgroups + gethostname getlogin getlogin_r getpagesize getusershell setusershell + endusershell lchown link linkat lseek pipe2 pread readlink readlinkat + rmdir sleep symlink symlinkat unlink unlinkat usleep]) ]) AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], @@ -28,6 +47,8 @@ AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], @@ -35,49 +56,96 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) + GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) + GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) + GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) + GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) + GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) + GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) + GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) + GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) + GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) + GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) + GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) + GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) + GNULIB_UNISTD_H_GETOPT=0; AC_SUBST([GNULIB_UNISTD_H_GETOPT]) GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) + GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) + GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) + GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) + HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) + HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) + HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) HAVE_GETDOMAINNAME=1; AC_SUBST([HAVE_GETDOMAINNAME]) HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) + HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) + HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) HAVE_GETUSERSHELL=1; AC_SUBST([HAVE_GETUSERSHELL]) + HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) + HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) + HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) + HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) + HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) + HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) + HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) + HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) + HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) + REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) + REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_FCHDIR=0; AC_SUBST([REPLACE_FCHDIR]) + REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) + REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) + REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) + REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) + REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) + REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) + REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) + REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) + REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) + REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) + REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) + REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) + UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; + AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) diff --git a/m4/unlink.m4 b/m4/unlink.m4 new file mode 100644 index 0000000000000000000000000000000000000000..c01d8482854ddc4deded932edfd4865da2fa6429 --- /dev/null +++ b/m4/unlink.m4 @@ -0,0 +1,35 @@ +# unlink.m4 serial 3 +dnl Copyright (C) 2009, 2010 Free Software 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. + +AC_DEFUN([gl_FUNC_UNLINK], +[ + AC_REQUIRE([gl_AC_DOS]) + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + dnl Detect Solaris 9 and FreeBSD 7.2 bug. + AC_CACHE_CHECK([whether unlink honors trailing slashes], + [gl_cv_func_unlink_works], + [touch conftest.file + # Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + ln -s conftest.file conftest.lnk + fi + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <unistd.h> + #include <errno.h> +]], [[if (!unlink ("conftest.file/") || errno != ENOTDIR) return 1; +#if HAVE_LSTAT + if (!unlink ("conftest.lnk/") || errno != ENOTDIR) return 2; +#endif + ]])], + [gl_cv_func_unlink_works=yes], [gl_cv_func_unlink_works=no], + [gl_cv_func_unlink_works="guessing no"]) + rm -f conftest.file conftest.lnk]) + if test x"$gl_cv_func_unlink_works" != xyes; then + REPLACE_UNLINK=1 + AC_LIBOBJ([unlink]) + fi +]) diff --git a/m4/unlinkdir.m4 b/m4/unlinkdir.m4 index 0c8437531404ddae115f179f02dc0a033302f3db..3b3c75e71c15f61e086080702c40fb07bd81124c 100644 --- a/m4/unlinkdir.m4 +++ b/m4/unlinkdir.m4 @@ -1,6 +1,6 @@ # serial 6 -# Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,17 +16,18 @@ AC_DEFUN([gl_UNLINKDIR], AC_LIBOBJ([unlinkdir]) # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later, - # and Cygwin never let anyone (even root) unlink directories. + # Cygwin, and mingw never let anyone (even root) unlink directories. # If anyone knows of another system for which unlink can never # remove a directory, please report it to <bug-coreutils@gnu.org>. # Unfortunately this is difficult to test for, since it requires root access # and might create garbage in the file system, # so the code below simply relies on the kernel name and version number. - case $host in - *-*-gnu[[0-9]]* | \ - *-*-linux-* | *-*-linux | \ - *-*-freebsd2.2* | *-*-freebsd[[3-9]]* | *-*-freebsd[[1-9]][[0-9]]* | \ - *-cygwin) + case $host_os in + gnu[[0-9]]* | \ + linux-* | linux | \ + freebsd2.2* | freebsd[[3-9]]* | freebsd[[1-9]][[0-9]]* | \ + cygwin | \ + mingw*) AC_DEFINE([UNLINK_CANNOT_UNLINK_DIR], [1], [Define to 1 if unlink (dir) cannot possibly succeed.]);; esac diff --git a/m4/unlocked-io.m4 b/m4/unlocked-io.m4 index cd5079b86793edf4ceb9d0de5c45d15cd23fce9d..bddec0def7a86644cd01854f874a495228d89333 100644 --- a/m4/unlocked-io.m4 +++ b/m4/unlocked-io.m4 @@ -1,6 +1,6 @@ # unlocked-io.m4 serial 15 -# Copyright (C) 1998-2006, 2009 Free Software Foundation, Inc. +# Copyright (C) 1998-2006, 2009-2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/utimbuf.m4 b/m4/utimbuf.m4 index 062f736275008c3e0687e12e7e945a02632b31a6..88a9f45fb1e493dd5c382c7ad5fd9621ddf2270e 100644 --- a/m4/utimbuf.m4 +++ b/m4/utimbuf.m4 @@ -1,7 +1,7 @@ # serial 9 -# Copyright (C) 1998-2001, 2003-2004, 2007, 2009 Free Software -# Foundation, Inc. +# Copyright (C) 1998-2001, 2003-2004, 2007, 2009-2010 Free Software Foundation, +# Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -19,15 +19,15 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_UTIMBUF], AC_CACHE_CHECK([for struct utimbuf], [gl_cv_sys_struct_utimbuf], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[#if HAVE_SYS_TIME_H - #include <sys/time.h> - #endif - #include <time.h> - #ifdef HAVE_UTIME_H - #include <utime.h> - #endif - ]], - [[static struct utimbuf x; x.actime = x.modtime;]])], + [[#if HAVE_SYS_TIME_H + #include <sys/time.h> + #endif + #include <time.h> + #ifdef HAVE_UTIME_H + #include <utime.h> + #endif + ]], + [[static struct utimbuf x; x.actime = x.modtime;]])], [gl_cv_sys_struct_utimbuf=yes], [gl_cv_sys_struct_utimbuf=no])]) diff --git a/m4/utime.m4 b/m4/utime.m4 deleted file mode 100644 index 26b5ea90a78213e2314959d596344b7e319335aa..0000000000000000000000000000000000000000 --- a/m4/utime.m4 +++ /dev/null @@ -1,30 +0,0 @@ -# serial 8 - -dnl From Jim Meyering -dnl Replace the utime function on systems that need it. - -# Copyright (C) 1998, 2000-2001, 2003-2004, 2009 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -dnl FIXME - -AC_DEFUN([gl_FUNC_UTIME], -[ - AC_REQUIRE([AC_FUNC_UTIME_NULL]) - if test $ac_cv_func_utime_null = no; then - AC_LIBOBJ([utime]) - AC_DEFINE([utime], [rpl_utime], - [Define to rpl_utime if the replacement function should be used.]) - gl_PREREQ_UTIME - fi -]) - -# Prerequisites of lib/utime.c. -AC_DEFUN([gl_PREREQ_UTIME], -[ - AC_CHECK_HEADERS_ONCE([utime.h]) - AC_REQUIRE([gl_CHECK_TYPE_STRUCT_UTIMBUF]) - gl_FUNC_UTIMES_NULL -]) diff --git a/m4/utimens.m4 b/m4/utimens.m4 index 01a3184ce251359d4a0aad7085dc6e30fa912f6e..2baa2561035f528ad7eafd190abb4cd230ab0299 100644 --- a/m4/utimens.m4 +++ b/m4/utimens.m4 @@ -1,10 +1,9 @@ -dnl Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software -dnl Foundation, Inc. +dnl Copyright (C) 2003-2010 Free Software 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. -dnl serial 2 +dnl serial 4 AC_DEFUN([gl_UTIMENS], [ @@ -14,5 +13,29 @@ AC_DEFUN([gl_UTIMENS], AC_REQUIRE([gl_FUNC_UTIMES]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_UTIMBUF]) - AC_CHECK_FUNCS_ONCE([futimes futimesat futimens utimensat]) + AC_CHECK_FUNCS_ONCE([futimes futimesat futimens utimensat lutimes]) + + if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then + dnl FreeBSD 8.0-rc2 mishandles futimesat(fd,NULL,time). It is not + dnl standardized, but Solaris implemented it first and uses it as + dnl its only means to set fd time. + AC_CACHE_CHECK([whether futimesat handles NULL file], + [gl_cv_func_futimesat_works], + [touch conftest.file + AC_RUN_IFELSE([AC_LANG_PROGRAM([[ +#include <stddef.h> +#include <sys/times.h> +]], [[ int fd = open ("conftest.file", O_RDWR); + if (fd < 0) return 1; + if (futimesat (fd, NULL, NULL)) return 2; + ]])], + [gl_cv_func_futimesat_works=yes], + [gl_cv_func_futimesat_works=no], + [gl_cv_func_futimesat_works="guessing no"]) + rm -f conftest.file]) + if test "$gl_cv_func_futimesat_works" != yes; then + AC_DEFINE([FUTIMESAT_NULL_BUG], [1], + [Define to 1 if futimesat mishandles a NULL file name.]) + fi + fi ]) diff --git a/m4/utimes-null.m4 b/m4/utimes-null.m4 deleted file mode 100644 index dffa798c42d396b01e2c2f7af56a364fba66978a..0000000000000000000000000000000000000000 --- a/m4/utimes-null.m4 +++ /dev/null @@ -1,41 +0,0 @@ -# serial 8 - -# Copyright (C) 1998-1999, 2001, 2003-2004, 2006, 2009 Free Software -# Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -dnl Shamelessly cloned from acspecific.m4's AC_FUNC_UTIME_NULL, -dnl then do case-insensitive s/utime/utimes/. - -AC_DEFUN([gl_FUNC_UTIMES_NULL], -[AC_CACHE_CHECK([whether utimes accepts a null argument], [ac_cv_func_utimes_null], -[rm -f conftest.data; > conftest.data -AC_TRY_RUN([ -/* In case stat has been defined to rpl_stat, undef it here. */ -#undef stat -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/time.h> -int -main () { -struct stat s, t; -return ! (stat ("conftest.data", &s) == 0 - && utimes ("conftest.data", 0) == 0 - && stat ("conftest.data", &t) == 0 - && t.st_mtime >= s.st_mtime - && t.st_mtime - s.st_mtime < 120)); -}], - ac_cv_func_utimes_null=yes, - ac_cv_func_utimes_null=no, - ac_cv_func_utimes_null=no) -rm -f core core.* *.core]) - - if test $ac_cv_func_utimes_null = yes; then - AC_DEFINE([HAVE_UTIMES_NULL], [1], - [Define if utimes accepts a null argument]) - fi - ] -) diff --git a/m4/utimes.m4 b/m4/utimes.m4 index 5b010acd8b3192191fb6491b2c519837cefd0b44..e6d6f776499329fe76839f655ad97b1378320406 100644 --- a/m4/utimes.m4 +++ b/m4/utimes.m4 @@ -1,6 +1,7 @@ # Detect some bugs in glibc's implementation of utimes. +# serial 2 -dnl Copyright (C) 2003, 2004, 2005, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2005, 2009-2010 Free Software 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. @@ -19,8 +20,8 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_UTIMES], [ - AC_CACHE_CHECK([determine whether the utimes function works], - gl_cv_func_working_utimes, + AC_CACHE_CHECK([whether the utimes function works], + [gl_cv_func_working_utimes], [ AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include <sys/types.h> @@ -44,11 +45,11 @@ main () int fd; int ok = ((f = fopen (file, "w")) - && fclose (f) == 0 - && utimes (file, timeval) == 0 - && lstat (file, &sbuf) == 0 - && sbuf.st_atime == timeval[0].tv_sec - && sbuf.st_mtime == timeval[1].tv_sec); + && fclose (f) == 0 + && utimes (file, timeval) == 0 + && lstat (file, &sbuf) == 0 + && sbuf.st_atime == timeval[0].tv_sec + && sbuf.st_mtime == timeval[1].tv_sec); unlink (file); if (!ok) exit (1); @@ -66,8 +67,8 @@ main () exit (1); ok = (0 <= (fd = open (file, O_WRONLY|O_CREAT, 0444)) - && close (fd) == 0 - && utimes (file, NULL) == 0); + && close (fd) == 0 + && utimes (file, NULL) == 0); unlink (file); exit (!ok); diff --git a/m4/vasnprintf.m4 b/m4/vasnprintf.m4 index 9e839d2bc8d096080b8e5f0c364a1ec70eb10869..50a20cca2346803576a53ad8e39d5950cc3fbc33 100644 --- a/m4/vasnprintf.m4 +++ b/m4/vasnprintf.m4 @@ -1,5 +1,5 @@ -# vasnprintf.m4 serial 26 -dnl Copyright (C) 2002-2004, 2006-2009 Free Software Foundation, Inc. +# vasnprintf.m4 serial 29 +dnl Copyright (C) 2002-2004, 2006-2010 Free Software 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. @@ -52,13 +52,13 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE], ]) # Prerequisites of lib/vasnprintf.c. -AC_DEFUN([gl_PREREQ_VASNPRINTF], +AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) - AC_CHECK_FUNCS([snprintf wcslen]) + AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>]) @@ -66,7 +66,7 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF], # Extra prerequisites of lib/vasnprintf.c for supporting 'long double' # arguments. -AC_DEFUN([gl_PREREQ_VASNPRINTF_LONG_DOUBLE], +AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE], [ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE]) case "$gl_cv_func_printf_long_double" in @@ -150,6 +150,21 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F], esac ]) +# Extra prerequisites of lib/vasnprintf.c for supporting the 'ls' directive. +AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LS], +[ + AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS]) + case "$gl_cv_func_printf_directive_ls" in + *yes) + ;; + *) + AC_DEFINE([NEED_PRINTF_DIRECTIVE_LS], [1], + [Define if the vasnprintf implementation needs special code for + the 'ls' directive.]) + ;; + esac +]) + # Extra prerequisites of lib/vasnprintf.c for supporting the ' flag. AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING], [ @@ -247,6 +262,7 @@ AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS], gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE gl_PREREQ_VASNPRINTF_DIRECTIVE_A gl_PREREQ_VASNPRINTF_DIRECTIVE_F + gl_PREREQ_VASNPRINTF_DIRECTIVE_LS gl_PREREQ_VASNPRINTF_FLAG_GROUPING gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST gl_PREREQ_VASNPRINTF_FLAG_ZERO diff --git a/m4/vasprintf.m4 b/m4/vasprintf.m4 new file mode 100644 index 0000000000000000000000000000000000000000..b142bc0ff1998489934b245439e41c9f5dbe8830 --- /dev/null +++ b/m4/vasprintf.m4 @@ -0,0 +1,46 @@ +# vasprintf.m4 serial 6 +dnl Copyright (C) 2002-2003, 2006-2007, 2009-2010 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. + +AC_DEFUN([gl_FUNC_VASPRINTF], +[ + AC_CHECK_FUNCS([vasprintf]) + if test $ac_cv_func_vasprintf = no; then + gl_REPLACE_VASPRINTF + fi +]) + +AC_DEFUN([gl_REPLACE_VASPRINTF], +[ + AC_LIBOBJ([vasprintf]) + AC_LIBOBJ([asprintf]) + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + if test $ac_cv_func_vasprintf = yes; then + REPLACE_VASPRINTF=1 + else + HAVE_VASPRINTF=0 + fi + gl_PREREQ_VASPRINTF_H + gl_PREREQ_VASPRINTF + gl_PREREQ_ASPRINTF +]) + +# Prerequisites of the vasprintf portion of lib/stdio.h. +AC_DEFUN([gl_PREREQ_VASPRINTF_H], +[ + dnl Persuade glibc <stdio.h> to declare asprintf() and vasprintf(). + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) +]) + +# Prerequisites of lib/vasprintf.c. +AC_DEFUN([gl_PREREQ_VASPRINTF], +[ +]) + +# Prerequisites of lib/asprintf.c. +AC_DEFUN([gl_PREREQ_ASPRINTF], +[ +]) diff --git a/m4/version-etc.m4 b/m4/version-etc.m4 new file mode 100644 index 0000000000000000000000000000000000000000..2c572b4bcaa20378a76dd71abfdd8fa2c5aa5315 --- /dev/null +++ b/m4/version-etc.m4 @@ -0,0 +1,33 @@ +# version-etc.m4 serial 1 +# Copyright (C) 2009-2010 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +dnl $1 - configure flag and define name +dnl $2 - human readable description +m4_define([gl_VERSION_ETC_FLAG], +[dnl + AC_ARG_WITH([$1], [AS_HELP_STRING([--with-$1], [$2])], + [dnl + case $withval in + yes|no) ;; + *) AC_DEFINE_UNQUOTED(AS_TR_CPP([PACKAGE_$1]), ["$withval"], [$2]) ;; + esac + ]) +]) + +AC_DEFUN([gl_VERSION_ETC], +[dnl + gl_VERSION_ETC_FLAG([packager], + [String identifying the packager of this software]) + gl_VERSION_ETC_FLAG([packager-version], + [Packager-specific version information]) + gl_VERSION_ETC_FLAG([packager-bug-reports], + [Packager info for bug reports (URL/e-mail/...)]) + if test "X$with_packager" = "X" && \ + test "X$with_packager_version$with_packager_bug_reports" != "X" + then + AC_MSG_ERROR([The --with-packager-{bug-reports,version} options require --with-packager]) + fi +]) diff --git a/m4/vsnprintf.m4 b/m4/vsnprintf.m4 index 3b37d460b33eb069c3709b8ae6809eb816e3a53d..ed189c23882b9f4c88adac2073b2441c4d64d6d6 100644 --- a/m4/vsnprintf.m4 +++ b/m4/vsnprintf.m4 @@ -1,5 +1,5 @@ # vsnprintf.m4 serial 5 -dnl Copyright (C) 2002-2004, 2007-2008 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2007-2010 Free Software 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. diff --git a/m4/warn-on-use.m4 b/m4/warn-on-use.m4 new file mode 100644 index 0000000000000000000000000000000000000000..42daae87b8f125fb1208970a91d29d0034d1afd1 --- /dev/null +++ b/m4/warn-on-use.m4 @@ -0,0 +1,45 @@ +# warn-on-use.m4 serial 2 +dnl Copyright (C) 2010 Free Software 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. + +# gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) +# --------------------------------------- +# For each whitespace-separated element in the list of NAMES, define +# HAVE_RAW_DECL_name if the function has a declaration among INCLUDES +# even after being undefined as a macro. +# +# See warn-on-use.h for some hints on how to poison function names, as +# well as ideas on poisoning global variables and macros. NAMES may +# include global variables, but remember that only functions work with +# _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single +# header, but if the replacement header pulls in other headers because +# some systems declare functions in the wrong header, then INCLUDES +# should do likewise. +# +# If you assume C89, then it is generally safe to assume declarations +# for functions declared in that standard (such as gets) without +# needing gl_WARN_ON_USE_PREPARE. +AC_DEFUN([gl_WARN_ON_USE_PREPARE], +[ + m4_foreach_w([gl_decl], [$2], + [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), + [Define to 1 if ]m4_defn([gl_decl])[ is declared even after + undefining macros.])])dnl + for gl_func in m4_flatten([$2]); do + AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl + AC_CACHE_CHECK([whether $gl_func is declared without a macro], + gl_Symbol, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], +[@%:@undef $gl_func + (void) $gl_func;])], + [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) + AS_VAR_IF(gl_Symbol, [yes], + [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) + dnl shortcut - if the raw declaration exists, then set a cache + dnl variable to allow skipping any later AC_CHECK_DECL efforts + eval ac_cv_have_decl_$gl_func=yes]) + AS_VAR_POPDEF([gl_Symbol])dnl + done +]) diff --git a/m4/wchar.m4 b/m4/wchar.m4 deleted file mode 100644 index ba8ee6ab7bdf0125546b546fd3eaf0babaefcd1c..0000000000000000000000000000000000000000 --- a/m4/wchar.m4 +++ /dev/null @@ -1,99 +0,0 @@ -dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues. - -dnl Copyright (C) 2007-2008 Free Software 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. - -dnl Written by Eric Blake. - -# wchar.m4 serial 22 - -AC_DEFUN([gl_WCHAR_H], -[ - AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) - AC_CACHE_CHECK([whether <wchar.h> is standalone], - [gl_cv_header_wchar_h_standalone], - [AC_COMPILE_IFELSE([[#include <wchar.h> -wchar_t w;]], - [gl_cv_header_wchar_h_standalone=yes], - [gl_cv_header_wchar_h_standalone=no])]) - - AC_REQUIRE([gt_TYPE_WINT_T]) - if test $gt_cv_c_wint_t = yes; then - HAVE_WINT_T=1 - else - HAVE_WINT_T=0 - fi - AC_SUBST([HAVE_WINT_T]) - - if test $gl_cv_header_wchar_h_standalone != yes || test $gt_cv_c_wint_t != yes; then - WCHAR_H=wchar.h - fi - - dnl Prepare for creating substitute <wchar.h>. - dnl Do it always: WCHAR_H may be empty here but can be set later. - dnl Check for <wchar.h> (missing in Linux uClibc when built without wide - dnl character support). - AC_CHECK_HEADERS_ONCE([wchar.h]) - if test $ac_cv_header_wchar_h = yes; then - HAVE_WCHAR_H=1 - else - HAVE_WCHAR_H=0 - fi - AC_SUBST([HAVE_WCHAR_H]) - gl_CHECK_NEXT_HEADERS([wchar.h]) -]) - -dnl Unconditionally enables the replacement of <wchar.h>. -AC_DEFUN([gl_REPLACE_WCHAR_H], -[ - AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) - WCHAR_H=wchar.h -]) - -AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], -[ - dnl Use AC_REQUIRE here, so that the default settings are expanded once only. - AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) - GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 -]) - -AC_DEFUN([gl_WCHAR_H_DEFAULTS], -[ - GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) - GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) - GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) - GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) - GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) - GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) - GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) - GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) - GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) - GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) - GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) - dnl Assume proper GNU behavior unless another module says otherwise. - HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) - HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) - HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) - HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) - HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) - HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) - HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) - HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) - HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) - HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) - HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) - REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) - REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) - REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) - REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) - REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) - REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) - REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) - REPLACE_MBSNRTOWCS=0;AC_SUBST([REPLACE_MBSNRTOWCS]) - REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) - REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) - REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) - WCHAR_H=''; AC_SUBST([WCHAR_H]) -]) diff --git a/m4/wchar_h.m4 b/m4/wchar_h.m4 new file mode 100644 index 0000000000000000000000000000000000000000..0bce51c6bbe181d79c782747a0175f4758782757 --- /dev/null +++ b/m4/wchar_h.m4 @@ -0,0 +1,152 @@ +dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues. + +dnl Copyright (C) 2007-2010 Free Software 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. + +dnl Written by Eric Blake. + +# wchar_h.m4 serial 32 + +AC_DEFUN([gl_WCHAR_H], +[ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) + dnl Prepare for creating substitute <wchar.h>. + dnl Check for <wchar.h> (missing in Linux uClibc when built without wide + dnl character support). + dnl <wchar.h> is always overridden, because of GNULIB_POSIXCHECK. + AC_CHECK_HEADERS_ONCE([wchar.h]) + gl_CHECK_NEXT_HEADERS([wchar.h]) + if test $ac_cv_header_wchar_h = yes; then + HAVE_WCHAR_H=1 + else + HAVE_WCHAR_H=0 + fi + AC_SUBST([HAVE_WCHAR_H]) + + AC_REQUIRE([gt_TYPE_WINT_T]) + if test $gt_cv_c_wint_t = yes; then + HAVE_WINT_T=1 + else + HAVE_WINT_T=0 + fi + AC_SUBST([HAVE_WINT_T]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[ +/* Some systems require additional headers. */ +#ifndef __GLIBC__ +# include <stddef.h> +# include <stdio.h> +# include <time.h> +#endif +#include <wchar.h> + ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb + wcsrtombs wcsnrtombs wcwidth]) +]) + +dnl Check whether <wchar.h> is usable at all. +AC_DEFUN([gl_WCHAR_H_INLINE_OK], +[ + dnl Test whether <wchar.h> suffers due to the transition from '__inline' to + dnl 'gnu_inline'. See <http://sourceware.org/bugzilla/show_bug.cgi?id=4022> + dnl and <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>. In summary, + dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and + dnl the option -std=c99 or -std=gnu99, leads to a broken <wchar.h>. + AC_CACHE_CHECK([whether <wchar.h> uses 'inline' correctly], + [gl_cv_header_wchar_h_correct_inline], + [gl_cv_header_wchar_h_correct_inline=yes + AC_LANG_CONFTEST([ + AC_LANG_SOURCE([[#define wcstod renamed_wcstod +#include <wchar.h> +extern int zero (void); +int main () { return zero(); } +]])]) + if AC_TRY_EVAL([ac_compile]); then + mv conftest.$ac_objext conftest1.$ac_objext + AC_LANG_CONFTEST([ + AC_LANG_SOURCE([[#define wcstod renamed_wcstod +#include <wchar.h> +int zero (void) { return 0; } +]])]) + if AC_TRY_EVAL([ac_compile]); then + mv conftest.$ac_objext conftest2.$ac_objext + if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then + : + else + gl_cv_header_wchar_h_correct_inline=no + fi + fi + fi + rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext + ]) + if test $gl_cv_header_wchar_h_correct_inline = no; then + AC_MSG_ERROR([<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). +This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in +C99 mode. You have four options: + - Add the flag -fgnu89-inline to CC and reconfigure, or + - Fix your include files, using parts of + <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or + - Use a gcc version older than 4.3, or + - Don't use the flags -std=c99 or -std=gnu99. +Configuration aborted.]) + fi +]) + +dnl Unconditionally enables the replacement of <wchar.h>. +AC_DEFUN([gl_REPLACE_WCHAR_H], +[ + dnl This is a no-op, because <wchar.h> is always overridden. + : +]) + +AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1 + dnl Define it also as a C macro, for the benefit of the unit tests. + gl_MODULE_INDICATOR([$1]) +]) + +AC_DEFUN([gl_WCHAR_H_DEFAULTS], +[ + GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) + GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) + GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) + GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) + GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) + GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) + GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) + GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) + GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) + GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) + GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) + HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) + HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) + HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) + HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) + HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) + HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) + HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) + HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) + HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) + HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) + REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) + REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) + REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) + REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) + REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) + REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) + REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) + REPLACE_MBSNRTOWCS=0; AC_SUBST([REPLACE_MBSNRTOWCS]) + REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) + REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) + REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) + REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) +]) diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4 index fb27a7f65f46e0f23b883d01e9e74f84e13595b5..ed804e664ba7933d42051ff3f240e82f9d787998 100644 --- a/m4/wchar_t.m4 +++ b/m4/wchar_t.m4 @@ -1,5 +1,5 @@ # wchar_t.m4 serial 3 (gettext-0.18) -dnl Copyright (C) 2002-2003, 2008, 2009 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2008-2010 Free Software 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. diff --git a/m4/wcrtomb.m4 b/m4/wcrtomb.m4 index 22d94336716898f66e8381197b050c29b772bf14..19c0c5fe90ea035578b3511746d050e437f5574f 100644 --- a/m4/wcrtomb.m4 +++ b/m4/wcrtomb.m4 @@ -1,5 +1,5 @@ -# wcrtomb.m4 serial 2 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +# wcrtomb.m4 serial 4 +dnl Copyright (C) 2008-2010 Free Software 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. @@ -9,12 +9,16 @@ AC_DEFUN([gl_FUNC_WCRTOMB], AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([AC_TYPE_MBSTATE_T]) + gl_MBSTATE_T_BROKEN + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_WCRTOMB=1 + fi AC_CHECK_FUNCS_ONCE([wcrtomb]) if test $ac_cv_func_wcrtomb = no; then HAVE_WCRTOMB=0 - else - - dnl On OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes + fi + if test $HAVE_WCRTOMB != 0 && test $REPLACE_WCRTOMB != 1; then + dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes dnl returns 0 instead of 1. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) @@ -29,10 +33,10 @@ AC_DEFUN([gl_FUNC_WCRTOMB], dnl is present. changequote(,)dnl case "$host_os" in - # Guess no on OSF/1 and Solaris. - osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; - # Guess yes otherwise. - *) gl_cv_func_wcrtomb_retval="guessing yes" ;; + # Guess no on AIX 4, OSF/1 and Solaris. + aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_wcrtomb_retval="guessing yes" ;; esac changequote([,])dnl if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then @@ -67,7 +71,7 @@ int main () }], [gl_cv_func_wcrtomb_retval=yes], [gl_cv_func_wcrtomb_retval=no], - []) + [:]) fi ]) case "$gl_cv_func_wcrtomb_retval" in diff --git a/m4/wctype.m4 b/m4/wctype_h.m4 similarity index 69% rename from m4/wctype.m4 rename to m4/wctype_h.m4 index 6a1b6f07f482838d4e2faeafa7474c368336d716..83daffc9c71110a7d2fe77cd6d40f69999676a4a 100644 --- a/m4/wctype.m4 +++ b/m4/wctype_h.m4 @@ -1,8 +1,8 @@ -# wctype.m4 serial 2 +# wctype_h.m4 serial 5 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it. -dnl Copyright (C) 2006-2008 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2010 Free Software 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. @@ -12,6 +12,7 @@ dnl Written by Paul Eggert. AC_DEFUN([gl_WCTYPE_H], [ AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([iswcntrl]) if test $ac_cv_func_iswcntrl = yes; then HAVE_ISWCNTRL=1 @@ -30,40 +31,34 @@ AC_DEFUN([gl_WCTYPE_H], fi AC_SUBST([HAVE_WINT_T]) - WCTYPE_H=wctype.h if test $ac_cv_header_wctype_h = yes; then if test $ac_cv_func_iswcntrl = yes; then dnl Linux libc5 has an iswprint function that returns 0 for all arguments. dnl The other functions are likely broken in the same way. AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works], [ - AC_TRY_RUN([#include <stddef.h> - #include <stdio.h> - #include <time.h> - #include <wchar.h> - #include <wctype.h> - int main () { return iswprint ('x') == 0; }], + AC_RUN_IFELSE([AC_LANG_SOURCE([[ + #include <stddef.h> + #include <stdio.h> + #include <time.h> + #include <wchar.h> + #include <wctype.h> + int main () { return iswprint ('x') == 0; }]])], [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no], - [AC_TRY_COMPILE([#include <stdlib.h> + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h> #if __GNU_LIBRARY__ == 1 Linux libc5 i18n is broken. - #endif], [], + #endif]], [])], [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no]) ]) ]) - if test $gl_cv_func_iswcntrl_works = yes; then - WCTYPE_H= - fi fi - dnl Compute NEXT_WCTYPE_H even if WCTYPE_H is empty, - dnl for the benefit of builds from non-distclean directories. gl_CHECK_NEXT_HEADERS([wctype.h]) HAVE_WCTYPE_H=1 else HAVE_WCTYPE_H=0 fi AC_SUBST([HAVE_WCTYPE_H]) - AC_SUBST([WCTYPE_H]) if test "$gl_cv_func_iswcntrl_works" = no; then REPLACE_ISWCNTRL=1 diff --git a/m4/wcwidth.m4 b/m4/wcwidth.m4 index 4bedefae69a34cb83f474c8fab1c54087b830f42..ef5404eab99703b9df2b7a36c30eee8be5a3f493 100644 --- a/m4/wcwidth.m4 +++ b/m4/wcwidth.m4 @@ -1,5 +1,5 @@ -# wcwidth.m4 serial 14 -dnl Copyright (C) 2006-2008 Free Software Foundation, Inc. +# wcwidth.m4 serial 15 +dnl Copyright (C) 2006-2010 Free Software 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. @@ -7,6 +7,7 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_WCWIDTH], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Persuade glibc <wchar.h> to declare wcwidth(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) @@ -68,7 +69,15 @@ int main () return 1; return 0; }], [gl_cv_func_wcwidth_works=yes], [gl_cv_func_wcwidth_works=no], - [gl_cv_func_wcwidth_works="guessing no"]) + [ +changequote(,)dnl + case "$host_os" in + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_wcwidth_works="guessing yes";; + *) gl_cv_func_wcwidth_works="guessing no";; + esac +changequote([,])dnl + ]) ]) case "$gl_cv_func_wcwidth_works" in *yes) ;; diff --git a/m4/wint_t.m4 b/m4/wint_t.m4 index 47a4363d79041b6481ed781bcbe798dc1b171ec9..a6c7d15cb50a60c46df73caef95f0fd1a0034809 100644 --- a/m4/wint_t.m4 +++ b/m4/wint_t.m4 @@ -1,5 +1,5 @@ # wint_t.m4 serial 4 (gettext-0.18) -dnl Copyright (C) 2003, 2007-2009 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007-2010 Free Software 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. diff --git a/m4/write.m4 b/m4/write.m4 index 812b19b3b07ee5889766974cb733fccaacf325f5..56325aba9fa84c233a0d99eccf13ffba7ae2fdc2 100644 --- a/m4/write.m4 +++ b/m4/write.m4 @@ -1,5 +1,5 @@ # write.m4 serial 1 -dnl Copyright (C) 2008 Free Software Foundation, Inc. +dnl Copyright (C) 2008, 2009, 2010 Free Software 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. diff --git a/m4/xalloc.m4 b/m4/xalloc.m4 index 837a948c1dab6a9013cacb8516684fefb505dfc2..83247fe329c2225b18944d5e154661a0b4ea5d16 100644 --- a/m4/xalloc.m4 +++ b/m4/xalloc.m4 @@ -1,5 +1,6 @@ # xalloc.m4 serial 16 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009, 2010 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. diff --git a/m4/xgetcwd.m4 b/m4/xgetcwd.m4 index d8609d124cea3c20cbbb3d663e46c83e2d5f9f72..fd534f6d147e6c2d36b47253b6ec0e8039822954 100644 --- a/m4/xgetcwd.m4 +++ b/m4/xgetcwd.m4 @@ -1,5 +1,5 @@ #serial 6 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2010 Free Software 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. diff --git a/m4/xsize.m4 b/m4/xsize.m4 index 631893cf59f8a73fe279f39908d421f5dbd8a2e5..b653693a3029cb835e98c0d02be9683926e26e00 100644 --- a/m4/xsize.m4 +++ b/m4/xsize.m4 @@ -1,5 +1,5 @@ # xsize.m4 serial 4 -dnl Copyright (C) 2003-2004, 2008 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2004, 2008-2010 Free Software 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. diff --git a/m4/xstrndup.m4 b/m4/xstrndup.m4 index 8a30ab158d318170fb096cf052cd72dd207b9836..74302cc951c714041d1908a44ff8f1aa8e77512d 100644 --- a/m4/xstrndup.m4 +++ b/m4/xstrndup.m4 @@ -1,5 +1,5 @@ # xstrndup.m4 serial 2 -dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2009, 2010 Free Software 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. diff --git a/m4/xstrtol.m4 b/m4/xstrtol.m4 index 1fdcf717f5a7761619d0b828fb05abe0dbfc6972..25ab9b3fa10747a9ce9cc3cbd2f8778bb985821f 100644 --- a/m4/xstrtol.m4 +++ b/m4/xstrtol.m4 @@ -1,6 +1,5 @@ #serial 10 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software -dnl Foundation, Inc. +dnl Copyright (C) 2002-2007, 2009-2010 Free Software 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. diff --git a/m4/exitfail.m4 b/m4/xvasprintf.m4 similarity index 51% rename from m4/exitfail.m4 rename to m4/xvasprintf.m4 index b7a691e501e30af03ce8f9b6b169e48922e232a0..bd5200f7cd8492b4636802fe7a32b199527ea688 100644 --- a/m4/exitfail.m4 +++ b/m4/xvasprintf.m4 @@ -1,13 +1,11 @@ -# exitfail.m4 serial 6 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# xvasprintf.m4 serial 1 +dnl Copyright (C) 2006, 2009, 2010 Free Software 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. -AC_DEFUN([gl_EXITFAIL], +AC_DEFUN([gl_XVASPRINTF], [ - AC_LIBOBJ([exitfail]) - - dnl No prerequisites of lib/exitfail.c. - : + dnl Prerequisites of lib/xvasprintf.c. + AC_REQUIRE([AC_C_INLINE]) ]) diff --git a/po/Makevars b/po/Makevars index 3a3491f66677eb13e8b95eb6f11cea7a67c0c2df..b459793b6963f4d3025447ed33829d6743d11c00 100644 --- a/po/Makevars +++ b/po/Makevars @@ -11,7 +11,7 @@ top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \ - \ + \ --flag=_:1:pass-c-format\ --flag=N_:1:pass-c-format\ --flag=error:3:c-format --flag=error_at_line:5:c-format\ diff --git a/po/POTFILES.in b/po/POTFILES.in index bcf24017a7c18c86eee6c4939505cc619606b123..cd48b268a8871bb2b8412627d60867370d8ead14 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -19,26 +19,27 @@ # 02110-1301, USA. # Library files -lib/argmatch.c -lib/argp-help.c -lib/argp-parse.c -lib/closeout.c -lib/error.c -lib/getopt.c -lib/obstack.c -lib/human.c -lib/obstack.c -lib/openat-die.c +gnu/argmatch.c +gnu/argp-help.c +gnu/argp-parse.c +gnu/closeout.c +gnu/error.c +gnu/getopt.c +gnu/obstack.c +gnu/human.c +gnu/obstack.c +gnu/openat-die.c +gnu/quotearg.c +gnu/rpmatch.c +gnu/xalloc-die.c +gnu/xmalloc.c +gnu/version-etc.c +gnu/xalloc-die.c + lib/paxerror.c lib/paxexit.c lib/paxnames.c -lib/quotearg.c -lib/rpmatch.c lib/rtapelib.c -lib/xalloc-die.c -lib/xmalloc.c -lib/version-etc.c -lib/xalloc-die.c rmt/rmt.c diff --git a/po/bg.gmo b/po/bg.gmo index f295b6d7f90214c01c9885801acf4f2131246ff9..a156b003e844e376608c928f2181f6e11ee42975 100644 Binary files a/po/bg.gmo and b/po/bg.gmo differ diff --git a/po/bg.po b/po/bg.po index 84042ac8f0c3384f81c1af50eb65f04238ec8391..fc61453d8e2437f87dcd1bc12810eda65534b0f0 100644 --- a/po/bg.po +++ b/po/bg.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.16\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2006-11-23 22:40+0200\n" "Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" @@ -22,47 +22,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "неправилен аргумент %s за %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "двусмислен аргумент %s за %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Допустими аргументи са:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: стойността %s е по-малка или равна на %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: параметърът ARGP_HELP_FMT изисква стойност" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: параметърът ARGP_HELP_FMT трябва да бъде положителен" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: непознат параметър ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Боклук в ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -70,239 +70,145 @@ msgstr "" "Аргументите, задължителните или незадължителни за дългите опции, са " "съответно задължителни или незадължителни и за кратките опции." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Използване:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " или: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [ОПЦИЯ...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Използвайте „%s --help“ or „%s --usage“ за повече информация.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "" "Съобщавайте за програмни грешки на %s.\n" "За грешки в българския превод на <dict@fsa-bg.org>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Непозната системна грешка" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "показва тази справка" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "показва кратко съобщение за използването" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "ИМЕ" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "посочва името на програмата" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "СЕК" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "спира за СЕК секунди (подразбира се 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "показва версията на програмата" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Не е известна версията!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Твърде много аргументи\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябвало да е била разпозната!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: опцията „%s“ е двусмислена\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: опцията „--%s“ не допуска аргумент\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: опцията „%c%s“ не допуска аргумент\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: опцията „%s“ изисква аргумент\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: непозната опция „--%s“\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: непозната опция „%c%s“\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: неправилна опция -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: неправилна опция -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: опцията изисква аргумент -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: опцията „-W %s“ е двусмислена\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: опцията „-W %s“ не допуска аргумент\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "паметта е изчерпана" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Не може да се смени работният каталог" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Не може да се запази работният каталог" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Функцията %s не успя" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Внимание: Функцията %s не успя" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Режимът за достъп не може да се смени на %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Собствеността не може да се смени на потребител %lu, група %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Не може да се направи твърда връзка с %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Грешка при четене при байт %s, при четенето на %lu байт" -msgstr[1] "%s: Грешка при четене при байт %s, при четенето на %lu байта" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -"%s: Внимание: Грешка при четене при байт %s, при четенето на %lu байт" -msgstr[1] "" -"%s: Внимание: Грешка при четене при байт %s, при четенето на %lu байта" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Не може да се отиде на отместване %s във файла" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Внимание: Не може да се отиде на отместване %s във файла" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Не може да се направи символна връзка към %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Записани са само %lu от %lu байт" -msgstr[1] "%s: Записани са само %lu от %lu байта" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Премахва се началното „%s“ от имената на членове" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Премахва се началното „%s“ от целите на твърдите връзки" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Полага се „.“ вместо празно име на член" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Полага се „.“ вместо празна цел на твърда връзка" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -316,17 +222,17 @@ msgstr "Полага се „.“ вместо празна цел на твър #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "„" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "“" @@ -336,7 +242,7 @@ msgstr "“" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[дДoOyY]" @@ -346,38 +252,28 @@ msgstr "^[дДoOyY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[нНkKnN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Услугата не е достъпна" - -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:76 #, c-format -msgid "stdin" -msgstr "стандартен вход" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "стандартен изход" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Не може да се стартира отдалечена командна обвивка" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -388,19 +284,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -408,7 +304,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -418,7 +314,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -428,7 +324,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -438,7 +334,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -448,7 +344,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -459,7 +355,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -470,7 +366,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -482,182 +378,334 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "" +"Съобщавайте за програмни грешки на %s.\n" +"За грешки в българския превод на <dict@fsa-bg.org>.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Съобщавайте за програмни грешки на <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Входният низ е твърде дълъг" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Синтактична грешка в число" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Функцията %s не успя" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Не може да се задели място за буфер\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Внимание: Функцията %s не успя" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Не може да се задели място за буфер" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Режимът за достъп не може да се смени на %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Използвайте „%s --help“ за повече информация.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Собствеността не може да се смени на потребител %lu, група %lu" -#: rmt/rmt.c:308 +#: lib/paxerror.c:127 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Не може да се направи твърда връзка с %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Грешка при четене при байт %s, при четенето на %lu байт" +msgstr[1] "%s: Грешка при четене при байт %s, при четенето на %lu байта" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +"%s: Внимание: Грешка при четене при байт %s, при четенето на %lu байт" +msgstr[1] "" +"%s: Внимание: Грешка при четене при байт %s, при четенето на %lu байта" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Не може да се отиде на отместване %s във файла" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Внимание: Не може да се отиде на отместване %s във файла" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Не може да се направи символна връзка към %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Записани са само %lu от %lu байт" +msgstr[1] "%s: Записани са само %lu от %lu байта" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Премахва се началното „%s“ от имената на членове" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Премахва се началното „%s“ от целите на твърдите връзки" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Полага се „.“ вместо празно име на член" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Полага се „.“ вместо празна цел на твърда връзка" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Услугата не е достъпна" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "стандартен вход" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "стандартен изход" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Използване: %s [ОПЦИЯ]\n" -"Управлява лентово устройство, приемайки команди от отделен процес.\n" -"\n" -" --version Извежда информация за версията.\n" -" --help Извежда тази справка.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Грешка при позициониране" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Не може да се стартира отдалечена командна обвивка" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Посоката за отместване е недопустима" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "На опция е подаден неправилен режим" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Неправилен размер: %s" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Мястото за позициониране е извън допустимия диапазон" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Посоката за отместване е недопустима" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Неправилна дължина на лента" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Мястото за позициониране е извън допустимия диапазон" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Преждевременен край (eof)\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Преждевременен край на файла" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Вид основно действие:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Неочакван EOF" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "N" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "ФАЙЛ" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "Не може да се отвори „%s“" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "твърде много аргументи" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Непозната команда" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Това не прилича на tar-архив" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Общо записани байтове" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Общо прочетени байтове" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Общо изтрити байтове: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Неправилна стойност на record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Не е посочено име на архив" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Не може да се проверяват архиви на стандартните вход/изход" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архивът е компресиран. Използвайте опцията %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Не може да се актуализират компресирани архиви" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "В началото на лентата, край на изпълнението" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Твърде много грешки, край на изпълнението" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Размер на записа = %lu блок" msgstr[1] "Размер на записа = %lu блока" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Неподравнен блок (%lu байт) в архива" msgstr[1] "Неподравнен блок (%lu байта) в архива" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Невъзможно е връщане назад в архивния файл; той може да е нечитаем без опция " "-i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek не завърши при граница на запис" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: съдържа неправилен номер на том" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Препълване на номера на том" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Подгответе том №%d за %s и натиснете return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF, когато се очакваше отговор от потребителя" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ВНИМАНИЕ: Архивът е незавършен" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -669,66 +717,66 @@ msgstr "" " q Прекратява tar\n" " y или return Продължава изпълнението\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Поражда вторична командна обвивка\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Извежда този списък\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Няма повече томове; изход.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Не е посочено име на файл. Опитайте отново.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Неправилна команда. Използвайте ? за справка.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "командата %s не успя" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s вероятно продължава в този том: заглавният запис съдържа отрязано име" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s не продължава с този том" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s е грешен размер (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Този том е извън поредицата" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Архивът не е етикетиран да отговаря на %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Томът %s не съответства на %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -736,61 +784,61 @@ msgstr "" "%s: името на файла е твърде дълго, за да се побере в заглавен запис на " "многотомен ГНУ-архив и бе съкратено" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "EOF на архив %s не е на границата на блок" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Само %lu от %lu байт можаха да се прочетат" msgstr[1] "Само %lu от %lu байта можаха да се прочетат" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Съдържанието се различава" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Неочакван знак за край (EOF) в архива" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Файловите типове се различават" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Режимите за достъп се различават" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Собствениците се различават" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Групите се различават" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Времената на промяна се различават" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Размерите се различават" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Не е свързан с %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Символните връзки се различават" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Номерата на устройство се различават" @@ -812,35 +860,35 @@ msgstr "Архивът съдържа файлови имена, с отстра msgid "Verification may fail to locate original files." msgstr "Проверката може и да не открие оригиналните файлове." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "НЕУСПЕШНА ПРОВЕРКА: открита е %d неправилен заглавен запис" msgstr[1] "НЕУСПЕШНА ПРОВЕРКА: открити са %d неправилни заглавни записа" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Изолиран блок от нули при %s" -#: src/create.c:67 +#: src/create.c:68 #, fuzzy, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: каталогът е обозначен като кеш; не се архивира" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" "стойността на %s е извън границите %s на диапазона %s..%s; замества се с %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "стойността %s е извън границите %s на диапазона %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Генерират се отрицателни осмични заглавни записи" @@ -860,291 +908,277 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: името на символната връзка е твърде дълго; не е архивирано" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Файлът намаля с %s байт; допълва се с нула" msgstr[1] "%s: Файлът намаля с %s байта; допълва се с нули" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: файлът е в друга файлова система; не се архивира" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Непознат файлов тип; файлът се пренебрегва" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Неархивирани връзки с %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: файлът не е променен; не се архивира" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: файлът е архив; не се архивира" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Файлът бе изтрит преди да бъде прочетен" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 #, fuzzy msgid "directory not dumped" msgstr "%s: каталогът е обозначен като кеш; не се архивира" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файлът бе изменен по време на четене" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: гнездото се пренебрегва" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: пренебрегва се специалният файл тип door" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Пропуска се до следващия заглавен запис" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Изтрива се незаглавен запис от архива" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: записано е невероятно старо време %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: записано е време %s, което е %s сек. в бъдещето" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Неочаквана несъгласуваност при създаване на каталог" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" "%s: каталогът бе преименуван преди да може да се извлече състоянието му" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Продължаващи файлове се извличат като обикновени файлове" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Опитва се извличането на символни връзки като твърди" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Чете се %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Не може да се извлича -- файлът продължава с друг том" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Неочаквано дълъг заглавен запис" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Непознат файлов тип „%c“, извлича се като обикновен файл" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Текущият %s е по-нов или със същата възраст" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Не можа да се направи резервно копие на този файл" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Бе невъзможно %s да се преименува на %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Грешката е непоправима: край на изпълнението" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Каталогът бе преименуват от %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Каталогът бе преименуван" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Каталогът е нов" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Записано е неправилно време" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Неправилно време на промяна (секунди)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Неправилно време на промяна (наносекунди)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Неправилен номер на устройство" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Неправилен номер на i-възел" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Твърде дълго поле при четене на snapshot-файл" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Грешка при четене в snapshot-файл" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Неочакван край на snapshot-файл" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Неочаквана стойност на поле в snapshot-файл" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Липсва завършител на записа" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Грешен инкрементален файлов формат" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Неподдържана версия на инкрементален формат: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Лошо формиран dumpdir: очаква се „%c“, а вместо това има %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Лошо формиран dumpdir: „X“ е дублиран" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Лошо формиран dumpdir: празно име в „R“" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Лошо формиран dumpdir: „T“ не се предхожда от „R“" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Лошо формиран dumpdir: празно име в „T“" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Лошо формиран dumpdir: очаква се „%c“, вместо това данните свършват" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Лошо формиран dumpdir: „X“ никога не се използва" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Не може да се създаде временен каталог, използвайки шаблона %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Каталогът не се изчиства: не може да се достъпи" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: каталогът е на друго устройство: не се изчиства" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Изтрива се %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Не може да се изтрие" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Пропуска се" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** Блок от знаци NUL **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Край на файла **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "блок %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Интервали в заглавен запис вместо числова стойност на %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1152,142 +1186,159 @@ msgstr "" "е допълнение до две" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Осмичната стойност %.*s в архива е извън диапазона за %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Архивът съдържа архаични заглавни записи по модул 64 (6 битови)" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" "Архивът е подписан с низ по модул 64 %s, който е е извън диапазона за %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Стойността по модул 256 в архива е извън диапазона %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Архивът съдържа %.*s, вместо това се очаква числова стойност на %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Стойността %s в архива е извън допустимия диапазон за %s (%s..%s)" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " връзка към %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " непознат файлов тип %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Дълга връзка--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Дълго име--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Заглавен запис на тома--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Продължава при байт %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Създава се каталог:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Преименува се %s на %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Не може да се преименува на %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Преименува се %s обратно на %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Не може да се запази работният каталог" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Не може да се смени работният каталог" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Файлът бе изтрит преди да бъде прочетен" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Файлът бе изтрит преди да бъде прочетен" + +#: src/misc.c:795 msgid "child process" msgstr "породен процес" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "междупроцесен канал" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Във файловите имена са използвани „*“ и „?“. Моля," -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "използвайте --wildcards, за да позволите съпоставяне с образци," -#: src/names.c:597 -msgid "suppress this warning." -msgstr "или --no-wildcards, за да не се извежда това предупреждение." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Не е открит в архива" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Необходимо срещане не е открито в архива" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "И двете опции „-%s“ и „-%s“ изискват стандартен вход" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Неправилен архивен формат" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Поискани са ГНУ-възможности при несъвместим архивен формат" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1295,7 +1346,7 @@ msgstr "" "Непознат начин за извеждане на спец. знаци „%s“. Използвайте „%s --quoting-" "style=help“, за да получите списък." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1314,7 +1365,7 @@ msgstr "" "tar\n" " tar -xf архив.tar # Извлича от архив.tar всички файлове\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1336,86 +1387,79 @@ msgstr "" "иначе\n" " never, simple винаги да се правят прости резервни копия\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Вид основно действие:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "изрежда съдържанието на архив" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "извлича файлове от архива" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "създава нов архив" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "намира разликите между архива и файловата система" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "добавя файлове в края на архив" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "добавя само файлове, по-нови от копието в архива" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "прибавя tar-файлове към архива" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "трие файлове от архива (не при магнитни ленти!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "проверява етикета на тома и завършва" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Модификатори на действието:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "работи ефективно с разредени файлове" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "ГОЛЯМ[.МАЛЪК]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "определя версията на формата разредени файлове (влече --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "със стар формат ГНУ за инкрементално архивиране" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "ФАЙЛ" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "с новия формат на ГНУ за инкрем. архивиране" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "при нечитаеми файлове не завършва с грешка" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "N" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1427,118 +1471,122 @@ msgstr "" "list и когато списъкът от файлове е зададен или на командния ред, или с " "опция -T. Ако не е посочен N, се подразбира 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "архивът е с произволен достъп" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "архивът е с произволен достъп" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Регулиране заместването на файлове:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "след записа опитва да провери архива" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "изтрива файловете след като ги добави в архива" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "при извличане не замества съществуващи файлове" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "не замества съществуващи файлове, ако са по-нови от копията им в архива" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "при извличане замества съществуващи файлове" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "изтрива всеки файл преди да извлича върху него" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "изпразва йерархията преди извличане на каталог" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "запазва метаданните на съществуващи каталози" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "при извличане замества метаданните на съществуващи каталози (подразбира се)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Избор на изходен поток:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "извлича файловете на стандартния изход" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "КОМАНДА" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "подава с канал всеки извлечен файл към КОМАНДА" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "игнорира кода на завършване на породени процеси" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "счита за грешка всеки ненулев код на завършване на породен процес" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Подход спрямо файловите атрибути:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "прави ИМЕ да е собственик на добавените файлове" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "прави ИМЕ да бъде групата на добавените файлове" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "ДАТА-ИЛИ-ФАЙЛ" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "прави времето на промяна на добавяни файлове като ДАТА-ИЛИ-ФАЙЛ" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "ПРОМЕНИ" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "модифицира режима за достъп на добавени файлове" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "МЕТОД" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1548,29 +1596,33 @@ msgstr "" "времената след четене (при МЕТОД=„replace“, подразбира се), или не променя " "имената изобщо (МЕТОД=„system“)" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "не извлича времето на промяна на файловете" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "опитва да възстановява собствеността на файловете" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "извлича файловете от ваше име" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "използва числа вместо имена за потребител и група" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "възстановява точно (без umask) режима на достъп (подразбира се при " "привилегирован потребител)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1578,15 +1630,15 @@ msgstr "" "прилага umask на потребителя при извличане на файлове (подразбира се при " "обикновен потребител)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "файловете за извличане са сортирани според архива" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "същото като едновременно -p и -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1594,139 +1646,139 @@ msgstr "" "забавя настройката на времето на промяна и режима за достъп на извличаните " "каталози докато извличането завърши" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "отменя ефекта на --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Избор на устройство и смяна:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "АРХИВ" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "използва архивния файл или устройство АРХИВ" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "архивният файл е локален дори при двуеточие" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "използва посочената КОМАНДА вместо rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "използва посочената КОМАНДА вместо rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "посочва устройство и гъстота" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "създава/извежда/извлича многотомен архив" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "смяна на лентата след запис на 1024 x N байта" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "изпълнява скрипт в края на всяка лента (влече -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "ползва от и обновява във ФАЙЛ номера на тома" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Блокуване на устройството:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "БЛОКОВЕ" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "БЛОКОВЕ x 512 байта в секунда" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "прави N-байтови записи, кратно на 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "пренебрегва блоковете от нули и продължава" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "преформира при четене блоковете (канали 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Избор на архивен формат:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "ФОРМАТ" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "създава архив с посочения формат" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "ФОРМАТ е някой от следните:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "стар формат tar, V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "формат на ГНУ при tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "формат на версия 1.13.x на tar на ГНУ" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "формат POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "формат POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "същото като pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "същото като --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "същото като --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "ключдума[[:]=стойност][,ключдума[[:]=стойност]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "управляващи ключови думи за pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "ТЕКСТ" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1734,199 +1786,176 @@ msgstr "" "създава архив с име на том ТЕКСТ; при извеждане или извличане сравнява името " "на тома с ТЕКСТ" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Противоречащи си опции за компресиране" -#: src/tar.c:595 +#: src/tar.c:615 #, fuzzy msgid "use archive suffix to determine the compression program" msgstr "Не може да се пише към компресиращата програма" -#: src/tar.c:597 +#: src/tar.c:617 #, fuzzy msgid "do not use archive suffix to determine the compression program" msgstr "Не може да се пише към компресиращата програма" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "прекарва архива през bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "прекарва архива през gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "прекарва архива през compress" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "прекарва архива през gzip" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "прекарва архива през gzip" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "прекарва архива през gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "ПРОГ" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "прекарва архива през ПРОГ (трябва да приема -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Избор на локален файл:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "добавя посочения ФАЙЛ към архива (полезно е, ако името му започва с минус)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "КАТ" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "работи в каталога КАТ" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "взема имената за извличане или създаване от ФАЙЛ" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T чете имена, завършващи с нулев байт" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "декодира „\\“ във файловите имена на -T (подразб.)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "не декодира „\\“ във файловите имена на -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "ОБРАЗЕЦ" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "без файловете, отговарящи на ОБРАЗЕЦ" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "пропуска файловете, отговарящи на образци в ФАЙЛ" -#: src/tar.c:641 +#: src/tar.c:657 #, fuzzy msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "без каталози, обозначени като кеширащи" -#: src/tar.c:644 +#: src/tar.c:660 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "без каталози, обозначени като кеширащи" -#: src/tar.c:647 +#: src/tar.c:663 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "без каталози, обозначени като кеширащи" -#: src/tar.c:649 +#: src/tar.c:665 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "без каталози, обозначени като кеширащи" -#: src/tar.c:652 +#: src/tar.c:668 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "без каталози, обозначени като кеширащи" -#: src/tar.c:654 +#: src/tar.c:670 #, fuzzy msgid "exclude directories containing FILE" msgstr "без каталози, обозначени като кеширащи" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "без автоматично влизане в подкаталозите" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "работи в рамките на локалната файлова система" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "влиза рекурсивно в подкаталозите (подразбира се)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "не маха „/“ в началото на файлови имена" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "следва симв. връзки; архивира сочените файлове" -#: src/tar.c:668 +#: src/tar.c:686 #, fuzzy msgid "follow hard links; archive and dump the files they refer to" msgstr "следва симв. връзки; архивира сочените файлове" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "ЧЛЕН-ИМЕ" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "започва от файл с име ЧЛЕН-ИМЕ в архива" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "съхранява само файлове, по-нови от ДАТА-ИЛИ-ФАЙЛ" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "сравнява времето само ако данните са променени" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "МЕТОД" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "резервно копира съществуващи файлове с МЕТОД" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "НИЗ" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1935,89 +1964,98 @@ msgstr "" "освен ако не е бил сменен с променливата от обкръжението " "SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Промени на файловите имена:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "при извличане маха N начални каталози от файловите пътеки" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "ИЗРАЗ" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "преобразува файловите имена, използвайки посочения ИЗРАЗ за замяна на sed" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Съпоставяне с файлови имена (влияе и на включващи, и на изключващи образци):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "пренебрегва разликата между големи/малки букви" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "съпоставянето с образците започва от началото на файловото име" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "съпоставянето започва след кой да е „/“ (подразбира се при изключване)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "отчита се разликата между малки и големи букви (подразбира се)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "ползва „*“ и „?“ (подразбира се за изключване)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "дословно низово сравнение" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "„/“ не пасва с „*“ и „?“" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "„/“ пасва с „*“ и „?“ (подразб. за изключване)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Извеждане на информация:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "подробно изрежда обработените файлове" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Регулиране заместването на файлове:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "извежда напредъка след всеки N-ти запис (подразбира се 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "съобщава, ако не всички твърди връзки са включени" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2028,27 +2066,27 @@ msgstr "" "извежда текущите байтове при получаване на СИГНАЛ. Допустими СИГНАЛи са " "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 и SIGUSR2; имената без SIG също са позволени" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "извежда времената по Гринуич" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "изпраща подробния изход във ФАЙЛ" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "показва номера на блок в архива с всяко съобщение" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "изисква потвърждение за всяко действие" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "показва подразбираното от tar" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2056,32 +2094,32 @@ msgstr "" "при извеждане или извличане изрежда всеки каталог, който се пропуска по " "някаква причина" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "показва преобразуваните файлови имена в архива" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "НАЧИН" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "начин за цитиране на специални знаци; вж. по-долу за стойностите на НАЧИН" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "работи и със знаците от НИЗ като със специални" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "не работи със знаците от НИЗ като със специални" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Опции за съвместимост:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2089,56 +2127,64 @@ msgstr "" "при създаване е същото като --old-archive; при извличане е същото като --no-" "same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Други опции:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "забранява някои потенциално опасни опции" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Не може да се използва повече от една опция „-Acdtrux“" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Противоречащи си опции за компресиране" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Непознато име на сигнал: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Не е открит еталлонният файл за дата" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Използва се %s вместо непознатия файлов формат за дата %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Опция %s: Датата „%s“ се разглежда като %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: файловият списък вече е прочетен" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: файловото име съдържа нулев байт" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "прекарва архива през gzip" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "Правилни аргументи за опциите --quoting-style са:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2146,159 +2192,170 @@ msgstr "" "\n" "*Този* tar подразбира следното:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Неправилен фактор за блокуване" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Неправилна дължина на лента" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Грешен инкрементален файлов формат" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Повече от една ограничителна дата" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Неправилна версия на формат разредени файлове" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' не се поддържа на тази платформа" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "стойността на --checkpoint не е цяло число" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Неправилна група" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "На опция е подаден неправилен режим" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Неправилно число" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Неправилен собственик" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Неправилен размер на запис" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Размерът на запис трябва да е кратен на %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Неправилен брой елементи" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Позволява се само една опция --to-command" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Лошо образуван аргумент за гъстота: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Непозната гъстота: „%c“" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Опциите „-[0-7][lmh]“ не се поддържат от *този* tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[ФАЙЛ]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Старата опция „%c“ изисква аргумент." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "без списък файлове опцията --occurrence е безсмислена" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "не може да се използва --occurrence при пожелания начин на работа" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Използването на много архивни файлове изисква опция „-M“" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Не може да се съчетават --listed-incremental с --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "без списък файлове опцията --occurrence е безсмислена" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Етикетът на тома е твърде дълъг (не повече от %lu байт)" msgstr[1] "%s: Етикетът на тома е твърде дълъг (не повече от %lu байта)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Не може да се проверяват многотомни архиви" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Не може да се проверяват компресирани архиви" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Не може да се използват многотомни компресирани архиви" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Не може да се съединяват компресирани архиви" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" "опцията --pax-option може да се използва само при архиви във формат POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Страхлив отказ да се създава празен архив" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Опциите „-Aru“ са несъвместими с „-f -“" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Трябва да посочите поне една от опциите „-Acdtrux“" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2310,53 +2367,58 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Файлът намаля с %s байт" msgstr[1] "%s: Файлът намаля с %s байта" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Ключовата дума %s е непозната или все още не е реализирана" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Записано е време извън допустимия диапазон" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Образецът %s не може да се използва" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ключовата дума %s не може да се отмени" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Лошо формиран разширен заглавен запис: не е посочена дължина" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Дължината на разширен заглавен запис е извън допустимия диапазон" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Дължината %*s на разширен заглавен запис е извън допустимия диапазон" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Лошо формиран разширен заглавен запис: липсва интервал след дължината" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Лошо формиран разширен заглавен запис: липсва знак за равенство" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Лошо формиран разширен заглавен запис: липсва знак за нов ред" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" "Пренебрегва се непознатата ключова дума „%s“ за разширен заглавен запис" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2365,28 +2427,28 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Разширеният заглавен запис %s=%s е извън диапазона %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Неправилно формиран разширен заглавен запис: неправилен %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Неправилно формиран разширен заглавен запис: прекомерен %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Лошо формиран разширен заглавен запис: неправилен %s; очаква се разделител %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2428,7 +2490,7 @@ msgstr "Контролна точка при запис %u" msgid "Read checkpoint %u" msgstr "Контролна точка при четене %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2436,90 +2498,96 @@ msgstr "" "genfile борави с файловете с данни за тестовия пакет GNU paxutils.\n" "ОПЦИИТЕ са:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Опции за създаването на файл:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "РАЗМЕР" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Създава файл с посочения РАЗМЕР" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Запис във файл ИМЕ вместо на стандартния изход" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Чете файловите имена от ФАЙЛ" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T чете имена, завършващи с нулев байт" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Попълва файла с посочения ОБРАЗЕЦ. ОБРАЗЕЦ може да бъде „default“ или „zeros“" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Размер на блок за разреден файл" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Генерира разреден файл. Останалата част от командния ред дава карта на файла." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "след записа опитва да провери архива" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Опции за файлови статистики:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Извежда съдържанието на структурата stat за всеки файл. По подразбиране " "ФОРМАТ е: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Опции за синхронизирано изпълнение:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [ОПЦИЯ...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "Изпълнява посочената КОМАНДА. Полезно с --checkpoint и някоя от --cut, --" "append, --touch" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Изпълнява посоченото действие (вж. по-долу) до достигането на контролна " "точка N" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Посочва дата за следващата опция --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Извежда изпълнените контролни точки и кода на завършване на КОМАНДА" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2527,7 +2595,7 @@ msgstr "" "Синхронизирано изпълнение на действията. Те се изпълняват когато се достигне " "контролната точка с номер, посочен с --checkpoint." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2535,149 +2603,215 @@ msgstr "" "Отсича ФАЙЛ до размера, определен с предхождаща опция --length (подразбира " "се 0)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Добавя РАЗМЕР байтове към ФАЙЛ. РАЗМЕРът се определя от предхождаща опция --" "length." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Обновява времето на достъп и промяна на FILE" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Изпълнява КОМАНДА" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Неправилен размер: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Номер извън допустимия диапазон: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Отрицателен размер: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "не успя stat(%s)" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Грешка при анализа на число до „%s“" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Непознат формат за дата" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[АРГУМ...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "Не може да се отвори „%s“" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Не може да се изпълни %s" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "името на файла съдържа нулев байт" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "не може да се създават разредени файлове на стандартния изход, използвайте " "опцията --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "неправилна маска (до „%s“)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Непознато поле „%s“" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "не може да се смени времето на „%s“" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "Не може да се отвори „%s“" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Командата завърши успешно\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Командата завърши с код %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Командата бе прекратена със сигнал %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Командата бе спряна със сигнал %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Командата генерира core\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Командата бе прекратена\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat изисква файлови имена" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "твърде много аргументи" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: неправилна опция -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Внимание: опцията -I не се поддържа. Може би имате предвид -j или -T?" +#~ "\n" +#~ "Съобщавайте за програмни грешки на <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Чете се %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Грешката е непоправима: край на изпълнението" + +#~ msgid "suppress this warning." +#~ msgstr "или --no-wildcards, за да не се извежда това предупреждение." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "прекарва архива през bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "прекарва архива през gzip" + +#~ msgid "filter the archive through compress" +#~ msgstr "прекарва архива през compress" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "прекарва архива през gzip" #, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "отменя ефекта на --delay-directory-restore" +#~ msgid "filter the archive through lzop" +#~ msgstr "прекарва архива през gzip" + +#~ msgid "Input string too long" +#~ msgstr "Входният низ е твърде дълъг" + +#~ msgid "Number syntax error" +#~ msgstr "Синтактична грешка в число" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Не може да се задели място за буфер\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Не може да се задели място за буфер" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Използвайте „%s --help“ за повече информация.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Използване: %s [ОПЦИЯ]\n" +#~ "Управлява лентово устройство, приемайки команди от отделен процес.\n" +#~ "\n" +#~ " --version Извежда информация за версията.\n" +#~ " --help Извежда тази справка.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Грешка при позициониране" + +#~ msgid "Premature end of file" +#~ msgstr "Преждевременен край на файла" #~ msgid "block size" #~ msgstr "блоковият размер" @@ -2708,12 +2842,13 @@ msgstr "твърде много аргументи" #~ msgid "[.]NUMBER" #~ msgstr "[.]N" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Внимание: опцията -I не се поддържа. Може би имате предвид -j или -T?" + #~ msgid "Error exit delayed from previous errors" #~ msgstr "Изходът с грешка бе забавен поради предхождащи грешки" -#~ msgid "Time stamp out of range" -#~ msgstr "Записано е време извън допустимия диапазон" - #~ msgid "Modification time (seconds) out of range" #~ msgstr "Времето на промяна (секунди) е извън допустимия диапазон" @@ -2726,9 +2861,6 @@ msgstr "твърде много аргументи" #~ msgid "Error reading time stamp" #~ msgstr "Грешка при четене на записаното време" -#~ msgid "Unexpected EOF" -#~ msgstr "Неочакван EOF" - #~ msgid "same as -N" #~ msgstr "същото като -N" diff --git a/po/cs.gmo b/po/cs.gmo index a2dc0405d6bbb8c7ea72e73b6458066dbc97c182..37ef3696f88c8c960c0ffafd95a4a09c06105aa0 100644 Binary files a/po/cs.gmo and b/po/cs.gmo differ diff --git a/po/cs.po b/po/cs.po index 927042e682fdf14b9f21d896ea08eefb42bcc54e..c32f0a483babce0688d99ff6f50a38d009804020 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1,309 +1,217 @@ # Czech translations for GNU tar # Copyright (C) 1997 Free Software Foundation, Inc. +# This file is distributed under the same license as the tar package. # Vladimir Michl <Vladimir.Michl@seznam.cz>, 1997. +# Petr Pisar <petr.pisar@atlas.cz>, 2009, 2010. # -# For gettext >= 0.10.36 -# Note: Indexes for plurals (on file example): -# 0 - 1,21,31,101,... soubor -# 1 - 2-4,22-24,...,102-104,122-124,... soubory -# 2 - 0,5-10,11-19,20,25-30,35-40,...,100,105-110,... souboru +# Pozor: program sám zalamuje dlouhé řádky, ale místo (širokých) znaků počítá +# bajty. Proto je nutné dodržovat nezlomitelné mezery, které program rovněž +# respektuje. # -# "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); -# " +# extract → rozbalit (celý archiv), vybalit (některé soubory z archivu) +# tape → páska (rod ženský, vzor žena; ne pásek) +# seek offset → pozice posunu (pásky) # msgid "" msgstr "" -"Project-Id-Version: tar 1.13.21\n" +"Project-Id-Version: tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2001-09-01 10:55+0200\n" -"Last-Translator: Vladimir Michl <Vladimir.Michl@seznam.cz>\n" -"Language-Team: Czech <cs@li.org>\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-16 20:38+0100\n" +"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n" +"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" -msgstr "argument %s je pro %s neplatn�" +msgstr "argument %s je pro %s neplatný" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" -msgstr "argument %s nen� pro %s jednozna�n�" +msgstr "argument %s není pro %s jednoznačný" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" -msgstr "Platn� argumenty jsou:" +msgstr "Platné argumenty jsou:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" -msgstr "" +msgstr "ARGP_HELP_FMT: hodnota %s je menší nebo rovna %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" -msgstr "" +msgstr "%.*s: parametr ARGP_HELP_FMT vyžaduje hodnotu" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -msgstr "" +msgstr "%.*s: parametr ARGP_HELP_FMT musí být kladný" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" -msgstr "" +msgstr "%.*s: Neznámý parametr ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" -msgstr "" +msgstr "Nepořádek v ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" +"Povinné nebo volitelné argumenty dlouhých přepínačů jsou rovněž povinné\n" +"nebo volitelné u odpovídajících krátkých přepínačů." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" -msgstr "" +msgstr "Použití:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " -msgstr "" +msgstr "nebo: " -#: lib/argp-help.c:1655 -#, fuzzy +#: gnu/argp-help.c:1655 msgid " [OPTION...]" -msgstr "" -"\n" -"Pou�it�: %s [P�EP�NA�]...\n" +msgstr " [PŘEPÍNAČ…]" -#: lib/argp-help.c:1682 -#, fuzzy, c-format +#: gnu/argp-help.c:1682 +#, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" -msgstr "V�ce informac� z�sk�te p��kazem `%s --help'.\n" +msgstr "Více informací získáte pomocí „%s --help“ nebo „%s --usage“.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 -#, fuzzy, c-format +#: gnu/argp-help.c:1710 +#, c-format msgid "Report bugs to %s.\n" msgstr "" -"\n" -" Chyby v programu oznamujte na adrese <bug-tar@gnu.org> (pouze anglicky),\n" -"p�ipom�nky k p�ekladu zas�lejte na adresu <cs@li.org> (�esky).\n" +"Chyby v programu oznamujte na adrese %s (anglicky), připomínky k překladu na " +"adrese <translation-team-cs@lists.sourceforge.net> (česky).\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" -msgstr "Nezn�m� syst�mov� chyba" +msgstr "Neznámá systémová chyba" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" -msgstr "" +msgstr "vypíše tuto nápovědu" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" -msgstr "" +msgstr "vypíše stručný návod na použití" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +# JMÉNO jako v příslušné položce nápovědy +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" -msgstr "" +msgstr "JMÉNO" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" -msgstr "" +msgstr "nastaví název programu" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" -msgstr "" +msgstr "SEKUNDY" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" -msgstr "" +msgstr "zastaví se na SEKUNDY sekund (implicitně 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" -msgstr "" +msgstr "vypíše verzi programu" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" -msgstr "" +msgstr "(CHYBA PROGRAMU) Verze není známa!?" -#: lib/argp-parse.c:611 -#, fuzzy, c-format +#: gnu/argp-parse.c:613 +#, c-format msgid "%s: Too many arguments\n" -msgstr "%s: p�ep�na� `%s' vy�aduje argument\n" +msgstr "%s: Příliš mnoho argumentů\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" -msgstr "" +msgstr "(CHYBA PROGRAMU) Přepínač by měl být znám!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" -msgstr "" +msgstr "chyba zápisu" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: p�ep�na� `%s' nen� jednozna�n�\n" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: přepínač „%s“ není jednoznačný\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: p�ep�na� `--%s' mus� b�t zad�n bez argumentu\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: přepínač „--%s“ musí být zadán bez argumentu\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: p�ep�na� `%c%s' mus� b�t zad�n bez argumentu\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: přepínač „%c%s“ musí být zadán bez argumentu\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: p�ep�na� `%s' vy�aduje argument\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: přepínač „%s“ vyžaduje argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: nezn�m� p�ep�na� `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: nerozpoznaný přepínač „--%s“\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: nezn�m� p�ep�na� `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: nerozpoznaný přepínač „%c%s“\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: nezn�m� p�ep�na� -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: neplatný přepínač -- „%c“\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: nezn�m� p�ep�na� -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: přepínač vyžaduje argument -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: p�ep�na� vy�aduje argument -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: přepínač „-W %s“ není jednoznačný\n" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: p�ep�na� `-W %s' nen� jednozna�n�\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: přepínač „-W %s“ musí být zadán bez argumentu\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: p�ep�na� `-W %s' mus� b�t zad�n bez argumentu\n" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" -msgstr "pam� vy�erp�na" - -#: lib/openat-die.c:35 -#, fuzzy, c-format -msgid "unable to record current working directory" -msgstr "Pracovn� adres�� nelze zm�nit" - -#: lib/openat-die.c:48 -#, fuzzy, c-format -msgid "failed to return to initial working directory" -msgstr "Pracovn� adres�� nelze uchovat" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Nelze %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Varov�n�: Nelze %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Pr�va nelze zm�nit na %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Vlastnictv� nelze zm�nit na uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Pevn� odkaz na %s nelze vytvo�it" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Chyba p�i �ten� na bajtu %s, �ten� %lu bajt�" -msgstr[1] "%s: Chyba p�i �ten� na bajtu %s, �ten� %lu bajt�" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Varov�n�: Chyba p�i �ten� na bajtu %s, �ten� %lu bajt�" -msgstr[1] "%s: Varov�n�: Chyba p�i �ten� na bajtu %s, �ten� %lu bajt�" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Nelze zm�nit pozici v souboru na %s" +msgstr "paměť vyčerpána" -#: lib/paxerror.c:275 +#: gnu/openat-die.c:36 #, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Varov�n�: Ukazatel v souboru nelze p�em�stit na %s" +msgid "unable to record current working directory" +msgstr "pracovní adresář nelze si nelze zapamatovat" -#: lib/paxerror.c:284 +#: gnu/openat-die.c:54 #, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Symbolick� odkaz na `%s' nelze vytvo�it" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Zaps�no pouze %lu z %lu bajt�" -msgstr[1] "%s: Zaps�no pouze %lu z %lu bajt�" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Odstra�uji �vodn� `%.*s' z n�zv� soubor�" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Odstra�uji �vodn� `%.*s' z n�zv� soubor�" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Odstra�uji �vodn� `%.*s' z n�zv� soubor�" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" +msgid "failed to return to initial working directory" +msgstr "do původního pracovního adresáře se nelze vrátit" #. TRANSLATORS: #. Get translations for open and closing quotation marks. @@ -318,19 +226,19 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" -msgstr "`" +msgstr "„" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" -msgstr "'" +msgstr "“" #. TRANSLATORS: A regular expression testing for an affirmative answer #. (english: "yes"). Testing the first character may be sufficient. @@ -338,9 +246,9 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" -msgstr "" +msgstr "^[aAyY].*" #. TRANSLATORS: A regular expression testing for a negative answer #. (english: "no"). Testing the first character may be sufficient. @@ -348,38 +256,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" -msgstr "" +msgstr "^[nN].*" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Slu�ba nen� k dispozici" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "Zabaleno kým: %s (%s)\n" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Vzd�len� shell nen� mo�n� spustit" +msgid "Packaged by %s\n" +msgstr "Zabaleno kým: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" -msgstr "" +msgstr "©" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -388,909 +286,1091 @@ msgid "" "There is NO WARRANTY, to the extent permitted by law.\n" "\n" msgstr "" +"\n" +"Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl." +"html>.\n" +"Toto je svobodné programové vybavení: máte právo měnit jej a dále šířit.\n" +"Není poskytována ŽÁDNÁ ZÁRUKA, jak jen zákon dovoluje.\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 -#, fuzzy, c-format +#: gnu/version-etc.c:104 +#, c-format msgid "Written by %s.\n" -msgstr "Napsal Fran�ois Pinard." +msgstr "Napsal(a) %s.\n" +# Vzhledem k tomu, že je nepravděpodobné, že by všemi autory byly ženy, tak +# si uchýlíme k šovinisticky zjednodušenému „napsali“. #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 -#, fuzzy, c-format +#: gnu/version-etc.c:108 +#, c-format msgid "Written by %s and %s.\n" -msgstr "Napsal Fran�ois Pinard." +msgstr "Napsali %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 -#, fuzzy, c-format +#: gnu/version-etc.c:112 +#, c-format msgid "Written by %s, %s, and %s.\n" -msgstr "Napsal Fran�ois Pinard." +msgstr "Napsali %s, %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" +"Napsali %s, %s, %s\n" +"a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Napsali %s, %s, %s,\n" +"%s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" +"Napsali %s, %s, %s,\n" +"%s, %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" +"Napsali %s, %s, %s,\n" +"%s, %s, %s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" +"Napsali %s, %s, %s,\n" +"%s, %s, %s, %s\n" +"a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Napsali %s, %s, %s,\n" +"%s, %s, %s, %s\n" +"%s a %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" +"Napsali %s, %s, %s,\n" +"%s, %s, %s, %s\n" +"%s, %s a další.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, fuzzy, c-format +#: gnu/version-etc.c:247 +#, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -" Chyby v programu oznamujte na adrese <bug-tar@gnu.org> (pouze anglicky),\n" -"p�ipom�nky k p�ekladu zas�lejte na adresu <cs@li.org> (�esky).\n" +"Chyby v programu oznamujte na adrese %s (anglicky),\n" +"připomínky k překladu na adrese <translation-team-cs@lists.sourceforge.net>\n" +"(česky).\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "Report %s bugs to: %s\n" msgstr "" +"Chyby v programu %s oznamujte (anglicky) na: %s\n" +"Připomínky k překladu (česky) na: <translation-team-cs@lists.sourceforge." +"net>\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Domovská stránka %s: <%s>\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Domovská stránka programu %s: <http://www.gnu.org/software/%s/>\n" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Obecná pomoc při používání softwaru GNU: <http://www.gnu.org/gethelp/>\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Funkce %s selhala" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: M�sto pro buffer nen� mo�n� alokovat\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Varování: Funkce %s selhala" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "M�sto pro buffer nen� mo�n� alokovat" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Práva nelze změnit na %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "V�ce informac� z�sk�te p��kazem `%s --help'.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Vlastnictví nelze změnit na UID %lu, GID %lu" -#: rmt/rmt.c:308 -#, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Pevný odkaz na %s nelze vytvořit" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Chyba při čtení na bajtu %s během čtení %lu bajtu" +msgstr[1] "%s: Chyba při čtení na bajtu %s během čtení %lu bajtů" +msgstr[2] "%s: Chyba při čtení na bajtu %s během čtení %lu bajtů" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Varování: Chyba při čtení na bajtu %s během čtení %lu bajtu" +msgstr[1] "%s: Varování: Chyba při čtení na bajtu %s během čtení %lu bajtů" +msgstr[2] "%s: Varování: Chyba při čtení na bajtu %s během čtení %lu bajtů" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Nelze změnit pozici v souboru na %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Varování: Ukazatel v souboru nelze přemístit na %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Symbolický odkaz na „%s“ nelze vytvořit" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Zapsáno pouze %lu z %lu bajtu" +msgstr[1] "%s: Zapsáno pouze %lu z %lu bajtů" +msgstr[2] "%s: Zapsáno pouze %lu z %lu bajtů" + +# member name je část cesty názvy souboru +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Odstraňuje se úvodní „%s„ z názvů prvků" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Odstraňuje se úvodní „%s„ z cílů pevného odkazu" + +# member name je část cesty názvy souboru +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Prázdný prvek názvu se nahradí „.“" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Prázdný cíl pevného odkazu se nahradí „.“" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Služba není k dispozici" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Pou�it�: %s [P�EP�NA�]\n" -"Manipuluje s archivem p�ij�maje p��kazy vzd�len�ho procesu.\n" -"\n" -" --version Vyp��e ozna�en� verze\n" -" --help Vyp��e tuto n�pov�du\n" -#: rmt/rmt.c:397 -#, fuzzy -msgid "Seek offset error" -msgstr "Velikost pozice v souboru je mimo rozsah" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Vzdálený shell není možné spustit" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Směr posunu je mimo rozsah" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "Chybný směr posunu" + +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "Neplatná pozice posunu" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" -msgstr "Velikost pozice v souboru je mimo rozsah" +msgstr "Pozice posunu je je mimo rozsah" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Sm�r posunu v souboru je mimo rozsah" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "Neplatný počet bajtů" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "Počet bajtů je mimo rozsah" + +#: rmt/rmt.c:539 +msgid "Premature eof" +msgstr "Předčasný konec souboru" + +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "Neplatní kód operace" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "Operace není podporována" + +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "Neočekávané argumenty" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: P�ed�asn� konec souboru\n" +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "Ovládá páskovou jednotku přijímaje příkazy ze vzdáleného procesu" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "ČÍSLO" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "nastaví úroveň ladění" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "SOUBOR" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "nastaví název souboru pro výstup ladění" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "„%s“ nelze otevřít" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "P�ed�asn� konec souboru" +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "příliš mnoho argumentů" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" -msgstr "Nezn�m� p��kaz" +msgstr "Neznámý příkaz" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" -msgstr "Toto pravd�podobn� nen� tar archiv" +msgstr "Toto pravděpodobně není tar archiv" -#: src/buffer.c:354 src/buffer.c:363 -#, fuzzy +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" -msgstr "Celkem zaps�no bajt�: %s (%sB, %sB/s)\n" +msgstr "Celkem zapsáno bajtů" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" -msgstr "" +msgstr "Celkem přečteno bajtů" -#: src/buffer.c:365 -#, fuzzy, c-format +#: src/buffer.c:396 +#, c-format msgid "Total bytes deleted: %s\n" -msgstr "Celkem zaps�no bajt�: %s (%sB, %sB/s)\n" +msgstr "Celkem smazáno bajtů: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(roura)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" -msgstr "Chybn� hodnota pro velikost z�znamu" +msgstr "Chybná hodnota pro velikost záznamu" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" -msgstr "N�zev archivu nebyl zad�n" +msgstr "Název archivu nebyl zadán" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" -msgstr "Stdin/Stdout archiv nelze ov��it" +msgstr "Stdin/Stdout archiv nelze ověřit" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" -msgstr "" +msgstr "Archiv je komprimován. Použijte přepínač %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" -msgstr "Komprimovan� archiv nelze aktualizovat" +msgstr "Komprimovaný archiv nelze aktualizovat" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" -msgstr "P�ska na za��tku, kon��m" +msgstr "Páska na začátku, končím" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" -msgstr "P��li� mnoho chyb, kon��m" +msgstr "Příliš mnoho chyb, končím" -#: src/buffer.c:697 -#, fuzzy, c-format +#: src/buffer.c:744 +#, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" -msgstr[0] "Velikost z�znamu = %lu blok�" -msgstr[1] "Velikost z�znamu = %lu blok�" +msgstr[0] "Velikost záznamu = %'lu blok" +msgstr[1] "Velikost záznamu = %'lu bloky" +msgstr[2] "Velikost záznamu = %'lu bloků" -#: src/buffer.c:718 -#, fuzzy, c-format +#: src/buffer.c:765 +#, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" -msgstr[0] "Nezarovnan� blok (%lu bajt�) v archivu" -msgstr[1] "Nezarovnan� blok (%lu bajt�) v archivu" +msgstr[0] "Nezarovnaný blok (%'lu bajt) v archivu" +msgstr[1] "Nezarovnaný blok (%'lu bajty) v archivu" +msgstr[2] "Nezarovnaný blok (%'lu bajtů) v archivu" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" -msgstr "V archivu se nelze vr�tit, bez -i m��e b�t ne�iteln�" +msgstr "V archivu se nelze vrátit, bez -i může být nečitelný" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" -msgstr "" +msgstr "rmtlseek se nezastavil na hranici záznamu" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" -msgstr "%s: obsahuje neplatn� ��slo svazku" +msgstr "%s: obsahuje neplatné číslo svazku" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" -msgstr "U ��sla svazku nastalo p�ete�en�" +msgstr "U čísla svazku nastalo přetečení" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " -msgstr "P�ipravte svazek #%d pro archiv %s a stiskn�te return:" +msgstr "Připravte svazek #%d pro archiv %s a stiskněte return:" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" -msgstr "M�sto u�ivatelsk� odpov�di byl zad�n konec souboru" +msgstr "Místo uživatelské odpovědi byl zadán konec souboru" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" -msgstr "VAROV�N�: Archiv je nekompletn�" +msgstr "VAROVÁNÍ: Archiv je nekompletní" -#: src/buffer.c:956 -#, fuzzy, c-format +#: src/buffer.c:1003 +#, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" " q Abort tar\n" " y or newline Continue operation\n" msgstr "" -" n [name] Zad�n� nov�ho n�zvu pro dal�� (a n�sleduj�c�) svazek(ky)\n" -" q Ukon�en� programu tar\n" -" ! Vytvo�en� podshell\n" -" ? Vyp�s�n� t�to n�pov�dy\n" +" n [název] Zadat nový název pro další (a následující) svazek(ky)\n" +" q Ukončit program tar\n" +" y nebo odřádkování Pokračovat v operaci\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" -msgstr "" +msgstr " ! Vytvořit podshell\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" -msgstr "" +msgstr " ? Vypsat tuto nápovědu\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" -msgstr "Nen� nov� svazek; kon��m.\n" +msgstr "Není nový svazek; končím.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" -msgstr "" +msgstr "Název souboru nebyl zadán. Zkuste to znovu.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" -msgstr "" +msgstr "Neplatný vstup. Nápovědu obdržíte napsáním „?“ (otazníku).\n" -#: src/buffer.c:1066 -#, fuzzy, c-format +#: src/buffer.c:1113 +#, c-format msgid "%s command failed" -msgstr "p��kaz `%s' selhal" +msgstr "příkaz %s selhal" -#: src/buffer.c:1221 -#, fuzzy, c-format +#: src/buffer.c:1294 +#, c-format msgid "%s is possibly continued on this volume: header contains truncated name" -msgstr "%s nepokra�uje na tomto svazku" +msgstr "%s možná pokračuje na tomto svazku: hlavička obsahuje zkrácený název" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" -msgstr "%s nepokra�uje na tomto svazku" +msgstr "%s nepokračuje na tomto svazku" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" -msgstr "%s je �patn� d�lky (%s != %s + %s)" +msgstr "%s je špatné délky (%s != %s + %s)" -#: src/buffer.c:1253 -#, fuzzy, c-format +#: src/buffer.c:1326 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Tento svazek nen� n�sledn�kem p�edchoz�ho" +msgstr "Tento svazek není je mimo pořadí (%s − %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" -msgstr "Pro vyhodnocen� vzorku `%s' mus� b�t archiv pojmenov�n" +msgstr "Pro vyhodnocení vzorku %s musí být archiv pojmenován" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" -msgstr "Svazek %s neodpov�d� vzorku %s" +msgstr "Svazek %s neodpovídá vzorku %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" +"%s: název souboru je příliš dlouhý, aby byl uložen do vícesvazkové hlavičky " +"GNU, bude zkrácen" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" -msgstr "" +msgstr "zápis neskončil na konci hranice bloku" -#: src/compare.c:96 -#, fuzzy, c-format +#: src/compare.c:95 +#, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" -msgstr[0] "Lze ��st pouze %lu z %lu bajt�" -msgstr[1] "Lze ��st pouze %lu z %lu bajt�" +msgstr[0] "Bylo možné načíst pouze %'lu z %'lu bajtu" +msgstr[1] "Bylo možné načíst pouze %'lu z %'lu bajtů" +msgstr[2] "Bylo možné načíst pouze %'lu z %'lu bajtů" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" -msgstr "Obsah se li��" +msgstr "Obsahy se liší" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" -msgstr "Neo�ek�van� konec archivu" +msgstr "Neočekávaný konec archivu" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" -msgstr "Typ souboru se li��" +msgstr "Typ souboru se liší" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" -msgstr "Pr�va se li��" +msgstr "Práva se liší" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" -msgstr "Uid se li��" +msgstr "UID se liší" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" -msgstr "Gid se li��" +msgstr "GID se liší" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" -msgstr "�as posledn� modifikace se li��" +msgstr "Čas poslední modifikace se liší" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" -msgstr "Velikost se li��" +msgstr "Velikost se liší" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" -msgstr "Nen� odkazem na %s" +msgstr "Není odkazem na %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" -msgstr "Symbolick� odkaz se li��" +msgstr "Symbolický odkaz se liší" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" -msgstr "��slo za��zen� se li��" +msgstr "Číslo zařízení se liší" #: src/compare.c:462 #, c-format msgid "Verify " -msgstr "Ov��uji " +msgstr "Ověřuji " #: src/compare.c:469 -#, fuzzy, c-format +#, c-format msgid "%s: Unknown file type `%c', diffed as normal file" -msgstr "%s: Nezn�m� typ souboru '%c', porovn�v�n jako norm�ln� soubor" +msgstr "%s: Neznámý typ souboru „%c“, porovnáván jako normální soubor" #: src/compare.c:524 msgid "Archive contains file names with leading prefixes removed." -msgstr "" +msgstr "Archiv obsahuje názvy souborů, kterým byly odstraněny předpony." #: src/compare.c:526 msgid "Verification may fail to locate original files." -msgstr "" +msgstr "Při kontrole může selhat nalezení původních souborů." -#: src/compare.c:596 -#, fuzzy, c-format +#: src/compare.c:599 +#, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" -msgstr[0] "CHYBN� OV��EN�: chybn�ch hlavi�ek detekov�no: %d" -msgstr[1] "CHYBN� OV��EN�: chybn�ch hlavi�ek detekov�no: %d" +msgstr[0] "SELHÁNÍ KONTROLY: zjištěna %d chybná hlavička" +msgstr[1] "SELHÁNÍ KONTROLY: zjištěny %d chybné hlavičky" +msgstr[2] "SELHÁNÍ KONTROLY: zjištěno %d chybných hlaviček" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" -msgstr "" +msgstr "Osiřelý nulový blok na pozici %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" -msgstr "" +msgstr "%s: obsahuje značku keše adresáře %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "hodnota %s typu %s je mimo rozsah %s..%s; nahrazuji za %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "hodnota %s typu %s je mimo rozsah %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" -msgstr "Generuji z�porn� osmi�kov� hlavi�ky" +msgstr "Generuji záporné osmičkové hlavičky" #: src/create.c:624 src/create.c:687 -#, fuzzy, c-format +#, c-format msgid "%s: file name is too long (max %d); not dumped" -msgstr "%s: soubor nen� zm�n�n; neaktualizov�n" +msgstr "%s: název souboru je příliš dlouhý (max. %d); nezpracován" #: src/create.c:634 -#, fuzzy, c-format +#, c-format msgid "%s: file name is too long (cannot be split); not dumped" -msgstr "%s: soubor nen� zm�n�n; neaktualizov�n" +msgstr "%s: název souboru je příliš dlouhý (nelze jej rozdělit); nezpracován" #: src/create.c:661 -#, fuzzy, c-format +#, c-format msgid "%s: link name is too long; not dumped" -msgstr "%s: soubor nen� zm�n�n; neaktualizov�n" +msgstr "%s: název odkazu je příliš dlouhý; nezpracován" -#: src/create.c:1076 -#, fuzzy, c-format +#: src/create.c:1078 +#, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" -msgstr[0] "%s: Soubor je krat�� o bajt�: %s; Dopl�uji nulami." -msgstr[1] "%s: Soubor je krat�� o bajt�: %s; Dopl�uji nulami." +msgstr[0] "%s: Soubor je kratší o %s bajt; Doplňuji nulami." +msgstr[1] "%s: Soubor je kratší o %s bajty; Doplňuji nulami." +msgstr[2] "%s: Soubor je kratší o %s bajtů; Doplňuji nulami." -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" -msgstr "%s: soubor je na jin�m souborov�m syst�mu; nearchivov�n" +msgstr "%s: soubor je na jiném souborovém systému; nearchivován" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" -msgstr "" +msgstr "obsah nezpracován" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" -msgstr "%s: Nezn�m� typ souboru; soubor ignorov�n" - -#: src/create.c:1464 -#, fuzzy, c-format -msgid "Missing links to %s.\n" -msgstr " odkaz na %s\n" +msgstr "%s: Neznámý typ souboru; soubor ignorován" -#: src/create.c:1535 +#: src/create.c:1472 #, c-format -msgid "%s: file is unchanged; not dumped" -msgstr "%s: soubor nen� zm�n�n; neaktualizov�n" +msgid "Missing links to %s." +msgstr "Chybí odkazy na %s." #: src/create.c:1543 #, c-format -msgid "%s: file is the archive; not dumped" -msgstr "%s: soubor je archiv; nearchivov�n" +msgid "%s: file is unchanged; not dumped" +msgstr "%s: soubor není změněn; neaktualizován" -#: src/create.c:1573 +#: src/create.c:1552 #, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Soubor smaz�n d��ve ne� mohl b�t �ten" +msgid "%s: file is the archive; not dumped" +msgstr "%s: soubor je archiv; nearchivován" -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" -msgstr "" +msgstr "adresář nezpracován" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" -msgstr "%s: soubor byl b�hem �ten� zm�n�n" +msgstr "%s: soubor byl během čtení změněn" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" -msgstr "%s: soket ignorov�n" +msgstr "%s: soket ignorován" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" -msgstr "%s: dve�e ignorov�ny" +msgstr "%s: dveře ignorovány" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" -msgstr "P�eskakuji na dal�� hlavi�ku" +msgstr "Přeskakuji na další hlavičku" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" -msgstr "Z archivu je maz�no to, co nen� hlavi�ka" +msgstr "Z archivu je mazáno to, co není hlavička" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" -msgstr "" +msgstr "%s: nemožně stará časová značka %s" -#: src/extract.c:215 -#, fuzzy, c-format +#: src/extract.c:229 +#, c-format msgid "%s: time stamp %s is %s s in the future" -msgstr "%s: �asov� zna�ka %s je %lu s v budoucnosti" +msgstr "%s: časová značka %s je %s s v budoucnosti" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" -msgstr "%s: Neo�ek�van� inkonzistence, p�i vytv��en� adres��e" +msgstr "%s: Neočekávaná inkonzistence, při vytváření adresáře" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" -msgstr "" +msgstr "%s: Adresář byl přejmenován dříve, než bylo možné získat jeho stav" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" -msgstr "Souvisle ulo�en� soubory rozbaluji jako oby�ejn� soubory" +msgstr "Souvisle uložené soubory rozbaluji jako obyčejné soubory" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" -msgstr "Zkou��m rozbalit symbolick� odkazy jako pevn� odkazy" - -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "�ten� z %s\n" +msgstr "Zkouším rozbalit symbolické odkazy jako pevné odkazy" -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" -msgstr "%s: Nelze rozbalit -- soubor je pokra�ov�n�m jin�ho svazku" +msgstr "%s: Nelze rozbalit – soubor je pokračováním jiného svazku" -#: src/extract.c:1150 src/list.c:1090 -#, fuzzy +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" -msgstr "Neo�ek�van� konec v rozsekan�m n�zvu" +msgstr "Neočekávaná hlavička dlouhého názvu" -#: src/extract.c:1156 -#, fuzzy, c-format +#: src/extract.c:1197 +#, c-format msgid "%s: Unknown file type `%c', extracted as normal file" -msgstr "%s: Nezn�m� typ souboru `%c', rozbalen jako norm�ln� soubor" +msgstr "%s: Neznámý typ souboru „%c“, rozbalen jako normální soubor" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" -msgstr "" +msgstr "Současný soubor %s je novější nebo stejně starý" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" -msgstr "%s: Tento soubor nebylo mo�n� z�lohovat" +msgstr "%s: Tento soubor nebylo možné zálohovat" -#: src/extract.c:1355 -#, fuzzy, c-format +#: src/extract.c:1402 +#, c-format msgid "Cannot rename %s to %s" -msgstr "%s: nelze p�ejmenovat na %s" +msgstr "%s nelze přejmenovat na %s" -#: src/extract.c:1367 +#: src/incremen.c:482 src/incremen.c:526 #, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Z chyby se nelze zotavit: ukon�uji se" - -#: src/incremen.c:448 src/incremen.c:492 -#, fuzzy, c-format msgid "%s: Directory has been renamed from %s" -msgstr "%s: Adres�� byl p�ejmenov�n" +msgstr "%s: Adresář byl přejmenován z %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" -msgstr "%s: Adres�� byl p�ejmenov�n" +msgstr "%s: Adresář byl přejmenován" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" -msgstr "%s: Adres�� je nov�" +msgstr "%s: Adresář je nový" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" -msgstr "Neplatn� �as souboru" +msgstr "Neplatný čas souboru" -#: src/incremen.c:959 -#, fuzzy +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" -msgstr "Zad�na chybn� pr�va" +msgstr "Neplatný čas změny obsahu souboru (sekundy)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" -msgstr "" +msgstr "Neplatný čas změny obsahu souboru (nanosekundy)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" -msgstr "Neplatn� ��slo za��zen�" +msgstr "Neplatné číslo zařízení" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" -msgstr "Neplatn� ��slo i-uzlu" +msgstr "Neplatné číslo i-uzlu" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" -msgstr "" +msgstr "Při čtení souboru snímku: položka je příliš dlouhá" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" -msgstr "" +msgstr "Chyba čtení uvnitř souboru snímku" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 -#, fuzzy +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" -msgstr "Neo�ek�van� konec archivu" +msgstr "Neočekávaný konec souboru snímku" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" -msgstr "" +msgstr "Neočekávaná hodnota položky v souboru snímku" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" -msgstr "" +msgstr "Chybí uzávěr záznamu" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" -msgstr "" +msgstr "Chybný formát přírůstkového souboru" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" -msgstr "" +msgstr "Nepodporovaná verze přírůstkového formátu: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" -msgstr "" +msgstr "Poškozený dumpdir: očekáváno „%c“, ale nalezeno %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" -msgstr "" +msgstr "Poškozený dumpdir: „X“ duplikováno" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" -msgstr "" +msgstr "Poškozený dumpdir: prázdný název v „R“" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" -msgstr "" +msgstr "Poškozený dumpdir: „R“ není před „T“" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" -msgstr "" +msgstr "Poškozený dumpdir: prázdný název v „T“" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" -msgstr "" +msgstr "Poškozený dumpdir: očekáváno „%c“, ale zjištěn konec dat" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" -msgstr "" +msgstr "Poškozený dumpdir: „X“ nebylo nikdy použito" -#: src/incremen.c:1551 -#, fuzzy, c-format +#: src/incremen.c:1615 +#, c-format msgid "Cannot create temporary directory using template %s" -msgstr "Pro blokov� faktor (blok� na z�znam) %d nen� mo�n� alokovat pam�" +msgstr "Podle šablony %s nelze vytvořit dočasný adresář" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" -msgstr "" +msgstr "%s: Adresář nebude vyčištěn: nelze provést stat()" -#: src/incremen.c:1626 -#, fuzzy, c-format +#: src/incremen.c:1690 +#, c-format msgid "%s: directory is on a different device: not purging" -msgstr "%s: soubor je na jin�m souborov�m syst�mu; nearchivov�n" +msgstr "%s: adresář je na jiném zařízení: nebude vyčištěn" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" -msgstr "%s: Ma�u %s\n" +msgstr "%s: Mažu %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Nelze smazat" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" -msgstr "%s: Vynech�v�m" +msgstr "%s: Vynechávám" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok NUL **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Konec souboru **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" -msgstr "Mezery v hlavi�ce na m�st�, kde je o�ek�v�na ��seln� hodnota typu %s" +msgstr "Mezery v hlavičce na místě, kde je očekávána číselná hodnota typu %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" -"Osmi�kov� hodnota %.*s typu %s je mimo rozsah; p�i�azuji dvojkov� complement" +"Osmičková hodnota %.*s typu %s je mimo rozsah; přiřazuji dvojkový complement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" -msgstr "Osmi�kov� hodnota %.*s typu %s je mimo rozsah" +msgstr "Osmičková hodnota %.*s typu %s je mimo rozsah" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" -msgstr "Archiv obsahuje zastaral� base-64 hlavi�ky" +msgstr "Archiv obsahuje zastaralé base-64 hlavičky" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" -msgstr "Base-64 �et�zec %s je mimo rozsah typu %s" +msgstr "Base-64 řetězec %s je mimo rozsah typu %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Hodnota base-256 je mimo rozsah typu %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" -msgstr "Archiv obsahuje %.*s tam, kde je o�ek�v�na ��seln� hodnota typu %s" +msgstr "Archiv obsahuje %.*s tam, kde je očekávána číselná hodnota typu %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Hodnota %s typu %s je mimo rozsah %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " odkaz na %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" -msgstr " nezn�m� souborov� typ %s\n" +msgstr " neznámý souborový typ %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" -msgstr "" +msgstr "--Dlouhý odkaz--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" -msgstr "" +msgstr "--Dlouhý název--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" -msgstr "--Hlavi�ka svazku--\n" +msgstr "--Hlavička svazku--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" -msgstr "--Pokra�ov�no od %s bajtu--\n" +msgstr "--Pokračováno od %s bajtu--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" -msgstr "Vytv���m adres��:" +msgstr "Vytvářím adresář:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" -msgstr "P�ejmenov�v�m %s na %s\n" +msgstr "Přejmenovávám %s na %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" -msgstr "%s: nelze p�ejmenovat na %s" +msgstr "%s: nelze přejmenovat na %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" -msgstr "P�ejmenov�v�m %s zp�t na %s\n" +msgstr "Přejmenovávám %s zpět na %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" -msgstr "Pracovn� adres�� nelze uchovat" +msgstr "Pracovní adresář nelze uchovat" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" -msgstr "Pracovn� adres�� nelze zm�nit" +msgstr "Pracovní adresář nelze změnit" + +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Soubor smazán dříve než mohl být přečten" -#: src/misc.c:711 +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Adresář smazán dříve než mohl být přečten" + +#: src/misc.c:795 msgid "child process" msgstr "potomek" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" -msgstr "meziprocesov� kan�l" - -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" +msgstr "meziprocesový kanál" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" -msgstr "" +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" +msgstr "V názvech souborů se nachází žolíkové znaky. Prosím," -#: src/names.c:597 -msgid "suppress this warning." -msgstr "" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" +msgstr "porovnávání proti žolíkových znaků zapněte pomocí --wildcards," -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: V archivu nenalezen" -#: src/names.c:615 -#, fuzzy, c-format +#: src/names.c:622 +#, c-format msgid "%s: Required occurrence not found in archive" -msgstr "%s: V archivu nenalezen" +msgstr "%s: Požadovaný výskyt nebyl v archivu nalezen" + +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" +"Použití přepínače -C uvnitř seznamu souborů není spolu s --listed-" +"incremental dovoleno" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "S --listed-incremental je dovelen pouze jediný přepínač -C" -#: src/tar.c:79 +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" -msgstr "P�ep�na�e `-%s' a `-%s' oba dva cht�j� standardn� vstup" +msgstr "Přepínače „-%s“ a „-%s“ oba dva chtějí standardní vstup" -#: src/tar.c:156 -#, fuzzy, c-format +#: src/tar.c:158 +#, c-format msgid "%s: Invalid archive format" -msgstr "%s: Neplatn� skupina" +msgstr "%s: Neplatný formát archivu" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" -msgstr "GNU roz���en� po�adov�ny na nekompatibiln�m form�tu archivu" +msgstr "GNU rozšíření požadovány na nekompatibilním formátu archivu" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" +"Neznámý styl citování „%s“. Seznam stylů lze získat příkazem „%s --quoting-" +"style=help“." -#: src/tar.c:336 -#, fuzzy +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1300,17 +1380,16 @@ msgid "" " tar -tvf archive.tar # List all files in archive.tar verbosely.\n" " tar -xf archive.tar # Extract all files from archive.tar.\n" msgstr "" +"GNU „tar“ uloží pohromadě více souborů do jediného archivu na disku nebo " +"pásce a umí z tohoto archivu jednotlivé soubory získat zpět.\n" "\n" -"Pou�it�: %s [P�EP�NA�]... [SOUBOR]...\n" -"\n" -"P��klady:\n" -" %s -cf archiv.tar foo bar # Vytvo�� archiv.tar ze soubor� foo a bar.\n" -" %s -tvf archiv.tar # Podrobn� vyp��e v�echny soubory v archiv." +"Příklady:\n" +" tar -cf archiv.tar foo bar # Vytvoří archiv.tar ze souborů foo a bar.\n" +" tar -tvf archiv.tar # Podrobně vypíše všechny soubory v archiv." "tar.\n" -" %s -xf archiv.tar # Rozbal� v�echny soubory z archive.tar.\n" +" tar -xf archiv.tar # Rozbalí všechny soubory z archiv.tar.\n" -#: src/tar.c:345 -#, fuzzy +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1321,1315 +1400,1431 @@ msgid "" " nil, existing numbered if numbered backups exist, simple otherwise\n" " never, simple always make simple backups\n" msgstr "" +"Přípona záložních souborů bude „~“, pokud není nastavena pomocí --suffix " +"nebo proměnné SIMPLE_BACKUP_SUFFIX.\n" +"Verzování lze řídit pomocí přepínače --backup nebo proměnné VERSION_CONTROL. " +"Hodnoty mohou být:\n" "\n" -" P��pona z�lo�n�ch soubor� bude `~', pokud nen� nastavena pomoc� --suffix\n" -"nebo prom�nn� SIMPLE_BACKUP_SUFFIX. Jak se maj� tvo�it z�lo�n� kopie, m��e " -"b�t\n" -"nastaveno pomoc� p�ep�na�e --backup nebo prom�nn� VERSION_CONTROL. Hodnoty\n" -"mohou b�t:\n" -"\n" -" t, numbered tvo�� ��slovan� z�lo�n� kopie\n" -" nil, existing ��slovan�, jestli�e ji� ��slovan� z�lo�n� kopie\n" -" existuj�, jinak tvo�� jednoduch�\n" -" never, simple tvo�� v�dy jednoduch� z�lo�n� kopie soubor�\n" +" none, off záložní kopie se nevytváří nikdy\n" +" t, numbered tvoří číslované záložní kopie\n" +" nil, existing číslované, jestliže již číslované záložní kopie\n" +" existují, jinak tvoří jednoduché\n" +" never, simple tvoří vždy jednoduché záložní kopie souborů\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" -msgstr "" +msgstr "Hlavní operační režim:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" -msgstr "" +msgstr "vypíše obsah archivu" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" -msgstr "" +msgstr "vybalí soubory z archivu" -#: src/tar.c:378 -#, fuzzy +#: src/tar.c:394 msgid "create a new archive" -msgstr "Neo�ek�van� konec archivu" +msgstr "vytvoří nový archiv" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" -msgstr "" +msgstr "hledá rozdíly mezi archivem a systémem souborů" -#: src/tar.c:383 -#, fuzzy +#: src/tar.c:399 msgid "append files to the end of an archive" -msgstr "%d bajt� smet� ma konci archivu ignorov�no" +msgstr "připojí soubory na konec archivu" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" -msgstr "" +msgstr "připojí jen takové soubory, které jsou novější nežli kopie v archivu" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" -msgstr "" +msgstr "připojí k archivu tarové soubory" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" -msgstr "" +msgstr "smaže z archivu (ne na magnetických páskách!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" -msgstr "" +msgstr "otestuje jmenovku archivního svazku a skončí" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" -msgstr "" +msgstr "Operační modifikátory:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" -msgstr "" +msgstr "zachází s řídkými soubory efektivně" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" -msgstr "" +msgstr "HLAVNÍ[.VEDLEJŠÍ]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" -msgstr "" +msgstr "nastaví verzi řídkého formátu (implikuje --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" -msgstr "" - -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" +msgstr "zpracuje přírůstkové zálohy starého formátu GNU" -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" -msgstr "" +msgstr "zpracuje přírůstkové zálohy nového formátu GNU" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" -msgstr "" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "úroveň výpisu pro vytvářený archiv s přírůstkovým seznamem" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" +msgstr "neskoční nenulovým kódem při nečitelných souborech" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" "diff, --extract or --list and when a list of files is given either on the " "command line or via the -T option; NUMBER defaults to 1" msgstr "" +"zpracuje pouze ČÍSLO. výskyt každého souboru z archivu; tento přepínač je " +"platný jen ve spojení s jedním z podpříkazů --delete, --diff, --extract nebo " +"--list a jen když je zadán seznam souborů na příkazovém řádku nebo přes " +"přepínač -T; implicitní ČÍSLO je 1" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" -msgstr "" +msgstr "v archivu se lze posunovat" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "v archivu se lze posunovat" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" -msgstr "" +msgstr "při vytváření přírůstkových archivů se nekontrolují čísla zařízení" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" +"při vytváření přírůstkových archivů se kontrolují čísla zařízení (implicitní)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" -msgstr "" +msgstr "Ovládání přepisování:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" -msgstr "" +msgstr "pokusí se zkontrolovat archiv po té, co bude zapsán" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" -msgstr "" +msgstr "odstraní soubory po té, co budou přidány do archivu" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" -msgstr "" +msgstr "při rozbalovaní nenahrazuje existující soubory" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" +"nenahrazuje existující soubory, které jsou novější než jejich archivní kopie" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" -msgstr "" +msgstr "při rozbalování existující soubory přepisuje" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" -msgstr "" +msgstr "před vybalením každého souboru jej odstraní" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" -msgstr "" +msgstr "před vybalením adresáře vytvoří prázdnou hierarchii" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" -msgstr "" +msgstr "zachovává metadata existujících adresářů" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" -msgstr "" +msgstr "při rozbalování přepisuje metadata existujících adresářů (implicitní)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" -msgstr "" +msgstr "Výběr výstupního proudu:" -#: src/tar.c:455 -#, fuzzy +#: src/tar.c:475 msgid "extract files to standard output" -msgstr "Chyba p�i z�pise na standardn� v�stup" +msgstr "soubory vybaluje na standardní výstup" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" -msgstr "" +msgstr "PŘÍKAZ" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" -msgstr "" +msgstr "vybalené soubory pošle rourou jinému programu" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" -msgstr "" +msgstr "ignoruje návratový kód potomků" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" -msgstr "" +msgstr "nenulový návratový kód potomků považuje za chybu" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" -msgstr "" +msgstr "Zacházení s atributy souborů:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" -msgstr "" +msgstr "vynutí JMÉNO jako vlastníka vkládaných souborů" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" -msgstr "" +msgstr "vynutí JMÉNO jako skupinu vkládaných souborů" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" -msgstr "" +msgstr "DATUM_NEBO_SOUBOR" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" -msgstr "" +msgstr "nastaví čas změny obsahu vkládaných souborů podle DATA_NEBO_SOUBORU" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" -msgstr "" +msgstr "ZMĚNY" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" -msgstr "" +msgstr "vynutí (symbolický) mód ZMĚN (přístupová práva) vkládaným souborům" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" -msgstr "" +msgstr "METODA" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" +"zachová časy přístupu prohlížených souborů a to buď obnovením časů po čtení " +"(METODA=„REPLACE“; implicitní), nebo nenastavením časů v prvním pořadí " +"(METODA=„system“)" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" -msgstr "" +msgstr "nevybaluje čas změny obsahu souboru" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" +"pokusí se vybalit soubory se stejným vlastníkem jako je uveden v archivu " +"(výchozí pro superuživatele)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "rozbaluje soubory pod vaší identitou (výchozí pro běžného uživatele)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" -msgstr "" +msgstr "pro jména uživatel/skupin vždy použije čísla" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" -msgstr "" +msgstr "vybaluje informace o právech souborů (implicitní pro superuživatele)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" +"při vybalování práv z archivu použije uživatelovu umask (implicitní pro " +"běžné uživatele)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" -msgstr "" +msgstr "při rozbalování seřadí názvy tak, aby odpovídaly pořadí v archivu" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" -msgstr "" +msgstr "stejné jako -p -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" +"pozdrží nastavení časů modifikace a práv rozbalovaných adresářů až do " +"dokončení rozbalování" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" -msgstr "" +msgstr "zruší účinek přepínače --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" -msgstr "" +msgstr "Výběr a přepínání zařízení:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" -msgstr "" +msgstr "ARCHIV" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" -msgstr "" +msgstr "pro archiv požije soubor zařízení ARCHIV" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" -msgstr "" +msgstr "soubor archivu je místní, i když obsahuje dvojtečku" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" -msgstr "" +msgstr "namísto příkazu rmt použije PŘÍKAZ" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" -msgstr "" +msgstr "namísto rsh použije PŘÍKAZ" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" -msgstr "" +msgstr "určuje mechaniku a hustotu" -#: src/tar.c:536 -#, fuzzy +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" -msgstr "V�cesvazkov� archiv nen� mo�n� ov��it" +msgstr "vytvoří/vypíše/rozbalí vícesvazkový archiv" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" -msgstr "" +msgstr "po zapsaní ČÍSLO × 1024 bajtů vymění pásku" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" -msgstr "" +msgstr "na konci každé pásky spustí skript (implikuje -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" -msgstr "" +msgstr "použije/aktualizuje číslo svazku v SOUBORU" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" -msgstr "" +msgstr "Bloky zařízení:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" -msgstr "" +msgstr "BLOKY" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" -msgstr "" +msgstr "BLOKŮ × 512 bajtů na záznam" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" -msgstr "" +msgstr "ČÍSLO bajtů na záznam, násobek 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" -msgstr "" +msgstr "v archivu ignoruje vynulované bloky (znamená EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" -msgstr "" +msgstr "předělat bloky v průběhu čtení (pro roury na BSD 4.2)" -#: src/tar.c:562 -#, fuzzy +#: src/tar.c:582 msgid "Archive format selection:" -msgstr "Odporuj�c� si archivn� form�ty" +msgstr "Výběr formátu archivu:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" -msgstr "" +msgstr "FORMÁT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" -msgstr "" +msgstr "vytvoří archiv daného formátu" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" -msgstr "" +msgstr "FORMÁT je jeden z následujících:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" -msgstr "" +msgstr "starý formát taru V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" -msgstr "" +msgstr "formát taru GNU <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" -msgstr "" +msgstr "formát taru GNU 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" -msgstr "" +msgstr "formát POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" -msgstr "" +msgstr "formát POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" -msgstr "" +msgstr "stejné jako pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" -msgstr "" +msgstr "stejné jako --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" -msgstr "" +msgstr "stejné jako --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." -msgstr "" +msgstr "klíčové_slovo[[:]=hodnota][,klíčové_slovo[[:]=hodnota]]…" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" -msgstr "" +msgstr "řídicí klíčová slova paxu" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" -msgstr "" +msgstr "TEXT" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" +"vytvoří archiv s názvem svazku TEXT; při výpisu/rozbalení použije TEXT jako " +"vzor se zástupnými symboly pro název svazku" -#: src/tar.c:593 -#, fuzzy +#: src/tar.c:613 msgid "Compression options:" -msgstr "Odporuj�c� si kompresn� p�ep�na�e" +msgstr "Přepínače komprese:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" -msgstr "" +msgstr "kompresní program určí podle přípony archivu" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" -msgstr "" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: soubor je archiv; nearchivov�n" +msgstr "kompresní program neurčí podle přípony archivu" -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: soubor je archiv; nearchivov�n" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: soubor je archiv; nearchivov�n" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: soubor je archiv; nearchivov�n" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: soubor je archiv; nearchivov�n" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" -msgstr "" +msgstr "PROGRAM" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" -msgstr "" +msgstr "archiv protáhne PROGRAMEM (musí znát -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" -msgstr "" +msgstr "Výběr místního souboru:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" +"zadaný SOUBOR přidá do archivu (užitečné, začíná-li jeho název spojovníkem)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" -msgstr "" +msgstr "ADRESÁŘ" -#: src/tar.c:625 -#, fuzzy +#: src/tar.c:641 msgid "change to directory DIR" -msgstr "Pracovn� adres�� nelze zm�nit" +msgstr "změní adresář na ADRESÁŘ" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" -msgstr "" +msgstr "seznam jmen souborů na rozbalení nebo zabalení získá ze SOUBORU" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" -msgstr "" +msgstr "-T čte názvy zakončené nulovým znakem, vypne -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "zruší účinek předchozího přepínače --null" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" +"odčiní citování (escapování) názvů souboru načtených přes -T (implicitní)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" -msgstr "" +msgstr "nezruší citování (escapování) názvů souboru načtených přes -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" -msgstr "" +msgstr "VZOR" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" -msgstr "" +msgstr "vynechá soubory, které odpovídají VZORU" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" -msgstr "" +msgstr "vynechá soubory vyjmenované v SOUBORU" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" +"vynechá obsah adresářů obsahujících CACHEADR.ZNAČKA, kromě souboru značky " +"samotného" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" -msgstr "" +msgstr "vynechá vše pod adresáři obsahujícími CACHEADR.ZNAČKA" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" -msgstr "" +msgstr "vynechá adresáře obsahující CACHEADR.ZNAČKA" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" -msgstr "" +msgstr "vynechá obsah adresářů obsahujících SOUBOR, vyjma SOUBORU samotného" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" -msgstr "" +msgstr "vynechá vše pod adresáři obsahujícími SOUBOR" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" -msgstr "" +msgstr "vynechá adresáře obsahující SOUBOR" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" -msgstr "" +msgstr "vynechá adresáře systému správy verzí" + +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "vynechá soubory záloh a zámků" -#: src/tar.c:658 +#: src/tar.c:676 msgid "avoid descending automatically in directories" -msgstr "" +msgstr "zabrání automatickému sestupu do adresářů" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" -msgstr "" +msgstr "při tvorbě archivu se zdrží v místním systému souborů" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" -msgstr "" +msgstr "sestupuje rekurzivně do adresářů (implicitní)" -#: src/tar.c:664 -#, fuzzy +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" -msgstr "Odstra�uji �vodn� `%.*s' z n�zv� soubor�" +msgstr "neodstraní z názvů souborů úvodní „/“" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" +"následuje symbolické odkazy; archivuje a vybaluje soubory, na které je " +"odkazováno" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" +"následuje pevné odkazy; archivuje a vybaluje soubory, na které je odkazováno" -#: src/tar.c:669 +# část cesty (adresář) +#: src/tar.c:687 msgid "MEMBER-NAME" -msgstr "" +msgstr "SLOŽKA_NÁZVU" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" -msgstr "" +msgstr "začne v archivu na složce SLOŽKA_NÁZVU" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" -msgstr "" +msgstr "ukládá jen soubory novější než DATUM_NEBO_SOUBOR" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" -msgstr "" +msgstr "DATUM" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" -msgstr "" +msgstr "při změně dat porovná datum i čas" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" -msgstr "" +msgstr "STRATEGIE" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" -msgstr "" +msgstr "před odstraněním vytvoří záložní kopii za použití STRATEGIE" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" -msgstr "" +msgstr "ŘETĚZEC" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" +"před odstraněním vytvoří záložní kopii, potlačí obvyklou příponu („~“, není-" +"li uvedeno jinak v proměnné prostředí SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" -msgstr "" +msgstr "Transformace názvů souborů:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" -msgstr "" +msgstr "při rozbalování odřízne ČÍSLO úvodních složek z názvů souborů" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" -msgstr "" +msgstr "VÝRAZ" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" -msgstr "" +msgstr "názvy souborů transformuje pomocí nahrazovacího VÝRAZU sedu" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" +"Přepínače řídicí výběr souborů podle názvu (ovlivňuje vzory jak pro " +"vyloučení, tak pro zahrnutí)" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" -msgstr "" +msgstr "ignoruje velikost písmen" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" -msgstr "" +msgstr "vzory se testují název souboru od začátku" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" -msgstr "" +msgstr "vzory se testují po každém „/“ (implicitní u vyloučení)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" -msgstr "" +msgstr "testování je citlivé na velikost (implicitní)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" -msgstr "" +msgstr "použije žolíkové znaky (implicitní u vyloučení)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" -msgstr "" +msgstr "testuje se přesný řetězec" -#: src/tar.c:710 -#, fuzzy +#: src/tar.c:728 msgid "wildcards do not match `/'" -msgstr "Svazek %s neodpov�d� vzorku %s" +msgstr "žolíkové znaky nezahrnují „/“" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" -msgstr "" +msgstr "žolíkové znaky zahrnují „/“ (implicitní u vyloučení)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" -msgstr "" +msgstr "Informativní výstup:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" -msgstr "" +msgstr "vypisuje zpracovávané soubory" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "KLÍČOVÉ_SLOVO" + +#: src/tar.c:740 +msgid "warning control" +msgstr "řídí varování" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" -msgstr "" +msgstr "zobrazuje zprávy o postupu každých ČÍSLO. záznam (implicitně 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" -msgstr "" +msgstr "AKCE" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" -msgstr "" +msgstr "v každém kontrolním bodu vykoná AKCI" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" -msgstr "" +msgstr "hlásí, že nebyly zpracovány všechny odkazy" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" -msgstr "" +msgstr "SIGNÁL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " "SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also " "accepted" msgstr "" +"po zpracování archivu ohlásí celkový počet bajtů; je-li zadán argument, podá " +"hlášení, až bude doručen SIGNÁL; Povolené signály jsou SIGHUP, SIGQUIT, " +"SIGINT, SIGUSR1 a SIGUSR2; názvy bez předpony SIG jsou rovněž přípustné" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" -msgstr "" +msgstr "časy změn obsahu souborů vypisuje v UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" -msgstr "" +msgstr "informativní výstup pošle do SOUBORU" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" -msgstr "" +msgstr "každou zprávu opatří číslem bloku uvnitř archivu" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" -msgstr "" +msgstr "na každou akcí žádá potvrzení" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" -msgstr "" +msgstr "zobrazí implicitní argumenty taru" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" +"při vypisování nebo rozbalování zobrazí každý adresář, který neodpovídá " +"vyhledávacím podmínkám" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" -msgstr "" +msgstr "zobrazuje názvy souborů a archivů po transformaci" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" -msgstr "" +msgstr "STYL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" -msgstr "" +msgstr "nastaví styl citování názvů; platné hodnoty STYLŮ nalezte níže" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" -msgstr "" +msgstr "cituje navíc znaky z ŘETĚZCE" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" -msgstr "" +msgstr "zakáže citování znaků z ŘETĚZCE" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" -msgstr "" +msgstr "Přepínače pro kompatibilitu" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" +"při vytváření archivu má stejný význam jako --old-archive, při rozbalování " +"jako --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" -msgstr "" +msgstr "Další přepínače:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" -msgstr "" +msgstr "zakáže použití některých potenciálně nebezpečných přepínačů" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "V�ce jak jeden p�ep�na� z `-Acdtrux' nem��e b�t zad�n" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "" +"Nemůže být zadán více jak jeden přepínač z „-Acdtrux“ nebo „--test-label“" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" -msgstr "Odporuj�c� si kompresn� p�ep�na�e" +msgstr "Odporující si kompresní přepínače" -#: src/tar.c:986 -#, fuzzy, c-format +#: src/tar.c:993 +#, c-format msgid "Unknown signal name: %s" -msgstr " nezn�m� souborov� typ %s\n" +msgstr "Neznámý název signálu: %s" -#: src/tar.c:1010 -#, fuzzy +#: src/tar.c:1017 msgid "Date sample file not found" -msgstr "Soubor ze kter�ho se m� vz�t datum a �as nebyl nalezen" +msgstr "Soubor, ze kterého se má vzít datum a čas, nebyl nalezen" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" -msgstr "Datum nezn�m�ho form�tu %2$s nahrazuji %1$s" +msgstr "Datum neznámého formátu %2$s nahrazuji %1$s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" -msgstr "" +msgstr "Přepínač %s: S datem „%s“ bude zacházeno jako s %s" -#: src/tar.c:1120 -#, fuzzy, c-format +#: src/tar.c:1132 +#, c-format msgid "%s: file list already read" -msgstr "%s: soubor je archiv; nearchivov�n" +msgstr "%s: seznam souborů již načten" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" -msgstr "" +msgstr "%s: načtený název souboru obsahuje nulový znak" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "archiv protáhne skrze filtr %s" -#: src/tar.c:1253 +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" +msgstr "Pro přepínač --quoting-style jsou platné argumenty:" + +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" +"\n" +"Implicitní přepínače *tohoto* taru:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" -msgstr "Neplatn� po�et bajt� na z�znam" +msgstr "Neplatný počet bajtů na záznam" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" -msgstr "Neplatn� d�lka p�sky" +msgstr "Neplatná délka pásky" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "Chybná hodnota úrovně přírůstku" + +#: src/tar.c:1557 msgid "More than one threshold date" -msgstr "V�ce ne� jedeno po��te�n� datum" +msgstr "Více než jedeno počáteční datum" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" -msgstr "" +msgstr "Neplatná hodnota verze řídkého formátu" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" -msgstr "" +msgstr "--atime-preserve='system' není na této platformě podporován" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" -msgstr "" +msgstr "hodnota --checkpoint není celé číslo" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: Neplatn� skupina" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "Neplatná skupina" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" -msgstr "Zad�na chybn� pr�va" +msgstr "Zadána chybná práva" -#: src/tar.c:1774 -#, fuzzy +#: src/tar.c:1894 msgid "Invalid number" -msgstr "Neplatn� ��slo i-uzlu" +msgstr "Neplatné číslo" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" -msgstr "Neplatn� vlastn�k" +msgstr "Neplatný vlastník" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" +"Přepínač --preserve je zastaralý, místo něj používejte --preserve-" +"permissions --preserve-order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" -msgstr "Chybn� velikost z�znamu" +msgstr "Chybná velikost záznamu" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." -msgstr "Velikost z�znamu mus� b�t n�sobek %d." +msgstr "Velikost záznamu musí být násobek %d." -#: src/tar.c:1872 -#, fuzzy +#: src/tar.c:2000 msgid "Invalid number of elements" -msgstr "Neplatn� d�lka p�sky" +msgstr "Neplatný počet prvků" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" -msgstr "" +msgstr "Povolen je jen jeden přepínač --to-command" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" -msgstr "" +msgstr "Neplatný argument hustoty: %s" -#: src/tar.c:1994 -#, fuzzy, c-format +#: src/tar.c:2126 +#, c-format msgid "Unknown density: `%c'" -msgstr "Nezn�m� vzorek `%s'" +msgstr "Neznámá hustota: „%c“" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" -msgstr "P�ep�na� `-[0-7][lmh]' nen� podporov�n t�mto tarem" +msgstr "Přepínače „-[0-7][lmh]“ nejsou *tímto* tarem podporovány" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." -msgstr "" +msgstr "[SOUBOR]…" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." -msgstr "P�ep�na� `%c' vy�aduje argument." +msgstr "Přepínač „%c“ vyžaduje argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" -msgstr "" +msgstr "bez seznamu souborů nemá --occurrence smysl" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" -msgstr "" +msgstr "--occurrence nelze v požadovaném režimu operace použít" -#: src/tar.c:2270 -#, fuzzy +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" -msgstr "V�ce archiva�n�ch soubor� vy�aduje p�ep�na� `-M'" +msgstr "Více archivačních souborů vyžaduje přepínač „-M“" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "--listed-incremental a --newer nelze kombinovat" -#: src/tar.c:2292 -#, fuzzy, c-format +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "--level bez --listed-incremental postrádá smysl" + +#: src/tar.c:2404 +#, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" -msgstr[0] "%s: N�zev svazku je p��li� dlouh� (limit je %lu bajt�)" -msgstr[1] "%s: N�zev svazku je p��li� dlouh� (limit je %lu bajt�)" +msgstr[0] "%s: Název svazku je příliš dlouhý (limit je %'lu bajt)" +msgstr[1] "%s: Název svazku je příliš dlouhý (limit je %'lu bajty)" +msgstr[2] "%s: Název svazku je příliš dlouhý (limit je %'lu bajtů)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" -msgstr "V�cesvazkov� archiv nen� mo�n� ov��it" +msgstr "Vícesvazkový archiv není možné ověřit" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" -msgstr "Komprimovan� archiv nelze ov��it" +msgstr "Komprimovaný archiv nelze ověřit" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" -msgstr "V�cesvazkov� komprimovan� archiv nelze vytvo�it" +msgstr "Vícesvazkový komprimovaný archiv nelze vytvořit" -#: src/tar.c:2319 -#, fuzzy +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" -msgstr "Komprimovan� archiv nelze aktualizovat" +msgstr "Komprimované archivy nelze zřetězit" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" -msgstr "" +msgstr "Přepínač --pax-option lze použít jen na posixových archivech" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "Délka svazku nemůže být kratší než délka záznamu" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" -msgstr "" +msgstr "--preserve-order není slučitelný s --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" -msgstr "Vytvo�en� pr�zdn�ho archivu odm�tnuto." +msgstr "Vytvoření prázdného archivu odmítnuto." -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" -msgstr "P�ep�na�e `-Aru' jsou neslu�iteln� s p�ep�na�em `-f -'" +msgstr "Přepínače „-Aru“ jsou neslučitelné s přepínačem „-f -“" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "Mus�te zadat jeden z p�ep�na�� `-Acdtrux'" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "Musíte zadat jeden z přepínačů „-Acdtrux“ nebo „--test-label“" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "Končí se chybovým kódem, protože byly zaznamenány chyby" #: src/update.c:86 -#, fuzzy, c-format +#, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" -msgstr[0] "%s: Soubor zkr�cen o bajt�: %s" -msgstr[1] "%s: Soubor zkr�cen o bajt�: %s" +msgstr[0] "%s: Soubor zkrácen o %s bajt" +msgstr[1] "%s: Soubor zkrácen o %s bajty" +msgstr[2] "%s: Soubor zkrácen o %s bajtů" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" -msgstr "" +msgstr "Klíčové slovo %s není známo nebo ještě nebylo implementováno" + +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "Časový údaj je mimo povolený rozsah" -#: src/xheader.c:182 +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" -msgstr "" +msgstr "Vzor %s nelze použít" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" -msgstr "" +msgstr "Klíčové slovo %s nelze přebít" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" -msgstr "" +msgstr "Chybná rozšířená hlavička: chybí délka" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" -msgstr "" +msgstr "Délka rozšířené hlavičky je mimo povolený rozsah" -#: src/xheader.c:511 -#, fuzzy, c-format +#: src/xheader.c:556 +#, c-format msgid "Extended header length %*s is out of range" -msgstr "Base-64 �et�zec %s je mimo rozsah typu %s" +msgstr "Délka rozšířené hlavičky %*s je mimo rozsah" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" -msgstr "" +msgstr "Chybná rozšířená hlavička: po délce chybí bílé místo" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" -msgstr "" +msgstr "Chybná rozšířená hlavička: chybí znak rovná se" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" -msgstr "" +msgstr "Chybná rozšířená hlavička: chybí odřádkování" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" -msgstr "" +msgstr "Ignoruje se neznámé klíčové slovo „%s“ rozšířené hlavičky" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" +"Utvořená dvojice klíčové slovo / hodnota je příliš dlouhá (klíčové slovo = %" +"s, délka %s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 -#, fuzzy, c-format +#: src/xheader.c:862 +#, c-format msgid "Extended header %s=%s is out of range %s..%s" -msgstr "Hodnota %s typu %s je mimo rozsah %s..%s" +msgstr "%s=%s v rozšířené hlavičce je mimo rozsah %s–%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" -msgstr "" +msgstr "Chybná rozšířená hlavička: %s=%s není platné" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" -msgstr "" +msgstr "Chybná rozšířená hlavička: nadbytečná %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" -msgstr "" +msgstr "Chybná rozšířená hlavička: neplatný %s: neočekávaný oddělovač %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" -msgstr "" +msgstr "Chybná rozšířená hlavička: neplatný %s: lichý počet hodnot" #: src/checkpoint.c:107 -#, fuzzy, c-format +#, c-format msgid "%s: not a valid timeout" -msgstr "%s: Neplatn� skupina" +msgstr "%s: neplatný časový limit" #: src/checkpoint.c:112 #, c-format msgid "%s: unknown checkpoint action" -msgstr "" +msgstr "%s: neznámá akce kontrolního bodu" #: src/checkpoint.c:132 msgid "write" -msgstr "" +msgstr "zápis" #: src/checkpoint.c:132 msgid "read" -msgstr "" +msgstr "čtení" #. TRANSLATORS: This is a ``checkpoint of write operation'', #. *not* ``Writing a checkpoint''. #. E.g. in Spanish ``Punto de comprobaci@'on de escritura'', #. *not* ``Escribiendo un punto de comprobaci@'on'' #: src/checkpoint.c:222 -#, fuzzy, c-format +#, c-format msgid "Write checkpoint %u" -msgstr "Zapisuji testovac� bod %d" +msgstr "Kontrolní bod zápisu %u" #. TRANSLATORS: This is a ``checkpoint of read operation'', #. *not* ``Reading a checkpoint''. #. E.g. in Spanish ``Punto de comprobaci@'on de lectura'', #. *not* ``Leyendo un punto de comprobaci@'on'' #: src/checkpoint.c:228 -#, fuzzy, c-format +#, c-format msgid "Read checkpoint %u" -msgstr "�ten� testovac�ho bodu %d" +msgstr "Kontrolní bod čtení %u" -#: tests/genfile.c:111 -#, fuzzy +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" -msgstr "Generuji datov� soubory pro testov�n� GNU taru.\n" +msgstr "" +"genfile pracuje s datovými soubory testovacího balíku GNU paxutils.\n" +"PŘEPÍNAČE jsou:\n" -#: tests/genfile.c:126 -#, fuzzy +#: tests/genfile.c:128 msgid "File creation options:" -msgstr "Odporuj�c� si kompresn� p�ep�na�e" +msgstr "Přepínače tvorby souboru:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" -msgstr "" +msgstr "VELIKOST" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" -msgstr "" +msgstr "Vytvoří soubor zadané VELIKOSTI" -#: tests/genfile.c:130 -#, fuzzy +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" -msgstr "Chyba p�i z�pise na standardn� v�stup" +msgstr "Místo na standardní výstup píše do souboru JMÉNO" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" -msgstr "" +msgstr "Názvy souborů čte ze SOUBORU" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" -msgstr "" +msgstr "-T čte názvy zakončené nulovými znaky" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" +"Vyplní soubor zadaným VZOREM. VZOR je „default“ (výchozí) nebo „zeros“ (nuly)" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" -msgstr "" +msgstr "Velikost bloku pro řídké soubory" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." -msgstr "" +msgstr "Vytvoří řídký soubor. Zbytek příkazové řádku definuje mapu souboru." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" -msgstr "" +msgstr "POZICE" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" -msgstr "" +msgstr "Před zápisem dat se přesune na zadanou POZICI" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" -msgstr "" +msgstr "Přepínače statistiky souboru:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" +"U každého zadaného souboru vypíše obsah struktury stat. Implicitní FORMÁT je:" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" -msgstr "" +msgstr "Přepínače synchronního vykonávání:" + +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "PŘEPÍNAČ" -#: tests/genfile.c:163 +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" +"Provede ARGUMENTY. Užitečné s --checkpoint a jedním z --cut, --append, --" +"touch, --unlink" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" -msgstr "" +msgstr "Provede zadanou akci (vizte níže) při dosažení kontrolního bodu ČÍSLO" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" -msgstr "" +msgstr "Nastaví datum pro následující přepínač --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" -msgstr "" +msgstr "Zobrazuje prováděné kontrolní body a návratové kódy PŘÍKAZU" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" +"Synchronní vykonávání akcí. Tyto budou provedeny, když bude dosaženo číslo " +"kontrolního bodu zadaného přepínačem --checkpoint." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" +"Zkrátí SOUBOR na velikost zadanou předchozím přepínačem --length (nebo na 0, " +"není-li uveden)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" +"K SOUBORU připojí VELIKOST bajtů. VELIKOST se zadává předcházejícím " +"přepínačem --length." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" -msgstr "" +msgstr "Aktualizuje časy přístupu a změny obsahu SOUBORU" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" -msgstr "" +msgstr "Vykoná PŘÍKAZ" -#: tests/genfile.c:240 -#, fuzzy, c-format -msgid "Invalid size: %s" -msgstr "Neplatn� �as souboru" +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "Smaže (unlink) SOUBOR" #: tests/genfile.c:245 -#, fuzzy, c-format +#, c-format +msgid "Invalid size: %s" +msgstr "Neplatná velikost: %s" + +#: tests/genfile.c:250 +#, c-format msgid "Number out of allowed range: %s" -msgstr "��slo i-uzlu mimo rozsah" +msgstr "Číslo je mimo povolený rozsah: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" -msgstr "" +msgstr "Záporná velikost: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" -msgstr "" +msgstr "stat(%s) selhalo" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "požadovaná délka souboru %'lu, aktuální %'lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "vytvořený soubor není řídký" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" -msgstr "" +msgstr "Chyba při rozebírání čísla poblíž „%s“" -#: tests/genfile.c:359 -#, fuzzy, c-format +#: tests/genfile.c:368 +#, c-format msgid "Unknown date format" -msgstr "Nezn�m� syst�mov� chyba" +msgstr "Neznámý formát data" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" -msgstr "" +msgstr "[ARGUMENT…]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 -#, fuzzy, c-format +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 +#, c-format msgid "cannot open `%s'" -msgstr "Nezn�m� vzorek `%s'" +msgstr "„%s“ nelze otevřít" -#: tests/genfile.c:425 -#, fuzzy +#: tests/genfile.c:435 msgid "cannot seek" -msgstr "Nelze zav��t" +msgstr "v souboru se nelze pohybovat" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" -msgstr "" +msgstr "název souboru obsahuje nulový znak" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" +"na standardní výstup nelze generovat řídké soubory, použijte přepínač --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" -msgstr "" +msgstr "nesprávná maska (poblíž „%s“)" -#: tests/genfile.c:591 tests/genfile.c:624 -#, fuzzy, c-format +#: tests/genfile.c:601 tests/genfile.c:634 +#, c-format msgid "Unknown field `%s'" -msgstr "Nezn�m� vzorek `%s'" +msgstr "Neznámá položka „%s“" -#: tests/genfile.c:651 -#, fuzzy, c-format +#: tests/genfile.c:661 +#, c-format msgid "cannot set time on `%s'" -msgstr "%s: Nelze zm�nit pozici v souboru na %s" +msgstr "Souboru „%s“ nelze nastavit čas" + +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "„%s“ nelze odstranit (unlink)" -#: tests/genfile.c:805 +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" -msgstr "" +msgstr "Příkaz skončil úspěšně\n" -#: tests/genfile.c:807 -#, fuzzy, c-format +#: tests/genfile.c:828 +#, c-format msgid "Command failed with status %d\n" -msgstr "Potomek byl ukon�en sign�lem %d" +msgstr "Příkaz selhal s kódem %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" -msgstr "" +msgstr "Příkaz skončil signálem %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" -msgstr "" +msgstr "Příkaz pozastaven signálem %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" -msgstr "" +msgstr "Příkaz skončil výpisem obrazu paměti\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" -msgstr "" +msgstr "Příkaz ukončen\n" -#: tests/genfile.c:851 -#, fuzzy, c-format +#: tests/genfile.c:872 +#, c-format msgid "--stat requires file names" -msgstr "--Rozd�len� n�zev souboru--\n" +msgstr "--stat potřebuje název souboru" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "Název počítače %s nelze přeložit" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Upozorn�n�: p�ep�na� -I nen� podporov�n; nemysleli jste -j nebo -T?" +#~ msgid "suppress this warning." +#~ msgstr "nebo tuto hlášku potlačte přepínačem --no-wildcards." + +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: neznámý přepínač -- %c\n" + +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Chyby v programu oznamujte na adrese <%s> (pouze anglicky),\n" +#~ "připomínky k překladu na adresu <translation-team-cs@lists.sourceforge." +#~ "net>\n" +#~ "(česky).\n" + +#~ msgid "Input string too long" +#~ msgstr "Vstupní řetězec je příliš dlouhý" + +#~ msgid "Number syntax error" +#~ msgstr "Syntaktická chyba čísla" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Místo pro buffer není možné alokovat\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Místo pro buffer není možné alokovat" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Více informací získáte příkazem „%s --help“.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Použití: %s [PŘEPÍNAČ]\n" +#~ "Manipuluje s páskovou mechanikou přijímaje příkazy vzdáleného procesu.\n" +#~ "\n" +#~ " --version Vypíše označení verze.\n" +#~ " --help Vypíše tuto nápovědu.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Chyba při posunu na pozici" + +#~ msgid "Premature end of file" +#~ msgstr "Předčasný konec souboru" + +#~ msgid "Reading %s\n" +#~ msgstr "Čtení z %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Z chyby se nelze zotavit: ukončuji se" + +#~ msgid "filter the archive through bzip2" +#~ msgstr "archiv protáhne skrze bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "archiv protáhne skrze gzip" + +#~ msgid "filter the archive through compress" +#~ msgstr "archiv protáhne skrze compress" + +#~ msgid "filter the archive through lzma" +#~ msgstr "archiv protáhne skrze lzma" + +#~ msgid "filter the archive through lzop" +#~ msgstr "archiv protáhne skrze lzop" #~ msgid "block size" #~ msgstr "velikost bloku" #~ msgid "Cannot dup" -#~ msgstr "Popisova� souboru nelze duplikovat" +#~ msgstr "Popisovač souboru nelze duplikovat" #~ msgid "Cannot use compressed or remote archives" -#~ msgstr "Komprimovan� nebo vzd�len� archivy nelze pou��t" +#~ msgstr "Komprimované nebo vzdálené archivy nelze použít" #~ msgid "tar (child)" #~ msgstr "tar (potomek)" @@ -2638,43 +2833,40 @@ msgstr "" #~ msgstr "tar (prapotomek)" #~ msgid "WARNING: No volume header" -#~ msgstr "VAROV�N�: Chyb� hlavi�ka svazku" +#~ msgstr "VAROVÁNÍ: Chybí hlavička svazku" #~ msgid "Child returned status %d" -#~ msgstr "Potomek vr�til status %d" +#~ msgstr "Potomek vrátil status %d" #~ msgid "Member names contain `..'" -#~ msgstr "N�zvy soubor� obsahuj� `..'" +#~ msgstr "Názvy souborů obsahují „..“" #~ msgid "%s: Member name contains `..'" -#~ msgstr "%s: N�zev souboru obsahuje `..'" +#~ msgstr "%s: Název souboru obsahuje „..“" #~ msgid "Visible long name error" -#~ msgstr "Viditeln� chyba dlouh�ho n�zvu" - -#~ msgid "Time stamp out of range" -#~ msgstr "�as souboru mimo rozsah" +#~ msgstr "Viditelná chyba dlouhého názvu" #~ msgid "Device number out of range" -#~ msgstr "��slo za��zen� je mimo rozsah" +#~ msgstr "Číslo zařízení je mimo rozsah" #~ msgid "Visible longname error" -#~ msgstr "Viditeln� chyba dlouh�ho n�zvu" +#~ msgstr "Viditelná chyba dlouhého názvu" #~ msgid "Renamed %s to %s" -#~ msgstr "Soubor %s p�ejmenov�n na %s" +#~ msgstr "Soubor %s přejmenován na %s" #~ msgid "%s: Cannot symlink to %s" -#~ msgstr "%s: Symbolick� odkaz na %s nelze vytvo�it" +#~ msgstr "%s: Symbolický odkaz na %s nelze vytvořit" #~ msgid "Symlinked %s to %s" #~ msgstr "%s odkazuje na %s" #~ msgid "Unknown demangling command %s" -#~ msgstr "Nezn�m� p��kaz %s pro spojov�n� rozsekan�ch jmen" +#~ msgstr "Neznámý příkaz %s pro spojování rozsekaných jmen" #~ msgid "Missing file name after -C" -#~ msgstr "Za -C chyb� n�zev souboru" +#~ msgstr "Za -C chybí název souboru" #~ msgid "Copyright %d Free Software Foundation, Inc." #~ msgstr "Copyright %d Free Software Foundation, Inc." @@ -2685,26 +2877,26 @@ msgstr "" #~ "License;\n" #~ "see the file named COPYING for details." #~ msgstr "" -#~ " Toto je voln� �i�iteln� programov� vybaven�, kter� je zcela BEZ " -#~ "Z�RUKY.\n" -#~ "Podm�nky pro kop�rov�n� a roz�i�ov�n� naleznete v Obecn� ve�ejn� licenci " +#~ " Toto je volně šiřitelné programové vybavení, které je zcela BEZ " +#~ "ZÁRUKY.\n" +#~ "Podmínky pro kopírování a rozšiřování naleznete v Obecné veřejné licenci " #~ "GNU\n" -#~ "(GNU General Public Licence). V�ce informac� z�sk�te ve zdrojov�ch " +#~ "(GNU General Public Licence). Více informací získáte ve zdrojových " #~ "textech\n" #~ "v souboru COPYING." #~ msgid "rmtd: Garbage command %c\n" -#~ msgstr "rmtd: Nezn�m� p��kaz %c\n" +#~ msgstr "rmtd: Neznámý příkaz %c\n" #~ msgid "" #~ "GNU `tar' saves many files together into a single tape or disk archive, " #~ "and\n" #~ "can restore individual files from the archive.\n" #~ msgstr "" -#~ " GNU `tar' je archiva�n� program. Ukl�d� soubory do archivu na p�sku " +#~ " GNU „tar“ je archivační program. Ukládá soubory do archivu na pásku " #~ "nebo \n" -#~ "disk. Z archivu dok�e rozbalit jak cel� hierarchie soubor�, tak i " -#~ "jednotliv�\n" +#~ "disk. Z archivu dokáže rozbalit jak celé hierarchie souborů, tak i " +#~ "jednotlivé\n" #~ "soubory.\n" #~ msgid "" @@ -2713,10 +2905,10 @@ msgstr "" #~ "for the equivalent short option also. Similarly for optional arguments.\n" #~ msgstr "" #~ "\n" -#~ " Jestli�e dlouh� p�ep�na�e maj� povinn� argument, pak tento argument je\n" -#~ "povinn� i u jejich kr�tk�ch forem. Obdobn� je tomu v p��pad�, kdy je " +#~ " Jestliže dlouhé přepínače mají povinný argument, pak tento argument je\n" +#~ "povinný i u jejich krátkých forem. Obdobně je tomu v případě, kdy je " #~ "argument\n" -#~ "nepovinn�.\n" +#~ "nepovinný.\n" #~ msgid "" #~ "\n" @@ -2733,19 +2925,19 @@ msgstr "" #~ " --delete delete from the archive (not on mag tapes!)\n" #~ msgstr "" #~ "\n" -#~ "Hlavn� funkce:\n" -#~ " -t, --list vyp��e obsah archivu\n" -#~ " -x, --extract, --get vyzvede soubor(y) z archivu\n" -#~ " -c, --create vytvo�� nov� archiv\n" -#~ " -d, --diff, --compare nalezne rozd�ly mezi archivem a souborov�m " -#~ "syst�mem\n" -#~ " -r, --append p�id� soubory na konec archivu\n" -#~ " -u, --update p�id� pouze soubory nov�j��, ne� jsou v " +#~ "Hlavní funkce:\n" +#~ " -t, --list vypíše obsah archivu\n" +#~ " -x, --extract, --get vyzvedne soubor(y) z archivu\n" +#~ " -c, --create vytvoří nový archiv\n" +#~ " -d, --diff, --compare nalezne rozdíly mezi archivem a souborovým " +#~ "systémem\n" +#~ " -r, --append přidá soubory na konec archivu\n" +#~ " -u, --update přidá pouze soubory novější, než jsou v " #~ "archivu\n" -#~ " -A, --catenate p�id� soubory z tar archivu do archivu\n" -#~ " --concatenate stejn� jako -A\n" -#~ " --delete ma�e z archivu (nefunguje na magnetick�ch " -#~ "p�sk�ch)\n" +#~ " -A, --catenate přidá soubory z tar archivu do archivu\n" +#~ " --concatenate stejné jako -A\n" +#~ " --delete maže z archivu (nefunguje na magnetických " +#~ "páskách)\n" #~ msgid "" #~ "\n" @@ -2770,26 +2962,26 @@ msgstr "" #~ "files\n" #~ msgstr "" #~ "\n" -#~ "Modifik�tory operac�:\n" -#~ " -W, --verify ov��� archiv po z�pisu na m�dium\n" -#~ " --remove-files sma�e origin�ln� soubory po jejich " +#~ "Modifikátory operací:\n" +#~ " -W, --verify ověří archiv po zápisu na médium\n" +#~ " --remove-files smaže originální soubory po jejich " #~ "archivaci\n" -#~ " -k, --keep-old-files nep�episuje existuj�c� soubory p�i " -#~ "rozbalov�n�\n" +#~ " -k, --keep-old-files nepřepisuje existující soubory při " +#~ "rozbalování\n" #~ " archivu\n" -#~ " --overwrite p�episuje existuj�c� soubory p�i " -#~ "rozbalov�n�\n" -#~ " -U, --unlink-first sma�e soubory p�ed jejich p�eps�n�m\n" -#~ " --recursive-unlink sma�e pr�zdn� hierarchie p�ed \n" -#~ " rozbalov�n�m adres���\n" -#~ " -S, --sparse soubory s d�rami zpracuje efektivn�ji\n" -#~ " -O, --to-stdout rozbal� archiv na standardn� v�stup\n" -#~ " -G, --incremental zpracuje star� GNU-form�t inkrement�ln� " -#~ "z�lohy\n" +#~ " --overwrite přepisuje existující soubory při " +#~ "rozbalování\n" +#~ " -U, --unlink-first smaže soubory před jejich přepsáním\n" +#~ " --recursive-unlink smaže prázdné hierarchie před \n" +#~ " rozbalováním adresářů\n" +#~ " -S, --sparse soubory s dírami zpracuje efektivněji\n" +#~ " -O, --to-stdout rozbalí archiv na standardní výstup\n" +#~ " -G, --incremental zpracuje starý GNU-formát inkrementální " +#~ "zálohy\n" #~ " -g, --listed-incremental=SOUBOR\n" -#~ " zpracuje nov� GNU-form�t inkrement�ln� " -#~ "z�lohy\n" -#~ " --ignore-failed-read ignoruje chyby p�i �ten� soubor�\n" +#~ " zpracuje nový GNU-formát inkrementální " +#~ "zálohy\n" +#~ " --ignore-failed-read ignoruje chyby při čtení souborů\n" #~ msgid "" #~ "\n" @@ -2812,32 +3004,32 @@ msgstr "" #~ " --preserve same as both -p and -s\n" #~ msgstr "" #~ "\n" -#~ "Zpracov�n� atribut� soubor�:\n" -#~ " --owner=JM�NO pou�ije JM�NO jako vlastn�ka p�id�van�ch " -#~ "soubor�\n" -#~ " --group=JM�NO pou�ije JM�NO jako skupinu p�id�van�ch " -#~ "soubor�\n" -#~ " --mode=ZM�NY pou�ije jako pr�va (symbolick�) " -#~ "p�id�van�ch\n" -#~ " soubor�\n" -#~ " --atime-preserve nem�n� p��stupov� �as na zpracov�van�ch\n" +#~ "Zpracování atributů souborů:\n" +#~ " --owner=JMÉNO použije JMÉNO jako vlastníka přidávaných " +#~ "souborů\n" +#~ " --group=JMÉNO použije JMÉNO jako skupinu přidávaných " +#~ "souborů\n" +#~ " --mode=ZMĚNY použije jako práva (symbolická) " +#~ "přidávaných\n" +#~ " souborů\n" +#~ " --atime-preserve nemění přístupový čas na zpracovávaných\n" #~ " souborech\n" -#~ " -m, --modification-time u rozbalov�van�ch soubor� nenastav� �as\n" -#~ " posledn� modifikace souboru z archivu\n" -#~ " --same-owner u rozbalov�van�ch soubor� zkou�� nastavit\n" -#~ " stejn�ho vlastn�ka jako je v archivu\n" -#~ " --no-same-owner rozbal� soubory a v�echny budou vlastn�n� " -#~ "V�mi\n" -#~ " --numeric-owner v�dy pou��v� ��sla pro jm�na vlastn�ka/" +#~ " -m, --modification-time u rozbalovávaných souborů nenastaví čas\n" +#~ " poslední modifikace souboru z archivu\n" +#~ " --same-owner u rozbalovávaných souborů zkouší nastavit\n" +#~ " stejného vlastníka jako je v archivu\n" +#~ " --no-same-owner rozbalí soubory a všechny budou vlastněné " +#~ "Vámi\n" +#~ " --numeric-owner vždy používá čísla pro jména vlastníka/" #~ "skupiny\n" -#~ " -p, --same-permissions u rozbalov�van�ch soubor� nastav� stejn�\n" -#~ " pr�va, jak� maj� v archivu\n" -#~ " --no-same-permissions p�i rozbalov�n� nenastavuje pr�va\n" -#~ " --preserve-permissions stejn� jako -p\n" -#~ " -s, --same-order se�azen� jmen soubor� pro rozbalen� je\n" -#~ " stejn� s archivem\n" -#~ " --preserve-order stejn� jako -s\n" -#~ " --preserve stejn� jako zad�n� -p a -s\n" +#~ " -p, --same-permissions u rozbalovávaných souborů nastaví stejná\n" +#~ " práva, jaká mají v archivu\n" +#~ " --no-same-permissions při rozbalování nenastavuje práva\n" +#~ " --preserve-permissions stejné jako -p\n" +#~ " -s, --same-order seřazení jmen souborů pro rozbalení je\n" +#~ " stejné s archivem\n" +#~ " --preserve-order stejné jako -s\n" +#~ " --preserve stejné jako zadání -p a -s\n" #~ msgid "" #~ "\n" @@ -2857,21 +3049,21 @@ msgstr "" #~ " --volno-file=FILE use/update the volume number in FILE\n" #~ msgstr "" #~ "\n" -#~ "V�b�r za��zen�:\n" -#~ " -f, --file=ARCHIV pracuje s archivem nebo za��zen�m " +#~ "Výběr zařízení:\n" +#~ " -f, --file=ARCHIV pracuje s archivem nebo zařízením " #~ "ARCHIV\n" -#~ " --force-local archivn� soubor je lok�ln�, dokonce i " -#~ "kdy�\n" -#~ " obsahuje v n�zvu dvojte�ku\n" -#~ " --rsh-command=P��KAZ pou�ije P��KAZ pro p�ihl�en� m�sto rsh\n" -#~ " -[0-7][lmh] zad�n� za��zen� a hustoty\n" -#~ " -M, --multi-volume pr�ce s v�cesvazkov�m archivem\n" -#~ " -L, --tape-length=��SLO vym�n� p�sku po zaps�n� ��SLO x 1024 " -#~ "bajt�\n" -#~ " -F, --info-script=SOUBOR spust� script na konci ka�d� p�sky\n" +#~ " --force-local archivní soubor je lokální, dokonce i " +#~ "když\n" +#~ " obsahuje v názvu dvojtečku\n" +#~ " --rsh-command=PŘÍKAZ použije PŘÍKAZ pro přihlášení místo rsh\n" +#~ " -[0-7][lmh] zadání zařízení a hustoty\n" +#~ " -M, --multi-volume práce s vícesvazkovým archivem\n" +#~ " -L, --tape-length=ČÍSLO vymění pásku po zapsání ČÍSLO x 1024 " +#~ "bajtů\n" +#~ " -F, --info-script=SOUBOR spustí script na konci každé pásky\n" #~ " (zahrnuje i -M)\n" -#~ " --new-volume-script=SOUBOR stejn� jako -F SOUBOR\n" -#~ " --volno-file=SOUBOR pou�ije/aktualizuje ��slo svazku v " +#~ " --new-volume-script=SOUBOR stejné jako -F SOUBOR\n" +#~ " --volno-file=SOUBOR použije/aktualizuje číslo svazku v " #~ "SOUBORu\n" #~ msgid "" @@ -2884,15 +3076,15 @@ msgstr "" #~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n" #~ msgstr "" #~ "\n" -#~ "Bloky u za��zen�:\n" -#~ " -b, --blocking-factor=BLOK� BLOK� x 512 bajt� na z�znam\n" -#~ " --record-size=VELIKOST VELIKOST bajt� na z�znam, n�sobek 512\n" -#~ " -i, --ignore-zeros ignoruje nulov� bloky v archivu,\n" -#~ " kter� norm�ln� znamenaj� EOF.\n" -#~ " -B, --read-full-records kdy� nen� p�e�teno tolik bajt�,\n" -#~ " kolik je po�adov�no, zkou�� do��st " +#~ "Bloky u zařízení:\n" +#~ " -b, --blocking-factor=BLOKŮ BLOKŮ x 512 bajtů na záznam\n" +#~ " --record-size=VELIKOST VELIKOST bajtů na záznam, násobek 512\n" +#~ " -i, --ignore-zeros ignoruje nulové bloky v archivu,\n" +#~ " které normálně znamenají EOF.\n" +#~ " -B, --read-full-records když není přečteno tolik bajtů,\n" +#~ " kolik je požadováno, zkouší dočíst " #~ "zbytek\n" -#~ " (vhodn� pro roury)\n" +#~ " (vhodné pro roury)\n" #~ msgid "" #~ "\n" @@ -2910,19 +3102,19 @@ msgstr "" #~ "d)\n" #~ msgstr "" #~ "\n" -#~ "V�b�r form�tu archivu:\n" -#~ " -V, --label=N�ZEV vytvo�� archiv s n�zvem svazku " -#~ "N�ZEV\n" -#~ " VZOREK u obsahu/rozbalov�n� glob�ln� " +#~ "Výběr formátu archivu:\n" +#~ " -V, --label=NÁZEV vytvoří archiv s názvem svazku " +#~ "NÁZEV\n" +#~ " VZOREK u obsahu/rozbalování globální " #~ "vzorek\n" -#~ " pro n�zvy soubor�\n" -#~ " -o, --old-archive, --portability zap��e archiv ve form�tu V7\n" -#~ " --posix zap��e archiv ve form�tu POSIX\n" -#~ " -j, --bzip2 komprimuje archiv pomoc� bzip2\n" -#~ " -z, --gzip, --ungzip komprimuje archiv pomoc� gzip\n" -#~ " -Z, --compress, --uncompress komprimuje archiv pomoc� compress\n" -#~ " --use-compress-program=PROG komprimuje archiv pomoc� PROG\n" -#~ " (kter� mus� akceptovat -d)\n" +#~ " pro názvy souborů\n" +#~ " -o, --old-archive, --portability zapíše archiv ve formátu V7\n" +#~ " --posix zapíše archiv ve formátu POSIX\n" +#~ " -j, --bzip2 komprimuje archiv pomocí bzip2\n" +#~ " -z, --gzip, --ungzip komprimuje archiv pomocí gzip\n" +#~ " -Z, --compress, --uncompress komprimuje archiv pomocí compress\n" +#~ " --use-compress-program=PROG komprimuje archiv pomocí PROG\n" +#~ " (který musí akceptovat -d)\n" #~ msgid "" #~ "\n" @@ -2954,36 +3146,36 @@ msgstr "" #~ " -K, --starting-file=NAME begin at file NAME in the archive\n" #~ msgstr "" #~ "\n" -#~ "V�b�r soubor�:\n" -#~ " -C, --directory=ADRES�� operace vykon�v� v ADRES��i\n" -#~ " -T, --files-from=N�ZEV p�i rozbalov�n� nebo vytv��en� bere n�zvy\n" -#~ " soubor� ze souboru N�ZEV\n" -#~ " --null -T �te nulou ukon�en� n�zvy, zak�z�no -C\n" -#~ " --exclude=VZOREK nepracuje se soubory odpov�daj�c� VZORKu\n" -#~ " -X, --exclude-from=SOUBOR nepracuje se soubory, kter� odpov�daj�\n" -#~ " n�kter�mu vzorku v SOUBORu\n" -#~ " --anchored vylu�ovac� (exclude) vzorky se porovn�vaj� " +#~ "Výběr souborů:\n" +#~ " -C, --directory=ADRESÁŘ operace vykonává v ADRESÁŘi\n" +#~ " -T, --files-from=NÁZEV při rozbalování nebo vytváření bere názvy\n" +#~ " souborů ze souboru NÁZEV\n" +#~ " --null -T čte nulou ukončené názvy, zakázáno -C\n" +#~ " --exclude=VZOREK nepracuje se soubory odpovídající VZORKU\n" +#~ " -X, --exclude-from=SOUBOR nepracuje se soubory, které odpovídají\n" +#~ " některému vzorku v SOUBORu\n" +#~ " --anchored vylučovací (exclude) vzorky se porovnávají " #~ "od\n" -#~ " za��tku n�zvu souboru (implicitn�)\n" -#~ " --no-anchored vylu�ovac� vzorky se porovn�vaj� od " -#~ "ka�d�ho /\n" -#~ " --ignore-case vylu�ovac� vzorky ignoruj� velikost znak�\n" -#~ " --no-ignore-case vylu�ovac� vzorky daj� na velikost znak�\n" -#~ " (implicitn�)\n" -#~ " --wildcards vylu�ovac� (exclude) vzorky pou��vaj� ?* a " +#~ " začátku názvu souboru (implicitní)\n" +#~ " --no-anchored vylučovací vzorky se porovnávají od " +#~ "každého /\n" +#~ " --ignore-case vylučovací vzorky ignorují velikost znaků\n" +#~ " --no-ignore-case vylučovací vzorky dají na velikost znaků\n" +#~ " (implicitní)\n" +#~ " --wildcards vylučovací (exclude) vzorky používají ?* a " #~ "pod.\n" -#~ " (implicitn�)\n" -#~ " --no-wildcards vylu�ovac� vzorky jsou prost� �et�zce\n" -#~ " --wildcards-match-slash *? nahrazuj� v n�zvu / (implicitn�)\n" -#~ " --no-wildcards-match-slash *? nenahrazuj� v n�zvu /\n" -#~ " -P, --absolute-names neodstra�uje �vodn� `/' ze jmen soubor�\n" -#~ " -h, --dereference m�sto symbolick�ch odkaz� pou�ije " +#~ " (implicitní)\n" +#~ " --no-wildcards vylučovací vzorky jsou prosté řetězce\n" +#~ " --wildcards-match-slash *? nahrazují v názvu / (implicitní)\n" +#~ " --no-wildcards-match-slash *? nenahrazují v názvu /\n" +#~ " -P, --absolute-names neodstraňuje úvodní „/“ ze jmen souborů\n" +#~ " -h, --dereference místo symbolických odkazů použije " #~ "soubory,\n" -#~ " na kter� odkazy ukazuj�\n" -#~ " --no-recursion neproch�z� adres��e\n" -#~ " -l, --one-file-system p�i vytv��en� archivu z�stane v jednom\n" -#~ " souborov�m syst�mu\n" -#~ " -K, --starting-file=N�ZEV za�ne od souboru N�ZEV z archivu\n" +#~ " na které odkazy ukazují\n" +#~ " --no-recursion neprochází adresáře\n" +#~ " -l, --one-file-system při vytváření archivu zůstane v jednom\n" +#~ " souborovém systému\n" +#~ " -K, --starting-file=NÁZEV začne od souboru NÁZEV z archivu\n" #~ msgid "" #~ " -N, --newer=DATE only store files newer than DATE\n" @@ -2991,11 +3183,11 @@ msgstr "" #~ "only\n" #~ " --after-date=DATE same as -N\n" #~ msgstr "" -#~ " -N, --newer=DATUM archivuje pouze soubory nov�j�� ne� DATUM\n" -#~ " --newer-mtime=DATUM porovn�v� datum a �as pouze pokud byla " -#~ "zm�n�na\n" +#~ " -N, --newer=DATUM archivuje pouze soubory novější než DATUM\n" +#~ " --newer-mtime=DATUM porovnává datum a čas pouze pokud byla " +#~ "změněna\n" #~ " data\n" -#~ " --after-date=DATUM stejn� jako -N\n" +#~ " --after-date=DATUM stejné jako -N\n" #~ msgid "" #~ " --backup[=CONTROL] backup before removal, choose version " @@ -3003,11 +3195,11 @@ msgstr "" #~ " --suffix=SUFFIX backup before removal, override usual " #~ "suffix\n" #~ msgstr "" -#~ " --backup[=TYP] zp�sob z�lohov�n� soubor�, p�ed jejich " -#~ "p�eps�n�m\n" -#~ " --suffix=P��PONA z�lohuje p�ed p�eps�n�m (smaz�n�m), jako " -#~ "p��ponu\n" -#~ " u z�lo�n�ch soubor� pou�ije P��PONU\n" +#~ " --backup[=TYP] způsob zálohování souborů, před jejich " +#~ "přepsáním\n" +#~ " --suffix=PŘÍPONA zálohuje před přepsáním (smazáním), jako " +#~ "příponu\n" +#~ " u záložních souborů použije PŘÍPONU\n" #~ msgid "" #~ "\n" @@ -3023,15 +3215,15 @@ msgstr "" #~ " --confirmation same as -w\n" #~ msgstr "" #~ "\n" -#~ "Informativn� v�stup:\n" -#~ " --help vyp��e tuto n�pov�du a skon��\n" -#~ " --version vyp��e ozna�en� verze programu tar a skon��\n" -#~ " -v, --verbose vypisuje zpracov�van� soubory\n" -#~ " --checkpoint vypisuje n�zvy adres��� p�i �ten� archivu\n" -#~ " --totals vyp��e celkem zapsan�ch bajt� p�i tvorb� archivu\n" -#~ " -R, --block-number s ka�dou zpr�vou vyp��e ��slo bloku v archivu\n" -#~ " -w, --interactive ��d� potvrzen� ka�d� akce\n" -#~ " --confirmation stejn� jako -w\n" +#~ "Informativní výstup:\n" +#~ " --help vypíše tuto nápovědu a skončí\n" +#~ " --version vypíše označení verze programu tar a skončí\n" +#~ " -v, --verbose vypisuje zpracovávané soubory\n" +#~ " --checkpoint vypisuje názvy adresářů při čtení archivu\n" +#~ " --totals vypíše celkem zapsaných bajtů při tvorbě archivu\n" +#~ " -R, --block-number s každou zprávou vypíše číslo bloku v archivu\n" +#~ " -w, --interactive žádá potvrzení každé akce\n" +#~ " --confirmation stejné jako -w\n" #~ msgid "" #~ "\n" @@ -3045,46 +3237,49 @@ msgstr "" #~ "*This* `tar' defaults to `-f%s -b%d'.\n" #~ msgstr "" #~ "\n" -#~ " GNU tar neum� ��st nebo produkovat `--posix' archivy. Jestli�e je\n" -#~ "v prost�ed� nastaveno POSIXLY_CORRECT, GNU roz���en� je zablokov�no " -#~ "p�ep�na�em\n" -#~ "`--posix'. Podpora POSIX form�tu je ��ste�n� implementov�na, proto s n� " -#~ "p��li�\n" -#~ "nepo��tejte.\n" -#~ " ARCHIV m��e b�t SOUBOR, HOSTITEL:SOUBOR nebo U�IVATEL@HOSTITEL:SOUBOR,\n" -#~ "SOUBOR m��e b�t soubor nebo za��zen�. DATUM m��e b�t datum nebo n�zev " -#~ "souboru za��naj�c� `/' nebo `.', pokud chcete pou��t datum souboru.\n" -#~ " Implicitn� p�ep�na�e jsou `-f%s -b%d'.\n" +#~ " GNU tar neumí číst nebo produkovat „--posix“ archivy. Jestliže je\n" +#~ "v prostředí nastaveno POSIXLY_CORRECT, GNU rozšíření je zablokováno " +#~ "přepínačem\n" +#~ "„--posix“. Podpora POSIX formátu je částečně implementována, proto s ní " +#~ "příliš\n" +#~ "nepočítejte.\n" +#~ " ARCHIV může být SOUBOR, HOSTITEL:SOUBOR nebo UŽIVATEL@HOSTITEL:SOUBOR,\n" +#~ "SOUBOR může být soubor nebo zařízení. DATUM může být datum nebo název " +#~ "souboru začínající „/“ nebo „.“, pokud chcete použít datum souboru.\n" +#~ " Implicitní přepínače jsou „-f%s -b%d“.\n" #~ msgid "Obsolete option, now implied by --blocking-factor" -#~ msgstr "Zastaral� p�ep�na�, nyn� zahrnut v p�ep�na�i --blocking-factor" +#~ msgstr "Zastaralý přepínač, nyní zahrnut v přepínači --blocking-factor" #~ msgid "Obsolete option name replaced by --blocking-factor" -#~ msgstr "Zastaral� p�ep�na�, nahrazen p�ep�na�em --blocking-factor" +#~ msgstr "Zastaralý přepínač, nahrazen přepínačem --blocking-factor" #~ msgid "Obsolete option name replaced by --read-full-records" -#~ msgstr "Zastaral� p�ep�na�, nahrazen p�ep�na�em --read-full-records" +#~ msgstr "Zastaralý přepínač, nahrazen přepínačem --read-full-records" + +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "Upozornění: přepínač -I není podporován; nemysleli jste -j nebo -T?" #~ msgid "Obsolete option name replaced by --touch" -#~ msgstr "Zastaral� p�ep�na�, nahrazen p�ep�na�em --touch" +#~ msgstr "Zastaralý přepínač, nahrazen přepínačem --touch" #~ msgid "Obsolete option name replaced by --absolute-names" -#~ msgstr "Zastaral� p�ep�na�, nahrazen p�ep�na�em --absolute-names" +#~ msgstr "Zastaralý přepínač, nahrazen přepínačem --absolute-names" #~ msgid "Obsolete option name replaced by --block-number" -#~ msgstr "Zastaral� p�ep�na�, nahrazen p�ep�na�em --block-number" +#~ msgstr "Zastaralý přepínač, nahrazen přepínačem --block-number" #~ msgid "Warning: the -y option is not supported; perhaps you meant -j?" -#~ msgstr "Upozorn�n�: p�ep�na� -y nen� podporov�n; nemysleli jste -j?" +#~ msgstr "Upozornění: přepínač -y není podporován; nemysleli jste -j?" #~ msgid "Obsolete option name replaced by --backup" -#~ msgstr "Zastaral� p�ep�na�, nahrazen p�ep�na�em --backup" +#~ msgstr "Zastaralý přepínač, nahrazen přepínačem --backup" #~ msgid "Written by John Gilmore and Jay Fenlason." -#~ msgstr "Auto�i: John Gilmore a Jay Fenlason." +#~ msgstr "Autoři: John Gilmore a Jay Fenlason." #~ msgid "Error exit delayed from previous errors" -#~ msgstr "Za b�hu programu nastala chyba" +#~ msgstr "Za běhu programu nastala chyba" #~ msgid "" #~ "If a long option shows an argument as mandatory, then it is mandatory\n" @@ -3095,13 +3290,13 @@ msgstr "" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" -#~ " Povinn� argumenty u dlouh�ch p�ep�na��, jsou povinn� tak� u " -#~ "odpov�daj�c�ch \n" -#~ "kr�tk�ch p�ep�na��.\n" +#~ " Povinné argumenty u dlouhých přepínačů, jsou povinné také u " +#~ "odpovídajících \n" +#~ "krátkých přepínačů.\n" #~ "\n" -#~ " -l, --file-length d�lka generovan�ho souboru\n" -#~ " --help vyp��e tuto n�pov�du a skon��\n" -#~ " --version vyp��e ozna�en� verze a skon��\n" +#~ " -l, --file-length délka generovaného souboru\n" +#~ " --help vypíše tuto nápovědu a skončí\n" +#~ " --version vypíše označení verze a skončí\n" #~ msgid "Ambiguous pattern `%s'" -#~ msgstr "Nejednozna�n� vzorek `%s'" +#~ msgstr "Nejednoznačný vzorek „%s“" diff --git a/po/da.gmo b/po/da.gmo index 18f06cff43b9978ffd629c97066945d67e89ba38..d9befddb41ebb8d09552c8890fd239b56bdd9ff8 100644 Binary files a/po/da.gmo and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po index a729114cf9788e10b1c472ed7a0dbd76e769136f..1318e904fc0e77b97f64de55cd9b9add3a749c97 100644 --- a/po/da.po +++ b/po/da.po @@ -1,301 +1,205 @@ # Danish messages for GNU tar. # Copyright (C) 1996 Free Software Foundation, Inc. -# Keld J�rn Simonsen <keld@dkuug.dk>, 2000-2001. +# This file is distributed under the same license as the tar package. # Claus Hindsgaul <claus_h@image.dk>, 2001. +# Keld J�rn Simonsen <keld@dkuug.dk>, 2000-2001,2009. # msgid "" msgstr "" -"Project-Id-Version: GNU tar 1.13.25\n" +"Project-Id-Version: GNU tar 1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2002-03-27 13:57+0100\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-05-26 13:57+0200\n" "Last-Translator: Keld J�rn Simonsen <keld@dkuug.dk>\n" -"Language-Team: Danish <dansk@klid.dk>\n" +"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "ugyldigt argument %s for %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "flertydigt argument '%s' for %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Gyldige argumenter er:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" -msgstr "" +msgstr "Brug:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " -msgstr "" +msgstr " eller: " -#: lib/argp-help.c:1655 -#, fuzzy +#: gnu/argp-help.c:1655 msgid " [OPTION...]" -msgstr "" -"\n" -"Brug: %s [FLAG]...\n" +msgstr " [FLAG...}" -#: lib/argp-help.c:1682 -#, fuzzy, c-format +#: gnu/argp-help.c:1682 +#, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" -msgstr "Pr�v '%s --help' for mere information.\n" +msgstr "Pr�v '%s --help' eller '%s --usage' for mere information.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 -#, fuzzy, c-format +#: gnu/argp-help.c:1710 +#, c-format msgid "Report bugs to %s.\n" -msgstr "" -"\n" -"Rapport�r fejl til <bugs-tar@gnu.org>.\n" +msgstr "Rapport�r fejl til %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Ukendt systemfejl" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 -#, fuzzy, c-format +#: gnu/argp-parse.c:613 +#, c-format msgid "%s: Too many arguments\n" -msgstr "%s: flag '%s' kr�ver et argument\n" +msgstr "%s: For mange argumenter\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "skrivefejl" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: flag '%s' er flertydigt\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: flag '%s' tillader ikke et argument\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: flag '%c%s' tillader ikke et argument\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: flag '%s' kr�ver et argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: ukendt flag '--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: ukendt flag '%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: ulovligt flag -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: ugyldigt flag -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: flag kr�ver et argument -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: flag '-W %s' er flertydigt\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: flag '-W %s' tillader ikke et argument\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "hovedlager opbrugt" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Kan ikke �ndre arbejdskatalog" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Kan ikke gemme arbejdskatalog" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Kan ikke %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Advarsel: Kan ikke %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Kan ikke �ndre modus til %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Kan ikke �ndre ejerskab til bruger-ID %lu, gruppe-ID %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Kan ikke oprette l�nke til %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: L�sefejl ved byte %s, ved l�sning af %lu byte" -msgstr[1] "%s: L�sefejl ved byte %s, ved l�sning af %lu byte" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Advarsel: L�sefejl ved byte %s, ved l�sning af %lu byte" -msgstr[1] "%s: Advarsel: L�sefejl ved byte %s, ved l�sning af %lu byte" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Kan ikke s�ge til %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Advarsel: Kan ikke s�ge til %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Kan ikke oprette symbolsk l�nke til '%s'" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Kunne kun skrive %lu af %lu byte" -msgstr[1] "%s: Kunne kun skrive %lu af %lu byte" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Fjerner indledende '%.*s' fra medlemsnavne" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Fjerner indledende '/' fra absolutte l�nker" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Fjerner indledende '%.*s' fra medlemsnavne" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -309,17 +213,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "'" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -329,7 +233,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[jJyY]" @@ -339,38 +243,28 @@ msgstr "^[jJyY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Tjeneste ikke tilg�ngelig" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "standard-ind" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "standard-ud" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Kan ikke eksekvere fjern skal" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -381,19 +275,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Skrevet af Fran�ois Pinard <pinard@iro.umontreal.ca>" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Skrevet af Fran�ois Pinard <pinard@iro.umontreal.ca>" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Skrevet af Fran�ois Pinard <pinard@iro.umontreal.ca>" @@ -401,7 +295,7 @@ msgstr "Skrevet af Fran #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -411,7 +305,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -421,7 +315,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -431,7 +325,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -441,7 +335,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -452,7 +346,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -463,7 +357,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -475,182 +369,330 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Rapport�r fejl til %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Rapport�r fejl til <bugs-tar@gnu.org>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Kan ikke %s" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Advarsel: Kan ikke %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Kan ikke �ndre modus til %s" + +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Kan ikke �ndre ejerskab til bruger-ID %lu, gruppe-ID %lu" + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Kan ikke oprette l�nke til %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: L�sefejl ved byte %s, ved l�sning af %lu byte" +msgstr[1] "%s: L�sefejl ved byte %s, ved l�sning af %lu byte" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Advarsel: L�sefejl ved byte %s, ved l�sning af %lu byte" +msgstr[1] "%s: Advarsel: L�sefejl ved byte %s, ved l�sning af %lu byte" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Kan ikke s�ge til %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Advarsel: Kan ikke s�ge til %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Kan ikke oprette symbolsk l�nke til '%s'" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Kunne kun skrive %lu af %lu byte" +msgstr[1] "%s: Kunne kun skrive %lu af %lu byte" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Fjerner indledende '%s' fra medlemsnavne" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Fjerner indledende '%s' fra absolutte l�nkem�l" + +#: lib/paxnames.c:169 +#, fuzzy +msgid "Substituting `.' for empty member name" +msgstr "Fjerner indledende '%.*s' fra medlemsnavne" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Kan ikke allokere plads til buffer\n" +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Tjeneste ikke tilg�ngelig" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Kan ikke allokere plads til buffer" +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "standard-ind" -#: rmt/rmt.c:304 +#: lib/rtapelib.c:306 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Pr�v '%s --help' for mere information.\n" +msgid "stdout" +msgstr "standard-ud" -#: rmt/rmt.c:308 -#, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Brug: %s [FLAG]\n" -"Behandl en b�ndstation, med kommandoer fra en anden proces.\n" -"\n" -" --help vis denne hj�lpetekst\n" -" --version vis programversion\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Kan ikke eksekvere fjern skal" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "S�geretning uden for omr�de" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "S�geposition uden for omr�de" +msgid "Invalid seek direction" +msgstr "Ugyldig modus angivet i flag" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Ugyldigt tidsstempel" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "S�geposition uden for omr�de" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "S�geretning uden for omr�de" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Ugyldig b�ndl�ngde" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "S�geposition uden for omr�de" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: For tidlig filafslutning\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "For tidlig filafslutning" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "%s: ugyldigt flag -- %c\n" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Uventet filslutning i arkivet" -#: rmt/rmt.c:672 +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "kan ikke �ndre ejer (chown) '%s'" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Ugyldig kommando" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Dette ligner ikke et tar-arkiv" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Totalt antal byte skrevet: %s (%sB, %sB/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Totalt antal byte skrevet: %s (%sB, %sB/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(datakanal)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Ugyldig v�rdi for record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Arkivnavn er ikke opgivet" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Kan ikke verificere standard-ind/standard-ud arkiver" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Kan ikke opdatere komprimerede arkiver" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Ved begyndelsen af b�ndet, afslutter nu" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "For mange fejl, afslutter" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Postst�rrelse = %lu blokke" msgstr[1] "Postst�rrelse = %lu blokke" -#: src/buffer.c:718 +#: src/buffer.c:765 #, fuzzy, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Ikke-justeret blok (%lu byte) i arkiv" msgstr[1] "Ikke-justeret blok (%lu byte) i arkiv" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Kunne ikke g� tilbage i arkivfilen. Den kan v�re ul�selig uden -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: indeholder ugyldigt delarkivs-nummer" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Overl�b p� delarkiv-nummer" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Klarg�r delarkiv nummer %d for %s og tryk retur: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Filafslutning hvor svar fra bruger var forventet" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ADVARSEL: Arkivet er ufuldst�ndigt" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -662,124 +704,124 @@ msgstr "" " ! Start en skal\n" " ? Skriv denne list\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Intet nyt delarkiv; afslutter.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "'%s'-kommando mislykkedes" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s forts�tter ikke i dette delarkiv" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s forts�tter ikke i dette delarkiv" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s har forkert st�rrelse (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Dette delarkiv kommer ude af r�kkef�lge" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkivet er ikke navngivet til at passe med %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Volumenet '%s' stemmer ikke overens med %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Kunne kun l�se %lu af %lu byte" msgstr[1] "Kunne kun l�se %lu af %lu byte" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Indhold er forskelligt" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Uventet filslutning i arkivet" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Filtype er forskellig" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Modus er forskellig" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Bruger-ID er forskellig" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gruppe-ID er forskellig" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Modificeringstid er forskellig" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "St�rrelse er forskellig" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Ikke l�nket til %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolsk l�nke er forskellig" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Enhedsnummer er forskellig" @@ -801,34 +843,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "VERIFIKASIONSFEJL: %d ukendte hoveder fundet" msgstr[1] "VERIFIKASIONSFEJL: %d ukendte hoveder fundet" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "v�rdi %s ud af %s omr�de %s..%s; erstatter %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "v�rdi %s ud af %s omr�de %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Genererer negative oktale hoveder" @@ -847,438 +889,439 @@ msgstr "%s: file er u msgid "%s: link name is too long; not dumped" msgstr "%s: file er u�ndret; ikke lagret" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Filen formindsket med %s byte, fylder ud med nuller" msgstr[1] "%s: Filen formindsket med %s byte, fylder ud med nuller" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fil er p� et andet filesystem. Ikke lagret" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Ukendt filtype; filen blev ignoreret" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " l�nke til %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: file er u�ndret; ikke lagret" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format -msgid "%s: file is the archive; not dumped" -msgstr "%s: fil er det samme som arkivet; ikke lagret" - -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Fil fjernet f�r vi l�ste den" +msgid "%s: file is the archive; not dumped" +msgstr "%s: fil er det samme som arkivet; ikke lagret" -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: Fil �ndredes mens vi l�ste den" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: sokkel ignoreret" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: d�r ignoreret" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Hopper til n�ste hoved" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Sletter ikke-hoved fra arkivet" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: tidsstempel %s er %lu s i fremtiden" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Uventet uoverensstemmelse ved oprettelse af katalog" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Katalog omd�bt f�r dets status kunne blive udtrukket" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Udtr�kker sammenh�ngende filer som almindelige filer" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Fors�ger at udtr�kke symbolske l�nker som h�rde l�nker" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "L�ser %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Kan ikke udtr�kke -- filen er fortsat fra et tidligere delarkiv" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Uventet filafslutning i �delagte navne" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Ukendt filtype '%c', udtrukket som en almindelig fil" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Kunne ikke sikkerhedskopiere denne fil" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: Kan ikke omd�be til %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Fejl kan ikke reddes; afslutter nu" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Kataloget er blevet omd�bt" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Kataloget er blevet omd�bt" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Kataloget er nyt" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Ugyldigt tidsstempel" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Ugyldig modus angivet i flag" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Ugyldigt enhedsnummer" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Ugyldigt inode-nummer" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Uventet filslutning i arkivet" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "kan ikke oprette kataloget '%s'" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, fuzzy, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: fil er p� et andet filesystem. Ikke lagret" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Sletter %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "Kan ikke slette %s" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "Udelader %s" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok med NUL-er **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Slut p� fil **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Blank-tegn i hovedet hvor numerisk %s v�rdi var forventet" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "Arkiv oktal v�rdi %.*s er udenfor %s omr�de; antager to-komplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Arkiv oktal v�rdi %.*s er udenfor %s omr�de" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arkiv indeholder for�ldede base-64 hoveder" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Arkiv base-64 streng med fortegn %s er uden for %s omr�de" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Arkiv base-256 v�rdi er uden for %s omr�de" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arkiv indeholder %.*s hvor numerisk %s v�rdi var forventet" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Arkiv v�rdi %s er udenfor %s omr�de %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " l�nke til %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " ukendt filtype %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Volumenhoved--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Forts�tter ved byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Opretter katalog:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Omd�ber %s til %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Kan ikke omd�be til %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Omd�ber %s tilbage til %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Kan ikke gemme arbejdskatalog" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Kan ikke �ndre arbejdskatalog" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Fil fjernet f�r vi l�ste den" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Fil fjernet f�r vi l�ste den" + +#: src/misc.c:795 msgid "child process" msgstr "underproces" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "mellemproces-kanal" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Blev ikke fundet i arkivet" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Blev ikke fundet i arkivet" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Flagene '-%s' and '-%s' vil begge have standard inddata" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: ugyldig gruppe" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-funktioner fors�gt p� inkompatibelt arkiv-format" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1297,7 +1340,7 @@ msgstr "" " %s -tvf arkiv.tar # List alle filer i arkiv.tar udf�rligt.\n" " %s -xf arkiv.tar # Udtr�k alle filer fra arkiv.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1321,88 +1364,81 @@ msgstr "" " ellers simple\n" " never, simple lav simple sikkerhedskopier\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Uventet filslutning i arkivet" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 #, fuzzy msgid "append files to the end of an archive" msgstr "%d overfl�dige byte ignoreret ved slutningen p� arkiv" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1410,577 +1446,565 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 #, fuzzy msgid "extract files to standard output" msgstr "Fejl ved skrivning til standard uddata" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "Kan ikke verificere arkiv som g�r over flere delarkiver" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Konflikt i flagene for arkiv-format" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Konflikt i komprimeringsflag" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: fil er det samme som arkivet; ikke lagret" - -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: fil er det samme som arkivet; ikke lagret" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: fil er det samme som arkivet; ikke lagret" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: fil er det samme som arkivet; ikke lagret" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: fil er det samme som arkivet; ikke lagret" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Kan ikke �ndre arbejdskatalog" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Fjerner indledende '/' fra absolutte l�nker" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "Volumenet '%s' stemmer ikke overens med %s" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1988,275 +2012,291 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Du kan ikke angive mere end et af '-Acdtrux'-flagene" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Konflikt i komprimeringsflag" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " ukendt filtype %s\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Datofil ikke fundet" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Erstatter %s for ukendt dato-format %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: fil er det samme som arkivet; ikke lagret" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "%s: fil er det samme som arkivet; ikke lagret" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Ugyldig blokfaktor" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Ugyldig b�ndl�ngde" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Mere end �n gr�nse-dato" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: ugyldig gruppe" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Ugyldig modus angivet i flag" -#: src/tar.c:1774 +#: src/tar.c:1894 #, fuzzy msgid "Invalid number" msgstr "Ugyldigt inode-nummer" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Ugyldig ejer" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Ugyldig postst�rrelse" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Postst�rrelse skal v�re deleligt med %d." -#: src/tar.c:1872 +#: src/tar.c:2000 #, fuzzy msgid "Invalid number of elements" msgstr "Ugyldig b�ndl�ngde" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, fuzzy, c-format msgid "Unknown density: `%c'" msgstr "Ukendt m�nster '%s'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "" "Flagene '-[0-7][lmh]' underst�ttes ikke af *denne* implementering af tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Gammelt flag '%c' beh�ver et argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Ved flere arkivfiler kr�ves '-M'-flaget" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Kan ikke kombinere --listed-incremental med --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, fuzzy, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: etikette p� delarkiv er for lang (gr�nse er %lu byte)" msgstr[1] "%s: etikette p� delarkiv er for lang (gr�nse er %lu byte)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Kan ikke verificere arkiv som g�r over flere delarkiver" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Kan ikke verificere komprimerede arkiver" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Kan ikke bruge komprimerede arkiver som g�r over flere delarkiver" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Kan ikke opdatere komprimerede arkiver" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "N�gter st�digt at oprette et tomt arkiv" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Flagene '-Aru' er inkompatible med '-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Du skal angive et af '-Acdtrux'-flagene" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2268,79 +2308,84 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Filen formindskedes med %s byte" msgstr[1] "%s: Filen formindskedes med %s byte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Tidsstempel uden for omr�de" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "Arkiv base-64 streng med fortegn %s er uden for %s omr�de" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Arkiv v�rdi %s er udenfor %s omr�de %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2382,236 +2427,300 @@ msgstr "Skriver kontrolpunkt %d" msgid "Read checkpoint %u" msgstr "L�ser kontrolpunkt %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Gener�r datafiler for GNU tar testpakke.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Konflikt i komprimeringsflag" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Fejl ved skrivning til standard uddata" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [FLAG...}" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Ugyldigt tidsstempel" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Inode-nummer uden for omr�de" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Ukendt systemfejl" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "kan ikke �ndre ejer (chown) '%s'" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Kan ikke lukke" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "Ukendt m�nster '%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "kan ikke oprette kataloget '%s'" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "kan ikke �ndre ejer (chown) '%s'" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "Underproces d�de med signal %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--�delagte filnavne--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: ulovligt flag -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Advarsel: -I flaget er ikke underst�ttet; m�ske mente du -j eller -T?" +#~ "\n" +#~ "Rapport�r fejl til <bugs-tar@gnu.org>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "L�ser %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Fejl kan ikke reddes; afslutter nu" + +#, fuzzy +#~ msgid "filter the archive through compress" +#~ msgstr "%s: fil er det samme som arkivet; ikke lagret" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "%s: fil er det samme som arkivet; ikke lagret" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "%s: fil er det samme som arkivet; ikke lagret" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Kan ikke allokere plads til buffer\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Kan ikke allokere plads til buffer" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Pr�v '%s --help' for mere information.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Brug: %s [FLAG]\n" +#~ "Behandl en b�ndstation, med kommandoer fra en anden proces.\n" +#~ "\n" +#~ " --help vis denne hj�lpetekst\n" +#~ " --version vis programversion\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "S�geposition uden for omr�de" + +#~ msgid "Premature end of file" +#~ msgstr "For tidlig filafslutning" #~ msgid "block size" #~ msgstr "blokst�rrelse" @@ -2647,9 +2756,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Fejl p� et langt navn" -#~ msgid "Time stamp out of range" -#~ msgstr "Tidsstempel uden for omr�de" - #~ msgid "Device number out of range" #~ msgstr "Enhedsnummer er uden for omr�de" @@ -3034,6 +3140,10 @@ msgstr "" #~ msgid "Obsolete option name replaced by --read-full-records" #~ msgstr "For�ldet flag skiftet ud med --read-full-records" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Advarsel: -I flaget er ikke underst�ttet; m�ske mente du -j eller -T?" + #~ msgid "Obsolete option name replaced by --touch" #~ msgstr "For�ldet flag skiftet ud med --touch" diff --git a/po/de.gmo b/po/de.gmo index 745c4d8ca0fe04f9354ee46f8927701e3db39ca2..69384998f54d28008e500c74ae2b1ba1e83b222d 100644 Binary files a/po/de.gmo and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index 9219c0492acc837641733593dfeae4c96ef8d34e..b5d3616fc178002eb521fb2d153c11d8dc7f1663 100644 --- a/po/de.po +++ b/po/de.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2009-01-05 10:25+0100\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-03-26 10:05+0100\n" "Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -19,282 +19,190 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "ungültiges Argument %s für %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "mehrdeutiges Argument %s für %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Zulässige Argumente sind:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s-Wert ist kleiner oder gleich %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT-Parameter benötigt einen Wert" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT-Parameter muss positiv sein" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: unbekannter ARGP_HELP_FMT-Parameter" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Müll in ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -"Erforderlich oder optionale Argumente für lange Optionen sind ebenso " +"Erforderliche oder optionale Argumente für lange Optionen sind ebenso " "erforderlich bzw. optional für die entsprechenden Kurzoptionen." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Aufruf:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " oder: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [OPTION...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "„%s --help“ oder „%s --usage“ gibt weitere Informationen.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Unbekannter Systemfehler." -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "diese Hilfe ausgeben" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "eine kurze Benutzungsübersicht ausgeben" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NAME" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "den Programmnamen setzen" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SEK" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "für SEK Sekunden hängenbleiben (Voreinst.: 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "Programmversion ausgeben" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(PROGRAMMFEHLER) Keine Version bekannt!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Zu viele Argumente\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(PROGRAMMFEHLER) Option hätte erkannt werden müssen!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "Schreibfehler" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: Option „%s“ ist mehrdeutig\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: Option „--%s“ erlaubt keinen Parameter\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: Option „%c%s“ erlaubt keinen Parameter.\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: Option „%s“ benötigt einen Parameter.\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: Unbekannte Option „--%s“\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: Unbekannte Option „%c%s“\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: Unzulässige Option -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: Ungültige Option -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: Option benötigt einen Parameter -- %c.\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: Option „-W %s“ ist mehrdeutig.\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: Option „-W %s“ erlaubt keinen Parameter.\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "Kein Speicher mehr" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "Kann Arbeitsverzeichnis nicht aufzeichnen." -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" -msgstr "Konnde nicht zu ursprünglichem Arbeitsverzeichnis zurückkehren." - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Kann %s nicht ausführen" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Warnung: Kann %s nicht ausführen" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Kann Zugriffsrechte nicht zu %s ändern" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Kann Datei-Eigentümer nicht zu uid %lu, gid %lu ändern" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Kann nicht zu „%s“ linken" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Lesefehler bei Byte %s beim Lesen von einem Byte" -msgstr[1] "%s: Lesefehler bei Byte %s beim Lesen von %lu Bytes" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Warnung: Lesefehler bei Byte %s beim Lesen von einem Byte" -msgstr[1] "%s: Warnung: Lesefehler bei Byte %s beim Lesen von %lu Bytes" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Kann nicht auf %s positionieren" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Warnung. Kann nicht auf %s positionieren" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Kann keinen symbolischen Link auf „%s“ anlegen" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Nur %lu von %lu Byte geschrieben" -msgstr[1] "%s: Nur %lu von %lu Bytes geschrieben" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Entferne führende „%s“ von Elementnamen" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Entferne führende „%s“ von Zielen harter Verknüpfungen" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Ersetze „.“ für leeren Elementnamen" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Ersetze „.“ für leeres Ziel einer harten Verknüpfung" +msgstr "Konnte nicht zu ursprünglichem Arbeitsverzeichnis zurückkehren." #. TRANSLATORS: #. Get translations for open and closing quotation marks. @@ -309,17 +217,17 @@ msgstr "Ersetze „.“ für leeres Ziel einer harten Verknüpfung" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "„" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "“" @@ -329,7 +237,7 @@ msgstr "“" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yYjJ]" @@ -339,39 +247,28 @@ msgstr "^[yYjJ]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Service nicht verfügbar." - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "Standardeingabe" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "Standardausgabe" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Kann Remote-Shell nicht ausführen." +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -388,19 +285,19 @@ msgstr "" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Geschrieben von %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Geschrieben von %s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Geschrieben von %s, %s und %s.\n" @@ -408,7 +305,7 @@ msgstr "Geschrieben von %s, %s und %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +317,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +329,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -444,7 +341,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -456,7 +353,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -470,7 +367,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -484,7 +381,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -499,253 +396,401 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Homepage von %s: <http://www.gnu.org/software/%s/>.\n" + +#: gnu/version-etc.c:258 +#, fuzzy +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "Allgemeine Hilfe zu GNU-Software: <http://www.gnu.org/gethelp/>.\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Kann %s nicht ausführen" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Eingabezeichenkette zu lang" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Warnung: Kann %s nicht ausführen" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Syntaxfehler in der Zahl" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Kann Zugriffsrechte nicht zu %s ändern" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Kann Speicherplatz für Puffer nicht reservieren.\n" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Kann Datei-Eigentümer nicht zu uid %lu, gid %lu ändern" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Kann keinen Speicher für Puffer reservieren." +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Kann keine harte Verknüpfung zu „%s“ anlegen" -#: rmt/rmt.c:304 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "„%s --help“ zeigt weitere Informationen.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Lesefehler bei Byte %s beim Lesen von einem Byte" +msgstr[1] "%s: Lesefehler bei Byte %s beim Lesen von %lu Bytes" -#: rmt/rmt.c:308 +#: lib/paxerror.c:192 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Warnung: Lesefehler bei Byte %s beim Lesen von einem Byte" +msgstr[1] "%s: Warnung: Lesefehler bei Byte %s beim Lesen von %lu Bytes" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Kann nicht auf %s positionieren" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Warnung: Kann nicht auf %s positionieren" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Kann keine symbolische Verknüpfung zu „%s“ anlegen" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Nur %lu von einem Byte geschrieben" +msgstr[1] "%s: Nur %lu von %lu Bytes geschrieben" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Entferne führende „%s“ von Elementnamen" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Entferne führende „%s“ von Zielen harter Verknüpfungen" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Ersetze „.“ für leeren Elementnamen" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Ersetze „.“ für leeres Ziel einer harten Verknüpfung" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Service nicht verfügbar." + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "Standardeingabe" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "Standardausgabe" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Aufruf: %s [OPTION]\n" -"Arbeiten mit einem Bandlaufwerk, Kommandos können von einem anderen Prozess " -"stammen.\n" -"\n" -" --version Versionsinformation ausgeben\n" -" --help diesen Hilfetext ausgeben\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Fehler bei der Positionierungsangabe." +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Kann Remote-Shell nicht ausführen." + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Richtung für Positionierung nicht zulässig." + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Ungültige Zugriffsrechte angegeben." + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Ungültige Größe: %s" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Positionierungsangabe außerhalb des zulässigen Bereichs." -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Richtung für Positionierung nicht zulässig." +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Ungültige Bandlänge" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Positionierungsangabe außerhalb des zulässigen Bereichs." -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Vorzeitiges Dateiende.\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Vorzeitiges Dateiende." +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Hauptsächlicher Arbeitsmodus:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Unerwartetes Dateiende in verstümmelten Namen." + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "ZAHL" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "DATEI" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "kann „%s“ nicht öffnen" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "zu viele Argumente" + +#: rmt/rmt.c:803 msgid "Garbage command" -msgstr "Ungültiges Kommando." +msgstr "Ungültiges Befehl." -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Das sieht nicht wie ein „tar“-Archiv aus." -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Gesamtzahl geschriebener Bytes" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Gesamtzahl gelesener Bytes" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Gesamtzahl gelöschter Bytes: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Ungültiger Wert für „record_size“." -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Kein Archivname angegeben" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Kann Archive auf Standard-Ein-/Ausgabe nicht prüfen." -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archiv ist komprimiert. Benutzen Sie die Option %s." -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Kann komprimierte Archive nicht aktualisieren" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Am Anfang des Mediums, beende jetzt." -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Zu viele Fehler, beende." -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Recordgröße = %lu Block" msgstr[1] "Recordgröße = %lu Blöcke" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Falsch ausgerichteter Block (ein Byte) im Archiv." msgstr[1] "Falsch ausgerichteter Block (%lu Bytes) im Archiv." -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Kann Archiv-Datei nicht zurücksetzen; könnte ohne „-i“ unlesbar sein." -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "„rmtlseek“ nicht an Recordgrenze angehalten" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: enthält ungültige Teil-Nummer." -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Teil-Nummer zu groß." -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Medium #%d für %s einlegen und Eingabetaste drücken: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Dateiende gefunden, Benutzereingabe erwartet" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "WARNUNG: Archiv unvollständig" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" " q Abort tar\n" " y or newline Continue operation\n" msgstr "" -" n Name für die nächsten (und folgenden) Medien neuen Dateinamen " +" n Name für die nächsten (und folgenden) Medien neuen Dateinamen " "angeben\n" -" q „tar“ abbrechen\n" -" j oder Enter fortfahren\n" +" q „tar“ abbrechen\n" +" j oder Enter fortfahren\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" -msgstr " ! Shell in einem Unterprozess starten\n" +msgstr " ! Shell in einem Unterprozess starten\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" -msgstr " ? diese Liste ausgeben\n" +msgstr " ? diese Liste ausgeben\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Kein neues Medium; halte an.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Dateiname nicht angegeben. Versuchen Sie es noch einmal.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ungültige Eingabe. Geben Sie „?“ für Hilfe ein.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" -msgstr "„%s“-Kommando gescheitert." +msgstr "„%s“-Befehl gescheitert." -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s wird möglicherweise auf diesem Teil fortgesetzt: Kopf enthält " "abgeschnittenen Namen." -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "Dieser Teil ist keine Fortsetzung von %s." -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s hat die falsche Größe (%s != %s + %s)." -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Dieser Teil ist nicht an der Reihe (%s - %s != %s)." -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Kennzeichnung des Archivs passt nicht zu „%s“." -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Teil „%s“ passt nicht zu „%s“." -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -753,60 +798,60 @@ msgstr "" "%s: Dateiname zu lang, um in einem GNU-Mehrteil-Kopf abgelegt werden zu " "können, abgeschnitten" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "Schreiben endete nicht an Blockgrenze" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Konnte nur %lu von %lu Byte lesen" msgstr[1] "Konnte nur %lu von %lu Bytes lesen" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Unterschiedliche Inhalte" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Unerwartetes Dateiende im Archiv." -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Unterschiedliche Dateitypen " -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Modus ist unterschiedlich" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Benutzerkennung ist unterschiedlich" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gruppenkennung ist unterschiedlich" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Änderungszeit ist unterschiedlich" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Größe ist unterschiedlich" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" -msgstr "Nicht auf „%s“ gelinkt." +msgstr "Nicht mit „%s“ verknüpft" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" -msgstr "Symbolischer Link ist unterschiedlich." +msgstr "Symbolische Verknüpfung ist unterschiedlich" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Unterschiedliche Gerätenummern" @@ -828,34 +873,34 @@ msgstr "Archiv enthält Dateinamen, deren Präfixe entfernt wurden." msgid "Verification may fail to locate original files." msgstr "Die Überprüfung findet möglicherweise die Originaldateien nicht." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "FEHLER BEI PRÜFUNG: %d ungültiger Kopfteil erkannt." msgstr[1] "FEHLER BEI PRÜFUNG: %d ungültige Kopfteile erkannt." -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Ein einzelner Nullblock bei %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: enthält eine „Cache-Verzeichnis“-Markierung %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "Wert %s außerhalb des %s-Bereich %s..%s; ersetze durch %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "Wert %s außerhalb des %s-Bereichs %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Erzeuge negative oktale Kopfteile" @@ -875,344 +920,331 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: Verknüpfungsname ist zu lang; nicht gesichert." -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "Datei %s ist um ein Byte geschrumpft, fülle mit Null auf." msgstr[1] "Datei %s ist um %s Bytes geschrumpft, fülle mit Nullen auf." -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "Datei %s liegt auf einem anderen Dateisystem; nicht gesichert." -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "Inhalt nicht gesichert" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Unbekannter Dateityp; Datei ignoriert." -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" -msgstr "Fehlende Verküpfungen zu %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." +msgstr "Fehlende Verknüpfungen zu %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "Datei %s ist unverändert; nicht gesichert." -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s ist das Archiv; nicht gesichert." -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Datei gelöscht, bevor sie gelesen wurde." - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "Verzeichnis nicht gesichert" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: Datei hat sich beim Lesen geändert." -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: Socket ignoriert" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: Klappe ignoriert" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Springe zum nächsten Kopfteil." -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Lösche nicht-Kopfteil aus dem Archiv" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: unplausibel alter Zeitstempel %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: Zeitstempel %s liegt %s Sekunden in der Zukunft." -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Unerwarteter Inkonsitenz beim Erstellen des Verzeichnisses." -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Verzeichnis umbenannt bevor sein Status ermittelt werden konnte" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Extrahiere zusammenhängende Dateien („contiguous files“) als reguläre." -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" -msgstr "Versuche symbolische Links als harte Links herauszuholen." - -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Lese %s.\n" +msgstr "" +"Versuche symbolische Verknüpfungen als harte Verknüpfungen herauszuholen." -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" -"Kann „%s“ nicht herausholen -- Datei ist Fortsetzung eines anderen Teils." +"Kann „%s“ nicht herausholen – Datei ist Fortsetzung eines anderen Teils." -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Unerwarteter Kopfteil mit langem Namen" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Unbekannter Dateityp „%c“, wie normale Datei extrahiert." -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Aktuelles %s ist neuer oder hat dasselbe Alter." -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Konnte keine Sicherheitskopie von dieser Datei erstellen" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Kann %s nicht in %s umbenennen." -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Nicht behebbarer Fehler: Programmabbruch. " - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Verzeichnis wurde von „%s“ umbenannt." -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Verzeichnis wurde umbenannt." -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "Verzeichnis „%s“ ist neu." -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" -msgstr "Ungültiges Datum" +msgstr "Ungültiger Zeitstempel" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Ungültige Änderungszeit (Sekunden)." -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Ungültige Änderungszeit (Nanosekunden)." -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Ungültige Gerätenummer" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Ungültige Inode-Nummer" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Feld zu lang beim Lesen der Schnappschussdatei" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Lesefehler in Schnappschussdatei" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Unerwartetes Dateiende im Schnappschussdatei." -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Unerwarteter Feldwert in Schnappschussdatei" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Fehlender Record-Abschluss" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "unzulässiges inkrementelles Dateiformat" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Nicht unterstützte Version des inkrementellen Formats: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Fehlgeformtes Verzeichnis für Dump: „%c“ erwartet, aber %#3o gefunden" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ dupliziert" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „R“" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Fehlgeformtes Verzeichnis für Dump: „T“ folgt nicht „R“" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „T“" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" "Fehlgeformtes Verzeichnis für Dump: „%c“ erwartet, aber Ende der Daten " "gefunden" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ nie benutzt" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Kann kein temporäres Verzeichnis mit der Schablone %s anlegen" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Entferne Verzeichnis nicht: kann nicht zugreifen" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: Verzeichnis liegt auf einem anderen Dateisystem: entferne nicht." -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Lösche %s.\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Kann nicht entfernen." -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Ausgelassen" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "Block %s: ** Block aus NULlen **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "Block %s: ** Ende der Datei **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "Block %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" -msgstr "Leerzeichen im Kopfteil, wo nummerische %s-Werte stehen sollten." +msgstr "Leerzeichen im Kopfteil, wo numerische %s-Werte stehen sollten." #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "Oktalzahl %.*s außerhalb des %s-Bereichs, nehme Zweierkomplement an?" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Oktalzahl %.*s außerhalb des %s-Bereichs" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Archiv enthält veraltete Base64-Kopfteile" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Base64-Text %s außerhalb des %s-Bereichs." -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Base-256-Wert ist außerhalb des %s-Bereichs." #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Archiv enthält „%.*s“ wo numerische %s-Werte stehen sollten." #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Wert %s außerhalb des %s-Bereichs %s..%s." -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" -msgstr " Verküpfung zu %s\n" +msgstr " Verknüpfung zu %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " unbekannter Dateityp %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "––Lange Verknüpfung––\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "––Langer Name––\n" @@ -1220,90 +1252,109 @@ msgstr "––Langer Name––\n" # Alte Üs: Band Kopfteil. Kann diese Meldung auch bei Disketten # ausgegeben werden? Dann kann man ja nicht "Band" sagen; am besten # einfach "Volume" lassen. ke. -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "––Vorspann des Teils––\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "––Fortgesetzt bei Byte %s––\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Erzeuge Verzeichnis:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Benenne „%s“ in „%s“ um.\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Kann nicht in %s umbenennen" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Benenne „%s“ zurück in „%s“.\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Kann aktuelles Verzeichnis nicht sichern." -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Kann Arbeitsverzeichnis nicht wechseln." -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Datei gelöscht, bevor sie gelesen wurde." + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Datei gelöscht, bevor sie gelesen wurde." + +#: src/misc.c:795 msgid "child process" msgstr "Kindprozess" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "interprocess channel" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Zeichen für Musterüberdeckung im Dateinamen benutzt. Benutzen" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "Sie bitte --wildcards, um Musterüberdeckung zu ermöglichen oder" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "--no-wildcards, um diese Warnung zu unterdrücken." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nicht im Archiv gefunden." -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Erforderliches Auftreten nicht im Archiv gefunden." -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "--preserve-order ist nicht kompatibel mit --listed-incremental" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "--preserve-order ist nicht kompatibel mit --listed-incremental" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Die beiden Optionen „-%s“ und „-%s“ verlangen Standard-Eingabe." -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Ungültiges Archivformat" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-Erweiterungen bei einem inkompatiblen Archiv-Format verlangt." -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1311,7 +1362,7 @@ msgstr "" "Unbekannter Zitatstil „%s“. Versuchen Sie „%s --quoting-style=help“ für eine " "Liste." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1330,7 +1381,7 @@ msgstr "" " %s -tvf archiv.tar # Inhalt von archiv.tar ausführlich anzeigen\n" " %s -xf archiv.tar # alle Dateien aus archiv.tar extrahieren\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1354,86 +1405,79 @@ msgstr "" " vorhanden sind, sonst einfache\n" " never, simple immer einfache Sicherheitskopien\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Hauptsächlicher Arbeitsmodus:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "den Inhalt eines Archivs auflisten" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "Dateien aus einem Archiv extrahieren" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "ein neues Archiv anlegen" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "Unterschiede zwischen Archiv und Dateisystem suchen" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "Dateien hinten an das Archiv anfügen" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "nur Dateien anfügen, die neuer als die Kopie im Archiv sind" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "tar-Dateien an ein Archiv anfügen" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "aus dem Archiv löschen (nicht auf Magnetband!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "den Archiv-Teil-Namen überprüfen und beenden" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Feineinstellungen:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "löchrige Dateien („sparse files“) effizient behandeln" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJOR[.MINOR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "zu benutzende Version des Sparse-Formats setzen (impliziert --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "inkrementelle Sicherung im alten GNU-Format" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "DATEI" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "inkrementelle Sicherung im neuen GNU-Format" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "kein Abbruch mit Existatus!=0 bei unlesbaren Dateien" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "ZAHL" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1445,122 +1489,126 @@ msgstr "" "list und wenn eine Dateiliste entweder auf der Kommandozeile oder mittels " "der Option -T angegeben wurde benutzt werden; Zahl ist standardmäßig 1" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "im Archiv kann positioniert werden" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "im Archiv kann positioniert werden" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "Gerätenummer bei Erstellung inkrementeller Archive nicht prüfen" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "Gerätenummer bei Erstellung inkrementeller Archive prüfen (Voreinstellung)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Steuerung des Überschreibens:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "Archiv nach dem Schreiben prüfen" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "Dateien nach dem Hinzufügen zum Archiv löschen" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "vorhandene Dateien beim Extrahieren nicht überschreiben" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "vorhandene Dateien, die neuer als die Archivkopie sind, nicht überschreiben" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "vorhandene Dateien beim Extrahieren überschreiben" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "zu überschreibende Dateien vor dem Extrahieren löschen" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" "Verzeichnishierarchien rekursiv vor dem Extrahieren eines Verzeichnisses " "löschen" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "Metadaten existierender Verzeichnisse erhalten" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "Metadaten existierender Verzeichnisse beim Extrahieren überschreiben " "(Voreinstellung)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Wahl des Ausgabestroms:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "Dateien auf die Standardausgabe extrahieren" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "BEFEHL" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "extrahierte Dateien an ein anderes Programm weiterreichen" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "Exitstatus der Kinder ignorieren" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "Exitstatus!=0 von Kindern als Fehler ansehen" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Behandlung der Datei-Attribute:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "Eigentümer für hinzugefügte Dateien auf NAME setzen" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "Gruppe für hinzugefügte Dateien auf NAME setzen" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATUM-ODER-DATEI" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "Änderungszeit für hinzugefügte Datei aus DATUM-ODER-DATEI beziehen" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "ÄNDERUNGEN" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "den (symbolischen) Modus ÄNDERUNGEN für hinzugefügte Dateien erzwingen" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METHODE" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1571,30 +1619,34 @@ msgstr "" "oder dadurch, dass die Zeiten gar nicht erst neu gesetzt werden (METHODE=" "„system“)" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "die geänderte Zeit nicht extrahieren" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" "versuchen, die Dateien mit denselben Eigentumsverhältnisse zu extrahieren" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "Dateien als aktueller Nutzer extrahieren" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "immer Zahlen für Nutzer-/Gruppennamen verwenden" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "Informationen über Dateizugriffsrechte mit extrahieren (Voreinstellung für " "Root)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1602,15 +1654,15 @@ msgstr "" "die Umask des Nutzers anwenden beim Extrahieren von Dateizugriffsrechte aus " "dem Archiv (Voreinstellung für normale Nutzer)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "zu entpackende Dateinamen wie im Archiv sortieren" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "wie -p und -s zusammen" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1618,139 +1670,139 @@ msgstr "" "das Setzen von Zugriffszeiten und Rechten von extrahierten Verzeichnissen " "verschieben bis zum Ende des Entpackens" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "den Effekt von --delay-directory-restore aufheben" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Geräteauswahl und -umschaltung:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIV" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "Archivdatei oder Gerät ARCHIV benutzen" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "Archivdatei ist lokal, auch wenn der Name einen Doppelpunkt enthält" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "statt „rmt“ den gegebenen BEFEHL benutzen" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "statt „rsh“ den entfernten BEFEHL benutzen" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "Laufwerk und Schreibdichte angeben" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "mehrteiliges Archiv anlegen/listen/extrahieren" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "Medium wechseln, wenn ZAHL × 1024 Bytes geschrieben wurden" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "am Ende jedes Mediums das Skript ausführen (impliziert -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "Teil-Nummer in DATEI benutzen/aktualisieren" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Blockung des Gerätes:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLÖCKE" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLÖCKE × 512 Bytes pro Record" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "ZAHL Bytes pro Record, Vielfaches von 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "Blöcke mit Nullen im Archiv ignorieren (heißt EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "erneut Blocken beim Lesen (für 4.2BSD‐Pipes)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Auswahl des Archiv-Formats:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "Archiv mit dem gegebenen Format anlegen" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT ist eines der folgenden:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "altes V7-tar-Format" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU-Format wie mit tar <=1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU-tar-1.13.x-Format" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "Format von POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "Format von POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "wie pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "wie --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "wie --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "Schlüsselwort[[:]=Wert][,Schlüsselwort[[:]=Wert]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "Pax-Schlüsselwörter steuern" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEXT" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1758,104 +1810,78 @@ msgstr "" "Archiv mit dem Teilnamen TEXT anlegen; beim Listen/Extrahieren, TEXT als " "Muster für den Teilnamen benutzen" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Kompressionsoptionen:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "Archiverweiterung nehmen, um Kompressionsprogramm zu bestimmen" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "Archiverweiterung nicht nehmen, um Kompressionsprogramm zu bestimmen" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "Archiv durch bzip2 filtern" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "Archiv durch gzip filtern" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "Archiv durch compress filtern" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "Archiv durch lzma filtern" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "Archiv durch lzop filtern" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "Archiv durch gzip filtern" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "durch PROG filten (muss -d akzeptieren)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Auswahl der lokalen Dateien:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "angegebene Datei zum Archiv hinzufügen (nützlich, wenn Datei mit einem " "Strich beginnt)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "VERZEICHNIS" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "zu VERZEICHNIS wechseln" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "Namen der zu bearbeitenden Dateien aus DATEI lesen" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T liest null-terminierte Namen, verbiete -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "die Wirkung der vorangehenden Option --null aufheben" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "Dateinamen, die mit -T gelesen werden, von Zitat befreien (Voreinstellung)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "Dateinamen, die mit -T gelesen werden, nicht von Zitat befreien" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "MUSTER" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "Dateien auslassen, auf die MUSTER passt" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "Dateien auslassen, auf die in DATEI angegebene Muster passen" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1863,93 +1889,97 @@ msgstr "" "Inhalt von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten, außer der " "Markierungsdatei selbst" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" "alles unterhalb von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "Verzeichnisse auslassen, die CACHEDIR.TAG enthalten" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "Inhalt von Verzeichnissen auslassen, die DATEI enthalten, außer DATEI selbst" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "alles unterhalb von Verzeichnissen auslassen, die DATEI enthalten" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "Verzeichnisse auslassen, die DATEI enthalten" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "Verzeichnisse von Versionskontrollsystemen auslassen" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "automatischen Abstieg in Vezeichnisse vermeiden" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "beim Anlegen eines Archivs im lokalen Dateisystem bleiben" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "in Verzeichnisse absteigen (Voreinstellung)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "führende „/“-Zeichen in den Dateinamen erhalten" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "symbolischen Verknüpfungen folgen; die Dateien archivieren und abspeichern, " "auf die sie zeigen" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "harten Verknüpfungen folgen; die Dateien archivieren und abspeichern, auf " "die sie sich beziehen" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "ELEMENT-NAME" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "mit ELEMENT-NAME im Archiv beginnen" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "nur Dateien ablegen, die neuer als DATUM-ODER-DATEI sind" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATUM" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "Datum und Zeit nur überprüfen, wenn Daten geändert wurden" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "KONTROLLE" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "Sicherung vor dem Entfernen, wähle Versions-KONTROLLE" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "ZEICHENKETTE" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1957,90 +1987,99 @@ msgstr "" "Sicherung vor dem Entfernen, übliches Suffix ersetzen („~“, wenn nicht durch " "Umgebungsvariable SIMPLE_BACKUP_SUFFIX anders gesetzt)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Dateinamentransformationen:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "ZAHL führende Komponenten beim Extrahieren von Dateinamen entfernen" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "AUSDRUCK" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "den sed-AUSDRUCK zur Dateinamentransformation benutzen" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Dateinamenauswahloptionen (sowohl für ein- als auch ausschließende Muster):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "Groß-/Kleinschreibung ignorieren" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "Muster am Dateinamensanfang ausrichten" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "Muster passen nach jedem „/“ (Voreinstellung beim Ausschluss)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "Groß-/Kleinschreibung beachten (Voreinstellung)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "Muster benutzen (Voreinstellung für Ausschluss)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "Zeichenketten sind buchstabengetreu" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "Jokerzeichen passen nicht auf „/“" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "Jokerzeichen passen auf „/“ (Voreinstellung für Ausschluss)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Informationen:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "bearbeitete Dateien ausführlich listen" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Steuerung des Überschreibens:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "Fortschrittsnachrichten bei jedem ZAHLten Record (Voreinstellung 10) anzeigen" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "AKTION" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "AKTION bei jedem Kontrollpunkt ausführen" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" "eine Nachricht ausgeben, wenn nicht alle Verknüpfungen abgespeichert werden" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2052,27 +2091,27 @@ msgstr "" "wird; erlaubte Signale sind: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 und SIGUSR2; " "die Namen ohne das Präfix SIG sind auch erlaubt" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "Dateiänderungszeiten in UTC anzeigen" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "ausführliche Ausgabe in DATEI schreiben" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "bei jeder Nachricht die Blocknummer innerhalb des Archivs mit anzeigen" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "für jede Aktion um Bestätigung bitten" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "Voreinstellungen von tar anzeigen" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2080,86 +2119,94 @@ msgstr "" "beim Listen oder Extrahieren jedes Verzeichnis auflisten, dass nicht den " "Suchkriterien entspricht" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "Datei- oder Archivnamen nach der Transformation anzeigen" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STIL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "Zitatstil setzen; siehe unten für gültige STIL-Werte" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "zusätzliche Zeichen aus ZEICHENKETTE zitieren" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "Zeichen aus ZEICHENKETTE nicht zitieren" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Kompatibilitätsoptionen:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "beim Anlegen wie --old-archive; beim Extrahieren wie --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Weitere Optionen:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "möglicherweise schädliche Optionen deaktivieren" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Von den Optionen „-Acdtrux“ ist nur _eine_ erlaubt." -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Kompressionsoptionen schließen sich gegenseitig aus." -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Unbekannter Signalname: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Datumsdatei nicht gefunden" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Ersetze %s für unbekanntes Datumsformat %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Option %s: Behandle Datum „%s“ als %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: Dateiliste schon gelesen" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: gelesener Dateiname enthält ein NULL-Zeichen" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "Archiv durch xz filtern" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "Gültige Argumente für die Option --quoting-style sind:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2167,48 +2214,53 @@ msgstr "" "\n" "*Dieses* „tar“ hat als Voreinstellung:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Ungültige Blockgröße" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Ungültige Bandlänge" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "unzulässiges inkrementelles Dateiformat" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Mehr als ein Datum angegeben." -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Ungültiger Wert für Sparse-Version (für löchrige Dateien)" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' wird auf dieser Plattform nicht unterstützt" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "Wert für --checkpoint ist keine ganze Zahl" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Ungültige Gruppe" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Ungültige Zugriffsrechte angegeben." -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Ungültige Zahl" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Ungültiger Benutzer" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2216,112 +2268,118 @@ msgstr "" "Die Option --preserve ist veraltet, benutzen Sie stattdessen --preserve-" "permissions --preserve-order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Ungültiger Wert für Recordgröße." -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Die Recordgröße muss ein Vielfaches von %d sein." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Ungültige Elementanzahl" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Nur eine Option --to-command erlaubt" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Fehlgeformtes Dichteargument: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Unbekannte Dicht: „%c“" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Die Optionen „-[0-7][lmh]“ unterstützt *dieses* „tar“ nicht." -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[DATEI]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Die alte Option „%c“ benötigt einen Parameter." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence ist ohne Dateiliste bedeutungslos" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" "--occurrence kann im angeforderten Operationsmodus nicht benutzt werden" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Mehrere Archivdateien verlangen die Option „-M“." -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "--listed-incremental kann nicht mit --newer benutzt werden" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--preserve-order ist nicht kompatibel mit --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Band-Nummer ist zu lang (Maximum ist ein Byte)." msgstr[1] "%s: Band-Nummer ist zu lang (Maximum ist %lu Bytes)." -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Kann mehrteilige Archive nicht prüfen." -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Kann komprimierte Archive nicht prüfen" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Kann keine mehrteiligen komprimierten Archive verwenden." -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Kann komprimierte Archive nicht aneinanderhängen" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "Teillänge kann nicht unter der Recordgröße liegen" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "--preserve-order ist nicht kompatibel mit --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Anlegen eines leeren Archivs wird feige verweigert." -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Die Optionen „-Aru“ sind nicht kompatibel mit „-f -“." -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Eine der Optionen „-Acdtrux“ ist notwendig." -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Beende mit Fehlerstatus aufgrund vorheriger Fehler" @@ -2333,52 +2391,57 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Datei ist um ein Byte geschrumpft." msgstr[1] "%s: Datei ist um %s Bytes geschrumpft." -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Schlüsselwort %s ist unbekannt oder noch nicht implementiert" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Zahl außerhalb des zulässigen Bereichs: %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Muster %s kann nicht benutzt werden" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Schlüsselwort %s kann nicht überschrieben werden" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Fehlgeformter erweiterter Kopfteil: fehlende Länge" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Länge des erweiterten Kopfteils ist außerhalb des erlaubten Bereichs" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Länge %*s des erweiterten Kopfteils ist außerhalb des Bereichs" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Leerraum nach der Länge" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Fehlgeformter erweiterter Kopfteil: fehlendes Gleichheitszeichen" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Zeilenvorschub" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Ignoriere unbekanntes Schlüsselwort „%s“ für erweiterten Kopfteil" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2386,29 +2449,29 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Erweiterter Kopfteil %s=%s ist außerhalb des Bereichs %s..%s." -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Fehlgeformter erweiterter Kopfteil: ungültiges %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Fehlgeformter erweiterter Kopfteil: überzähliges %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Fehlgeformter erweiterter Kopfteil: ungültiges %s: unerwarteter Trenner %c" # Ist „odd“ hier ungerade oder merkwürdig? -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2451,7 +2514,7 @@ msgstr "Schreib-Kontrollpunkt %u" msgid "Read checkpoint %u" msgstr "Lese-Kontrollpunkt %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2459,91 +2522,97 @@ msgstr "" "genfile manipuliert Datendateien für die Testsuit der GNU paxutils.\n" "OPTIONEN sind:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Optionen beim Anlegen von Dateien:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "GRÖßE" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Datei der gegebenen GRÖßE anlegen" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "in Datei NAME anstelle der Standardausgabe schreiben" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Dateinamenlist aus DATEI lesen" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T liest null-terminierte Namen" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Die Datei mit dem gegebenen MUSTER füllen. MUSTER ist „default“ oder „zeros“." -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Größe eines Blocks für löchrige Dateien" # „map“: Karte, Abbildung? -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Löchrige („sparse“) Datei erzeugen. Der Rest der Kommandozeile gibt die die " "Dateibildungsvorschrift an." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "POSITION" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "vor dem Schreiben zur gegebenen Position springen" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Dateistatistikoptionen:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Inhalt des „struct stat“ für jede gegebene Datei ausgeben. Standard-FORMAT " "ist:" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Optionen für synchrone Ausführung:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [OPTION...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "jeden gegebenen BEFEHL ausführen; nützlich mit --checkpoint und einem aus --" "cut, --append, --touch" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "gegebene Aktion (siehe unten) beim Erreichen des Kontrollpunkts ZAHL " "ausführen" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Datum für nächste „--touch“-Operation setzen" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "ausgeführte Kontrollpunkte und Beendigungsstatus von BEFEHL anzeigen" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2551,7 +2620,7 @@ msgstr "" "Aktionen für synchrone Ausführung. Diese werden beim Erreichen des " "Kontrollpunkts, der mit der Option --checkpoint gesetzt wurde, ausgeführt." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2559,140 +2628,213 @@ msgstr "" "DATEI kürzen auf die Länge, die mit einer vorhergehenden Option --length " "(oder 0 bei Abwesenheit) gesetzt wurde" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "GRÖßE Bytes an DATEI anfügen. GRÖßE wird mit einer vorhergehenden Option --" "length gesetzt." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Zugriffs- und Änderungszeiten der DATEI neu setzen" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "BEFEHL ausführen" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ungültige Größe: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Zahl außerhalb des zulässigen Bereichs: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negative Größe: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) fehlgeschlagen" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "Dateilänge %lu verlangt, tatsächlich %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "erzeugte Datei ist nicht löchrig" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Fehler beim Parser der Zahl in der Nähe von „%s“" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Unbekanntes Datumsformat" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGUMENTE...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "kann „%s“ nicht öffnen" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "kann nicht positionieren" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "Dateiname enthält Null-Zeichen" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "kann auf der Standardausgabe keine löchrige Datei erstellen, benutzen Sie " "die Option --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "inkorrekte Maske (nahe „%s“)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "unbekannte Feld „%s“" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "kann an „%s“ keine Zeit setzen" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "kann „%s“ nicht öffnen" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Befehl erfolgreich ausgeführt\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Befehl schlug mit Beendigungsstatus %d fehl.\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Befehl beendete sich bei Signal %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Befehl hieltb bei Signal %d an\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Befehl erzeugte einen Core-Dump\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Befehl beendet\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat erfordert Dateinamen" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "zu viele Argumente" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: Unzulässige Option -- %c\n" + +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Lese %s.\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Nicht behebbarer Fehler: Programmabbruch. " + +#~ msgid "suppress this warning." +#~ msgstr "--no-wildcards, um diese Warnung zu unterdrücken." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "Archiv durch bzip2 filtern" + +#~ msgid "filter the archive through gzip" +#~ msgstr "Archiv durch gzip filtern" + +#~ msgid "filter the archive through compress" +#~ msgstr "Archiv durch compress filtern" + +#~ msgid "filter the archive through lzma" +#~ msgstr "Archiv durch lzma filtern" + +#~ msgid "filter the archive through lzop" +#~ msgstr "Archiv durch lzop filtern" + +#~ msgid "Input string too long" +#~ msgstr "Eingabezeichenkette zu lang" + +#~ msgid "Number syntax error" +#~ msgstr "Syntaxfehler in der Zahl" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Kann Speicherplatz für Puffer nicht reservieren.\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Kann keinen Speicher für Puffer reservieren." + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "„%s --help“ zeigt weitere Informationen.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Aufruf: %s [OPTION]\n" +#~ "Arbeiten mit einem Bandlaufwerk, Befehle können von einem anderen Prozess " +#~ "stammen.\n" +#~ "\n" +#~ " --version Versionsinformation ausgeben\n" +#~ " --help diesen Hilfetext ausgeben\n" + +#~ msgid "Seek offset error" +#~ msgstr "Fehler bei der Positionierungsangabe." + +#~ msgid "Premature end of file" +#~ msgstr "Vorzeitiges Dateiende." #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" #~ msgstr "" @@ -2716,9 +2858,6 @@ msgstr "zu viele Argumente" #~ msgid "--Mangled file names--\n" #~ msgstr "––Verstümmelte Dateinamen––\n" -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "Unerwartetes Dateiende in verstümmelten Namen." - #~ msgid "Renamed %s to %s" #~ msgstr "%s in %s umbenannt" @@ -2726,7 +2865,7 @@ msgstr "zu viele Argumente" #~ msgstr "%s: Kann nicht zu „%s“ linken." #~ msgid "Symlinked %s to %s" -#~ msgstr "Symbolischer Verküpfung von %s auf %s." +#~ msgstr "Symbolische Verknüpfung von %s auf %s." #~ msgid "Unknown demangling command %s" -#~ msgstr "Unbekanntes Kommando „%s“ beim Zusammensetzen von Namen." +#~ msgstr "Unbekanntes Befehl „%s“ beim Zusammensetzen von Namen." diff --git a/po/el.gmo b/po/el.gmo index d06399d76e9f280a3d9179c97d1176336be25d4a..ece7a03f225452ab2b230f4147ddd00f47402216 100644 Binary files a/po/el.gmo and b/po/el.gmo differ diff --git a/po/el.po b/po/el.po index 331e1dc0b520ee0bce92f2a5e0d6eb6531a8394e..175c171d898d2b184ccace073c4559b13a8fa4e8 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.13.25 \n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2004-03-08 14:44+0200\n" "Last-Translator: Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs." "teiath.gr>\n" @@ -17,289 +17,194 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.2\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "άκυρο όρισμα %s για %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "αμφιλεγόμενο όρισμα %s για %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Έγκυρα ορίσματα είναι:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Χρήση: %s [ΕΠΙΛΟΓΉ]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Προσπαθήστε `%s --help' για περισσότερες πληροφορίες.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, fuzzy, c-format msgid "Report bugs to %s.\n" msgstr "" "\n" "Αναφορά σφαλμάτων στο <bug-tar@gnu.org>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Άγνωστο σφάλμα συστήματος" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: η επιλογή `%s' απαιτεί όρισμα\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: η επιλογή`%s' είναι αμφιλεγόμενη\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: η επιλογή `--%s' δεν επιτρέπει όρισμα\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει όρισμα\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: η επιλογή `%s' απαιτεί όρισμα\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: μη αναγνωρίσιμη επιλογή `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: μη αναγνωρίσιμη επιλογή `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: παράνομη επιλογή -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: άκυρη επιλογή -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: η επιλογή απαιτεί όρισμα -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: η επιλογή `-W %s' είναι αμφιλεγόμενη\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: η επιλογή `-W %s' δεν επιτρέπει όρισμα\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "η μνήμη εξαντλήθηκε" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Δεν είναι δυνατή η αποθήκευση του τρέχοντος καταλόγου" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Δεν είναι δυνατή %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Δεν είναι δυνατή η αλλαγή κατάστασης σε %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Δεν είναι δυνατή η αλλαγή ιδιοκτησίας σε uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Δεν είναι δυνατή η σύνδεση υλικού σε %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" -msgstr[1] "%s: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -"%s: Προειδοποίηση: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" -msgstr[1] "" -"%s: Προειδοποίηση: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή η αναζήτηση σε %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Δεν είναι δυνατή η δημιουργία συμβολικού δεσμού στο %s" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Γράφτηκαν μόνο %lu από %lu byte" -msgstr[1] "%s: Γράφτηκαν μόνο %lu από %lu byte" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -313,17 +218,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -333,7 +238,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -343,38 +248,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Μη διαθέσιμη υπηρεσία" - -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:76 #, c-format -msgid "stdin" -msgstr "κανονική είσοδος" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "κανονική έξοδος" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμένου κελύφους (φλοιού)" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -385,7 +280,7 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "" @@ -393,7 +288,7 @@ msgstr "" "Μεταφράστηκε από τον Μπαλάσκα Ευάγγελο." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "" @@ -401,7 +296,7 @@ msgstr "" "Μεταφράστηκε από τον Μπαλάσκα Ευάγγελο." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -411,7 +306,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -421,7 +316,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -431,7 +326,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -441,7 +336,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -451,7 +346,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -462,7 +357,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -473,7 +368,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -485,184 +380,335 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" "Αναφορά σφαλμάτων στο <bug-tar@gnu.org>.\n" -#: lib/version-etc.c:182 -#, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" +"\n" +"Αναφορά σφαλμάτων στο <bug-tar@gnu.org>.\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου \n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Δεν είναι δυνατή %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:93 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Προσπαθήστε `%s --help' για περισσότερες πληροφορίες.\n" +msgid "%s: Cannot change mode to %s" +msgstr "%s: Δεν είναι δυνατή η αλλαγή κατάστασης σε %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Δεν είναι δυνατή η αλλαγή ιδιοκτησίας σε uid %lu, gid %lu" + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Δεν είναι δυνατή η σύνδεση υλικού σε %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" +msgstr[1] "%s: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +"%s: Προειδοποίηση: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" +msgstr[1] "" +"%s: Προειδοποίηση: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή η αναζήτηση σε %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Δεν είναι δυνατή η δημιουργία συμβολικού δεσμού στο %s" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Γράφτηκαν μόνο %lu από %lu byte" +msgstr[1] "%s: Γράφτηκαν μόνο %lu από %lu byte" + +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" + +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" + +#: lib/paxnames.c:169 +#, fuzzy +msgid "Substituting `.' for empty member name" +msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" msgstr "" -"Χρήση: %s [ΕΠΙΛΟΓΉ]\n" -"Διαχείριση συσκευής αποθήκευσης ταινίας, αποδοχή εντολών από απομακρυσμένη " -"διεργασία.\n" -"\n" -" --version Εμφάνιση πληροφοριών έκδοσης.\n" -" --help Εμφάνιση αυτής της βοήθειας.\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Μη διαθέσιμη υπηρεσία" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "κανονική είσοδος" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "κανονική έξοδος" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμένου κελύφους (φλοιού)" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Η κατεύθυνση αναζήτησης είναι εκτός εύρους" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους" +msgid "Invalid seek direction" +msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Άκυρη ένδειξη χρόνου" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Η κατεύθυνση αναζήτησης είναι εκτός εύρους" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Άκυρο μέγεθος ταινίας" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Πρόωρο eof (τέλος αρχείου)\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Πρόωρο τέλος αρχείου" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "%s: άκυρη επιλογή -- %c\n" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Εντολή απορριμμάτων" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Αυτό δεν φαίνεται ως αρχειοθήκη tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Συνολικά byte που γράφτηκαν: %s (%sB, %sB/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Συνολικά byte που γράφτηκαν: %s (%sB, %sB/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(σωλήνωση)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Άκυρη τιμή για record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Δεν δόθηκε όνομα αρχειοθήκης" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "" "Δεν είναι δυνατή η επαλήθευση των κανονικών εισόδων/εξόδων της αρχειοθήκης" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Στην αρχή της ταινίας, τερματισμός τώρα" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Πάρα πολλά σφάλματα, τερματισμός" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Μέγεθος εγγραφής = %lu block" msgstr[1] "Μέγεθος εγγραφής = %lu block" -#: src/buffer.c:718 +#: src/buffer.c:765 #, fuzzy, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Μη ευθυγραμμισμένο μπλοκ (%lu byte) στην αρχειοθήκη" msgstr[1] "Μη ευθυγραμμισμένο μπλοκ (%lu byte) στην αρχειοθήκη" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: περιέχει άκυρο αριθμό τόμου" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Υπερχήλιση αριθμού τόμου" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Προετοίμασε τον τόμο #%d για %s και πάτα το πλήκτρο επιστροφής γραμμής" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF (Τέλος Αρχείου) ενώ η απάντηση του χρήστη αναμενότανε" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Η αρχειοθήκη είναι ημιτελής" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -674,124 +720,124 @@ msgstr "" " ! Παραγωγή νέου υπό-φλοιού\n" " ? Εκτύπωση αυτής της λίστας\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Κανένας νέος τόμος; έξοδος\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "`%s' η εντολή απέτυχε" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s είναι το εσφαλμένο μέγεθος (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Αυτός ο τόμος είναι εκτός συνέχειας" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Η αρχειοθήκη δεν έχει ετικέτα για ταίριασμα %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Ο τόμος %s δεν ταιριάζει %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Δυνατή μόνο η ανάγνωση %lu από %lu byte" msgstr[1] "Δυνατή μόνο η ανάγνωση %lu από %lu byte" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Τα περιεχόμενα διαφέρουν" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Οι τύποι αρχείων διαφέρουν" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Οι καταστάσεις διαφέρουν" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Ταυτότητες χρήστη διαφέρουν" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Ταυτότητες ομάδας διαφέρουν" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Ώρες τροποποίησης διαφέρουν" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Τα μεγέθη διαφέρουν" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Δεν είναι συνδεδεμένο με %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Οι σύνδεσμοι διαφέρουν" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Οι αριθμοί των συσκευών διαφέρουν" @@ -813,34 +859,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "Η ΕΠΑΛΎΘΕΥΣΗ ΑΠΈΤΥΧΕ: ανιχνεύτηκαν %d άκυρη(ες) επικεφαλίδα(δες)" msgstr[1] "Η ΕΠΑΛΎΘΕΥΣΗ ΑΠΈΤΥΧΕ: ανιχνεύτηκαν %d άκυρη(ες) επικεφαλίδα(δες)" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "η τιμή %s είναι εκτός του %s εύρος %s..%s; αντικαταστήθηκε από %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "η τιμή %s είναι εκτός του %s εύρους %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Παράχθηκαν αρνητικές οκταδικές επικεφαλίδες" @@ -859,292 +905,278 @@ msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; msgid "%s: link name is too long; not dumped" msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Το αρχείο συρρικνώθηκε σε %s bytes; συμπλήρωση με μηδενικά" msgstr[1] "%s: Το αρχείο συρρικνώθηκε σε %s bytes; συμπλήρωση με μηδενικά" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Άγνωστος τύπος αρχείου; το αρχείο αγνοήθηκε" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " σύνδεσμος σε %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: αρχείο τροποποιήθηκε κατά την ανάγνωση" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: η υποδοχή αγνοήθηκε" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: η πόρτα αγνοήθηκε" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Παραλείποντας στην επόμενη επικεφαλίδα" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Διαγραφή μη-επικεφαλίδων από την αρχειοθήκη" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: η ένδειξη χρόνου %s είναι %lu s στο μέλλον" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Μη αναμενόμενη ανακολουθία κατά την δημιουργία του καταλόγου" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Ο κατάλογος μετονομάστηκε πριν η κατάστασή του γίνει μη εξαγώγιμη" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Εξαγωγή συνεχόμενων αρχείων ως κανονικών αρχείων" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Προσπάθεια εξαγωγής των συμβολικών συνδέσμων ως σθεναρών συνδέσμων" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Ανάγνωση %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Δεν είναι δυνατή η εξαγωγή -- το αρχείο συνεχίζεται σε άλλο τόμο" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στα κατακερματισμένα ονόματα" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Άγνωστος τύπος αρχείου '%c', εξαγωγή ως κανονικό αρχείο" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Δεν είναι δυνατή η αποθήκευση αυτού του αρχείου" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" -msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s" - -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Το σφάλμα δεν είναι επανορθώσιμο: τερματισμός τώρα" +msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s" -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Ο κατάλογος έχει μετονομαστεί" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Ο κατάλογος έχει μετονομαστεί" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Ο κατάλογος είναι καινούριος" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Άκυρη ένδειξη χρόνου" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Άκυρος αριθμός συσκευής" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Άκυρος αριθμός i-κόμβου" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "Δεν είναι δυνατή η δέσμευση μνήμης για τον συντελεστή ομαδοποίησης %d" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, fuzzy, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Διαγραφή %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Δεν είναι δυνατή η απομάκρυνση" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Παράλειψη" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "μπλοκ %s: ** Μπλοκ με χαρακτήρες NUL **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "μπλοκ %s: ** Τέλος Αρχείου **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "μπλοκ %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Κενά στην επικεφαλίδα ενώ αναμενόταν αριθμητική τιμή %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1152,149 +1184,164 @@ msgstr "" "συμπληρώματα" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Αρχειοθήκη οκταδικής τιμής %.*s είναι εκτός του %s εύρους" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Η αρχειοθήκη περιέχει απαρχαιωμένες επικεφαλίδες κωδικοποίησης base64" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του " "%s εύρους" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Η αρχειοθήκη με base-256 τιμές είναι εκτός του %s εύρους" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Η αρχειοθήκη περιέχει %.*s όπου αριθμητικές %s τιμές αναμένονται" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " σύνδεσμος σε %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " άγνωστος τύπος αρχείου %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Επικεφαλίδα Τόμου--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Συνέχιση στο byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Δημιουργία καταλόγου:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Μετονομασία %s σε %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Μετονομασία %s πίσω στο %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Δεν είναι δυνατή η αποθήκευση του τρέχοντος καταλόγου" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε" + +#: src/misc.c:795 msgid "child process" msgstr "θυγατρική διεργασία" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "κανάλι μεταξύ διεργασιών" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Οι επιλογές `-%s' και `-%s' απαιτούν κανονική είσοδο" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Άκυρη ομάδα" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Τα χαρακτηριστικά GNU απαιτούν μη συμβατή διαμόρφωση αρχειοθήκης" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1315,7 +1362,7 @@ msgstr "" "archive.tar με λεπτομέρειες.\n" " %s -xf archive.tar # Εξάγει όλα τα αρχεία από το archive.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1338,87 +1385,80 @@ msgstr "" "διαφορετικά\n" " never, simple πάντα κάνε απλά αντίγραφα\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1426,577 +1466,565 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 #, fuzzy msgid "extract files to standard output" msgstr "Σφάλμα κατά την εγγραφή στην κανονική έξοδο" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "Δεν είναι δυνατή η επαλήθευση πολλαπλών αρχειοθηκών" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Συγκρουόμενες επιλογές διαμόρφωσης αρχειοθήκης" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Συγκρουόμενες επιλογές συμπίεσης" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" - -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "Ο τόμος %s δεν ταιριάζει %s" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2004,275 +2032,291 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Ίσως δεν καθορίσατε παραπάνω από μία επιλογή `-Acdtrux'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Συγκρουόμενες επιλογές συμπίεσης" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " άγνωστος τύπος αρχείου %s\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Το αρχείο ημερομηνίας δεν βρέθηκε" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Αντικατάσταση %s για άγνωστη διαμόρφωση ημερομηνίας %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Άκυρος συντελεστής ομαδοποίησης" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Άκυρο μέγεθος ταινίας" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Παραπάνω από ένα όριο ημερομηνίας" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Άκυρη ομάδα" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή" -#: src/tar.c:1774 +#: src/tar.c:1894 #, fuzzy msgid "Invalid number" msgstr "Άκυρος αριθμός i-κόμβου" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Άκυρος ιδιοκτήτης" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Άκυρο μέγεθος εγγραφής" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Το μέγεθος της εγγραφής πρέπει να είναι πολλαπλάσιο του %d." -#: src/tar.c:1872 +#: src/tar.c:2000 #, fuzzy msgid "Invalid number of elements" msgstr "Άκυρο μέγεθος ταινίας" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "" "Οι επιλογές `-[0-7][lmh]' δεν υποστηρίζονται από *αυτήν* την εντολή tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Παλιά επιλογή `%c' απαιτεί όρισμα." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Πολλαπλά αρχεία αρχειοθηκών απαιτούν την επιλογή `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Δεν είναι δυνατός ο συνδυασμός --listed-incremental με --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, fuzzy, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Η ετικέτα του τόμου είναι πολύ μεγάλη (το όριο είναι %lu byte)" msgstr[1] "%s: Η ετικέτα του τόμου είναι πολύ μεγάλη (το όριο είναι %lu byte)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Δεν είναι δυνατή η επαλήθευση πολλαπλών αρχειοθηκών" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Δεν είναι δυνατή η επαλήθευση των συμπιεσμένων αρχειοθηκών" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Δεν είναι δυνατή η χρήση πολλαπλών συμπιεσμένων αρχειοθηκών" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Αρνούμαι δειλά στη δημιουργία μίας κενής αρχειοθήκης" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Οι επιλογές `-Aru' δεν είναι συμβατές με `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Πρέπει να καθορίσεις μία από τις επιλογές `-Acdtrux'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2284,81 +2328,86 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Το αρχείο συρρικνώθηκε κάτα %s byte" msgstr[1] "%s: Το αρχείο συρρικνώθηκε κάτα %s byte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Η ένδειξη χρόνου είναι εκτός εύρους" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "" "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του " "%s εύρους" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2399,237 +2448,303 @@ msgstr "Εγγραφή σημείου ελέγχου %d" msgid "Read checkpoint %u" msgstr "Ανάγνωση σημείου ελέγχου %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Παράγει αρχεία δεδομένων για δοκιμαστική πλατφόρμα GNU tar.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Συγκρουόμενες επιλογές συμπίεσης" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Σφάλμα κατά την εγγραφή στην κανονική έξοδο" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Χρήση: %s [ΕΠΙΛΟΓΉ]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Άκυρη ένδειξη χρόνου" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Ο αριθμός του i-κόμβου είναι εκτός εύρους" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Άγνωστο σφάλμα συστήματος" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Δεν είναι δυνατό το κλείσιμο" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " άγνωστος τύπος αρχείου %s\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "Η θυγατρική διεργασία τερματίστηκε με το σήμα %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Κατακερματισμένα ονόματα αρχείων--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: παράνομη επιλογή -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Προειδοποίηση: η -I επιλογή δεν υποστηρίζεται; ίσως εννοούσατε την -j ή " -#~ "την -T;" +#~ "\n" +#~ "Αναφορά σφαλμάτων στο <bug-tar@gnu.org>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Ανάγνωση %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Το σφάλμα δεν είναι επανορθώσιμο: τερματισμός τώρα" + +#, fuzzy +#~ msgid "filter the archive through compress" +#~ msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου \n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Προσπαθήστε `%s --help' για περισσότερες πληροφορίες.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Χρήση: %s [ΕΠΙΛΟΓΉ]\n" +#~ "Διαχείριση συσκευής αποθήκευσης ταινίας, αποδοχή εντολών από " +#~ "απομακρυσμένη διεργασία.\n" +#~ "\n" +#~ " --version Εμφάνιση πληροφοριών έκδοσης.\n" +#~ " --help Εμφάνιση αυτής της βοήθειας.\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους" + +#~ msgid "Premature end of file" +#~ msgstr "Πρόωρο τέλος αρχείου" #~ msgid "block size" #~ msgstr "μέγεθος μπλοκ" @@ -2661,9 +2776,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Ορατό σφάλμα μεγάλων ονομάτων" -#~ msgid "Time stamp out of range" -#~ msgstr "Η ένδειξη χρόνου είναι εκτός εύρους" - #~ msgid "Device number out of range" #~ msgstr "Ο αριθμός της συσκευής είναι εκτός εύρους" @@ -3084,6 +3196,11 @@ msgstr "" #~ msgstr "" #~ "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --read-full-records" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Προειδοποίηση: η -I επιλογή δεν υποστηρίζεται; ίσως εννοούσατε την -j ή " +#~ "την -T;" + #~ msgid "Obsolete option name replaced by --touch" #~ msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --touch" diff --git a/po/es.gmo b/po/es.gmo index 165134ff9c4adc39470d0750385ad50c9e49229c..6fe9ec2a91c23d27505070dc4a0b0d1cdddab40e 100644 Binary files a/po/es.gmo and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po index e057a553a9fba76247d5bab67ac01eede73d8924..202a262ccfbb033f279f18530899c5ab5c84957c 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU tar 1.15.1\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2004-12-27 20:45+0100\n" "Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n" "Language-Team: Spanish <es@li.org>\n" @@ -17,47 +17,47 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argumento %s inv�lido para %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumento %s ambiguo para %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Los argumentos v�lidos son:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: El par�metro ARGP_HELP_FMT necesita un valor" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, fuzzy, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: El par�metro ARGP_HELP_FMT necesita un valor" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Par�metro ARGP_HELP_FMT desconocido" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Incongruencia en ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -66,19 +66,19 @@ msgstr "" "tambi�n\n" "obligatorios u opcionales para las opciones cortas correspondientes." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Modo de empleo:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " o bien: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [OPCI�N...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Pruebe `%s --help' o `%s --usage' para m�s informaci�n.\n" @@ -99,224 +99,129 @@ msgstr "Pruebe `%s --help' o `%s --usage' para m # �No tendr�a sentido catalogarlos entonces? # # V�ase "A Bug's life". -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Comunicar bichos a %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Error del sistema desconocido" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 #, fuzzy msgid "give this help list" msgstr "Da esta lista de ayuda" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 #, fuzzy msgid "give a short usage message" msgstr "Da un mensaje de uso corto" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NOMBRE" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 #, fuzzy msgid "print program version" msgstr "Muestra la versi�n del programa" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: la opci�n `%s' requiere un argumento\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: la opci�n `%s' es ambigua\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: la opci�n `--%s' no admite ning�n argumento\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: la opci�n `%c%s' no admite ning�n argumento\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: la opci�n `%s' requiere un argumento\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opci�n no reconocida `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opci�n no reconocida `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: opci�n ilegal -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: opci�n inv�lida -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: la opci�n requiere un argumento -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: la opci�n `-W %s' es ambigua\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: la opci�n `-W %s' no admite ning�n argumento\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "memoria agotada" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "No se pudo obtener el directorio actual" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "No se puede determinar el directorio de trabajo inicial" -# FIXME: Intraducible. -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: No se puede %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Atenci�n: No se puede %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: No se puede cambiar el modo a %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: No se puede cambiar el propietario a uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: No se puede crear un enlace duro a %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Error de lectura en el byte %s, leyendo %lu byte" -msgstr[1] "%s: Error de lectura en el byte %s, leyendo %lu bytes" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Atenci�n: Error de lectura en el byte %s, leyendo %lu byte" -msgstr[1] "%s: Atenci�n: Error de lectura en el byte %s, leyendo %lu bytes" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: No se puede desplazar a %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Atenci�n: No se puede desplazar a %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: No se puede crear el enlace simb�lico a %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: S�lo se escribieron %lu de %lu byte" -msgstr[1] "%s: S�lo se escribieron %lu de %lu bytes" - -# FIXME. This might not always work. Is `%.*s' male or female? sv -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Eliminando la `%s' inicial de los nombres" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Eliminando la `%s' inicial de los objetivos de los enlaces" - -# FIXME. This might not always work. Is `%.*s' male or female? sv -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Se sustituye `.' por el nombre vac�o" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Se sustituye `.' por un objetivo vac�o de enlace duro" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -330,17 +235,17 @@ msgstr "Se sustituye `.' por un objetivo vac #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -350,7 +255,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -360,38 +265,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Servicio no disponible" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "entrada est�ndar (stdin)" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "salida est�ndar (stdout)" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "No se puede ejecutar un shell remoto" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -402,19 +297,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Escrito por Fran�ois Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Escrito por Fran�ois Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrito por Fran�ois Pinard." @@ -422,7 +317,7 @@ msgstr "Escrito por Fran #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +327,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -442,7 +337,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -452,7 +347,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -462,7 +357,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -473,7 +368,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -484,7 +379,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -512,88 +407,257 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Comunicar bichos a %s.\n" + +# Por favor, no me dig�is c�mo se traduce bug. +# Gerardo lo ha visto traducido en un libro como "pulgas", y yo +# lo he visto como "chinche" en la "Investigaci�n y Ciencia". +# Est� claro que as� no vamos a ninguna parte. +# Yo dir�a simplemente `fallos [ocultos]'. Es lo que significa, en realidad, +# en el contexto inform�tico, razones hist�ricas aparte de bichos anidando +# al calorcito de los tubos de vac�o de los primeros computadores. gerardo +# De "ocultos" nada... Este vamos a dejarlo, �vale? sv +# T� mandas, pero �c�mo que de ocultos nada? Si no fueran ocultos, el progra- +# ma no ver�a la luz a�n, �no? Pero observa que he puesto el `ocultos' entre +# corchetes. Yo pondr�a "bug -> fallo" simplemente. Comunicar fallos a... gerardo +# �Que no ver�a la luz si no fueran ocultos? Ja, ja, ja, ja... +# Mira por ejemplo en http://nl.debian.org/Bugs. +# �No tendr�a sentido catalogarlos entonces? +# +# V�ase "A Bug's life". +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Comunicar bichos a <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "" +# FIXME: Intraducible. +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: No se puede %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: No se puede asignar espacio para el b�fer\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Atenci�n: No se puede %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "No se puede asignar espacio para el b�fer" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: No se puede cambiar el modo a %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Pruebe `%s --help' para m�s informaci�n.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: No se puede cambiar el propietario a uid %lu, gid %lu" -#: rmt/rmt.c:308 +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: No se puede crear un enlace duro a %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" -msgstr "" -"Modo de empleo: %s [OPCI�N]\n" -"Manipula una unidad de cinta, aceptando �rdenes de un proceso remoto.\n" -"\n" -" --version Muestra la versi�n.\n" -" --help Muestra esta ayuda.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Error de lectura en el byte %s, leyendo %lu byte" +msgstr[1] "%s: Error de lectura en el byte %s, leyendo %lu bytes" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Atenci�n: Error de lectura en el byte %s, leyendo %lu byte" +msgstr[1] "%s: Atenci�n: Error de lectura en el byte %s, leyendo %lu bytes" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: No se puede desplazar a %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Atenci�n: No se puede desplazar a %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: No se puede crear el enlace simb�lico a %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: S�lo se escribieron %lu de %lu byte" +msgstr[1] "%s: S�lo se escribieron %lu de %lu bytes" + +# FIXME. This might not always work. Is `%.*s' male or female? sv +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Eliminando la `%s' inicial de los nombres" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Eliminando la `%s' inicial de los objetivos de los enlaces" + +# FIXME. This might not always work. Is `%.*s' male or female? sv +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Se sustituye `.' por el nombre vac�o" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Se sustituye `.' por un objetivo vac�o de enlace duro" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Servicio no disponible" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "entrada est�ndar (stdin)" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "salida est�ndar (stdout)" + +# Lo mismo que con stat() em+ +# seek() es otra funci�n. seek = "hacer seek()" �Estos +# angloparlantes! +#: lib/rtapelib.c:429 +#, fuzzy, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "No se puede acceder a la posici�n %s en el fichero %s" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "No se puede ejecutar un shell remoto" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Direcci�n de desplazamiento fuera de rango" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Desplazamiento fuera de rango" +msgid "Invalid seek direction" +msgstr "Se ha especificado un modo no v�lido en la opci�n" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Marca de tiempo inv�lida" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Desplazamiento fuera de rango" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Direcci�n de desplazamiento fuera de rango" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Longitud de cinta inv�lida" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Desplazamiento fuera de rango" # FIXME. Este es el �nico eof en min�sculas. -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Fin de fichero prematuro\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Fin de fichero prematuro" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Modo principal de operaci�n:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Fin de fichero inesperado en el archivo" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "N�MERO" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FICHERO" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "No se puede abrir %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Orden ininteligible" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Esto no parece un archivo tar" @@ -602,12 +666,12 @@ msgstr "Esto no parece un archivo tar" # "bytes escritos en total" suena demasiado complejo... Nicol�s Lichtmaier. # Suena algo extra�o eso de "total de bytes". "en total" me suena # mucho m�s natural. sv -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Bytes escritos en total: %s (%s, %s/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" @@ -616,7 +680,7 @@ msgstr "" # "bytes escritos en total" suena demasiado complejo... Nicol�s Lichtmaier. # Suena algo extra�o eso de "total de bytes". "en total" me suena # mucho m�s natural. sv -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Bytes escritos en total: %s (%s, %s/s)\n" @@ -635,17 +699,17 @@ msgstr "Bytes escritos en total: %s (%s, %s/s)\n" # aparecer *varias* veces, y entonces s� que es una paliza. # Ejemplo de paliza: "tuber�a rota" en libc. Sale much�simo y no es # cuesti�n de ver (pipe) cuarenta veces al d�a... -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(tuber�a)" # �No queda m�s bonita la 1� comilla abierta as�: `record_size'? # S�. FIXME. Comunicar al autor. sv -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "El valor de `record_size' no es v�lido" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "No se ha especificado ning�n nombre de archivo" @@ -664,69 +728,69 @@ msgstr "No se ha especificado ning # o algo as�. Quiz� "No se puede verificar un archivo tomado de la entrada # est�ndar o escrito hacia la salida est�ndar", pero es un poco largo.. =) # -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "No se puede verificar la entrada/salida est�ndar" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "El archivo est� comprimido. Utilice la opci�n %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "No se pueden actualizar archivos comprimidos" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Al principio de la cinta, se terminar� ahora" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Demasiados errores, abandono" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Tama�o del registro = %lu bloque" msgstr[1] "Tama�o del registro = %lu bloques" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Bloque no alineado (%lu byte) dentro del archivo" msgstr[1] "Bloque no alineado (%lu bytes) dentro del archivo" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "No se puede ir hacia atr�s en el archivo; puede ser ilegible sin -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek no par� en los l�mites de un registro" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: contiene un n�mero de volumen inv�lido" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Desbordamiento en el n�mero de volumen" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepare el volumen #%d para %s y pulse intro: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "" "Se encontr� un final de fichero mientras se esperaba respuesta del usuario" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ATENCI�N: El archivo est� incompleto" @@ -758,7 +822,7 @@ msgstr "ATENCI # A m� aqu� me da igual lista que ayuda, de las dos formas se entiende. Manda # el traductor original. gerardo # �A alguien m�s le parece mal que ponga ayuda en vez de lista? sv -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -771,12 +835,12 @@ msgstr "" " ! Lanza un subshell\n" " ? Muestra esta ayuda\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" @@ -787,35 +851,35 @@ msgstr "" # Uno se sale del programa, y �ste acaba. En realidad, tambi�n da igual, de # cualquier forma se entiende, pero mejor acabar o terminar que finalizar, # total, son sin�nimos. gerardo -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "No hay volumen nuevo; finalizando.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "La orden `%s' fall�" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s no contin�a en este volumen" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s no contin�a en este volumen" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s tiene un tama�o err�neo (%s != %s + %s)" @@ -835,7 +899,7 @@ msgstr "%s tiene un tama # �l solito. # Todav�a espero una soluci�n m�gica que sea mejor que las dos # que tenemos hasta ahora. -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Este volumen est� fuera de secuencia" @@ -846,17 +910,17 @@ msgstr "Este volumen est # Si no se sabe eso, se podr�a dejar de forma m�s neutra como # "Archivo no etiquetado para concordancia con `%s'" - gerardo (gag) # FIXME: Preguntar. -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "El archivo no est� etiquetado para que coincida con %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "El volumen %s no coincide con %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, fuzzy, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -868,28 +932,28 @@ msgstr "" # Seg�n gag y jmg, hay que decir: "no est� en un l�mite de bloque", pues # no estamos hablando de un bloque concreto (el bloque) sino de uno cualquiera. # FIXME: Entonces tal vez el original deber�a decir "on a block boundary". sv -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "El fin del archivo %s no est� en un l�mite de bloque" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "S�lo se pudieron leer %lu de %lu byte" msgstr[1] "S�lo se pudieron leer %lu de %lu bytes" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "El contenido es distinto" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Fin de fichero inesperado en el archivo" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "El tipo de fichero es distinto" @@ -899,39 +963,39 @@ msgstr "El tipo de fichero es distinto" # corresponder siempre una frase corta espa�ola, el resultado sonar� a indio # completamente (me refiero a los indios esos de las pel�culas del oeste, # que solamente hablan con sustantivos, verbos y adjetivos). sv -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "El modo es distinto" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "El uid es distinto" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "El gid es distinto" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "La fecha de modificaci�n es distinta" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "El tama�o es distinto" # Creo que este enlace se efect�a al descomprimir un archivo tar. # No es que nos diga si est� enlazado o no lo est�, sino si �l hace # el enlace o no lo hace. sv -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "No se enlaza a %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "El enlace simb�lico es distinto" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "El n�mero de dispositivo es distinto" @@ -967,34 +1031,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "Puede que la verificaci�n no encuentre los ficheros originales." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "FALLO DE VERIFICACI�N: %d cabecera inv�lida detectada" msgstr[1] "FALLO DE VERIFICACI�N: %d cabeceras inv�lidas detectadas" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Un bloque de ceros aislado en %s" -#: src/create.c:67 +#: src/create.c:68 #, fuzzy, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: contiene una marca de directorio cach�; no se vuelca" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "valor %s fuera del rango %s %s..%s; se sustituye %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "valor %s fuera del rango %s %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Generando cabeceras octales negativas" @@ -1023,7 +1087,7 @@ msgstr "%s: el nombre del enlace es demasiado largo; no se vuelca" # Que s�, reconozco que la traducci�n es un poco libre. # Pero mi intenci�n es que el programa diga lo que va haciendo, no lo que ya # ha hecho. Ni siquiera el original es consistente en los modos verbales. sv -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -1032,13 +1096,13 @@ msgstr[0] "" msgstr[1] "" "%s: El tama�o del fichero ha disminuido en %s bytes, se rellena con ceros" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: el fichero est� en un sistema de ficheros distinto; no se vuelca" # Se vuelca la *memoria* del proceso en un fichero llamado `core'. -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 #, fuzzy msgid "contents not dumped" msgstr " (memoria volcada)" @@ -1059,76 +1123,71 @@ msgstr " (memoria volcada)" # Seguiremos en la ortodoxia, pero a�n as�, no puedo creerme que venga # en el DRAE. �Est�s seguro? sv # No, no me compr� el DRAE. Preg�ntalo a spanglish (si te atreves ;-) gerardo -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipo de fichero desconocido; no se tendr� en cuenta" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr "Faltan enlaces a '%s'.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: el fichero no ha cambiado; no se vuelca" # FIXME: Decir al autor que ponga el "itself". sv -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: el fichero es el propio archivo; no se vuelca" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: El fichero fue borrado antes de leerlo" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 #, fuzzy msgid "directory not dumped" msgstr "%s: contiene una marca de directorio cach�; no se vuelca" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: el fichero cambi� mientras se estaba leyendo" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: el `socket' no se tendr� en cuenta" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: no se tendr� en cuenta la puerta" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Saltando a la siguiente cabecera" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Borrando no-cabecera del archivo" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: marca de fecha sospechosamente antigua %s" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: la marca de tiempo %s est� %lu s en el futuro" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsistencia inesperada al crear el directorio" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" @@ -1138,7 +1197,7 @@ msgstr "" # ni un dispositivo (de bloques o de caracteres) ni un fifo, etc. # Uno puede pensar que son los ficheros "normales", pero eso depende, # pues un directorio es de lo m�s "normal"... -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Extrayendo ficheros contiguos como ficheros regulares" @@ -1147,207 +1206,198 @@ msgstr "Extrayendo ficheros contiguos como ficheros regulares" # Es una cuesti�n todav�a no dirimida. # �Tienes alg�n dato m�s? �Qu� dicen los libros? sv # Enlaces duros. Lo acabo de mirar en un libro. gag -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Intentando la extracci�n de enlaces simb�licos como enlaces duros" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Leyendo %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: No se puede extraer -- el fichero es continuaci�n de otro volumen" # �No se referir� al autor a "mangled filenames"?... jmg # FIXME. Pregunt�rselo. -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Fin de fichero inesperado en los nombres modificados" # FIXME. Lo de las comillas '%c'. # Como antes, lo estandarizo en la traducci�n a pesar de todo. -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Tipo de fichero `%c' desconocido, se extrae como fichero normal" -#: src/extract.c:1181 +#: src/extract.c:1223 #, fuzzy, c-format msgid "Current %s is newer or same age" msgstr "El `%s' actual es m�s reciente" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: No se pudo hacer copia de seguridad de este fichero" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: No se puede renombrar a %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "El error no es recuperable: salida ahora" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: El directorio ha sido renombrado" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: El directorio ha sido renombrado" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: El directorio es nuevo" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Marca de tiempo inv�lida" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Se ha especificado un modo no v�lido en la opci�n" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "N�mero de dispositivo inv�lido" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "N�mero de nodo-i inv�lido" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 #, fuzzy msgid "Read error in snapshot file" msgstr "Error de lectura en %s" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Fin de fichero inesperado en el archivo" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 #, fuzzy msgid "Malformed dumpdir: empty name in 'R'" msgstr "Argumento de densidad mal formado: '%s'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 #, fuzzy msgid "Malformed dumpdir: empty name in 'T'" msgstr "Argumento de densidad mal formado: '%s'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: No se purga el directorio: no se puede efectuar `stat'" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: el directorio est� en un dispositivo distinto: no se purga" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Borrando %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: No se puede borrar" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Se omite" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloque %s: ** Bloque de NULos **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloque %s: ** Fin de Fichero **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "bloque %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Hay blancos en la cabecera cuando se esperaba el valor num�rico %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1355,141 +1405,158 @@ msgstr "" "se supone complemento a dos" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "El valor octal %.*s del archivo est� fuera del rango %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "El archivo contiene cabeceras base 64 obsoletas" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "La cadena firmada en base 64 %s del archivo est� fuera del rango %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "El valor en base 256 del archivo est� fuera del rango %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "El archivo contiene %.*s donde se esperaba el valor num�rico %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, fuzzy, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "El valor del archivo %s est� fuera del rango %s %s.%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " enlace a %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " tipo de fichero desconocido %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Enlace largo--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Nombre largo--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Cabecera de Volumen--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Contin�a en el byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Creando el directorio:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Se renombra %s como %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: No se puede renombrar a %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Se vuelve a renombrar %s como %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "No se puede guardar el directorio de trabajo" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "No se puede cambiar el directorio de trabajo" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: El fichero fue borrado antes de leerlo" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: El fichero fue borrado antes de leerlo" + +#: src/misc.c:795 msgid "child process" msgstr "proceso hijo" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "canal de interproceso" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "" +"los patrones de exclusi�n encajan con el comienzo del nombre del fichero" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: No se encuentra en el archivo" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: El elemento solicitado no se encuentra en el archivo" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Las opciones `-%s' y `-%s' requieren entrada est�ndar" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Formato de archivo inv�lido" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Se requieren caracter�sticas de GNU en formato de archivo incompatible" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1510,7 +1577,7 @@ msgstr "" # # nil: numeradas... simples... (en plural) # # never, simPle (falta una pe): backup -> copia de seguridad. gag # Estoy de acuerdo con lo de gag (m�s arriba usas eso mismo). jmg -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1555,7 +1622,7 @@ msgstr "" # # nil: numeradas... simples... (en plural) # # never, simPle (falta una pe): backup -> copia de seguridad. gag # Estoy de acuerdo con lo de gag (m�s arriba usas eso mismo). jmg -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1586,76 +1653,74 @@ msgstr "" " en otro caso\n" " never, simple siempre hace copias de seguridad simples\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Modo principal de operaci�n:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "lista el contenido de un archivo" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "extrae ficheros de un archivo" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "crea un nuevo archivo" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "encuentra las diferencias entre un archivo y el sistema de ficheros" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "a�ade ficheros al final de un archivo" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "solamente a�ade ficheros m�s recientes que la copia del archivo" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "a�ade ficheros tar a un archivo" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "borra del archivo (�no en cintas magn�ticas!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Modificadores de operaci�n:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "maneja ficheros dispersos de forma eficiente" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "maneja el formato GNU antiguo de respaldo incremental" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FICHERO" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "maneja el nuevo formato GNU de respaldo incremental" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + # �archivos nonzero? sv # Estupendo Gerardo, se me hab�a pasado, como tantas cosas em+ # # �Nooorl! Quiere decir que el programa tar no acaba o sale (exit()) @@ -1663,16 +1728,11 @@ msgstr "maneja el nuevo formato GNU de respaldo incremental" # # encuentre ficheros ilegibles. (�Uf! Ahora a ver c�mo se pone esto en # # media l�nea.) gag # -#: src/tar.c:408 +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "no sale con estado distinto de cero cuando hay ficheros ilegibles" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "N�MERO" - -#: src/tar.c:410 +#: src/tar.c:428 #, fuzzy msgid "" "process only the NUMBERth occurrence of each file in the archive; this " @@ -1686,202 +1746,211 @@ msgstr "" "�rdenes o con la opci�n -T. El valor predeterminado de NUM es 1." # Mejor eso que inventarse un palabro, digo yo. sv -#: src/tar.c:416 +#: src/tar.c:434 #, fuzzy msgid "archive is seekable" msgstr "El archivo admite `seek'" -#: src/tar.c:418 +# Mejor eso que inventarse un palabro, digo yo. sv +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "El archivo admite `seek'" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "intenta verificar el archivo despu�s de escribirlo" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "borra los ficheros despu�s de a�adirlos al archivo" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "no reemplaza ficheros que existan al extraer" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "no reemplaza los ficheros que existan que sean m�s recientes que sus copias " "en el archivo" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "sobreescribe los ficheros que existan al extraer" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "borra cada fichero antes de extraer sobre �l" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "vac�a jerarqu�as antes de extraer directorios" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "conserva los metadatos de los directorios que existan" -#: src/tar.c:446 +#: src/tar.c:466 #, fuzzy msgid "overwrite metadata of existing directories when extracting (default)" msgstr "sobreescribe los ficheros que existan al extraer" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "extrae los ficheros a la salida est�ndar" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "ORDEN" -#: src/tar.c:457 +#: src/tar.c:477 #, fuzzy msgid "pipe extracted files to another program" msgstr "extrae los ficheros a la salida est�ndar" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Manejo de los atributos del fichero:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "fuerza NOMBRE como propietario de los ficheros que se a�aden" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "fuerza NOMBRE como grupo para los ficheros que se a�aden" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "FECHA-O-FICHERO" -#: src/tar.c:473 +#: src/tar.c:493 #, fuzzy msgid "set mtime for added files from DATE-OR-FILE" msgstr "almacena solamente ficheros m�s recientes que FECHA-O-FICHERO" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "CAMBIOS" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "fuerza CAMBIOS (simb�licos) de modo para los ficheros que se a�aden" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "no extrae la fecha de modificaci�n del fichero" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "intenta extraer los ficheros con el mismo propietario" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "extrae los ficheros como usted mismo" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "utiliza siempre n�meros para los nombres de usuarios/grupos" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "ordena los nombres que se extraen para que coincidan con el archivo" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "lo mismo que -p y -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Selecci�n de dispositivo y opciones:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIVO" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "utiliza un archivo o el dispositivo ARCHIVO" -#: src/tar.c:514 +#: src/tar.c:534 #, fuzzy msgid "archive file is local even if it has a colon" msgstr "el archivo es local incluso si tiene dos puntos" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "utiliza la ORDEN rmt dada en vez de rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "utiliza la ORDEN remota en vez de rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "especifica la unidad y la densidad" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "crea/lista/extrae un archivo multivolumen" @@ -1895,38 +1964,38 @@ msgstr "crea/lista/extrae un archivo multivolumen" # x � - gerardo # Efectivamente, pero no es transportable, el que use tar bajo DJGPP # le saldr�a un churro pues el aspa no existe en la tabla 850. sv -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "cambia la cinta despu�s de escribir N�MERO x 1024 bytes" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "ejecuta un script al final de cada cinta (implica -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "usa/actualiza el n�mero de volumen en FICHERO" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Bloques en los dispositivos:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOQUES" # Sigo en mis 13 y en esto no hay quien me baje del burro: BLOQUES x 512 bytes # debe ser BLOQUES � 512 bytes. gerardo -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOQUES x 512 bytes por registro" -#: src/tar.c:553 +#: src/tar.c:573 #, fuzzy msgid "NUMBER of bytes per record, multiple of 512" msgstr "TAMA�O bytes por registro, m�ltiplo de 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" "no tiene en cuenta los bloques convertidos en ceros dentro de un archivo " @@ -1941,7 +2010,7 @@ msgstr "" # # requetequetequete... (longitud infinita). Pel�n ssagerao, �no? gag # # Bueno, al final he puesto lo que se ve, un poco menos raro que rebloquear. sv -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "rehace los bloques conforme se lee (para tuber�as de 4.2BSD)" @@ -1950,70 +2019,70 @@ msgstr "rehace los bloques conforme se lee (para tuber # salida est�ndar' no pega mucho. Est� en otros mensajes, como el # siguiente; no lo entiendo. - gerardo # FIXME. Tienes raz�n. Es muy raro. -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Selecci�n del formato de archivo:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMATO" -#: src/tar.c:565 +#: src/tar.c:585 #, fuzzy msgid "create archive of the given format" msgstr "crea un archivo en el formato dado." -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMATO es uno de los siguientes:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "formato tar V7 antiguo" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "formato GNU de tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "formato GNU tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "formato POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "formato POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 #, fuzzy msgid "same as pax" msgstr "Lo mismo que pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "lo mismo que --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "lo mismo que --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 #, fuzzy msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "palabra[[:]=valor][,palabra[[:]=valor], ...]" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "palabras clave de control de pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEXTO" -#: src/tar.c:588 +#: src/tar.c:608 #, fuzzy msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " @@ -2022,95 +2091,63 @@ msgstr "" "crea un archivo con nombre de volumen NOMBRE. En el momento de listar/" "extraer, utiliza TEXTO como patr�n expandible" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Opciones de compresi�n en conflicto" -#: src/tar.c:595 +#: src/tar.c:615 #, fuzzy msgid "use archive suffix to determine the compression program" msgstr "No se puede escribir al programa de compresi�n" -#: src/tar.c:597 +#: src/tar.c:617 #, fuzzy msgid "do not use archive suffix to determine the compression program" msgstr "No se puede escribir al programa de compresi�n" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "filtra el archivo a trav�s de bzip2" - -# FIXME: Decir al autor que ponga el "itself". sv -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "filtra el arhivo a trav�s de gzip" - -# FIXME: Decir al autor que ponga el "itself". sv -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "filtra el archivo a trav�s de compress" - -# FIXME: Decir al autor que ponga el "itself". sv -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "filtra el arhivo a trav�s de gzip" - -# FIXME: Decir al autor que ponga el "itself". sv -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "filtra el arhivo a trav�s de gzip" - -# FIXME: Decir al autor que ponga el "itself". sv -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "filtra el arhivo a trav�s de gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "filtra a trav�s de PROG (debe aceptar -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Selecci�n del fichero local:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DIR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "cambia al directorio DIR" -#: src/tar.c:627 +#: src/tar.c:643 #, fuzzy msgid "get names to extract or create from FILE" msgstr "obtiene los nombres que se van a extraer o crear del fichero NOMBRE" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T lee nombres terminados en nulo, desactiva -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" @@ -2119,111 +2156,115 @@ msgstr "" # de expansi�n de nombres de ficheros, como * y ?, mientras que # el segundo se refiere a expresiones regulares como las de grep, # es decir, ^, $, ., *, etc. -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "PATR�N" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "excluye ficheros, dados como un PATR�N" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "excluye los patrones listados en FICHERO" -#: src/tar.c:641 +#: src/tar.c:657 #, fuzzy msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "excluye los directorios que contienen una marca de cach�" -#: src/tar.c:644 +#: src/tar.c:660 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "excluye los directorios que contienen una marca de cach�" -#: src/tar.c:647 +#: src/tar.c:663 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "excluye los directorios que contienen una marca de cach�" -#: src/tar.c:649 +#: src/tar.c:665 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "excluye los directorios que contienen una marca de cach�" -#: src/tar.c:652 +#: src/tar.c:668 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "excluye los directorios que contienen una marca de cach�" -#: src/tar.c:654 +#: src/tar.c:670 #, fuzzy msgid "exclude directories containing FILE" msgstr "excluye los directorios que contienen una marca de cach�" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "evita descender autom�ticamente en los directorios" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "permanece en el sistema de ficheros locales al crear el archivo" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "opera recursivamente sobre los directorios (por omisi�n)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "no elimina la `/' inicial de los nombres de ficheros" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "NOMBRE-DE-MIEMBRO" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "comienza por el miembro NOMBRE-DE-MIEMBRO dentro del archivo" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "almacena solamente ficheros m�s recientes que FECHA-O-FICHERO" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "FECHA" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "compara la fecha y hora solamente cuando cambian los datos" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "se hace un respaldo antes de borrar, escoja el CONTROL de versi�n" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "CADENA" -#: src/tar.c:679 +#: src/tar.c:697 #, fuzzy msgid "" "backup before removal, override usual suffix ('~' unless overridden by " @@ -2233,97 +2274,105 @@ msgstr "" "que se\n" "cambie con la variable de entorno SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 #, fuzzy msgid "strip NUMBER leading components from file names on extraction" msgstr "elimina N�MERO componentes iniciales de los nombres de ficheros" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 #, fuzzy msgid "ignore case" msgstr "la exclusi�n no distingue may�sculas de min�sculas" -#: src/tar.c:700 +#: src/tar.c:718 #, fuzzy msgid "patterns match file name start" msgstr "" "los patrones de exclusi�n encajan con el comienzo del nombre del fichero" -#: src/tar.c:702 +#: src/tar.c:720 #, fuzzy msgid "patterns match after any `/' (default for exclusion)" msgstr "los patrones de exclusi�n encajan despu�s de cualquier / (por omisi�n)" -#: src/tar.c:704 +#: src/tar.c:722 #, fuzzy msgid "case sensitive matching (default)" msgstr "la exclusi�n distingue may�sculas de min�sculas (por omisi�n)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "los comodines de patrones de exclusi�n no encajan con '/'" -#: src/tar.c:712 +#: src/tar.c:730 #, fuzzy msgid "wildcards match `/' (default for exclusion)" msgstr "" "los comodines de los patrones de exclusi�n encajan con '/' (por omisi�n)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Salida informativa:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "lista los ficheros procesados detalladamente" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 #, fuzzy msgid "display progress messages every NUMBERth record (default 10)" msgstr "muestra mensajes de progreso cada 10 registros" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "muestra un mensaje si no se vuelcan todos los enlaces" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2331,28 +2380,28 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "muestra las fechas de modificaci�n de los ficheros en UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "env�a la salida detallada a FICHERO" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "muestra el n�mero de bloque dentro del archivo con cada mensaje" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "pide confirmaci�n para cada acci�n" -#: src/tar.c:744 +#: src/tar.c:764 #, fuzzy msgid "show tar defaults" msgstr "Muestra los valores predeterminados de tar" -#: src/tar.c:746 +#: src/tar.c:766 #, fuzzy msgid "" "when listing or extracting, list each directory that does not match search " @@ -2361,31 +2410,31 @@ msgstr "" "Cuando se lista o extrae, lista cada directorio que no coincida con el " "criterio de b�squeda" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Opciones de compatibilidad:" -#: src/tar.c:764 +#: src/tar.c:784 #, fuzzy msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" @@ -2394,58 +2443,66 @@ msgstr "" "al crear, lo mismo que --old-archive. Al extraer, lo mismo que --no-same-" "owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Otras opciones:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "No se puede especificar m�s de una opci�n `-Acdtrux'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Opciones de compresi�n en conflicto" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " tipo de fichero desconocido %s\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "No se encontr� la fecha del fichero" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Sustituyendo %s por el formato de fecha desconocido %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, fuzzy, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Se trata la fecha `%s' como %s + %ld nanosegundo" # FIXME: Decir al autor que ponga el "itself". sv -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: el fichero es el propio archivo; no se vuelca" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +# FIXME: Decir al autor que ponga el "itself". sv +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "filtra el arhivo a trav�s de gzip" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2453,118 +2510,127 @@ msgstr "" "\n" "Las opciones predeterminadas de *esta* versi�n de tar son:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Factor de bloqueo inv�lido" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Longitud de cinta inv�lida" +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + # No s� c�mo traducir threshold. fr # Yo tampoco (los diccionarios los tengo en casa...). sv # Lo buscar� en un diccionario "g�eno". fr # Es "umbral", pero no s� qu� c$%&# es la fecha umbral. :-( gag # A ver si te vale as�. sv # �Qu� tal os suena "fecha l�mite"?. jmg -#: src/tar.c:1441 +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Se ha especificado m�s de una fecha tope" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Grupo inv�lido" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Se ha especificado un modo no v�lido en la opci�n" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "N�mero inv�lido" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Propietario inv�lido" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "El tama�o del registro es inv�lido" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "El tama�o del registro debe ser m�ltiplo de %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "N�mero inv�lido de elementos" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, fuzzy, c-format msgid "Malformed density argument: %s" msgstr "Argumento de densidad mal formado: '%s'" -#: src/tar.c:1994 +#: src/tar.c:2126 #, fuzzy, c-format msgid "Unknown density: `%c'" msgstr "Densidad desconocida: '%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "*Esta* versi�n de tar no admite las opciones `-[0-7][lmh]'" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FICHERO]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "La opci�n antigua `%c' requiere un argumento" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence no tiene sentido sin una lista de ficheros" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "no se puede usar --occurrence en el modo de operaci�n solicitado" # requieren -> necesitan. gerardo -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Los archivos m�ltiples requieren la opci�n `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "No se puede combinar --listed-incremental con --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--occurrence no tiene sentido sin una lista de ficheros" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2573,49 +2639,50 @@ msgstr[0] "" msgstr[1] "" "%s: La etiqueta de volumen es demasiado larga (el l�mite es %lu bytes)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "No se pueden verificar archivos multivolumen" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "No se pueden verificar archivos comprimidos" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "No se pueden utilizar archivos multivolumen comprimidos" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "No se pueden actualizar archivos comprimidos" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option solamente se puede usar en archivos POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" # Me gusta m�s al verr�s: cobarde rechazo [de la pradera] a... gerardo -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Rechazo cobarde a crear un archivo vac�o" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Las opciones `-Aru' son incompatibles con `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Debe especificar una de las opciones `-Acdtrux'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2642,83 +2709,88 @@ msgstr[0] "%s: El tama msgstr[1] "%s: El tama�o del fichero ha disminuido en %s bytes" # FIXME: Imlemented -#: src/xheader.c:156 +#: src/xheader.c:163 #, fuzzy, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "La palabra clave %s es desconocida o no est� implementada todav�a" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Marca de tiempo fuera de rango" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "No se puede usar el patr�n %s" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "La palabra clave %s no se puede sustituir" -#: src/xheader.c:496 +#: src/xheader.c:541 #, fuzzy msgid "Malformed extended header: missing length" msgstr "Cabecera extendida err�nea: falta un signo igual" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "La cadena firmada en base 64 %s del archivo est� fuera del rango %s" -#: src/xheader.c:523 +#: src/xheader.c:568 #, fuzzy msgid "Malformed extended header: missing blank after length" msgstr "" "Cabecera extendida err�nea: falta un espacio en blanco despu�s de la longitud" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Cabecera extendida err�nea: falta un signo igual" -#: src/xheader.c:537 +#: src/xheader.c:582 #, fuzzy msgid "Malformed extended header: missing newline" msgstr "Cabecera extendida err�nea: falta un signo igual" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "El valor del archivo %s est� fuera del rango %s %s.%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, fuzzy, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Cabecera extendida err�nea: falta un signo igual" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, fuzzy, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Cabecera extendida err�nea: falta un signo igual" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Cabecera extendida err�nea: falta un signo igual" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Cabecera extendida err�nea: falta un signo igual" @@ -2762,190 +2834,199 @@ msgstr "Punto de comprobaci # Acepto sugerencias para el `test suite'. sv # "test suite"="paquete/conjunto de pruebas/an�lisis", en cualquier # combinaci�n. jmg -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Genera ficheros de datos para el conjunto de pruebas de GNU tar.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Otras opciones:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 #, fuzzy msgid "Create file of the given SIZE" msgstr "crea un archivo en el formato dado." -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "extrae los ficheros a la salida est�ndar" -#: tests/genfile.c:132 +#: tests/genfile.c:134 #, fuzzy msgid "Read file names from FILE" msgstr "Le�dos %s bytes como %s" -#: tests/genfile.c:134 +#: tests/genfile.c:136 #, fuzzy msgid "-T reads null-terminated names" msgstr "-T lee nombres terminados en nulo, desactiva -C" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "intenta verificar el archivo despu�s de escribirlo" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [OPCI�N...]" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "%s: No se pueden cambiar las fechas de acceso y modificaci�n" -#: tests/genfile.c:190 +#: tests/genfile.c:192 #, fuzzy msgid "Execute COMMAND" msgstr "ORDEN" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Marca de tiempo inv�lida" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "N�mero de nodo-i fuera de rango" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Error del sistema desconocido" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "No se puede abrir %s" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "No se puede cerrar" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " tipo de fichero desconocido %s\n" @@ -2956,53 +3037,133 @@ msgstr " tipo de fichero desconocido %s\n" # ser: "No se puede hacer stat() del fichero %s", o "stat() ha fallado..." # Aunque tal como est� es m�s descriptivo para el ne�fito, desde # luego. gag -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "No se puede leer el estado del fichero %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "No se puede abrir %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "El proceso hijo termin� con la se�al %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Nombres de fichero modificados--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: opci�n ilegal -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Atenci�n: no se admite la opci�n -I; �no ser� -j o -T?" +# Por favor, no me dig�is c�mo se traduce bug. +# Gerardo lo ha visto traducido en un libro como "pulgas", y yo +# lo he visto como "chinche" en la "Investigaci�n y Ciencia". +# Est� claro que as� no vamos a ninguna parte. +# Yo dir�a simplemente `fallos [ocultos]'. Es lo que significa, en realidad, +# en el contexto inform�tico, razones hist�ricas aparte de bichos anidando +# al calorcito de los tubos de vac�o de los primeros computadores. gerardo +# De "ocultos" nada... Este vamos a dejarlo, �vale? sv +# T� mandas, pero �c�mo que de ocultos nada? Si no fueran ocultos, el progra- +# ma no ver�a la luz a�n, �no? Pero observa que he puesto el `ocultos' entre +# corchetes. Yo pondr�a "bug -> fallo" simplemente. Comunicar fallos a... gerardo +# �Que no ver�a la luz si no fueran ocultos? Ja, ja, ja, ja... +# Mira por ejemplo en http://nl.debian.org/Bugs. +# �No tendr�a sentido catalogarlos entonces? +# +# V�ase "A Bug's life". +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Comunicar bichos a <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Leyendo %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "El error no es recuperable: salida ahora" + +#~ msgid "filter the archive through bzip2" +#~ msgstr "filtra el archivo a trav�s de bzip2" + +# FIXME: Decir al autor que ponga el "itself". sv +#~ msgid "filter the archive through gzip" +#~ msgstr "filtra el arhivo a trav�s de gzip" + +# FIXME: Decir al autor que ponga el "itself". sv +#~ msgid "filter the archive through compress" +#~ msgstr "filtra el archivo a trav�s de compress" + +# FIXME: Decir al autor que ponga el "itself". sv +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "filtra el arhivo a trav�s de gzip" + +# FIXME: Decir al autor que ponga el "itself". sv +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "filtra el arhivo a trav�s de gzip" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: No se puede asignar espacio para el b�fer\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "No se puede asignar espacio para el b�fer" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Pruebe `%s --help' para m�s informaci�n.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Modo de empleo: %s [OPCI�N]\n" +#~ "Manipula una unidad de cinta, aceptando �rdenes de un proceso remoto.\n" +#~ "\n" +#~ " --version Muestra la versi�n.\n" +#~ " --help Muestra esta ayuda.\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Desplazamiento fuera de rango" + +#~ msgid "Premature end of file" +#~ msgstr "Fin de fichero prematuro" #~ msgid "block size" #~ msgstr "tama�o del bloque" @@ -3030,9 +3191,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Error de nombre largo visible" -#~ msgid "Time stamp out of range" -#~ msgstr "Marca de tiempo fuera de rango" - #~ msgid "Device number out of range" #~ msgstr "N�mero de dispositivo fuera de rango" @@ -3147,6 +3305,9 @@ msgstr "" #~ " Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 EE." #~ "UU.\n" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "Atenci�n: no se admite la opci�n -I; �no ser� -j o -T?" + #~ msgid "Semantics of -l option will change in the future releases." #~ msgstr "El significado de la opci�n -l cambiar� en versiones posteriores." @@ -3608,12 +3769,6 @@ msgstr "" #~ msgstr "" #~ "No se puede asignar memoria para el b�fer de diferencias de %lu bytes" -# Lo mismo que con stat() em+ -# seek() es otra funci�n. seek = "hacer seek()" �Estos -# angloparlantes! -#~ msgid "Cannot seek to %s in file %s" -#~ msgstr "No se puede acceder a la posici�n %s en el fichero %s" - #~ msgid "Wrote %s of %s bytes to file %s" #~ msgstr "Se escribieron %s de %s bytes en el fichero %s" diff --git a/po/et.gmo b/po/et.gmo index 34607b3094817aee9f00ac34b8c0da82ea74aeb5..371ed25dae8ca1c8527b3b7ca3fa4f1f655b1b80 100644 Binary files a/po/et.gmo and b/po/et.gmo differ diff --git a/po/et.po b/po/et.po index 6df28e56a974251e77408a36b5f69899bb133f44..bc64f8d67189a1bf18be42a106320804ea4e8070 100644 --- a/po/et.po +++ b/po/et.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU tar 1.15.92\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2006-10-26 14:45+0300\n" "Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n" "Language-Team: Estonian <et@li.org>\n" @@ -15,47 +15,47 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "vigane argument %s (`%s')" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "segane argument %s (`%s')" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Lubatud argumendid on:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s v��rtus on v�iksem v�i v�rdne kui %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT parameeter n�uab v��rtust" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT parameeter peab olema positiivne" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Tundmatu ARGP_HELP_FMT parameeter" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Pr�gi ARGP_HELP_FMT parameetrites: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -63,235 +63,143 @@ msgstr "" "Kohustuslikud v�i mittekohustuslikud argumendid pikkadele v�tmetele on ka " "kohustuslikud v�i mittekohustuslikud vastavatele l�hikestele v�tmetele." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Kasutamine:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " v�i: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [V�TI...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "`%s --help' v�i `%s --usage' annab rohkem infot.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Teated vigadest saatke palun aadressil %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Tundmatu s�steemi viga" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "n�ita seda abiinfot" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "n�ita l�hikest kasutamise �petust" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NIMI" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "sea programmi nimi" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SEK" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "oota SEK sekundeid (vaikimisi 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "esita programmi versioon" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(PROGRAMMI VIGA) Versioon pole teada!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Liiga palju argumente\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(PROGRAMMI VIGA) V�ti peaks olema �ra tuntud!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: v�ti `%s' on segane\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: v�tmel `--%s' pole argumente\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: v�tmel `%c%s' pole argumente\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: v�ti `%s' n�uab argumenti\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: tundmatu v�ti `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: tundmatu v�ti `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: vigane v�ti -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: vigane v�ti -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: v�ti n�uab argumenti -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: v�ti `-W %s' on segane\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: v�ti `-W %s' ei luba argumenti\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "m�lu on otsas" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Ei �nnestu vahetada t��kataloogi" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "T��kataloogi ei �nnestu salvestada" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: %s ei �nnestu" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Hoiatus: %s ei �nnestu" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Ei �nnestu seada uueks moodiks %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Ei �nnestu seada omanikuks uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Viidet %s ei saa luua" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Lugemisviga baidil %s, loen %lu baiti" -msgstr[1] "%s: Lugemisviga baidil %s, loen %lu baiti" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Hoiatus: Lugemisviga baidil %s, loen %lu baiti" -msgstr[1] "%s: Hoiatus: Lugemisviga baidil %s, loen %lu baiti" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Ei �nnestu liikuda positsioonile %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Hoiatus: Ei saa positsioneerida %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Ei saa luua %s nimeviidet" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Sain kirjutada ainult %lu baiti (soovisin %lu)" -msgstr[1] "%s: Sain kirjutada ainult %lu baiti (soovisin %lu)" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Eemaldan liikmete nimedelt prefiksi `%s'" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Eemaldan viidatavate nimedelt prefiksi `%s'" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Kasutan t�hjade nimede asemel `.'" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Kasutan t�hja viidatava nime asemel `.'" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -305,17 +213,17 @@ msgstr "Kasutan t #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -325,7 +233,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[jJ]" @@ -335,38 +243,28 @@ msgstr "^[jJ]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[eE]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Teenus pole kasutatav" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "standard sisend" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "standard v�ljund" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Ei saa k�ivitada kaug k�suinterpretaatorit" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -377,19 +275,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -397,7 +295,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -407,7 +305,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -417,7 +315,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -427,7 +325,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -437,7 +335,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -448,7 +346,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -459,7 +357,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -471,182 +369,330 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Teated vigadest saatke palun aadressil %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Teated vigadest saatke palun aadressil <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Sisendi s�ne on liiga pikk" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Numbri s�ntaksi viga" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: %s ei �nnestu" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Ei saa v�tta buhvritele m�lu\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Hoiatus: %s ei �nnestu" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Buhvritele ei j�tku m�lu" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Ei �nnestu seada uueks moodiks %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "`%s --help' annab rohkem infot.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Ei �nnestu seada omanikuks uid %lu, gid %lu" -#: rmt/rmt.c:308 +#: lib/paxerror.c:127 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Viidet %s ei saa luua" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Lugemisviga baidil %s, loen %lu baiti" +msgstr[1] "%s: Lugemisviga baidil %s, loen %lu baiti" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Hoiatus: Lugemisviga baidil %s, loen %lu baiti" +msgstr[1] "%s: Hoiatus: Lugemisviga baidil %s, loen %lu baiti" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Ei �nnestu liikuda positsioonile %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Hoiatus: Ei saa positsioneerida %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Ei saa luua %s nimeviidet" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Sain kirjutada ainult %lu baiti (soovisin %lu)" +msgstr[1] "%s: Sain kirjutada ainult %lu baiti (soovisin %lu)" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Eemaldan liikmete nimedelt prefiksi `%s'" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Eemaldan viidatavate nimedelt prefiksi `%s'" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Kasutan t�hjade nimede asemel `.'" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Kasutan t�hja viidatava nime asemel `.'" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Teenus pole kasutatav" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "standard sisend" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "standard v�ljund" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Kasuta: %s [v�ti]\n" -"Manipuleeri lindiseadmega, lubades k�ske teistest protsessidest.\n" -"\n" -" --version V�ljasta versiooniinfo.\n" -" --help V�ljasta abiinfo.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Otsimise indeksi viga" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Ei saa k�ivitada kaug k�suinterpretaatorit" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Otsimise suund on piiridest v�ljas" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "V�tmega anti vigane mood" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Vigane suurus: %s" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Otsimise indeks on piiridest v�ljas" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Otsimise suund on piiridest v�ljas" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Vigane lindi pikkus" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Otsimise indeks on piiridest v�ljas" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Ootamatu faili l�pp\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Ootamatu faili l�pp" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "P�hiline t��:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "T�keldatud nimedel ootamatu failil�pp" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "N" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FAIL" -#: rmt/rmt.c:672 +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "`%s' ei saa avada" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "liiga palju argumente" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "R�mpsk�sk" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Hmm.... see ei tundu olema tar arhiiv" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Baite kirjutatud kokku" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Baite loetud kokku" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Baite kirjutatud kokku: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(toru)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Kirje suuruse v��rtus on vigane" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Arhiivi nime pole" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Ei saa kontrollida sisend/v�ljund arhiive" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arhiiv on tihendatud. Kasutage v�tit %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Ei saa uuendada pakitud arhiive" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Lindi alguses, l�petan t��" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Liig palju vigu, j�tan t�� pooleli" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Kirje suurus = %lu blokki" msgstr[1] "Kirje suurus = %lu blokki" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Joondamata blokk (%lu baiti) arhiivis" msgstr[1] "Joondamata blokk (%lu baiti) arhiivis" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Arhiivi ei �nnestu tagasi kerida; lugemiseks v�ib olla vajalik kasutada " "v�tit -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ei peatunud kirje piiril" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: sisaldab vigast vol��mi numbrit" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Vol��mi number on liiga suur" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Otsi vol��m #%d %s'le ja vajuta return klahvi: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF kasutaja vastuse asemel" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "HOIATUS: Arhiiv pole t�ielik" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -657,65 +703,65 @@ msgstr "" " q Katkesta tar\n" " y v�i reavahetus J�tka\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Loo alamshell\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? V�ljasta see info\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Pole uus vol��m; l�petan t��.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Puudub faili nimi. Proovige uuesti.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Vigane sisend. ? annab abiinfot.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "%s k�sklus sai vea" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "v�imalik et %s j�tkub sellel vol��mil: p�ises on l�hendatud nimi" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s ei j�tku sellel vol��mil" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s on vale suurusega (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "See vol��m on v�ljaspoolt j�rjekorda" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arhiivi m�rgend ei sobi `%s'" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Vol��m `%s' ei sobi vol��miga `%s'" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -723,61 +769,61 @@ msgstr "" "%s: faili nimi on GNU mitmevol��mi p�isesse salvestamiseks liiga pikk, " "l�hendan" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "rmtlseek ei peatunud kirje piiril" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Sain lugeda ainult %lu baiti (sooviti %lu)" msgstr[1] "Sain lugeda ainult %lu baiti (sooviti %lu)" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Sisu on erinev" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Ootamatu arhiivi l�pp" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Failit��bid on erinevad" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Moodid erinevad" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "UID on erinevad" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "GID on erinevad" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Muutmise ajad erinevad" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Suurused erinevad" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "ei viita %s-le" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Nimeviited erinevad" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Seadme numbrid on erinevad" @@ -799,34 +845,34 @@ msgstr "Arhiiv sisaldab eemaldatud prefiksitega failinimesid." msgid "Verification may fail to locate original files." msgstr "Kontrollimine ei pruugi leida algseid faile." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "VIGA KONTROLLIMISEL: leiti %d vigast p�ist" msgstr[1] "VIGA KONTROLLIMISEL: leiti %d vigast p�ist" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "�ksik null blokk kohal %s" -#: src/create.c:67 +#: src/create.c:68 #, fuzzy, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: sisaldab vahem�lu kataloogi lipikut; ei salvesta" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "v��rtus %s on %s piiridest %s..%s v�ljas; asendan %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "v��rtus %s on %s piiridest %s..%s v�ljas" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Genereerin negatiivsed kaheksand p�ised" @@ -845,438 +891,441 @@ msgstr "%s: faili nimi on liiga pikk (ei saa poolitada); ei salvesta" msgid "%s: link name is too long; not dumped" msgstr "%s: viite nimi on liiga pikk; ei salvesta" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Fail l�henes %s baiti; t�idan nullidega" msgstr[1] "%s: Fail l�henes %s baiti; t�idan nullidega" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fail on teises failis�steemis; ei salvesta" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tundmatu failit��p; ignoreerin seda faili" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "%s-le puudub viiteid.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: pole muutunud; ei salvesta" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s on arhiiv; ei salvesta" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Fail kustutati enne lugemist" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 #, fuzzy msgid "directory not dumped" msgstr "%s: sisaldab vahem�lu kataloogi lipikut; ei salvesta" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fail muutus lugemisel" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: ignoreerin pesa" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: ignoreerin ust" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "H�ppan j�rgmise p�iseni" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Kustutan arhiivist mitte-p�ise" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: ebat�en�oliselt vana ajatempel %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: ajatempel %s on %s sekundit tulevikus" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Ootamatu koosk�lalisuse probleem kataloogi loomisel" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Kataloog nimetati �mber, enne kui sai loetud tema olek" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Taastan j�tkuvad failid kui tavalised" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "�ritan taastada nimeviiteid viidetena" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Loen %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ei saa taastada -- fail j�tkub teisel vol��mil" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Ootamatu pika nime p�is" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Tundmatu failit��p `%c', taastan tavalise failina" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Olemasolev %s on uuem v�i sama kuup�evaga" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Selle faili varundamine eba�nnestus" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "%s ei �nnestu �mber nimetada %s-ks" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "�letamatu t�rge: l�petan t��" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Kataloog %s on �mber nimetatud" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Kataloog on �mber nimetatud" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Kataloog on uus" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Vigane ajatempel" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Vigane muutmise aeg (sekundid)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Vigane muutmise aeg (nanosekundid)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Vigane seadmenumber" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Vigane i-kirje number" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Snapshoti faili lugemisel leiti liiga pikk v�li" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Snapshoti failist lugemise viga" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Ootamatu snapshoti faili l�pp" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Snapshoti failis on v�ljal ootamatu v��rtus" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Puudub kirje l�petaja" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Inkrementaalse faili vorming on vigane" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Mittetoetatud inkrementaalse vormingu versioon: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Vigane taastamise kataloog: eeldasin '%c', sain %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Vigane taastamise kataloog: dubleeritud 'X'" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Vigane taastamise kataloog: t�hi nimi 'R' v�ljal" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Vigane taastamise kataloog: 'R' ei ole 'T' ees" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Vigane taastamise kataloog: t�hi nimi 'T' v�ljal" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Vigane taastamise kataloog: ootasin '%c', aga andmed said otsa" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Vigane taastamise kataloog: 'X' ei kasutata" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Vormiga %s ei saa ajutist kataloogi luua" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Ei puhasta kataloogi: stat eba�nnestus" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: kataloog on teisel seadmel; ei puhasta" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Kustutan %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Ei saa eemaldada" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: J�tan vahele" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blokk %s: ** NULlide blokk **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blokk %s: ** Faili l�pp **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blokk %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "T�hjad v�ljad p�ises kohtadel, kus eeldati numbrit %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" "Arhiivi kaheksandv��rtus %.*s on %s piiridest v�ljas; eeldan kahe t�iendit" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Arhiivi kaheksandv��rtus %.*s on %s piiridest v�ljas" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiiv sisaldab aegunuid base-64 p�iseid" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Arhiivi m�rgiga base-64 s�ne %s on %s piiridest v�ljas" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Arhiivi base-256 v��rtus on %s piiridest v�ljas" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arhiiv sisaldab %.*s, eeldati numbrit %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Arhiivi v��rtus %s on %s piiridest %s..%s v�ljas" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " viide %s-le\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " tundmatu failit��p %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Pikk viide--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Pikk nimi--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Vol��mi p�is--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--J�tkub baidilt %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Loon kataloogi:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Annan %s uueks nimeks %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: ei �nnestu �mber nimetada %s-ks" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Nimetan `%s' tagasi `%s'\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "T��kataloogi ei �nnestu salvestada" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Ei �nnestu vahetada t��kataloogi" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Fail kustutati enne lugemist" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Fail kustutati enne lugemist" + +#: src/misc.c:795 msgid "child process" msgstr "alamprotsess" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "protsessidevaheline kanal" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Failide nimedes on jokkers�mbolid. Nende kasutamiseks" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "kasutage --wildcars, selle teate saab blokeerida v�tmega" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "--no-wildcards." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Puudub arhiivis" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: N�utud eksemplar puudub arhiivis" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "M�lemad v�tmed - `-%s' ja `-%s' eeldavad standard sisendit" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Vigane arhiivi vorming" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Arhiivi formaat ei toeta GNU laiendusi" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" "Tundmatu kvootimise stiil `%s'. Loendi saate k�suga `%s --quoting-style=help'" -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1294,7 +1343,7 @@ msgstr "" " tar -tvf arhiiv.tar # Anna arhiiv.tar sisust t�ielik �levaade.\n" " tar -xf arhiiv.tar # Taasta k�ik failid arhiivist arhiiv.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1314,86 +1363,79 @@ msgstr "" " nil, existing nummerdatud kui koopiad on nummerdatud, muidu lihtne\n" " never, simple tee ainult lihtne koopia\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "P�hiline t��:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "n�ita arhiivi sisukorda" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "taasta failid arhiivist" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "loo uus arhiiv" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "otsi arhiivi ja failis�steemi erinevusi" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "lisa failid arhiivi l�ppu" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "lisa arhiivi ainult failid uuemad kui arhiivis" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "lisa tar failid arhiivi" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "kustuta arhiivist (mitte magnetlindilt!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "testi arhiivi vol��mi m�rgendit ja l�peta t��" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "T�� t�psustamine:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "t��ta aukudega failidega efektiivsemalt" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "P�HI[.ALAM]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "m��ra aukudega faili vormingu versioon (eeldab v�tit --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "k�sitle vana GNU vormingus inkrementaalset koopiat" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FAIL" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "k�sitle uue GNU vormingu inkrementaalset koopiat" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "�ra l�peta loetamatute failide korral veakoodiga" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "N" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1406,116 +1448,120 @@ msgstr "" "antud\n" "k�sureal v�i v�tmega -T. Vaikimisi N on 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "arhiiv on positsioneeritav" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "arhiiv on positsioneeritav" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "�lekirjutamise juhtimine:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "kontrolli arhiivi peale arhiivi kirjutamist" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "kustuta failid peale arhiveerimist" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "olemasolevaid faile taastamisel �le ei kirjuta" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "�ra kirjuta �le olemasolevaid faile, mis on uuemad kui arhiveeritud" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "kirjuta olemasolevad failid �le" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "kustuta fail enne taastamist" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "kustuta hierarhia enne kataloogi taastamist" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "s�ilita olemasolevate kataloogide metainfo" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "taastamisel kirjuta olemasolevate kataloogide metainfo �le (vaikimisi)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Vali v�ljundvoog:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "taasta failid standardv�ljundisse" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "K�SK" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "taasta failid l�bi toru teise programmi" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "ignoreeri alamprotsesside l�petamise koode" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "k�sitle alamprotsesside nullist erinevaid l�petamise koode veana" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Faili atribuutide k�sitlemine:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "kasuta NIMEe kui lisatud failide omanikku" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "kasuta NIMEe kui lisatud failide gruppi" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "KUUP-V�I-FAIL" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "sea lisatud failide muutmise ajaks KUUP-V�I-FAIL" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "MUUTUSED" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "kasuta lisatud failidel s�mbol moodi MUUTUSED" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "MEETOD" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1525,27 +1571,31 @@ msgstr "" "lugemist (METHOD='replace'; vaikimisi) v�i ei muuda kasutamise aega �ldse " "(METHOD='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "�ra taasta faili muutmise aega" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "s�ilita taastamisel failide omanikud" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "taasta failid enda �igustes" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "kasuta kasutaja/grupp numbreid" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "taasta ka info failide �igustest (vaikimisi superkasutaja korral)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1553,154 +1603,154 @@ msgstr "" "�iguste taastamisel kasuta kasutaja umask v��rtust (vaikimisi " "tavakasutajatel)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "taasta failid arhiveerimis j�rjekorras" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "sama, kui -p ja -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "oota muutmise aegade ja �iguste taastamisega taastamise l�puni" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "katkesta --delay-directory-restore v�tme m�ju" -#: src/tar.c:509 +#: src/tar.c:529 #, fuzzy msgid "Device selection and switching:" msgstr "Seadme valik ja vahetamine:\n" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARHIIV" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "kasuta arhiivi faili v�i seadet ARHIIV" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "arhiivi fail on lokaalne isegi kui sisaldab koolonit" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "kasuta rmt asemel antud k�sku" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "kasuta rsh asemel antud k�sku" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "m��ra seade ja tihedus" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "loo/n�ita/taasta mitme vol��milisi arhiive" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "vaheta peale NUMBER x 1024 baidi kirjutamist linti" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "k�ivita iga lindi l�pus skript (eeldab v�tit -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "kasuta/uuenda vol��mi numbrit failis FAIL" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Seadme blokkimine:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOKKE" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOKKE x 512 baiti kirjele" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "NUMBER baiti kirjele, 512 kordne" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "ignoreeri null blokke arhiivis (t�histab EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "bloki lugemisel uuesti (4.2BSD torude jaoks)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Arhiivi vormingu valikud:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "VORMING" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "loo arhiiv antud vormingus" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "VORMING on �ks j�rgnevaist:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "vana V7 tar vorming" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU vorming tar <= 1.12 korral" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x vorming" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) vorming" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) vorming" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "sama, kui pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "sama, kui --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "sama, kui --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "v�tmes�na[[:]=v��rtus][,v�tmes�na[[:]=v��rtus]...]" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "pax v�tmes�nade kasutamine" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEKST" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1708,196 +1758,173 @@ msgstr "" "loo arhiivi vol��mi nimega NIMI. Listingu/taastamise ajal kasuta TEKSTi " "otsingumustrina" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Konfliktsed pakkimisv�tmed" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "filtreeri arhiiv l�bi bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "filtreeri arhiiv l�bi gzipi" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "filtreeri arhiiv l�bi compressi" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "filtreeri arhiiv l�bi gzipi" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "filtreeri arhiiv l�bi gzipi" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "filtreeri arhiiv l�bi gzipi" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "filtreeri l�bi programmi (peab lubama v�tit -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Lokaalse faili valik:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "lisa antud FAIL arhiivi (kasulik, kui faili nimi algab kriipsuga)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "KAT" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "mine kataloogi KAT" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "loe taastatavate v�i varundatavate failide nimed failist NIMI" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T loeb nullidega l�petatud nimesid, blokeeri -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "eemalda -T v�tmega loetud failinimedest kvootimiss�mbolid (vaikimisi)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "�ra eemalda -T v�tmega loetud failinimedest kvootimiss�mboleid" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "MUSTER" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "MUSTRI j�rgi v�listatud failid" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "v�listavad mustrid on FAILIS" -#: src/tar.c:641 +#: src/tar.c:657 #, fuzzy msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "v�lista kataloogid, mis on m�rgitud vahem�lu jaoks" -#: src/tar.c:644 +#: src/tar.c:660 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "v�lista kataloogid, mis on m�rgitud vahem�lu jaoks" -#: src/tar.c:647 +#: src/tar.c:663 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "v�lista kataloogid, mis on m�rgitud vahem�lu jaoks" -#: src/tar.c:649 +#: src/tar.c:665 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "v�lista kataloogid, mis on m�rgitud vahem�lu jaoks" -#: src/tar.c:652 +#: src/tar.c:668 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "v�lista kataloogid, mis on m�rgitud vahem�lu jaoks" -#: src/tar.c:654 +#: src/tar.c:670 #, fuzzy msgid "exclude directories containing FILE" msgstr "v�lista kataloogid, mis on m�rgitud vahem�lu jaoks" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "�ra sisene kataloogidesse" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "p�si arhiivi loomise ajal kohalikus failis�steemis" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "sisene kataloogidesse (vaikimisi)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "�ra eemalda faili nimedelt prefiksit `/'" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "j�rgi nimeviiteid; arhiveeri ja taasta viidatavad failid" -#: src/tar.c:668 +#: src/tar.c:686 #, fuzzy msgid "follow hard links; archive and dump the files they refer to" msgstr "j�rgi nimeviiteid; arhiveeri ja taasta viidatavad failid" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "KOMPONENT" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "alusta arhiivi liikmest KOMPONENT" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "salvesta ainult failid mis on uuemad kui KUUP-V�I-FAIL" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "KUUP�EV" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "v�rdle kuup�evi ainult kui andmed on muutunud" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "KONTROLL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "loo enne eemaldamist varukoopia, vali versioonikontroll" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "S�NE" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1905,87 +1932,96 @@ msgstr "" "varunda enne kustutamist, kasuta uut l�ppu (vaikimisi '~', kui pole �le " "m��ratud keskkonnamuutujaga SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Failide nimede muutmine:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "eemalda taastamisel failide nimede algusest NUMBER komponenti" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "AVALDIS" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "kasuta failide nimede muutmiseks sed asendus avaldist" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "Failinimede otsimine (m�jutab nii kaasamist, kui v�listamist):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "t�stutundetu" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "mustrid alustavad faili nime algusest" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "mustrid toimivad iga / j�rel (v�listamise korral vaikimisi)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "t�stutundlik otsimine (vaikimisi)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "kasuta jokkers�mboleid (v�listamise korral vaikimisi)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "t�ht-t�heline s�ne otsimine" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "jokkerid ei leia '/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "jokkers�mbolid leiavad '/' (v�listamise korral vaikimisi)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Informatsioon:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "v�ljasta t��deldavate failide kohta infot" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "�lekirjutamise juhtimine:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "anna t�� kohta infot iga NUMBER kirje j�rel (vaikimisi 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "v�ljasta teade, kui k�ike viiteid pole salvestatud" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1996,27 +2032,27 @@ msgstr "" "v�ljasta see info, kui saadetakse antud signaal. Lubatud signaalid on: " "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 ja SIGUSR2; SIG prefiksi v�ib �ra j�tta" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "v�ljasta failide muutmise ajad UTC esituses" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "salvesta t�iendav info FAILi" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "n�ita iga teatega ka arhiivi bloki numbrit" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "k�si iga tegevuse kohta kinnitust" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "n�ita tar vaikeseadeid" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2024,86 +2060,94 @@ msgstr "" "listingu v�i taastamise ajal, n�ita igat kataloogi mis ei vasta " "otsingutingimustele" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "peale teisendamist n�ita faili v�i arhiivi nime" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STIIL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "m��ra nimede kvootimise stiil; lubatud v��rtused on toodud allpool" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "lisaks kvoodi s�nes n�idatud s�mbolid" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "keela s�nes toodud s�mbolite kvootimine" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "�hilduvuse v�tmed:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "loomisel sama kui --old-archive. Taastamisel sama kui --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Muud v�tmed:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "blokeeri potentsiaalselt ohtlikud v�tmed" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Korraga ainult �ks v�tmetest `-Acdtrux'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Konfliktsed pakkimisv�tmed" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Tundmatu signaali nimi: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Kuup�eva fail puudub" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Kasutan %s tundmatu ajaformaadi %s asemel" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "V�ti %s: K�sitlen aega `%s' kui %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: failide nimekiri on juba loetud" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: loetud faili nimi sisaldab s�mbolit nul" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "filtreeri arhiiv l�bi gzipi" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "V�tmega --quoting-style on lubatud j�rgnevad argumendid:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2111,158 +2155,169 @@ msgstr "" "\n" "*See* tar kasutab vaikimisi:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Vigane blokkimisfaktor" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Vigane lindi pikkus" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Inkrementaalse faili vorming on vigane" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Rohkem kui �ks etteantud aeg" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Vigane aukudega faili versiooni v��rtus" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' ei ole sellel platvormil toetatud" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "--checkpoint v��rtus ei ole t�isarv" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Vigane grupp" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "V�tmega anti vigane mood" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Vigane number" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Vigane omanik" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Vigane kirje suurus" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Kirje suurus peab olema %d kordne." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Vigane elementide arv" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Lubatud on ainult �ks --to-command v�ti" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Vigane tiheduse argument: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Tundmatu tihedus: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "*See* tar ei toeta v�tmeid `-[0-7][lmh]'" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FAIL]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Vana v�ti `%c' n�uab argumenti." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence ei oma failide nimekirjata m�tet" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence ei saa valitud t��re�iimil kasutada" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Mitme arhiivifaili kasutamine n�uab v�tit `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "--listed-incremental ja --newer ei saa koos kasutada" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--occurrence ei oma failide nimekirjata m�tet" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Vol��mi m�rgend on liiga pikk (piirang on %lu baiti)" msgstr[1] "%s: Vol��mi m�rgend on liiga pikk (piirang on %lu baiti)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Ei suuda kontrollida mitme vol��milisi arhiive" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Ei saa kontrollida pakitud arhiive" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Ei saa kasutada mitme vol��milisi pakitud arhiive" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Tihendatud arhiive ei saa �hendada" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option saab kasutada ainult POSIX arhiividega" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Ega ikka ei tee k�ll t�hja arhiivi" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "V�tmeid `-Aru' ei saa kasutada v�tmega `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Peab kasutama v�hemalt �ht v�tmetest `-Acdtrux'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2274,79 +2329,84 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Fail on %s baiti l�hem" msgstr[1] "%s: Fail on %s baiti l�hem" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "V�tmes�na %s on tundmatu v�i pole veel realiseeritud" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Number on piiridest v�ljas: %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Mustrit %s ei saa kasutada" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "V�tmes�na %s ei saa �mber m��rata" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Vigane laiendatud p�is: puudub pikkus" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Laiendatud p�ise pikkus on piiridest v�ljas" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Laiendatud p�ise pikkus %*s on piiridest v�ljas" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Vigane laiendatud p�is: pikkuse j�rel puudub t�hik" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Vigane laiendatud p�is: puudub v�rdusm�rk" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Vigane laiendatud p�is: puudub reavahetus" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Ignoreerin tundmatud laiendatud p�ise v�tmes�na `%s'" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Genereeritud v�ti/v��rtus paar on liiga pikk (v�ti=%s, pikkus=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Laiendatud p�is %s=%s on piiridest %s..%s v�ljas" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Vigane laiendatud p�is: %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Vigane laiendatud p�is: liigne %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Vigane laiendatud p�is: vigane %s: ootamatu eraldaja %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Vigane laiendatud p�is: vigane %s: veider arv v��rtuseid" @@ -2387,7 +2447,7 @@ msgstr "Kirjutamise kontrollpunkt %u" msgid "Read checkpoint %u" msgstr "Lugemise kontrollpunkt %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2395,84 +2455,90 @@ msgstr "" "genfile manipuleerib GNU paxutils testipaketi andmefailidega.\n" "V�TMED on:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Faili loomise v�tmed:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "SUURUS" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Loo m��ratud suurusega fail" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Kirjuta standardv�ljundi asemel faili NIMI" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Loe failide nimed failist FAIL" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T loeb nullidega l�petatud nimesid" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "T�ida fail antud mustriga. Muster on 'default' v�i 'zeros'" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Bloki suurus aukudega faili korral" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Loo aukudega fail. J�rgnev k�surida kirjeldab faili." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "kontrolli arhiivi peale arhiivi kirjutamist" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Statistika faili kohta:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "V�ljasta iga faili kohta stat struktuuri sisu. Vaikimisi VORMING on: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "S�nkroonse t�itmise v�tmed:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [V�TI...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "T�ida antud K�SKLUS. Kasulik v�tmetega --checkpoint ja --cut, --append, --" "touch" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "J�udes kontrollpunkti NUMBER, t�ida antud tegevus (vt. allpool)" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "M��ra j�rgmise --touch v�tme ajatempel" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Esita t�idetud kontrollpunktid ja k�su l�petamise olek" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2480,152 +2546,218 @@ msgstr "" "S�nkroonse t�itmise tegevused. Neid t�idetakse, kui saabub --checkpoint " "v�tmega m��ratud kontrollpunkt." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" "Sea faili suuruseks --length v�tmega n�idatu (v�i 0, kui suurust ei antud)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "Lisa faili l�ppu --length parameetriga n�idatud arv baite." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Uuenda faili kasutamise ja muutmise ajatempleid" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "K�ivita K�SK" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Vigane suurus: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Number on piiridest v�ljas: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatiivne suurus: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) eba�nnestus" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Viga `%s' juures numbri parsimisel" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Tundmatu kuup�eva vorming" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGUMENDID...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "`%s' ei saa avada" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "%s: Ei �nnestu liikuda positsioonile %s" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "faili nimi sisaldab null s�mbolit" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "standard v�ljundis ei saa aukudega faili luua, kasutage v�tit --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "vigane mask (`%s' l�hedal)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Tundmatu v�li `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "ei �nnestu seada `%s' aega" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "`%s' ei saa avada" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "K�sk l�petas t�� edukalt\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "K�sk l�petas veakoodiga %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "K�sk katkestati signaaliga %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "K�sk peatati signaaliga %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "K�sk salvestas m�lupildi\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "K�sk katkestas\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat n�uab failinimesid" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "liiga palju argumente" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: vigane v�ti -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Hoiatus: v�tit -I ei toetata; v�ibolla te pidasite silmas -j v�i -T?" +#~ "\n" +#~ "Teated vigadest saatke palun aadressil <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Loen %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "�letamatu t�rge: l�petan t��" + +#~ msgid "suppress this warning." +#~ msgstr "--no-wildcards." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "filtreeri arhiiv l�bi bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "filtreeri arhiiv l�bi gzipi" + +#~ msgid "filter the archive through compress" +#~ msgstr "filtreeri arhiiv l�bi compressi" #, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "katkesta --delay-directory-restore v�tme m�ju" +#~ msgid "filter the archive through lzma" +#~ msgstr "filtreeri arhiiv l�bi gzipi" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "filtreeri arhiiv l�bi gzipi" + +#~ msgid "Input string too long" +#~ msgstr "Sisendi s�ne on liiga pikk" + +#~ msgid "Number syntax error" +#~ msgstr "Numbri s�ntaksi viga" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Ei saa v�tta buhvritele m�lu\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Buhvritele ei j�tku m�lu" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "`%s --help' annab rohkem infot.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Kasuta: %s [v�ti]\n" +#~ "Manipuleeri lindiseadmega, lubades k�ske teistest protsessidest.\n" +#~ "\n" +#~ " --version V�ljasta versiooniinfo.\n" +#~ " --help V�ljasta abiinfo.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Otsimise indeksi viga" + +#~ msgid "Premature end of file" +#~ msgstr "Ootamatu faili l�pp" #~ msgid "block size" #~ msgstr "bloki suurus" @@ -2638,9 +2770,6 @@ msgstr "liiga palju argumente" #~ msgid "--Mangled file names--\n" #~ msgstr "--T�keldatud failinimed--\n" -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "T�keldatud nimedel ootamatu failil�pp" - #~ msgid "Renamed %s to %s" #~ msgstr "%s nimetatud %s-ks" @@ -2656,5 +2785,9 @@ msgstr "liiga palju argumente" #~ msgid "[.]NUMBER" #~ msgstr "[.]NUMBER" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Hoiatus: v�tit -I ei toetata; v�ibolla te pidasite silmas -j v�i -T?" + #~ msgid "Error exit delayed from previous errors" #~ msgstr "Eelnevad vead ei l�petanud veel programmi t��d, l�petan veaga" diff --git a/po/eu.gmo b/po/eu.gmo index 6792f3fb9b2265492db535e52f147f491f059d0d..9ff2dd930b1d2d7833e203205e231151808c0720 100644 Binary files a/po/eu.gmo and b/po/eu.gmo differ diff --git a/po/eu.po b/po/eu.po index d0de2965703f283f7d8c0f6232827c9ce236b2d7..9987a8e82a80b046f67416e7d821d87fc5769eef 100644 --- a/po/eu.po +++ b/po/eu.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: tar-1.15.91-eu\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2006-12-13 19:52+0100\n" "Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net>\n" "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n" @@ -18,47 +18,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "%s argumentu baliogabea %s-rentzat" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "%s argumentu anbiguoa %s-rentzat" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Argumentu erabilgarriak:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s balioa %s-ren berdina edo txikiagoa da" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT parametroak balio bat behar du" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT parametroa positibo izan behar da" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: ARGP_HELP_FMT parametro ezezaguna" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Zaborra ARGP_HELP_FMT-en: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -66,235 +66,143 @@ msgstr "" "Aukera luzeentzat beharrezko edo aukerako argumentuak modu berdinean " "beharrezko edo aukerakoak izango dira aukera luzeentzat ere." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Erabilera:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " edo: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [AUKERA...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "`%s --help' edo `%s --usage' saiatu argibide gehiagorako.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Arazoen berri %s-en eman.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Sistema errore ezezaguna" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "laguntza zerrenda hau eman" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "erabilera mezu labur bat eman" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "IZENA" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "programa izen ezarri" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SEG" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "SEG segundu gelditu (lehenetsia 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "programa bertsioa bistarazi" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(PROGRAMA ERROREA) Ez da bertsioa ezagutzen!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Argumentu gehiegi\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(PROGRAMA ERROREA) Aukera ezaguna izan beharko zen!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: `%s' aukera anbiguoa da\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: `--%s' aukerak ez du argumenturik onartzen\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: `%c%s' aukerak ez du argumenturik onartzen\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: `%s' aukerak argumentu bat behar du\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: `--%s' aukera ezezaguna\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: `%c%s' aukera ezezaguna\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: -- %c legezkanpoko aukera\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: -- %c ekintza baliogabea\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: aukerak -- %c argumentu bat behar du.\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: `-W %s' aukera anbiguoa da\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' aukerak ez du argumenturik onartzen\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "memoria askieza" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Ezin da lan direktorioa aldatu" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Ezin da lan direktorioa gorde" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Ezin da %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Oharra: Ezin da %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Ezin da modua %s-ra aldatu" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Ezin da jabetza uid %lu, gid %lu -ra aldatu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Ezin da %s-ra gogorki lotu" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Irakurketa errorea %s byte-an, byte %lu irakurtzerakoan" -msgstr[1] "%s: Irakurketa errorea %s byte-an, %lu byte irakurtzerakoan" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Oharra: Irakurketa errorea %s byte-an, byte %lu irakurtzerakoan" -msgstr[1] "%s: Oharra: Irakurketa errorea %s byte-an, %lu byte irakurtzerakoan" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Ezin da %s-ra seek egin" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Oharra: Ezin da %s-ra seek egin" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Ezin da %s-ra lotura sinbolkoa sortu" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "" -msgstr[1] "" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "`.' partaide izen hutsagatik aldatzen" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "`.' lotura gogor helburu hutsegatik aldatzen" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -308,17 +216,17 @@ msgstr "`.' lotura gogor helburu hutsegatik aldatzen" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -328,7 +236,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[bB]" @@ -338,38 +246,28 @@ msgstr "^[bB]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[eE]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Zerbitzua ez da erabilgarria" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "sarrera estandarra" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "irteera estandarra" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Ezin da urruneko shell-a abiarazi" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -380,19 +278,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -400,7 +298,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -410,7 +308,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +318,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -430,7 +328,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -440,7 +338,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -451,7 +349,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -462,7 +360,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -474,180 +372,328 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Arazoen berri %s-en eman.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Erroreen berri <%s>-ra eman.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Sarrera kate luzeegia" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Zenbaki sintaxi errorea" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Ezin da %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Ezin da buffer lekua esleitu\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Oharra: Ezin da %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Ezin da buffer lekua esleitu" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Ezin da modua %s-ra aldatu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "`%s --help' saiatu argibide gehiagorako.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Ezin da jabetza uid %lu, gid %lu -ra aldatu" -#: rmt/rmt.c:308 +#: lib/paxerror.c:127 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Ezin da %s-ra gogorki lotu" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Irakurketa errorea %s byte-an, byte %lu irakurtzerakoan" +msgstr[1] "%s: Irakurketa errorea %s byte-an, %lu byte irakurtzerakoan" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Oharra: Irakurketa errorea %s byte-an, byte %lu irakurtzerakoan" +msgstr[1] "%s: Oharra: Irakurketa errorea %s byte-an, %lu byte irakurtzerakoan" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Ezin da %s-ra seek egin" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Oharra: Ezin da %s-ra seek egin" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Ezin da %s-ra lotura sinbolkoa sortu" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "" +msgstr[1] "" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" msgstr "" -"Erabilea: %s [AUKERA]\n" -"Zinta gailu bat manipulatu, urruneko prozesu baten komandoak onartzen.\n" -"\n" -" --version Bertsio argibideak eman.\n" -" --help Laguntza hau eman.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Seek offset errorea" +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 -msgid "Seek offset out of range" -msgstr "Seek offset-a eremuz kanpo" +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "`.' partaide izen hutsagatik aldatzen" -#: rmt/rmt.c:428 +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "`.' lotura gogor helburu hutsegatik aldatzen" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Zerbitzua ez da erabilgarria" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "sarrera estandarra" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "irteera estandarra" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Ezin da urruneko shell-a abiarazi" + +#: rmt/rmt.c:413 msgid "Seek direction out of range" msgstr "Seek norabidea eremuz kanpo" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Modu baliogabea eman da aukeran" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Tamaina baliogabea: %s" + +#: rmt/rmt.c:433 +msgid "Seek offset out of range" +msgstr "Seek offset-a eremuz kanpo" + +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Zinta luzera baliogabea" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Seek offset-a eremuz kanpo" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Fitxategi amaiera azkarregia\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Fitxategi amaiera azkarregia" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Ekintza nagusi modua:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Fitxategi Amaiera Esperogabea" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "ZENBAKIA" -#: rmt/rmt.c:672 +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FITXATEGIA" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "Ezin da `%s' ireki" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "argumentu gehiegi" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Zabor komandoa" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Honek ez dirudi tar pakete bat" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Idatziriko byte-ak guztira" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Irakurritako byte-ak guztira" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Ezabaturiko byte-ak guztira: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(tutua)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "balio baliogabea record_size-rentzat" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Ez da fitxategi izenik eman" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Ezin da sarrera/irteera estandar fitxategia egiaztatu" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Fitxategia konprimiturik dago. %s aukera erabili" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Ezin dira konprimituriko fitxategiak eguneratu" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Zintaren hasieran, uzten" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Errore gehiegi, uzten" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Grabazio tamaina = bloke %lu" msgstr[1] "Grabazio tamaina = %lu bloke" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Alineatu gabeko blokea (byte %lu) paketean" msgstr[1] "Alineatu gabeko blokea (%lu byte) paketean" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: bolumen zenbaki baliogabea du" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Bolumen zenbaki gainezkatzea" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "#%d bolumena %s -rako prestatu eta enter sakatu: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Fitxategi amaiera erabiltzaile erantzuna espero zenean" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "Oharra: Paketea ez dago osaturik" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -658,125 +704,125 @@ msgstr "" " q tar utzi\n" " y edo intro Ekintza jarraitu\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Azpishell bat sortu\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Zerrenda hau inprimatu\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Ez dago bolumen berririk; uzten.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Ez da fitxategi izenik ezarri. Berriz saiatu.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "SArrera baliogabea. ? idatzi laguntzarako.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "%s komandoak huts egin du" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s posibleki bolumen honen jarraipena da: buruak mozturiko izena du" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s ez da bolumen honen jarraipena" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s okerreko tamaina da (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Bolumen hau sekuentziatik kanpo dago" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "%s bolumena ez da %s-ren pareko" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" "%s: fitxategi izen luzeegia GNU bolumen anitzeko buruan gordetzeko, mozturik" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "%lu byte bakarrik irakurri daiteke %lu byte-tatik" msgstr[1] "%lu byte bakarrik irakurri daiteke %lu byte-tatik" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Eduki ezberdintasunak" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Esperogabeko Fitxategi amaiaera paketean" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Fixtategi mota ezberdinak" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Modu ezberdinak" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid ezberdinak" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid ezberdinak" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Eraldaketa data ezberdinak" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Tamaina ezberdinak" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Ez dago %s-ra loturik" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Lotura sinboliko ezberdinak" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Gailu zenbaki ezberdinak" @@ -798,34 +844,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "Egiaztapenak huts egin dezake jatorrizko fitxategiak kokatzerakoan." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "EGIAZTAPEN AKATSA: buru baliogabe %d aurkitu da" msgstr[1] "EGIAZTAPEN AKATSA: %d buru baliogabe aurkitu dira" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, fuzzy, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: katxe direktorioa marka bat du; ez da irauliko" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "%s eremua %s eremutik %s..%s kanpo: %s aldatzen" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "%s balioa %s eremutik %s..%s kanpo dago" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Zortzitar buru negatiboak sortzen" @@ -844,296 +890,282 @@ msgstr "%s: fitxategi izena luzeegia da (ezin da moztu); ez da irauliko" msgid "%s: link name is too long; not dumped" msgstr "%s: lotura izena luzeegia da; ez da irauliko" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "" msgstr[1] "" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fitxategia fitxategi sistema ezberdin batetan dago, ez da irauliko" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Fitxategi mota ezezaguna; fitxategia alde batetara utziko da" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "%s-ra lotura falta da.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fitxategia ez da aldatu, ez da irauliko" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fitxategia paketea da, ez da irauliko" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Fitxategia irakurri baino lehen ezabaturik" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 #, fuzzy msgid "directory not dumped" msgstr "%s: katxe direktorioa marka bat du; ez da irauliko" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fitxategia aldatu egin da irakurtzen ari zenean" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: socket-a alde batetara utzi da" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: atea alde batetara utzia" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Hurrengoa burura salto egiten" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "paketetik burugabea ezabatzen" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: Sinesgarri izateko zaharregia den denbora marka %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: %s denbora marka %s etorkizunean da" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Esperogabeko inkonsistentziak direktorioa sortzerakoan" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Direktorioa bere egoera atera aurretik berrizendatua izan da" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Alboko fitxategiak fitxategi erregularrak bezala ateratzen" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Lotura sinbolikoak lotura gogor bezala ateratzen saiatzen" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "%s irakurtzen\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ezin da atera -- paketea beste bolumen baten jarraipena da" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Buru izen luzera esperogabea" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "" "%s: `%c' fitxategi mota ezezaguna, fitxategi arrunt bat bezala ateratzen" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Unekoa %s berriagoa edo data berdinekoa da" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Ez da gai fitxategi honen babeskopia egiteko" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Ezin da %s %s-ra berrizendatu" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Errorea berreskura ezina da: irteten" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Direktorioa %s-tik berrizendatua izan da" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Direktorioa berrizendatua izan da" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Direktorioa berria da" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "denbora marka baliogabea" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Eraldaketa denbora (segundu) baliogabea" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Eraldaketa denbora (nanosegundu) baliogabea" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "gailu zenbaki baliogabea" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Inodo zenbaki baliogabea" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Eremu luzeegia snapshot fitxategia irakurtzerakoan" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 #, fuzzy msgid "Read error in snapshot file" msgstr "Eremu balio esperogabea snapshot fitxategian" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Eremu balio esperogabea snapshot fitxategian" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Eremu balio esperogabea snapshot fitxategian" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Gordetze amaiera falta da" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Fitxategi inkremental formatu okerra" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, fuzzy, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Onartugabeko inkremental formatu bertsioa: %d" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" "Gaizki eratutako iraulketa direktorioa: '%c'espero zen baina %#3o aurkitu da" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Gaizki eratutako iraulketa direktorioa: 'X' bikoizturik" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'R'-en" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Gaizki eratutako iraulketa direktorioa: 'T' ez doa 'R' atzean" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'T'-en" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" "Gaizki eratutako iraulketa direktorioa: '%c' espero zen baina data amaiera " "aurkitu da" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Gaizki eratutako iraulketa direktorioa: 'X' ez da inoiz erabili" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Ezin da aldiroko direktorioa sortu %s txantiloia erabiliaz" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Ez da direktorioa garbituko: ezin da egoera eskuratu" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: direktorioa gailu ezberdin batetan dago: ez da garbituko" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: %s ezabatzen\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Ezin da ezabatu" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Alde batetara uzten" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "%s blokea: ** Fitxategi Amaiera **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "%s blokea: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Zuriunea buruan zenbakizko %s balioa espero zenean" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1141,141 +1173,156 @@ msgstr "" "direla pentsatuko da" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Paketearen zortzitar %.*s balioa %s eremutik kanpo dago" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Paketeak zaharkituriko base-64 buruak ditu" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Paketeak %.*s du zenbakizko %s balioa espero zenean " #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Pakete %s balioa %s eremutik kanpo dago %s.. %s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " %s-ra lotu\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " %s fitxategi mota ezezaguna\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Lotura Luzea--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Izen Luzea--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Bolumen Burua--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--%s byte-an jarraitzen du--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Direktorioa sortzen:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "%s %s-ra berrizendatzen\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Ezin da %s-ra berrizendatu" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s %s-ra atzera berrizendatzen\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Ezin da lan direktorioa gorde" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Ezin da lan direktorioa aldatu" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Fitxategia irakurri baino lehen ezabaturik" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Fitxategia irakurri baino lehen ezabaturik" + +#: src/misc.c:795 msgid "child process" msgstr "ume prozesua" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "prozesu arteko kanala" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "ohar hau kendu." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ez da paketean aurkitu" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "`-%s' eta `-%s' aukerek sarrera estandarra behar dute" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Pakete formatu baliogabea" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU ezaugarriak behar dira pakete formatu bateraezinean" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1283,7 +1330,7 @@ msgstr "" "`%s' markatze estilo ezezaguna. Saiatu `%s --quoting-style=help' zerrenda " "eskuratzeko." -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1314,7 +1361,7 @@ msgstr "" "erabili\n" " never, simple beti babeskopia sinpleak egin\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1346,87 +1393,80 @@ msgstr "" "erabili\n" " never, simple beti babeskopia sinpleak egin\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Ekintza nagusi modua:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "pakete baten edukiak zerrendatu" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "pakete batetako fitxategiak atera" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "pakete berri bat sortu" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "paketea eta fitxategi sistema arteko ezberdintasunak bilatu" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "fitxategiak paketearen amaieran gehitu" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" "paketean dauden kopiak baino berriagoak diren fitxategiak bakarrik gehitu" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "gehitu tar fitxategiak pakete batetara" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "paketetik ezabatu (ez mag zintetan!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "pakete bolumen etiketa egiaztatu eta irten" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Ekintza aldagaiak:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "sakabanatutako fitxategiak egoki kudeatu" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "GNU basbeskopia inkremenetal formatu zaharra kudeatu" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FITXATEGIA" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "GNU basbeskopia inkremenetal formatu berria kudeatu" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "ZENBAKIA" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" +msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1434,148 +1474,156 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "paketeak `seek' onartzen du" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "paketeak `seek' onartzen du" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 #, fuzzy msgid "Overwrite control:" msgstr "Gainidazketa kontrola:\n" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "fitxategia egiaztatzen saiatu idatzi aurretik" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "ezabatu fitxategiak paketera gehitu aurretik" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "ez ordezkatu dauden fitxategiak ateratzerakoan" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "ez ordezkatu ateratzerakoan dauden fitxategiak paketeko kopiak baino " "berriagoak badira" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "gainidatzi dauden fitxategiak ateratzerakoan" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "dauden direktorioen metadata mantendu" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "dauden direktorioen metadata gainidatzi ateratzerakoan (lehenetsia)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Irteera korrontea hautatu:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "fitxategiak irteera estandarrera atera" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "KOMANDOA" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "bideratu ateratako fitxategiak beste programa batetara" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "alde batetara utzi semeen irteera kodeak" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "zero ez diren semeen irteera kodeekin errore bat bezala jokatu" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Fitxategi atributu kudeaketa:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "indartu IZENA jabe bezala gehituriko fitxategientzat" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "indartu IZENA talde bezala gehituriko fitxategientzat" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATA-EDO-FITXATEGIA" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "ALDAKETAK" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "indartu (sinbolikoa) modu ALDAKETAK gehituriko lerroentzat" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METODOA" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "ez atera fitxategi eraldaketa data" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "jabe berdinaren fitxategiak ateratzen saiatu" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "atera fitxategiak zure kabuz" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "beti erabili zenbakiak erabiltzaile/talde izenen ordez" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "fitxategi baimenei buruzko argibideak atera (lehenetsia root " "erabiltzailearentzat)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1583,444 +1631,430 @@ msgstr "" "erabiltzailearen umask-a erabili paketetik baimenak ateratzerakoan " "(lehenetsia erabiltzaile arruntentzat)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "-p eta -s bikotearen berdina" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "--delay-directory-restore aukeraren eragina ezeztatu" -#: src/tar.c:509 +#: src/tar.c:529 #, fuzzy msgid "Device selection and switching:" msgstr "Gailu hautapen eta aldaketa:\n" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "PAKETEA" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "pakete fitxategia edo gailu PAKETEA erabili" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "pakete fitxategi lokala da nahiz bi puntu izan" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "Emandako rmt KOMANDOA erabili rmt ordez" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "Urruneko KOMANDOA erabili rsh ordez" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "Gailu eta dentsitatea ezarri" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "sortu/zerrendatu/atera bolumen-anitzeko paketea" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "zinta aldatu ZENBAKIA x 1024 byte idatzi ondoren" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "scipt-a abiarazi zinta bakoitzaren amaieran (-M behar du)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "erabili/eguneratu FITXATEGI bolumen zenbakia" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Gailu blokeak:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOKE" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOKE x 512 byte grabazio bakoitzeko" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "grabazio bakoitzeko byte ZENBAKIA, 512-ren multiploa" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "paketean zeroz betetako blokeak alde batetara utzi" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "irakurri ahala berriz bloke egin (4.2BSD tutuentzat)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Pakete formatu hautapena:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMATUA" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "emandako formatuko pakete bat sortu" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMATUA hauetako bat da:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "V7 tar formatu zaharra" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU formatua tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x formatua" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) formatua" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) formatua" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "pax-en berdina" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "--format=v7-ren berdina" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "--format=posix-ren berdina" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "gakoa[[:]=balioavalue][,gakoa[[:]=balioa]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TESTUA" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Elkarjotzen duten konpresio aukerak" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "fitxategia bzip2 bidez iragazi" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "fitxategia gzip bidez iragazi" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "fitxategia konpresorearen bidez iragazi" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "fitxategia gzip bidez iragazi" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "fitxategia gzip bidez iragazi" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "fitxategia gzip bidez iragazi" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "PROG bidez iragazi (-d onartu behar du)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Fixtategi lokal hautapena:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "Emandako FITXATEGIA paketera gehitu /Erabilgarri izena asaterisko batez " "asten bada)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DIR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "DIR direktoriora aldatu" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "ateratzeko edo sortzeko izenak FITXATEGIA-tik eskuratu" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "PATROIA" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "fixtategiak utzi, PATROIA bezala emandakoak" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "FITXATEGIAN zerrendaturiko patroiak alde batetara utzi" -#: src/tar.c:641 +#: src/tar.c:657 #, fuzzy msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/tar.c:644 +#: src/tar.c:660 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/tar.c:647 +#: src/tar.c:663 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/tar.c:649 +#: src/tar.c:665 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/tar.c:652 +#: src/tar.c:668 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/tar.c:654 +#: src/tar.c:670 #, fuzzy msgid "exclude directories containing FILE" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "sahiestu automatikoki direktorioetan zehar jeistea" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "fitxategi sistema lokalean egon paketea sortzerakoan" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "direktorioetan barrena (lehenetsia)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "Ez kendu hasierako `/' fitxategi izenetatik" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "lotura sinbolikoak jarraitu; lotzen dituzten fitxategiak irauli eta paketean " "sartu" -#: src/tar.c:668 +#: src/tar.c:686 #, fuzzy msgid "follow hard links; archive and dump the files they refer to" msgstr "" "lotura sinbolikoak jarraitu; lotzen dituzten fitxategiak irauli eta paketean " "sartu" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "PARTAIDE IZEN" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATA" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "data eta ordua parekatu data bakarrik aldatzen denean" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "KONTROL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "babeskopia egin ezabatu aurretik, KONTROL bertsioa hautatu" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "KATEA" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Fitxategi izen eraldaketak:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "ESPRESIOA" -#: src/tar.c:689 +#: src/tar.c:707 #, fuzzy msgid "use sed replace EXPRESSION to transform file names" msgstr "Sed-en ordezko EXPRESIOA erabili fitxategi izenak eraldatzeko" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "kasua alde batetara utzi" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "verbatim kate parekatzea" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "irteera informatiboa:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Gainidazketa kontrola:\n" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "Aurrerapen mezuak bistarazi grabaketa ZENBAKI bakiotzagatik (lehenetsia 10 " "da)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "mezu bat inprimatu lotura guztiak ez badira iraultzen" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SEINALEA" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2028,269 +2062,287 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "eraldaketa datak UTC orduan bistarazi" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "irteera luzea FITXATEGIRA bidali" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "Bloke zenbakia bistarazu pakete bakoitzeko mezu bakoitzagatik" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "berrespena eskatu ekintza bakoitzean" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "tar lehenespenak bistarazi" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "fixtategi edo pakete izenak bistarazi eraldaketaren aurretik" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "ESTILOA" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "Gako karaktere gehigarriak KATE-tik" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "gakoak kendu karaktereentzat KATE-tik" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Bateragarritasun aukerak:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Beste aukerak:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "ezgaitu arriskutsu izan daitezken zenbait aukera" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Ezin duzu `-Acdtrux' aukera bat baino gehiago ezarri" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Elkarjotzen duten konpresio aukerak" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Seinale izen ezezaguna: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Data adibide fitxategia ez da aurkitu" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "%s %s data formatu ezezagunagatik aldatzen" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: fitxategi zerrenda irakurria dagoeneko" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "fitxategia gzip bidez iragazi" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style-entzat balio erabilgarriak:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Blokeo faktore baliogabea" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Zinta luzera baliogabea" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Fitxategi inkremental formatu okerra" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Atari data bat baino gehiago" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' ez da onartzen plataforma honetan" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "--checkpoint balioa ez da zenbaki oso bat" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Talde baliogabea" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Modu baliogabea eman da aukeran" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Zenbaki baliogabea" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Jabe baliogabea" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Grabazio tamaina baliogabea" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Grabaszio tamaina %d-ren multiplo bat izan behar da." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Elementu kopuru baliogabea" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "--to-command aukera bat bakarrik onartzen da" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Gaizki eratutako dentsitate argumentua: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Dentsitate Ezezaguna: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr " `-[0-7][lmh]' aukerak ez dira onartzen tar *honetan*" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FITXATEGIA]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "`%c' zaharkituriko aukerak argumentu bat behar du" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Pakete fitxategi anitzentzat `-M' aukera erabili behar da" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Ezin dira --listed-incremental eta --newer batera erabili" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Bolumen etiketa luzeegia da (muga %lu byte da)" msgstr[1] "%s: Bolumen etiketa luzeegia da (muga %lu byte da)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Ezin dira bolumen-anitzeko paketeak egiaztatu" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Ezin dira konprimituriko fitxategiak egiaztatu" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Ezin dira bolumen anitzeko konprimituriko paketeak erabaili" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Ezin dira konprimituriko paketeak kateatu" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr " `-Aru' aukerak bateraezinak dira `-f -' rekin" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Behintzat `-Acdtrux' aukeretako bat ezarri behar duzu" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2302,81 +2354,86 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "" msgstr[1] "" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "%s gakoa ezezaguna da edo ez dago inplementaturik oraindik" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Denbora marka eremuz kanpo dago" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "%s patroia ezin da erabili" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "%s gakoa ezin da gainidatzi" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Gaizki eratutako buru luzapena: luzera falta da" -#: src/xheader.c:504 +#: src/xheader.c:549 #, fuzzy msgid "Extended header length is out of allowed range" msgstr " %*s buru luzapen luzera eremuz kanpo dago" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr " %*s buru luzapen luzera eremuz kanpo dago" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Gaizki eratutako buru luzapena: luzera ondoren hutsunea falta da" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Gaizki eratutako buru luzapena: berdin ikurra falta da" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Gaizki eratutako buru luzapena: lerro berria falta da" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "alde batetara utzi gako buru luzapen ezezaguna `%s'" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "buru luzapena %s=%s eremuz kanpo dago %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Gaizki eratutako buru luzapena: baliogabea %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Gaizki eratutako buru luzapena: gehiegizkoa %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Gaizki eratutako buru luzapena: %s baliogabea: %c mugatzaile esperodageba" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Gaizki eratutako buru luzapena: %s baliogabea: balio kopuru bitxia" @@ -2417,244 +2474,317 @@ msgstr "Idazketa %u egiaztapen puntua" msgid "Read checkpoint %u" msgstr "Irakurketa %u egiaztapen puntua" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Pakete sortze aukerak:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "TAMAINA" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Emandako TAMAINAko paketea sortu" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Fitxategi IZENEAN idatzi irteera estandarren ordez" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Fitxategi izenak PAKETEtik irakurri" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Bloke tamaina fitxategi sakabanatuentzat" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Fitxategi sakabanatuak sortu. Komanod lerroaren besteak fitxategi mapa dakar." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "fitxategia egiaztatzen saiatu idatzi aurretik" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Fixtategi estatistika aukerak:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Eduki eta egitura estatusa inprimatu emandako fitxategi bakoiztarentzat. " "Lehenetsiriko FORMATUA: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Sinkronizatutako exekuzio aukerak:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [AUKERA...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "Emandako KOMANDOA exekutatu. Erabilgarri --checkpoint eta hauetako batekin; " "--cut, --append, --touch" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Ezarri data hurrengo --touch aukerarentzat" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "FITXATEGIAREN irakurketa eta eraldaketa denborak aldatu" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "KOMANDOA exekutatu" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Tamaina baliogabea: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Inodo zenbakia eremuz kanpo dago" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, fuzzy, c-format msgid "Negative size: %s" msgstr "Tamaina baliogabea: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) -ek huts egin du" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Errorea zenbakia analizatzean hemendi gertu: `%s'" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Data formatu ezezaguna" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARG...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "Ezin da `%s' ireki" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "%s: Ezin da %s-ra seek egin" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "fitxategia izenak karaktere baliogabea du" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "ezin dira sakabanaturiko fitxategiaksortu irteera estandarrean. --file " "erabili" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "maskara baliogabea (`%s'-etik gertu)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "`%s' eremu ezezaguna" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "ezin da `%s'-ren denbora ezarri" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "Ezin da `%s' ireki" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Komandoa behar bezala irten da\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Komandoa %d egoerarekin huts egin du\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Komandoa %d seinalearekin amaitu da\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Komandoa %d seinalearekin geratu da\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Komando iraulketa nagusia\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Komandoa amaitua\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat -ek fitxategi izenak behar ditu" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "argumentu gehiegi" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: -- %c legezkanpoko aukera\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Oharra: -l aukera ez da onartzen; agian -j edo -T egin nahi zenuen?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Erroreen berri <%s>-ra eman.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "%s irakurtzen\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Errorea berreskura ezina da: irteten" + +#~ msgid "suppress this warning." +#~ msgstr "ohar hau kendu." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "fitxategia bzip2 bidez iragazi" + +#~ msgid "filter the archive through gzip" +#~ msgstr "fitxategia gzip bidez iragazi" + +#~ msgid "filter the archive through compress" +#~ msgstr "fitxategia konpresorearen bidez iragazi" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "fitxategia gzip bidez iragazi" #, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "--delay-directory-restore aukeraren eragina ezeztatu" +#~ msgid "filter the archive through lzop" +#~ msgstr "fitxategia gzip bidez iragazi" + +#~ msgid "Input string too long" +#~ msgstr "Sarrera kate luzeegia" + +#~ msgid "Number syntax error" +#~ msgstr "Zenbaki sintaxi errorea" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Ezin da buffer lekua esleitu\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Ezin da buffer lekua esleitu" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "`%s --help' saiatu argibide gehiagorako.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Erabilea: %s [AUKERA]\n" +#~ "Zinta gailu bat manipulatu, urruneko prozesu baten komandoak onartzen.\n" +#~ "\n" +#~ " --version Bertsio argibideak eman.\n" +#~ " --help Laguntza hau eman.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Seek offset errorea" + +#~ msgid "Premature end of file" +#~ msgstr "Fitxategi amaiera azkarregia" #~ msgid "block size" #~ msgstr "bloke tamaina" @@ -2664,9 +2794,6 @@ msgstr "argumentu gehiegi" #~ msgstr[0] "%s: Irakurketa errorea %s byte-an, byte %lu irakurtzerakoan" #~ msgstr[1] "%s: Irakurketa errorea %s byte-an, %lu byte irakurtzerakoan" -#~ msgid "Time stamp out of range" -#~ msgstr "Denbora marka eremuz kanpo dago" - #~ msgid "Modification time (seconds) out of range" #~ msgstr "Eraldaketa denbora (segundu) eremuz kanpo dago" @@ -2679,9 +2806,6 @@ msgstr "argumentu gehiegi" #~ msgid "Error reading time stamp" #~ msgstr "Errorea denbora marka irakurtzerakoan" -#~ msgid "Unexpected EOF" -#~ msgstr "Fitxategi Amaiera Esperogabea" - #~ msgid "--Mangled file names--\n" #~ msgstr "--Kudeatutako fitxategi izenak--\n" @@ -2703,5 +2827,8 @@ msgstr "argumentu gehiegi" #~ msgid "[.]NUMBER" #~ msgstr "[.]ZENBAKIA" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "Oharra: -l aukera ez da onartzen; agian -j edo -T egin nahi zenuen?" + #~ msgid "Error exit delayed from previous errors" #~ msgstr "Errore irteera aurreko erroreak direla eta" diff --git a/po/fi.gmo b/po/fi.gmo index 1bd48827d66959f357f39005b2fa9d1071161b09..900159bd7648e40d61075be6b582daffd65478a7 100644 Binary files a/po/fi.gmo and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po index 5f781904dced4cf734c8d31099413fc61118cfd9..3ed900d66499a71c14eac5051057f716cb5554bf 100644 --- a/po/fi.po +++ b/po/fi.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.16.1\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2006-12-09 18:58+0200\n" "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" @@ -15,47 +15,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argumentti %s on virheellinen %s:lle" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumentti %s on moniselitteinen %s:lle" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Kelvolliset argumentit ovat:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT-parametri vaatii arvon" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT-parametrin on oltava positiivinen" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Tuntematon ARGP_HELP_FMT-parametri" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Roskaa ARGP_HELP_FMT:ssä: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -63,238 +63,143 @@ msgstr "" "Pitkien valitsinten pakolliset tai valinnaiset argumentit ovat pakollisia " "tai valinnaisia myös vastaaville lyhyille." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Käyttö:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " tai: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [VALITSIN...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Komennot ”%s --help” ja ”%s --usage” antavat lisää tietoa.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Tuntematon järjestelmävirhe" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "näytä tämä ohje" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "näytä lyhyt käyttöohje" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NIMI" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "näytä ohjelman versio" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Liian monta argumenttia\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: valitsin ”%s” on moniselitteinen\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: valitsin ”--%s” ei salli argumenttia\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: valitsin ”%c%s” ei salli argumenttia\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: valitsin ”%s” vaatii argumentin\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: tunnistamaton valitsin ”--%s”\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: tunnistamaton valitsin ”%c%s”\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: virheellinen valitsin -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: virheellinen valitsin -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: valitsin vaatii argumentin -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: valitsin ”-W %s” on moniselitteinen\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: valitsin ”-W %s” ei salli argumenttia\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "muisti lopussa" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Työhakemistoa ei voi vaihtaa" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Työhakemistoa ei voi tallentaa" -# Onpa taas NIIN hyvin lokalisoitavissa tämä. -# Käytännössä saattaa esiintyä esim. muodossa -# "tar: Cannot mkfifo: File exists" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Toimintoa %s ei voi suorittaa" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Varoitus: Toimintoa %s ei voi suorittaa" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Oikeuksien muuttaminen tilaan %s ei onnistu" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Tiedoston omistusta ei voi muuttaa arvoon uid=%lu, gid=%lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Kovaa linkkiä tiedostoon %s ei voi luoda" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" -msgstr[1] "%s: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Varoitus: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" -msgstr[1] "%s: Varoitus: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Siirtyminen kohtaan %s ei onnistu" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Varoitus: Siirtyminen kohtaan %s ei onnistu" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Tiedostoon %s ei voida luoda symlinkkiä" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Kirjoitettiin vain %lu tavua %lu tavusta" -msgstr[1] "%s: Kirjoitettiin vain %lu tavua %lu tavusta" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Poistetaan ”%s” tiedostonimien alusta" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Poistetaan ”%s” kovien linkkien kohdenimien alusta" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Korvataan ”.” tyhjällä tiedostonimellä" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Korvataan ”.” tyhjällä kovan linkin kohteella" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -308,17 +213,17 @@ msgstr "Korvataan ”.” tyhjällä kovan linkin kohteella" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "”" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "”" @@ -328,7 +233,7 @@ msgstr "”" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[kKyY]" @@ -338,38 +243,28 @@ msgstr "^[kKyY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[eEnN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Palvelu ei ole käytettävissä" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "vakiosyöte" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "vakiotuloste" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Etäkuorta ei voi käynnistää" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -380,19 +275,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Kirjoittanut François Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Kirjoittanut François Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Kirjoittanut François Pinard." @@ -400,7 +295,7 @@ msgstr "Kirjoittanut François Pinard." #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -410,7 +305,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +315,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -430,7 +325,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -440,7 +335,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -451,7 +346,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -462,7 +357,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -474,184 +369,334 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Ohjelmistovioista voi ilmoittaa (englanniksi) osoitteeseen\n" "<%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "" +# Onpa taas NIIN hyvin lokalisoitavissa tämä. +# Käytännössä saattaa esiintyä esim. muodossa +# "tar: Cannot mkfifo: File exists" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Toimintoa %s ei voi suorittaa" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Varoitus: Toimintoa %s ei voi suorittaa" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Puskuritilaa ei voi varata\n" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Oikeuksien muuttaminen tilaan %s ei onnistu" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Puskuritilaa ei voi varata" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Tiedoston omistusta ei voi muuttaa arvoon uid=%lu, gid=%lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Komento ”%s --help” antaa lisää tietoa.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Kovaa linkkiä tiedostoon %s ei voi luoda" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" +msgstr[1] "%s: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Varoitus: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" +msgstr[1] "%s: Varoitus: Lukuvirhe tavun %s kohdalla luettaessa %lu tavua" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Siirtyminen kohtaan %s ei onnistu" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Varoitus: Siirtyminen kohtaan %s ei onnistu" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Tiedostoon %s ei voida luoda symlinkkiä" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Kirjoitettiin vain %lu tavua %lu tavusta" +msgstr[1] "%s: Kirjoitettiin vain %lu tavua %lu tavusta" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Poistetaan ”%s” tiedostonimien alusta" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Poistetaan ”%s” kovien linkkien kohdenimien alusta" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Korvataan ”.” tyhjällä tiedostonimellä" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Korvataan ”.” tyhjällä kovan linkin kohteella" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Palvelu ei ole käytettävissä" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "vakiosyöte" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "vakiotuloste" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Käyttö: %s [VALITSIN]\n" -"Käsittele nauha-asemaa, hyväksyen komentoja etäprosessilta.\n" -"\n" -" --version Näytä versiotiedot.\n" -" --help Näytä tämä ohje.\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Etäkuorta ei voi käynnistää" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Siirtymän suunta sallitun välin ulkopuolella" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Siirtymä sallitun välin ulkopuolella" +msgid "Invalid seek direction" +msgstr "Valitsimelle annettiin virheellinen tila" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Virheellinen koko: %s" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Siirtymä sallitun välin ulkopuolella" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Siirtymän suunta sallitun välin ulkopuolella" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Virheellinen nauhan pituus" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Siirtymä sallitun välin ulkopuolella" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Ennenaikainen tiedoston loppu\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Ennenaikainen tiedoston loppu" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Päätoimintatila:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Odottamaton tiedoston loppu arkistossa" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "MÄÄRÄ" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "TIED" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s: Siirtyminen kohtaan %s ei onnistu" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "liian monta argumenttia" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Roskakomento" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Tämä ei näytä tar-arkistolta" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Kirjoitettuja tavuja yhteensä" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Poistettuja tavuja yhteensä: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(putki)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Virheellinen arvo kentälle record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Arkiston nimeä ei ole annettu" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Vakiosyötteessä/tulosteessa olevaa arkistoa ei voi varmistaa" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arkisto on tiivistetty. Käytä valitsinta %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Pakattuja arkistoja ei voi päivittää" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Nauhan alussa, lopetetaan" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Liian monta virhettä, lopetetaan" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Tietueen koko = %lu lohko" msgstr[1] "Tietueen koko = %lu lohkoa" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Kohdistamaton lohko (%lu tavu) arkistossa" msgstr[1] "Kohdistamaton lohko (%lu tavua) arkistossa" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Arkistossa ei voi siirtyä taaksepäin; sitä ei ehkä voi lukea ilman " "valitsinta -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ei pysähtynyt tietueen rajalle" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: sisältää virheellisen arkiston osan järjestysnumeron" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Arkisto-osan järjestysnumeron ylivuoto" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Valmistele osa #%d arkistolle %s ja paina return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Tiedoston loppu odotetun käyttäjän syötteen sijaan" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "VAROITUS: Arkisto on epätäydellinen" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -663,67 +708,67 @@ msgstr "" " q Keskeytä tar\n" " y tai rivinv. Jatka suoritusta\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Käynnistä alikuori\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Näytä tämä lista\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Ei uutta arkiston osaa, poistutaan.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Tiedostonimeä ei annettu. Yritä uudelleen.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "Komento %s epäonnistui" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s jatkuu mahdollisesti tällä arkiston osalla: otsake sisältää typistetyn " "nimen" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s ei jatku tällä arkiston osalla" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s on väärän kokoinen (%s ≠ %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Tämä arkiston osa ei ole järjestyksessä" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkistoa ei ole nimetty täsmää nimiöön %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Arkiston osa %s ei täsmää nimiöön %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -731,61 +776,61 @@ msgstr "" "%s: tiedostonimi on liian pitkä tallennettavaksi moniosaisen GNU-arkiston " "otsakkeeseen; nimi typistetty" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "rmtlseek ei pysähtynyt tietueen rajalle" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Voitiin lukea vain %lu tavua %lu tavusta" msgstr[1] "Voitiin lukea vain %lu tavua %lu tavusta" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Sisällöt eroavat" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Odottamaton tiedoston loppu arkistossa" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Tiedoston tyyppi eroaa" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Tila eroaa" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "UID eroaa" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "GID eroaa" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Muutosaika eroaa" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Koko eroaa" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Ei ole linkitetty tiedostoon %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlinkki eroaa" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Laitenumero eroaa" @@ -808,34 +853,34 @@ msgstr "Arkisto sisältää tiedostonimiä, joiden etuliitteet on poistettu." msgid "Verification may fail to locate original files." msgstr "Tarkastus ei ehkä löydä alkuperäisiä tiedostoja." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "TARKASTUSVIRHE: havaittu %d virheellinen otsake" msgstr[1] "TARKASTUSVIRHE: havaittu %d virheellistä otsaketta" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Yksinäinen nollalohko kohdassa %s" -#: src/create.c:67 +#: src/create.c:68 #, fuzzy, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: näyttää välimuistihakemistolta, ei lisätä" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "arvo %s on sallitun %s-välin %s..%s ulkopuolella, korvataan arvolla %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "arvo %s on sallitun %s-välin %s..%s ulkopuolella" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Luodaan otsakkeet negatiivisilla oktaaleilla" @@ -854,294 +899,280 @@ msgstr "%s: tiedostonimi on liian pitkä (ei voida jakaa), ei lisätä" msgid "%s: link name is too long; not dumped" msgstr "%s: linkin nimi on liian pitkä, ei lisätä" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Tiedosto kutistui %s tavun verran, tasataan nollilla" msgstr[1] "%s: Tiedosto kutistui %s tavun verran, tasataan nollilla" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: tiedosto ei ole samalla tiedostojärjestelmällä, ei lisätä" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tuntematon tiedostotyyppi, tiedostoa ei huomioida" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Puuttuvat linkit tiedostoon %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: tiedosto on muuttumaton, ei lisätä" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: tiedosto on arkistossa, ei lisätä" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Tiedosto oli poistettu ennen sen lukemista" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 #, fuzzy msgid "directory not dumped" msgstr "%s: näyttää välimuistihakemistolta, ei lisätä" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: tiedosto muuttui lukemisen aikana" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: pistoketta ei huomioida" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: ovea ei huomioida" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Siirrytään seuraavaan otsakkeeseen" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Poistetaan epäotsake arkistosta" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: epätodennäköisen vanha aikaleima %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: aikaleima %s on %s sekuntia tulevaisuudessa" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Odottamaton ristiriita luotaessa hakemistoa" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Hakemisto nimettiin uudelleen ennen kuin sen tilaa voitiin purkaa" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Puretaan jatkuvat tiedostot normaaleiksi tiedostoiksi" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Yritetään purkaa symboliset linkit koviksi linkeiksi" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Luetaan %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ei voi purkaa -- tiedosto on jatkoa toisesta arkiston osasta" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Odottamaton tiedoston loppu sovitetuissa nimissä" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Tuntematon tiedostotyyppi ”%c”, purettiin normaaliksi tiedostoksi" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Nykyinen %s on uudempi tai yhtä vanha" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Tätä tiedostoa ei voitu varmuuskopioida" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Virhe ei ole korjattavissa, poistutaan nyt" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Hakemisto %s on nimetty uudelleen" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Hakemisto on nimetty uudelleen" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Hakemisto on uusi" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Virheellinen aikaleima" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Virheellinen muutosaika (sekunnit)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Virheellinen muutosaika (nanosekunnit)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Virheellinen laitenumero" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Virheellinen i-solmun numero" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Odottamaton tiedoston loppu arkistossa" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 #, fuzzy msgid "Malformed dumpdir: empty name in 'R'" msgstr "Kelvoton tiheysargumentti: ”%s”" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 #, fuzzy msgid "Malformed dumpdir: empty name in 'T'" msgstr "Kelvoton tiheysargumentti: ”%s”" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Väliaikaishakemiston luominen %s-mallia käyttäen ei onnistu" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Ei poisteta hakemistoa: stat ei onnistu" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: hakemisto on eri laitteella, ei poisteta" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Poistetaan %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Ei voi poistaa" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Jätetään pois" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "lohko %s: ** NUL-lohko **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "lohko %s: ** Tiedoston loppu **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "lohko %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Tyhjiä merkkejä otsakkeessa, odotettiin numeerista %s-arvoa" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1149,151 +1180,168 @@ msgstr "" "kahden komplementiksi" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Arkiston oktaaliarvo %.*s on sallitun %s-välin ulkopuolella" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arkisto sisältää käytöstä poistuvia base-64-otsakkeita" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" "Arkiston etumerkillinen base-64-merkkijono %s on sallitun %s-välin " "ulkopuolella" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Arkiston base-256-arvo on sallitun %s-välin ulkopuolella" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arkisto sisältää merkkijonon %.*s, odotettiin numeerista %s-arvoa" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Arkiston arvo %s on sallitun %s-välin %s..%s ulkopuolella" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " linkki tiedostoon %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " tuntematon tiedostotyyppi %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Pitkä linkki--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Pitkä nimi--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Arkiston osan otsake--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Jatkuu tavusta %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Luodaan hakemisto:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Nimetään uudelleen %s -> %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Nimetään %s takaisin nimelle %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Työhakemistoa ei voi tallentaa" -#: src/misc.c:621 -msgid "Cannot change working directory" -msgstr "Työhakemistoa ei voi vaihtaa" +#: src/misc.c:675 +msgid "Cannot change working directory" +msgstr "Työhakemistoa ei voi vaihtaa" + +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Tiedosto oli poistettu ennen sen lukemista" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Tiedosto oli poistettu ennen sen lukemista" -#: src/misc.c:711 +#: src/misc.c:795 msgid "child process" msgstr "lapsiprosessi" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "prosessienvälinen kanava" # ... ja sen pitää päätyä kääntäjien ongelmaksi? -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Tiedostonimissä on käytetty jokerimerkkejä. Käytä" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "valitsinta --wildcards täsmäyksen käyttöön ottamiseksi, tai" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "--no-wildcards tämän varoituksen vaientamiseksi." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ei löytynyt arkistosta" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Vaadittua esiintymää ei löytynyt arkistosta" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Kumpikin valitsimista ”-%s” ja ”-%s” käyttää vakiosyötettä" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Virheellinen arkistomuoto" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "" "Haluttiin käyttää GNU-ominaisuuksia yhteensopimattoman arkistomuodon kanssa" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1311,7 +1359,7 @@ msgstr "" " %s -tvf arkisto.tar # Listaa kaikki arkisto.tar:in tiedostot.\n" " %s -xf arkisto.tar # Pura kaikki tiedostot arkisto.tar:ista.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1332,86 +1380,79 @@ msgstr "" " muuten yksinkertaisia\n" " never, simple tee aina yksinkertaisia varmuuskopioita\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Päätoimintatila:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "listaa arkiston sisältö" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "pura tiedostoja arkistosta" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "luo uusi arkisto" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "etsi arkiston ja tiedostojärjestelmän väliset erot" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "lisää tiedostoja arkiston loppuun" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "lisää vain arkistokopiota uudemmat tiedostot" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "lisää tar-tiedostoja arkistoon" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "poista tiedostoja arkistosta (ei toimi magneettinauhoilla!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Toimintovalinnat:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "käsittele harvat tiedostot tehokkaasti" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "käsittele vanha GNU-muotoinen lisääntyvä varmuuskopio" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "TIED" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "käsittele uusi GNU-muotoinen lisääntyvä varmuuskopio" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "jatka lukukelvottomista tiedostoista huolimatta" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "MÄÄRÄ" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1424,299 +1465,308 @@ msgstr "" "annettu komentirivillä tai -T-valitsimella; oletusMÄÄRÄ on 1" # Muualla seek on siirtymistä... -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "arkisto on selattava" -#: src/tar.c:418 +# Muualla seek on siirtymistä... +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "arkisto on selattava" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "yritä varmistaa arkisto kirjoittamisen jälkeen" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "poista tiedostot arkistoon lisäämisen jälkeen" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "älä korvaa olemassaolevia tiedostoja purettaessa" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "älä korvaa olemassaolevia tiedostoja, jotka ovat arkistokopioitaan uudempia" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "ylikirjoita olemassaolevat tiedostot purettaessa" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "poista jokainen tiedosto ennen sen päälle purkamista" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "tyhjennä rakenne ennen hakemiston purkamista" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "säilytä olemassaolevien hakemistojen metatiedot" -#: src/tar.c:446 +#: src/tar.c:466 #, fuzzy msgid "overwrite metadata of existing directories when extracting (default)" msgstr "ylikirjoita olemassaolevat tiedostot purettaessa" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Valitse tulostusvirta:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "pura tiedostot vakiotulosteeseen" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "KOMENTO" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "putkita puretut tiedostot toiselle ohjelmalle" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "jätä lapsiprosessien paluuarvot huomiotta" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "käsittele lapsiprosessien nollasta poikkeavat paluuarvot virheinä" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Tiedostojen ominaisuuksien käsittely:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "pakota NIMI lisättyjen tiedostojen omistajaksi" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "pakota NIMI lisättyjen tiedostojen ryhmäksi" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "PÄIVÄYS-TAI-TIED" -#: src/tar.c:473 +#: src/tar.c:493 #, fuzzy msgid "set mtime for added files from DATE-OR-FILE" msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "MUUTOS" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "pakota (symbolinen) tila MUUTOS lisätyille" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "älä pura tiedoston muutosaikaa" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "yritä purkaa tiedostot samalla omistajuudella" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "pura tiedostot itsenäsi" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "käytä aina numeroita käyttäjän/ryhmän nimissä" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "lajittele purettavat tiedostonimet täsmäämään arkistoon" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "sama kuin -p ja -s yhdessä" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 #, fuzzy msgid "Device selection and switching:" msgstr "Laitteen valinta ja vaihtaminen:\n" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARKISTO" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "käytä arkistotiedostoa tai -laitetta ARKISTO" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "arkisto on paikallinen vaikka nimessä olisi kaksoispiste" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "käytä rmt-KOMENTOA rmt:n sijaan" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "käytä etäKOMENTOa rsh:n sijaan" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "anna asema ja tiheys" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "luo/listaa/pura moniosainen arkisto" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "vaihda nauhaa MÄÄRÄ × 1024 kirjoitetun tavun jälkeen" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "aja skripti joka nauhan lopussa (valitsin -M tulee käyttöön)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "käytä/päivitä arkiston osan numero TIEDostossa" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Laitteen lohkot:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "LOHKOT" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "LOHKOT × 512 tavua tietuetta kohti" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "MÄÄRÄ tavua tietuetta kohti, 512:n monikerta" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "älä huomioi nollattuja lohkoja arkistossa (merkitsee tiedoston loppua)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "suorita lohkominen uudelleen luettaessa (4.2BSD-putkia varten)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Arkistomuodon valinta:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "MUOTO" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "luo annetun muotoinen arkisto" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "MUOTO on yksi seuraavista:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "vanha V7-tar-muoto" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU-muoto tar-versioilla ≤ 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x -muoto" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) -muoto" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) -muoto" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "sama kuin pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "sama kuin --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "sama kuin --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "avainsana[[:]=arvo][,avainsana[[:]=arvo]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "määrittele pax-avainsanoja" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEKSTI" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1724,197 +1774,174 @@ msgstr "" "luo arkisto nimiöllä TEKSTI. Listattaessa/purettaessa käytä TEKSTIä " "nimiönhakulausekkeena" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Ristiriitaiset pakkausvalitsimet" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "ohjaa arkisto bzip2-ohjelman läpi" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "ohjaa arkisto gzip-ohjelman läpi" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "ohjaa arkisto compress-ohjelman läpi" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "ohjaa arkisto gzip-ohjelman läpi" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "ohjaa arkisto gzip-ohjelman läpi" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "ohjaa arkisto gzip-ohjelman läpi" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "OHJ" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "ohjaa OHJelman läpi (on hyväksyttävä -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Paikallisten tiedostojen valinta:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "lisää annettu TIEDosto arkistoon (hyödyllinen, jos nimi alkaa viivalla)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "HAK" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "siirry hakemistoon HAK" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "hae purettavat/luotavat nimet TIEDOSTOsta" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T lukee nollaan päättyviä nimiä, poistaa käytöstä -C:n" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "HAHMO" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "jätä pois HAHMOn mukaiset tiedostot" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "jätä pois TIEDOSTOssa listatut hahmot" -#: src/tar.c:641 +#: src/tar.c:657 #, fuzzy msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "jätä pois välimuistihakemistot" -#: src/tar.c:644 +#: src/tar.c:660 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "jätä pois TIEDOSTOn sisältävät hakemistot" -#: src/tar.c:647 +#: src/tar.c:663 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "jätä pois TIEDOSTOn sisältävät hakemistot" -#: src/tar.c:649 +#: src/tar.c:665 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "jätä pois TIEDOSTOn sisältävät hakemistot" -#: src/tar.c:652 +#: src/tar.c:668 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "jätä pois TIEDOSTOn sisältävät hakemistot" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "jätä pois TIEDOSTOn sisältävät hakemistot" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "estä automaattinen eteneminen alihakemistoihin" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "pysy nykyisessä tiedostojärjestelmässä arkistoa luotaessa" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "etene alihakemistoihin (oletus)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "älä poista ”/”-merkkiä tiedostonimien alusta" -#: src/tar.c:666 +#: src/tar.c:684 #, fuzzy msgid "follow symlinks; archive and dump the files they point to" msgstr "seuraa symlinkkejä; " -#: src/tar.c:668 +#: src/tar.c:686 #, fuzzy msgid "follow hard links; archive and dump the files they refer to" msgstr "seuraa symlinkkejä; " -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "TIED-NIMI" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "aloita arkiston tiedostosta TIED-NIMI" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "PÄIVÄYS" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "vertaa vain tiedoston muutosaikaa" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "HALLINTA" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "varmuuskopiointi ennen poistoa, valitse versionHALLINTA" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "MERKKIJONO" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1922,95 +1949,103 @@ msgstr "" "varmuuskopiointi ennen poistoa, älä käytä tavanomaista jälkiliitettä (joka " "on ”~”, ellei muuttujaa SIMPLE_BACKUP_SUFFIX ole asetettu)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 #, fuzzy msgid "strip NUMBER leading components from file names on extraction" msgstr "poista MÄÄRÄn verran osia tiedostonimien alusta" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 #, fuzzy msgid "ignore case" msgstr "poisjättäminen ei huomioi kirjainkokoa" -#: src/tar.c:700 +#: src/tar.c:718 #, fuzzy msgid "patterns match file name start" msgstr "poisjättöhahmoja verrataan nimen alkuun" -#: src/tar.c:702 +#: src/tar.c:720 #, fuzzy msgid "patterns match after any `/' (default for exclusion)" msgstr "poisjättöhahmoja verrataan jokaisen ”/”:n jälkeen" -#: src/tar.c:704 +#: src/tar.c:722 #, fuzzy msgid "case sensitive matching (default)" msgstr "poisjättäminen huomioi kirjainkoon (oletus)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "poisjättöhahmon jokerimerkit eivät täsmää ”/”-merkkiin" -#: src/tar.c:712 +#: src/tar.c:730 #, fuzzy msgid "wildcards match `/' (default for exclusion)" msgstr "poisjättöhahmon jokerimerkit vastaavat merkkiä ”/”" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Tietoja antava tuloste:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "listaa käsiteltävät tiedostot" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 #, fuzzy msgid "display progress messages every NUMBERth record (default 10)" msgstr "näytä edistymisviesti 10 sekunnin välein" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "näytä viesti, ellei kaikkia linkkejä lisätty" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2018,58 +2053,58 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "näytä tiedostojen muutosajat UTC-aikoina" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "ohjaa monisanainen tuloste TIEDostoon" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "näytä lohkonumero arkistossa viestien yhteydessä" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "kysy varmistusta jokaiselle toiminnolle" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "näytä tarin oletukset" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" "luettele hakuehtoihin täsmäämättömät hakemistot luetellessa tai purettaessa" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Yhteensopivuusvalitsimet:" -#: src/tar.c:764 +#: src/tar.c:784 #, fuzzy msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" @@ -2077,57 +2112,65 @@ msgid "" msgstr "" "luotaessa sama kuin --old-archive purettaessa sama kuin --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Muut valitsimet:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "poista käytöstä joitakin potentiaalisesti vahingollisia valitsimia" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Vain yhtä valitsimista ”-Acdtrux” voi käyttää kerrallaan" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Ristiriitaiset pakkausvalitsimet" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Tuntematon signaalin nimi: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Päiväystiedostoa ei löytynyt" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Korvataan tuntematon päiväysmuoto %2$s arvolla %1$s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Valitsin %s: Käsittellään päiväys %s arvona %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: tiedosto on arkistossa, ei lisätä" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: tiedostonimi sisältää nul-merkin" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "ohjaa arkisto gzip-ohjelman läpi" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "Kelvolliset argumentit --quoting-style -valitsimille ovat:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2135,158 +2178,168 @@ msgstr "" "\n" "*Tämä* tar käyttää oletuksena:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Virheellinen lohkomiskerroin" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Virheellinen nauhan pituus" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Annettu useampi kuin yksi kynnyspäiväys" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' ei ole tuettu tällä alustalla" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Virheellinen ryhmä" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Valitsimelle annettiin virheellinen tila" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Virheellinen määrä" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Virheellinen omistaja" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Virheellinen tietueen koko" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Tietueen koon on oltava %d:n monikerta." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Virheellinen osien määrä" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Kelvoton tiheysargumentti: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Tuntematon tiheys: ”%c”" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "*Tämä* tar ei tue valitsimia ”-[0-7][lmh]”" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[TIEDOSTO]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Vanha valitsin ”%c” vaatii argumentin." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "valitsin --occurence on merkityksetön ilman tiedostoluetteloa" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "valitsinta --occurence ei voi käyttää pyydetyssä toimintatilassa" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Usean arkistotiedoston käyttäminen vaatii valitsimen ”-M”" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Valitsimia --listed-incremental ja --newer ei voi käyttää yhdessä" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "valitsin --occurence on merkityksetön ilman tiedostoluetteloa" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Arkiston osan nimiö on liian pitkä (raja on %lu tavu)" msgstr[1] "%s: Arkiston osan nimiö on liian pitkä (raja on %lu tavua)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Moniosaisia arkistoja ei voi tarkastaa" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Pakattuja arkistoja ei voi varmistaa" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Pakattuja moniosaisia arkistoja ei voi käyttää" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Pakattuja arkistoja ei voi liittää toisiinsa" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Kieltäydytään pelkurimaisesti luomasta tyhjää arkistoa" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Valitsimet ”-Aru” eivät ole yhteensopivia valitsinten ”-f -” kanssa" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Vähintään yhtä valitsimista ”-Acdtrux” on käytettävä" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2298,60 +2351,65 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Tiedosto kutistui %s tavun verran" msgstr[1] "%s: Tiedosto kutistui %s tavun verran" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Avainsana %s on tuntematon tai sillä ei vielä ole toteutusta" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Aikaleima ei ole sallitulla välillä" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Hahmoa %s ei voi käyttää" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Avainsanaa %s ei voi ohittaa" -#: src/xheader.c:496 +#: src/xheader.c:541 #, fuzzy msgid "Malformed extended header: missing length" msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu" -#: src/xheader.c:504 +#: src/xheader.c:549 #, fuzzy msgid "Extended header length is out of allowed range" msgstr "" "Arkiston etumerkillinen base-64-merkkijono %s on sallitun %s-välin " "ulkopuolella" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "" "Arkiston etumerkillinen base-64-merkkijono %s on sallitun %s-välin " "ulkopuolella" -#: src/xheader.c:523 +#: src/xheader.c:568 #, fuzzy msgid "Malformed extended header: missing blank after length" msgstr "Väärän muotoinen laajennettu otsake: tyhje puuttuu pituuden jälkeen" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu" -#: src/xheader.c:537 +#: src/xheader.c:582 #, fuzzy msgid "Malformed extended header: missing newline" msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2359,28 +2417,28 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Laajennettu otsake %s=%s on sallitun välin %s..%s ulkopuolella" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Väärän muotoinen laajennettu otsake: virheellinen %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, fuzzy, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Väärän muotoinen laajennettu otsake: virheellinen %s: odottamaton rajoitin %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu" @@ -2421,238 +2479,310 @@ msgstr "Kirjoituksen tarkistuspiste %u" msgid "Read checkpoint %u" msgstr "Lukemisen tarkistuspiste %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Luo datatiedostot GNU tar:in testausta varten.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Muut valitsimet:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 #, fuzzy msgid "Create file of the given SIZE" msgstr "luo annetun muotoinen arkisto." -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "pura tiedostot vakiotulosteeseen" -#: tests/genfile.c:132 +#: tests/genfile.c:134 #, fuzzy msgid "Read file names from FILE" msgstr "Luettiin %s tavua arkistosta %s" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T lukee nollatavuun päättyviä nimiä" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "yritä varmistaa arkisto kirjoittamisen jälkeen" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [VALITSIN...]" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Suorita KOMENTO" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Virheellinen koko: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "I-solmun numero ei ole sallitulla välillä" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, fuzzy, c-format msgid "Negative size: %s" msgstr "Virheellinen koko: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) epäonnistui" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Tuntematon järjestelmävirhe" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARG...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "%s: Siirtyminen kohtaan %s ei onnistu" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "tiedostonimi sisältää nollatavun" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " tuntematon tiedostotyyppi %s\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Siirtyminen kohtaan %s ei onnistu" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s: Siirtyminen kohtaan %s ei onnistu" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Komennon suoritus päättyi onnistuneesti\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "Lapsiprosessi kuoli signaalilla %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Komento keskeytyi signaaliin %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Komento pysähtyi signaaliin %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Komento keskeytyi\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Sovitetut tiedostonimet--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "liian monta argumenttia" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: virheellinen valitsin -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Varoitus: valitsin -I ei ole tuettu, ehkä tarkoitit -j tai -T?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Ohjelmistovioista voi ilmoittaa (englanniksi) osoitteeseen\n" +#~ "<%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Luetaan %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Virhe ei ole korjattavissa, poistutaan nyt" + +#~ msgid "suppress this warning." +#~ msgstr "--no-wildcards tämän varoituksen vaientamiseksi." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "ohjaa arkisto bzip2-ohjelman läpi" + +#~ msgid "filter the archive through gzip" +#~ msgstr "ohjaa arkisto gzip-ohjelman läpi" + +#~ msgid "filter the archive through compress" +#~ msgstr "ohjaa arkisto compress-ohjelman läpi" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "ohjaa arkisto gzip-ohjelman läpi" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "ohjaa arkisto gzip-ohjelman läpi" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Puskuritilaa ei voi varata\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Puskuritilaa ei voi varata" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Komento ”%s --help” antaa lisää tietoa.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Käyttö: %s [VALITSIN]\n" +#~ "Käsittele nauha-asemaa, hyväksyen komentoja etäprosessilta.\n" +#~ "\n" +#~ " --version Näytä versiotiedot.\n" +#~ " --help Näytä tämä ohje.\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Siirtymä sallitun välin ulkopuolella" + +#~ msgid "Premature end of file" +#~ msgstr "Ennenaikainen tiedoston loppu" #~ msgid "block size" #~ msgstr "lohkokoko" @@ -2661,6 +2791,9 @@ msgstr "liian monta argumenttia" #~ msgid "[.]NUMBER" #~ msgstr "MÄÄRÄ" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "Varoitus: valitsin -I ei ole tuettu, ehkä tarkoitit -j tai -T?" + #~ msgid "Error exit delayed from previous errors" #~ msgstr "Viivästetty virhepoistuminen johtuu aikaisemmista virheistä" @@ -2687,9 +2820,6 @@ msgstr "liian monta argumenttia" #~ msgid "Unknown demangling command %s" #~ msgstr "Tuntematon takaisinsovituskomento %s" -#~ msgid "Time stamp out of range" -#~ msgstr "Aikaleima ei ole sallitulla välillä" - #~ msgid "Device number out of range" #~ msgstr "Laitenumero ei ole sallitulla välillä" @@ -2697,10 +2827,6 @@ msgstr "liian monta argumenttia" #~ msgid "Error reading time stamp" #~ msgstr "Virheellinen aikaleima" -#, fuzzy -#~ msgid "Unexpected EOF" -#~ msgstr "Odottamaton tiedoston loppu arkistossa" - #~ msgid "same as -N" #~ msgstr "sama kuin -N" diff --git a/po/fr.gmo b/po/fr.gmo index 03bee48928ea49815c5a5f4f74e5342a1e1bc1de..ef19c5d53ccdc395e149ccc75834d71a2292e949 100644 Binary files a/po/fr.gmo and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index a35fdf39d97d69f820cbb4de0c1437761e9c325e..53184fc6929d17d9ab417fb4253585fd384464b8 100644 --- a/po/fr.po +++ b/po/fr.po @@ -2,14 +2,14 @@ # Copyright © 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # Michel Robitaille <robitail@IRO.UMontreal.CA>, jusqu'en 2004 -# Christophe Combelles <ccomb@free.fr>, 2007, 2008 +# Christophe Combelles <ccomb@free.fr>, 2007, 2008, 2009 # msgid "" msgstr "" -"Project-Id-Version: tar-1.20\n" +"Project-Id-Version: tar-1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-04-14 22:07+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-12-06 17:08+0100\n" "Last-Translator: Christophe Combelles <ccomb@free.fr>\n" "Language-Team: French <traduc@traduc.org>\n" "MIME-Version: 1.0\n" @@ -17,47 +17,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "Argument %s non valable pour %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "Argument %s ambigu pour %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Les arguments valables sont :" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT : la valeur %s est inférieure ou égale à %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s : le paramètre ARGP_HELP_FMT a besoin d'une valeur" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s : le paramètre ARGP_HELP_FMT doit être positif" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s : le paramètre ARGP_HELP_FMT est inconnu" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Déchet dans ARGP_HELP_FMT : %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -65,239 +65,143 @@ msgstr "" "Les arguments obligatoires ou facultatifs pour les formes longues des " "options le sont également pour les formes courtes qui leur correspondent." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Utilisation :" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " ou : " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [OPTION...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Pour en savoir davantage, faites : « %s --help » ou « %s --usage ».\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Rapportez toute anomalie à %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Erreur système inconnue" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "Afficher cette aide-mémoire" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "Afficher un court mode d'emploi" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NOM" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "définit le nom du programme" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SECS" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "Bloquer pendant SECS secondes (3600 par défaut)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "Afficher la version du programme" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(PROGRAM ERROR) Aucune version connue !?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s : trop d'arguments\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(PROGRAM ERROR) L'option devrait avoir été reconnue !?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "erreur d'écriture" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s : l'option « %s » est ambiguë\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s : l'option « --%s » n'a pas d'argument\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s : l'option « %c%s » n'a pas d'argument\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s : l'option « %s » doit avoir un argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s : l'option « --%s » est inconnue\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s : l'option « %c%s » est inconnue\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s : l'option « -- %c » n'est pas permise\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s : l'option « -- %c » n'est pas valable\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s : l'option « -- %c » a besoin d'un argument\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s : l'option « -W %s » est ambiguë\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s : l'option « -W %s » ne prend pas d'argument\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "mémoire épuisée" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "Impossible d'enregistrer le répertoire de travail actuel" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "Impossible de revenir au répertoire de travail initial" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s : la fonction %s a échoué" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s : AVERTISSEMENT : la fonction %s a échoué" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s : le mode ne peut pas être changé en %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s : le propriétaire ne peut pas être changé en uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s : impossible de créer un lien physique vers %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s : erreur de lecture à l'octet %s, à la lecture de %lu octet" -msgstr[1] "%s: erreur de lecture à l'octet %s, à la lecture de %lu octets" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -"%s : AVERTISSEMENT : erreur de lecture à l'octet %s, à la lecture de %lu " -"octet" -msgstr[1] "" -"%s: AVERTISSEMENT : erreur de lecture à l'octet %s, à la lecture de %lu " -"octets" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s : Positionnement à %s impossible" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s : AVERTISSEMENT : positionnement à %s impossible" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s : un lien symbolique ne peut pas être créé vers %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s : seulement %lu octet sur %lu a été écrit" -msgstr[1] "%s: seulement %lu octets sur %lu ont été écrits" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Suppression de « %s » au début des noms des membres" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Suppression de « %s » au début des liens physiques" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Remplacement des noms vides par « . » pour les membres" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Remplacement des cibles vides par « . » pour les liens physiques" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -311,17 +215,17 @@ msgstr "Remplacement des cibles vides par « . » pour les liens physiques" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "« " -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr " »" @@ -331,7 +235,7 @@ msgstr " »" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[oO]" @@ -341,39 +245,28 @@ msgstr "^[oO]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp : service non disponible." - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Impossible de lancer un interpréteur de commandes distant" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -391,19 +284,19 @@ msgstr "" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Écrit par %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Écrit par %s et %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Écrit par %s, %s et %s.\n" @@ -411,7 +304,7 @@ msgstr "Écrit par %s, %s et %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -423,7 +316,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -435,7 +328,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -447,7 +340,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -459,7 +352,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -473,7 +366,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -487,7 +380,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -502,186 +395,338 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" -msgstr "" -"\n" -"Rapportez toute anomalie à <%s>.\n" +"Report bugs to: %s\n" +msgstr "Rapportez toute anomalie à %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" +msgstr "Rapportez toute anomalie à %s.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Page d'accueil de %s : <http://www.gnu.org/software/%s/>.\n" + +#: gnu/version-etc.c:258 +#, fuzzy +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Aide générale sur l'utilisation de programmes GNU : <http://www.gnu.org/" +"gethelp/>.\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s : la fonction %s a échoué" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s : AVERTISSEMENT : la fonction %s a échoué" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Chaîne trop longue en entrée" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s : le mode ne peut pas être changé en %s" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Erreur de syntaxe de nombre" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s : le propriétaire ne peut pas être changé en uid %lu, gid %lu" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd : impossible de réserver un espace tampon\n" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s : impossible de créer un lien physique vers %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Impossible de réserver un espace tampon" +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s : erreur de lecture à l'octet %s, à la lecture de %lu octet" +msgstr[1] "%s: erreur de lecture à l'octet %s, à la lecture de %lu octets" -#: rmt/rmt.c:304 +#: lib/paxerror.c:192 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Pour en savoir davantage, tapez : « %s --help ».\n" +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +"%s : AVERTISSEMENT : erreur de lecture à l'octet %s, à la lecture de %lu " +"octet" +msgstr[1] "" +"%s: AVERTISSEMENT : erreur de lecture à l'octet %s, à la lecture de %lu " +"octets" -#: rmt/rmt.c:308 +#: lib/paxerror.c:259 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot seek to %s" +msgstr "%s : Positionnement à %s impossible" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s : AVERTISSEMENT : positionnement à %s impossible" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s : un lien symbolique ne peut pas être créé vers %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s : seulement %lu octet sur %lu a été écrit" +msgstr[1] "%s: seulement %lu octets sur %lu ont été écrits" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Suppression de « %s » au début des noms des membres" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Suppression de « %s » au début des liens physiques" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Remplacement des noms vides par « . » pour les membres" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Remplacement des cibles vides par « . » pour les liens physiques" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp : service non disponible." + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Utilisation : %s [OPTION]\n" -"Ce programme permet de manipuler un lecteur de cartouches en recevant des " -"commandes d'un processus distant.\n" -"\n" -" --version afficher le nom et la version du programme\n" -" --help afficher cette aide-mémoire\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Erreur de positionnement relatif" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Impossible de lancer un interpréteur de commandes distant" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Direction de positionnement hors plage" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Mode non valable donné en option" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Taille non valable : %s" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Positionnement relatif hors plage" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Direction de positionnement hors plage" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Longueur de cartouche non valable" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Positionnement relatif hors plage" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd : fin de fichier prématurée\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Fin de fichier prématurée" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Mode d'opération principal :" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Fin prématurée rencontrée dans l'archive." + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "NOMBRE" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FICHIER" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "Impossible d'ouvrir « %s »" -#: rmt/rmt.c:672 +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "trop d'arguments" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Commande rejetée" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Ceci ne ressemble pas à une archive de type « tar »" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Nombre total d'octets écrits" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Nombre total d'octets lus" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Nombre total d'octets effacés : %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(tube)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Valeur incorrecte pour « record_size »" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Aucun nom d'archive donné" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "" "Une archive utilisant l'entrée/sortie standard ne peut pas être vérifiée" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "L'archive est compressée. Utilisez l'option %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Une archive compressée ne peut pas être mise à jour" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Début de la cartouche atteinte ; arrêt du programme." -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Trop d'erreurs, arrêt du programme." -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Taille de l'enregistrement = %lu bloc" msgstr[1] "Taille de l'enregistrement = %lu blocs" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Bloc non aligné (%lu octet) dans l'archive" msgstr[1] "Bloc non aligné (%lu octets) dans l'archive" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Impossible de reculer dans le fichier d'archive ; il se peut qu'il soit " "illisible sans l'option « -i »" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ne s'est pas arrêté à une limite d'enregistrement" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s : contient un numéro de volume non valable" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Débordement du numéro de volume" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Préparez le volume n°%d pour %s et appuyez sur Entrée : " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "" "Fin de fichier rencontrée alors qu'une réponse de l'utilisateur était " "attendue" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "AVERTISSEMENT : l'archive est incomplète" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -692,67 +737,67 @@ msgstr "" " q Arrêter tar\n" " y ou newline Continuer le traitement\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Générer un sous-shell\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Afficher cette liste\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Pas de nouveau volume ; fin du traitement.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Nom de fichier non spécifié. Essaye encore :).\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Données non valables en entrée. Tapez « ? » pour obtenir de l'aide.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "Échec de la commande %s" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "La suite de %s est probablement sur ce volume : l'en-tête contient un nom " "tronqué." -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "La suite de %s n'est pas sur ce volume." -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s a une taille incorrecte (%s != %s + %s)." -#: src/buffer.c:1253 -#, fuzzy, c-format +#: src/buffer.c:1326 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Ce volume est hors séquence." +msgstr "Ce volume est hors séquence (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Archive non étiquetée pour correspondre à %s." -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Le volume %s ne correspond pas à %s." -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -760,61 +805,60 @@ msgstr "" "%s : nom de fichier tronqué, car trop long pour être stocké dans un en-tête " "GNU multi-volumes" -#: src/buffer.c:1621 -#, fuzzy +#: src/buffer.c:1749 msgid "write did not end on a block boundary" -msgstr "rmtlseek ne s'est pas arrêté à une limite d'enregistrement" +msgstr "l'écriture ne s'est pas arrêté sur une limite de bloc" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Seulement %lu octet sur %lu a pu être lu" msgstr[1] "Seulement %lu octets sur %lu ont pu être lus" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Les contenus sont différents." -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Fin prématurée rencontrée dans l'archive." -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Le type de fichier est différent." -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Le mode est différent." -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "L'UID est différent." -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Le GID est différent." -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "La date de modification est différente." -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "La taille est différente." -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "N'est pas lié à %s." -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Le lien symbolique est différent." -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Le numéro de périphérique est différent." @@ -839,34 +883,34 @@ msgid "Verification may fail to locate original files." msgstr "" "La vérification peut échouer lors de la localisation des fichier originaux." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "ÉCHEC DE VÉRIFICATION : %d en-tête non valable détecté." msgstr[1] "ÉCHEC DE VÉRIFICATION : %d en-têtes non valables détectés." -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Bloc zéro solitaire repéré à %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s : contient une étiquette de répertoire cache %s ; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "Valeur %s en dehors de la plage de %s : %s..%s ; remplacement par %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "Valeur %s en dehors de la plage de %s : %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Génération d'en-têtes octaux négatifs" @@ -887,293 +931,279 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s : le nom du lien est trop long ; fichier non archivé" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s : fichier réduit de %s octet ; remplissage avec des zéros" msgstr[1] "%s : fichier réduit de %s octets ; remplissage avec des zéros" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "" "%s : le fichier est sur un système de fichiers différent ; fichier non " "archivé" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "contenu non archivé" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s : type de fichier inconnu ; fichier ignoré" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Liens manquants vers %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s : le fichier n'est pas modifié ; fichier non archivé" -#: src/create.c:1543 -#, c-format -msgid "%s: file is the archive; not dumped" -msgstr "%s : le fichier est l'archive elle-même ; fichier non archivé" - -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s : fichier supprimé avant d'avoir été lu" +#: src/create.c:1552 +#, c-format +msgid "%s: file is the archive; not dumped" +msgstr "%s : le fichier est l'archive elle-même ; fichier non archivé" -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "répertoire non archivé" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s : fichier modifié pendant sa lecture" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s : socket ignorée" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s : porte ignorée" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "On saute à l'en-tête suivant" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Suppression d'un « non en-tête » de l'archive" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s : l'horodatage %s est trop vieux pour être plausible" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s : l'horodatage %s est situé %s secondes dans le futur." -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s : incohérence inattendue lors de la création du répertoire" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s : répertoire renommé avant l'extraction de son état" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Extraction des fichiers contigus comme des fichiers réguliers" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Tentative d'extraction des liens symboliques comme des liens physiques" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Lecture de %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s : extraction impossible (morceau de fichier issu d'un autre volume)" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "En-tête à nom long inattendu" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s : type de fichier inconnu « %c », extrait comme un fichier normal." -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Le %s actuel est au moins aussi récent" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s : impossible d'archiver ce fichier." -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Impossible de renommer %s en %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Erreur non récupérable : arrêt du traitement" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s : le répertoire a été renommé depuis %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s : le répertoire a été renommé." -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s : le répertoire est nouveau." -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Horodatage non valable" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Temps de modification non valable (secondes)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Temps de modification non valable (nanosecondes)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Numéro de périphérique non valable" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Numéro d'inode non valable" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Champ trop long rencontré pendant la lecture du fichier d'instantané" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Erreur de lecture du fichier d'instantané" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Fin prématurée du fichier d'instantané" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Valeur de champ inattendue dans le fichier d'instantané" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Terminaison de champ manquante" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Mauvais format de fichier incrémental" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Version non prise en charge pour le format incrémental : %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "dumpdir incorrect : « %c » était attendu mais %#3o a été trouvé" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "dumpdir incorrect : « X » en double" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "dumpdir incorrect : nom vide dans « R »" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "dumpdir incorrect : « T » non précédé de « R »" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "dumpdir incorrect : nom vide dans « T »" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "dumpdir incorrect : fin des données trouvées au lieu de « %c »" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "dumpdir incorrect : « X » n'a jamais été utilisé" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Impossible de créer un répertoire temporaire utilisant le modèle %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s : répertoire non purgé : impossible d'évaluer par stat()" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "" "%s : le répertoire est sur un autre périphérique : répertoire non purgé" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s : suppression de %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s : suppression impossible" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s : omis" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloc %s : ** Bloc de NULs **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloc %s : ** Fin de fichier **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "bloc %s : " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" "Blancs dans l'en-tête alors qu'une valeur numérique de type %s était attendue" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1181,27 +1211,27 @@ msgstr "" "complément à 2 supposé" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "La valeur octale de l'archive %.*s est en dehors de la plage de %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "L'archive contient des en-têtes obsolètes en base 64." -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Une chaîne en base 64 signée %s de l'archive est hors de la plage %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Une valeur en base 256 de l'archive est en dehors de la plage %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "" @@ -1209,121 +1239,140 @@ msgstr "" "attendue." #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "La valeur de l'archive %s est hors des limites de %s : %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " lien vers %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " type de fichier inconnu %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Lien long--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Nom long--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--En-tête de volume--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Suite à l'octet %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Création du répertoire :" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "%s renommé en %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s : impossible de renommer en %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s finalement renommé en %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Le répertoire de travail ne peut pas être sauvegardé" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Impossible de changer le répertoire de travail" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s : fichier supprimé avant d'avoir été lu" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s : fichier supprimé avant d'avoir été lu" + +#: src/misc.c:795 msgid "child process" msgstr "processus enfant" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "canal inter-processus" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "" "Caractères de correspondance de motif utilisé dans le nom de fichier. " "Veuillez " -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" "utiliser « --wildcards » pour activer la correspondance de motif ou « --no-" "wildcards » pour" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "supprimer cet avertissement." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s : non trouvé dans l'archive" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s : occurence requise non trouvée dans l'archive" -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "--preserve-order n'est pas compatible avec --listed-incremental" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "--preserve-order n'est pas compatible avec --listed-incremental" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "" "Les options « -%s » et« -%s » nécessitent toutes les deux l'entrée standard." -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s : format d'archive non valable" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "" "Fonctionnalités de type GNU demandées pour un format d'archive incompatible." -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1331,7 +1380,7 @@ msgstr "" "Type de protection de caractères inconnu « %s ». Essayez « %s --quoting-" "style=help » pour avoir une liste." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1352,7 +1401,7 @@ msgstr "" "manière détaillée.\n" " tar -xf archive.tar # Extrait tous les fichiers de archive.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1373,91 +1422,84 @@ msgstr "" " nil, existing Numérotées si déjà numérotées, sinon simples.\n" " never, simple Faire toujours des sauvegardes simples.\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Mode d'opération principal :" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "Afficher le contenu de l'archive" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "Extraire les fichiers de l'archive" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "Créer une nouvelle archive" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "Trouver les différences entre l'archive et le système de fichiers" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "Ajouter des fichiers à la fin de l'archive" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" "Ajouter seulement les fichiers plus récents que les copies présentes dans " "l'archive" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "Ajouter des fichiers tar à une archive" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "Effacer de l'archive (pas sur les bandes magnétiques !)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "Tester l'étiquette du volume d'archive et terminer" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Modificateurs d'opération :" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" "Économiser efficacement l'espace dans les fichiers dispersés (fichiers à " "trous)" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJEUR[.MINEUR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" "Définir la version du format de dispersion à utiliser (implique « --sparse »)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "Prendre en charge les sauvegardes incrémentales à l'ancien format GNU" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FICHIER" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "Prendre en charge les sauvegardes incrémentales au nouveau format GNU" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "Ne pas s'arrêter à cause des non-zéros sur les fichiers illisibles" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "NOMBRE" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1470,127 +1512,131 @@ msgstr "" "fichiers est fournie soit sur la ligne de commande, soit avec l'option « -T " "». NOMBRE vaut 1 par défaut." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "L'archive peut être parcourue" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "L'archive peut être parcourue" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" "Ne pas vérifier les numéros de périphériques lors de la création d'archives " "incrémentales" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "vérifier les numéros de périphériques lors de la création d'archives " "incrémentales (par défaut)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Contrôle de l'écrasement :" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "Tenter de vérifier l'archive après écriture" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "Supprimer les fichiers après les avoir ajoutés à l'archive" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "Ne pas écraser les fichiers préexistants lors de l'extraction" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "Ne pas écraser les fichier préexistants qui sont plus récents que leur copie " "dans l'archive" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "Écraser les fichiers préexistants lors de l'extraction" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "Effacer chaque fichier préexistant avant l'extraction" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "Vider les hiérarchies avant d'extraire les répertoires" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "Préserver les métadonnées des répertoires préexistants" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "Écraser les métadonnées des répertoires préexistants lors de l'extraction " "(comportement par défaut)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Choix du flux de sortie :" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "Extraire les fichiers vers la sortie standard" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "COMMANDE" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "Renvoyer par tube les fichiers extraits vers un autre programme" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "Ignorer les codes de retour des processus enfants" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" "Traiter les codes de retours non nuls des processus enfants comme des erreurs" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Traitement des attributs de fichiers :" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "Utiliser NOM comme propriétaire des fichiers ajoutés" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "Utiliser NOM comme groupe des fichiers ajoutés" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATE-OU-FICHIER" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" "Définir la date de modification des fichiers ajoutés avec DATE-OU-FICHIER" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "CHANGEMENTS" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" "Utiliser les CHANGEMENTS de mode (symboliques) pour les fichiers ajoutés" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "MÉTHODE" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1600,29 +1646,33 @@ msgstr "" "lecture (MÉTHODE = « replace » par défaut) ou en ne définissant pas les dates " "initialement (MÉTHODE = « system »)" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "Ne pas extraire la date de modification du fichier" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "Essayer d'extraire les fichiers avec le même propriétaire" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "Vous approprier les fichiers extraits" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "Toujours utiliser les valeurs numériques des utilisateurs/groupes" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "Extraire les informations de permissions sur les fichiers (par défaut pour " "le superutilisateur)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1630,15 +1680,15 @@ msgstr "" "Appliquer l'umask de l'utilisateur lors de l'extraction des permissions (par " "défaut pour les utilisateurs normaux)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "Trier les noms à extraire dans le même ordre que l'archive" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "Équivalent à « -p -s » à la fois" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1646,139 +1696,139 @@ msgstr "" "Reporter à la fin de l'extraction le changement des dates de modification et " "des permissions des répertoires extraits" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "Annule l'effet de l'option « --delay-directory-restore »" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Sélection et option de périphérique :" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIVE" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "Utiliser le fichier ou le périphérique ARCHIVE" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "Le fichier d'archive est local même si « : » a été spécifié" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "Utiliser la COMMANDE rmt fournie au lieu de rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "Utiliser la COMMANDE distante à la place de rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "Spécifier le lecteur et la densité" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "Créer/lister/extraire une archive multi-volumes" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "Changer de cartouche après avoir écrit NOMBRE x 1024 octets" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "Exécuter le script à la fin de chaque cartouche (implique « -M »)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "Utiliser/mettre à jour le numéro de volume dans le FICHIER" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Blocs du périphérique :" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOCS" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOCS x 512 octets par enregistrement" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "NOMBRE d'octets par enregistrement (multiple de 512)" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "Ignorer les blocs de zéros dans l'archive (càd EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "Refaire les blocs pendant la lecture (pour les tubes BSD 4.2)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Sélection du format d'archive :" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "Créer l'archive au format désiré." -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT peut prendre une des valeurs suivantes :" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "Vieux format tar V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "Format GNU issu de tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "Format GNU tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "Format POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "Format POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "Identique à pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "Identique à « --format=v7 »" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "Identique à « --format=posix »" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "mot_clé[[:]=valeur][,mot_clé[[:]=valeur]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "Mots-clés de contrôle pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEXTE" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1787,111 +1837,85 @@ msgstr "" "l'extraction, utiliser le TEXTE comme motif de correspondance (glob) au nom " "de volume." -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Options de compression :" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" "Utiliser le suffixe de l'archive pour déterminer le programme de compression" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -"Utiliser le suffixe de l'archive pour déterminer le programme de compression" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "Filtrer l'archive à travers « bzip2 »" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "Filtrer l'archive à travers « gzip »" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "Filtrer l'archive à travers « compress »" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "Filtrer l'archive à travers « lzma »" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "Filtrer l'archive à travers « gzip »" +"Ne pas utiliser l'extension du fichier d'archive pour déterminer le " +"programme de compression" -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "Filtrer l'archive à travers « gzip »" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "Filtrer à travers le PROG (doit accepter l'option « -d »)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Sélection des fichiers locaux :" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "Ajouter le FICHIER donné à l'archive (utile si son nom commence par un tiret)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "RÉP" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "Utiliser RÉP comme répertoire de travail" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "Lire depuis le FICHIER la liste des noms à extraire ou à créer" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" "« -T » permet de lire les noms terminés par un NULL et désactive l'option « -C " "»" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "désactive l'effet de l'option --null précédente" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "Enlever la protection de caractères des noms de fichiers lus avec « -T » (par " "défaut)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" "Ne pas enlever la protection de caractères des noms de fichiers lus avec « -T " "»" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "MOTIF" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "Exclure les fichiers correspondant au MOTIF" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "Exclure les motifs listés dans le FICHIER" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1899,95 +1923,99 @@ msgstr "" "Exclure le contenu des répertoires contenant CACHEDIR.TAG, sauf le fichier " "de tag lui-même" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "Tout exclure dans les répertoires contenant CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "Exclure les répertoires contenant CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "Exclure le contenu des répertoires contenant le FICHIER, sauf le FICHIER lui-" "même" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "Tout exclure dans les répertoires contenant le FICHIER" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "Exclure les répertoires contenant le FICHIER" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "Exclure les répertoires de contrôle de version (CVS, .svn, etc.)" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "Empêcher la descente automatique dans les sous-répertoires" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" "Rester dans le système de fichiers local lors de la création de l'archive" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "Parcourir les sous-répertoires de manière récursive (par défaut)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "Ne pas enlever le « / » au début des noms de fichiers" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "Suivre les liens symboliques ; archiver les fichiers vers lesquels ils " "pointent" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "Suivre les liens physiques : archiver les fichiers vers lesquels ils pointent" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "NOM-DE-MEMBRE" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "Débuter au NOM-DE-MEMBRE dans l'archive" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "Stocker seulement les fichiers plus récents que DATE-OU-FICHIER" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATE" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "Ne comparer que la date et l'heure de modification des données" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "CONTRÔLE" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" "Faire une copie de sauvegarde avant suppression, choisir le CONTRÔLE de " "version" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "CHAÎNE" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1996,100 +2024,109 @@ msgstr "" "habituel (« ~ » sauf s'il est définit par la variable d'environnement " "SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Transformation des noms de fichiers :" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "Supprimer NOMBRE composants au début des noms de fichiers à l'extraction" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "EXPRESSION" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "Utiliser l'EXPRESSION de remplacement « sed » pour transformer les noms de " "fichiers" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Options de correspondance de noms de fichiers (pour les motifs d'exclusion " "et d'inclusion)" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "Ignorer la casse (majuscules/minuscules)" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "Les motifs doivent correspondre au début des noms de fichiers" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" "Les motifs peuvent correspondre après n'importe quel « / » (par défaut pour " "l'exclusion)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "Correspondance sensible à la casse (comportement par défaut)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" "Utiliser des caractères de correspondance (par défaut pour l'exclusion)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "Correspondance exacte de chaîne" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "« / » ne correspond à aucun caractère de correspondance" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" "« / » peut correspondre à un caractère de correspondance (par défaut pour " "l'exclusion)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Options d'affichage :" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "Afficher de manière détaillée les fichiers traités" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Contrôle de l'écrasement :" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "Afficher un message de progression tous les NOMBRE enregistrements (10 par " "défaut)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "ACTION" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "exécuter l'ACTION à chaque point de contrôle" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" "Afficher un message si tous les liens n'ont pas pu être suivis et archivés" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2101,27 +2138,27 @@ msgstr "" "sont : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 et SIGUSR2. Les noms sans préfixe « " "SIG » sont aussi acceptés" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "Afficher les dates de modification de fichier en UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "Envoyer la sortie détaillée vers le FICHIER" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "Afficher le numéro du bloc de l'archive avec chaque message" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "Demander confirmation pour chaque action" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "Afficher les paramètres par défaut de tar" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2129,33 +2166,33 @@ msgstr "" "Lors du listage ou de l'extraction, lister chaque répertoire qui ne concorde " "pas avec le critère de recherche" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "Afficher les noms des fichiers ou des archives après transformation" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STYLE" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "Définir le style de protection de caractères appliqués aux noms. Voir ci-" "dessous pour les valeurs du STYLE" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "Protéger aussi les caractères faisant partie de la CHAÎNE" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "Enlever la protection des caractères faisant partie de la CHAÎNE" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Options de compatibilité :" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2163,56 +2200,64 @@ msgstr "" "Lors de la création, identique à « --old-archive ». Lors de l'extraction, " "identique à « --no-same-owner »" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Autres options :" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "Désactiver certaines options potentiellement néfastes" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Vous ne pouvez pas sélectionner plus d'une option parmi « -Acdtrux »" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Options de compression non compatibles entre elles" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Type de signal inconnu : %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Fichier d'échantillon de date non trouvé" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Remplacement par %s du format de date inconnu %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Option %s : date « %s » traitée comme %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s : la liste de fichiers est déjà lue" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s : le nom de fichier lu contient un caractère nul" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "Filtrer l'archive à travers « xz »" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "Les arguments valables pour les options « --quoting-style » sont :" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2220,112 +2265,124 @@ msgstr "" "\n" "Les valeurs par défaut de *ce* tar sont :\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Facteur de bloc non valable" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Longueur de cartouche non valable" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Mauvais format de fichier incrémental" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Plus d'une date seuil" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Version de la dispersion non valable" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" "--atime-preserve='system' n'est pas pris en charge sur cette plateforme" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "la valeur de « --checkpoint » n'est pas un entier" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s : groupe non valable" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Mode non valable donné en option" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Nombre non valable" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Propriétaire non valable" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" +"L'option --preserve est obsolète, utilisez --preserve-permissions --preserve-" +"order à la place" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Taille d'enregistrement non valable" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "La taille d'un enregistrement doit être un multiple de %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Nombre d'éléments incorrect" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Une seule option « --to-command » est permise" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Argument de densité incorrect : %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Densité inconnue : « %c »" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Les options « -[0-7][lmh] » ne sont pas prises en charge par *ce* tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FICHIER]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "L'ancienne option « %c » a besoin d'un argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence n'a pas de sens sans une liste de fichiers" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "« --occurrence » ne peut être utilisée dans le mode d'opération demandé" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Les fichiers d'archives multiples ont besoin de l'option « -M »" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Impossible de combiner « --listed-incremental » avec « --newer »" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--preserve-order n'est pas compatible avec --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2334,50 +2391,53 @@ msgstr[0] "" msgstr[1] "" "%s: l'étiquette du volume est trop longue (la limite est %lu octets)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Impossible de vérifier des archives multi-volumes" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Impossible de vérifier des archives compressées" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Impossible d'utiliser des archives multi-volumes compressées" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Impossible de concaténer des archives compressées" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option peut être utilisée uniquement avec des archives POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" +"La longueur du volume ne peut pas être inférieure à la taille de " +"l'enregistrement" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" -msgstr "" +msgstr "--preserve-order n'est pas compatible avec --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Je refuse de créer un fichier d'archive vide (oui je suis lâche)" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Les options « -Aru » sont incompatibles avec « -f - »" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Vous devez choisir une des options « -Acdtrux » " -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "Arrêt avec code d'échec à cause des erreurs précédentes" #: src/update.c:86 #, c-format @@ -2386,52 +2446,57 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s : fichier réduit de %s octet" msgstr[1] "%s: fichier réduit de %s octets" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Le mot clé %s est inconnu ou n'est pas encore implémenté" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Nombre en dehors de la plage permise : %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Le motif %s ne peut être utilisé" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Le mot clé %s ne peut pas être surdéfini" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "En-tête étendu incorrect : longueur manquante" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "La longueur de l'en-tête étendu est hors plage" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "La longueur de l'en-tête étendu %*s est hors plage" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "En-tête étendu incorrect : espace blanche manquante après la longueur" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "En-tête étendu incorrect : signe d'égalité manquant" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "En-tête étendu incorrect : retour à la ligne manquant" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Le mot clé inconnu « %s » pour l'en-tête étendu a été ignoré" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2439,27 +2504,27 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "L'en-tête étendu %s=%s est hors plage %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "En-tête étendu incorrect : %s=%s non valable" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "En-tête étendu incorrect : %s=%s en trop" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "En-tête étendu incorrect : %s non valable : délimiteur %c non prévu" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "En-tête étendu incorrect : %s non valable : nombre impair de valeurs" @@ -2500,7 +2565,7 @@ msgstr "Point de contrôle d'écriture %u" msgid "Read checkpoint %u" msgstr "Point de contrôle de lecture %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2509,92 +2574,98 @@ msgstr "" "GNU paxutils.\n" "Les options sont :\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Options de création de fichier :" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "TAILLE" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Créer le fichier à la TAILLE donnée" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Écrire dans le fichier NOM, plutôt que sur la sortie standard" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Lire les noms de fichier depuis le FICHIER" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T permet de lire les noms terminés par un NULL" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Remplir le fichier avec le MOTIF donné. MOTIF est « default » ou « zeros »" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Taille d'un bloc pour le fichier dispersé" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Générer un fichier dispersé (avec des trous). Le reste de la ligne de " "commande définit la carte du fichier." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "DÉCALAGE" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Se déplacer du DÉCALAGE donné avant d'écrire des données" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Options des statistiques de fichiers :" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Afficher le contenu des structures « stat » pour chaque fichier donné. Le " "FORMAT par défaut est :" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Options d'exécution synchrone :" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [OPTION...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "Exécuter la COMMANDE donnée. Utile avec « --checkpoint » et l'une des options " "« --cut », « --append » ou « --touch »" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Exécuter l'action donnée (voir plus bas) dès qu'un point de contrôle NOMBRE " "est atteint" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Définir la date pour la prochaine option « --touch »" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Afficher les points de contrôle exécutés et les codes de sortie de la " "COMMANDE" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2602,7 +2673,7 @@ msgstr "" "Actions d'exécution synchrone. Celles-ci sont exécutées lorsque le numéro du " "point de contrôle donné par « --checkpoint » est atteint." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2610,150 +2681,219 @@ msgstr "" "Tronquer le FICHIER à la taille donnée par la précédente option « --length " "» (ou 0 si elle n'est pas fournie)." -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Ajouter TAILLE octets au FICHIER. La TAILLE est fournie par la précédente " "option « --length »" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Mettre à jour les dates d'accès et de modification du FICHIER" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Exécuter la COMMANDE" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Taille non valable : %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Nombre en dehors de la plage permise : %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Taille négative : %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "La fonction stat(%s) a échoué" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "taille de fichier demandée : %lu, taille réelle : %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "le fichier créé n'est pas dispersé" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Erreur à la lecture du nombre près de « %s »" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Format de date inconnu" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "Impossible d'ouvrir « %s »" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "Impossible à parcourir" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "Le nom de fichier contient un caractère nul" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "Un fichier dispersé ne peut pas être généré sur la sortie standard. Utilisez " "l'option « --file »" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "Masque incorrect (près de « %s »)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Champ inconnu « %s »" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "Impossible de définir la date de « %s »" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "Impossible d'ouvrir « %s »" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "La commande s'est terminée correctement\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "La commande a échoué avec le code %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "La commande s'est terminée sur le signal %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "La commande s'est interrompue sur le signal %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "La commande a généré un core dump\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "La commande s'est terminée\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat nécessite un nom de fichier" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "trop d'arguments" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s : l'option « -- %c » n'est pas permise\n" + +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Rapportez toute anomalie à <%s>.\n" + +#~ msgid "Input string too long" +#~ msgstr "Chaîne trop longue en entrée" + +#~ msgid "Number syntax error" +#~ msgstr "Erreur de syntaxe de nombre" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd : impossible de réserver un espace tampon\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Impossible de réserver un espace tampon" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Pour en savoir davantage, tapez : « %s --help ».\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Utilisation : %s [OPTION]\n" +#~ "Ce programme permet de manipuler un lecteur de cartouches en recevant des " +#~ "commandes d'un processus distant.\n" +#~ "\n" +#~ " --version afficher le nom et la version du programme\n" +#~ " --help afficher cette aide-mémoire\n" + +#~ msgid "Seek offset error" +#~ msgstr "Erreur de positionnement relatif" + +#~ msgid "Premature end of file" +#~ msgstr "Fin de fichier prématurée" + +#~ msgid "Reading %s\n" +#~ msgstr "Lecture de %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Erreur non récupérable : arrêt du traitement" + +#~ msgid "suppress this warning." +#~ msgstr "supprimer cet avertissement." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "Filtrer l'archive à travers « bzip2 »" + +#~ msgid "filter the archive through gzip" +#~ msgstr "Filtrer l'archive à travers « gzip »" + +#~ msgid "filter the archive through compress" +#~ msgstr "Filtrer l'archive à travers « compress »" + +#~ msgid "filter the archive through lzma" +#~ msgstr "Filtrer l'archive à travers « lzma »" + +#~ msgid "filter the archive through lzop" +#~ msgstr "Filtrer l'archive à travers « lzop »" #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" #~ msgstr "" #~ "AVERTISSEMENT : l'option « -I » n'est pas prise en charge. Vous vouliez " #~ "peut-être utiliser « -j » ou « -T » ?" -#, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "Annule l'effet de l'option « --delay-directory-restore »" - #~ msgid "Error exit delayed from previous errors" #~ msgstr "Des erreurs ont provoqué l'arrêt du programme" diff --git a/po/ga.gmo b/po/ga.gmo index d98665c8dff3d5bb346f7bdd762fb8d88b4adbdf..c5106d3b5ca65c560578334f0e3442715313e29d 100644 Binary files a/po/ga.gmo and b/po/ga.gmo differ diff --git a/po/ga.po b/po/ga.po index 72edc09773ec4e0b43fd8a0675ac641721588fda..dbf60ef730ced364babc1eef5ad0a668c710fbdd 100644 --- a/po/ga.po +++ b/po/ga.po @@ -1,13 +1,13 @@ # Irish translations for tar. # Copyright (C) 2003, 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. -# Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2004, 2006, 2007, 2008. +# Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2004, 2006, 2007, 2008, 2009. msgid "" msgstr "" -"Project-Id-Version: tar 1.20\n" +"Project-Id-Version: tar 1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-04-14 21:53-0600\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-03-25 20:27-0600\n" "Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -16,48 +16,48 @@ msgstr "" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 : " "(n>6 && n <11) ? 3 : 4;\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argóint neamhbhailí %s chun %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argóint dhébhríoch %s chun %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Na hargóintí bailí:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: luach %s níos lú ná nó cothrom le %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: Ní mór luach a thabhairt ar an pharaiméadar ARGP_HELP_FMT" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" "%.*s: Ní mór luach deimhneach a bheith ar an pharaiméadar ARGP_HELP_FMT" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Paraiméadar anaithnid ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Bruscar i ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -65,246 +65,145 @@ msgstr "" "Is riachtanach/roghnach le rogha ghearr aon argóint atá riachtanach/roghnach " "leis an rogha fhada." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Úsáid:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " nó: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [ROGHA...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, 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" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Seol tuairiscí fabhtanna chuig %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Earráid anaithnid chórais" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "taispeáin an chabhair seo" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "taispeáin beagán eolais faoin úsáid" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "AINM" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "socraigh ainm an chláir" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SOIC" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "moill de SOIC soicind (réamhshocrú: 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "taispeáin leagan an chláir" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(EARRÁID RÍOMHCHLÁIR) Gan leagan!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: An iomarca argóintí\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" "(EARRÁID RÍOMHCHLÁIR) Ba chóir aitheantas a thabhairt ar an rogha seo!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "earráid sa scríobh" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: Tá an rogha `%s' débhríoch\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `--%s'\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `%c%s'\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: tá argóint de dhíth i ndiaidh na rogha `%s'\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: rogha anaithnid `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: rogha anaithnid `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: rogha neamhcheadaithe -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: rogha neamhbhailí -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: tá argóint de dhíth i ndiaidh na rogha -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: Tá an rogha `-W %s' débhríoch\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `-W %s'\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "cuimhne ídithe" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "ní féidir an chomhadlann reatha a thaifeadadh" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "níorbh fhéidir an bhunchomhadlann oibre a aisfhilleadh" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Theip ar fheidhm %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Rabhadh: Theip ar fheidhm %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Ní féidir an mód a athrú go %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Ní féidir an t-úinéir a athrú go UID %lu, GID %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Ní féidir nasc crua a dhéanamh le %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Earráid léimh ag beart %s, agus %lu beart á léamh" -msgstr[1] "%s: Earráid léimh ag beart %s, agus %lu bheart á léamh" -msgstr[2] "%s: Earráid léimh ag beart %s, agus %lu bheart á léamh" -msgstr[3] "%s: Earráid léimh ag beart %s, agus %lu mbeart á léamh" -msgstr[4] "%s: Earráid léimh ag beart %s, agus %lu beart á léamh" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu beart á léamh" -msgstr[1] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu bheart á léamh" -msgstr[2] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu bheart á léamh" -msgstr[3] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu mbeart á léamh" -msgstr[4] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu beart á léamh" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Ní féidir 'seek' a dhéanamh ag %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Rabhadh: Ní féidir 'seek' a dhéanamh ag %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Ní féidir nasc siombalach a chruthú le %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Níor scríobhadh ach %lu as %lu bheart" -msgstr[1] "%s: Níor scríobhadh ach %lu as %lu bheart" -msgstr[2] "%s: Níor scríobhadh ach %lu as %lu bheart" -msgstr[3] "%s: Níor scríobhadh ach %lu as %lu mbeart" -msgstr[4] "%s: Níor scríobhadh ach %lu as %lu beart" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Gach `%s' tosaigh á bhaint amach as ainmneacha baill" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Gach `%s' tosaigh á bhaint amach as spriocanna na nasc crua" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Ag cur `.' in ionad ainm baill folamh" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Ag cur `.' in ionad sprioc fholamh den nasc crua" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -318,17 +217,17 @@ msgstr "Ag cur `.' in ionad sprioc fholamh den nasc crua" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -338,7 +237,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yYiIsS]" @@ -348,41 +247,28 @@ msgstr "^[yYiIsS]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Níl an tseirbhís ar fáil" - -# cf French -KPS -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -# cf French -KPS -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Ní féidir cianbhlaosc a rith" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -393,25 +279,25 @@ msgid "" msgstr "" "\n" "Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos nuaí <http://gnu.org/licenses/gpl." -"html>\n" +"html>.\n" "Is saorbhogearra é seo: ceadaítear duit é a athrú agus a athdháileadh.\n" "Níl baránta AR BITH ann, an oiread atá ceadaithe de réir dlí.\n" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Scríofa ag %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Scríofa ag %s agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Scríofa ag %s, %s, agus %s.\n" @@ -419,7 +305,7 @@ msgstr "Scríofa ag %s, %s, agus %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -431,7 +317,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -443,7 +329,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -455,7 +341,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -467,7 +353,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -481,7 +367,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -495,7 +381,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -510,136 +396,296 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Seol tuairiscí fabhtanna chuig %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Seol tuairiscí fabhtanna chuig <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Leathanach baile %s: <http://www.gnu.org/software/%s/>.\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Teaghrán ionchurtha rófhada" +#: gnu/version-etc.c:258 +#, fuzzy +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "Cabhair ghinearálta le bogearraí GNU: <http://www.gnu.org/gethelp/>.\n" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Earráid chomhréire in uimhir" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Theip ar fheidhm %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Ní féidir maolán a dháileadh\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Rabhadh: Theip ar fheidhm %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Ní féidir an mód a athrú go %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Ní féidir maolán a dháileadh" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Ní féidir an t-úinéir a athrú go UID %lu, GID %lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Ní féidir nasc crua a dhéanamh le %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Earráid léimh ag beart %s, agus %lu beart á léamh" +msgstr[1] "%s: Earráid léimh ag beart %s, agus %lu bheart á léamh" +msgstr[2] "%s: Earráid léimh ag beart %s, agus %lu bheart á léamh" +msgstr[3] "%s: Earráid léimh ag beart %s, agus %lu mbeart á léamh" +msgstr[4] "%s: Earráid léimh ag beart %s, agus %lu beart á léamh" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu beart á léamh" +msgstr[1] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu bheart á léamh" +msgstr[2] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu bheart á léamh" +msgstr[3] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu mbeart á léamh" +msgstr[4] "%s: Rabhadh: Earráid léimh ag beart %s, agus %lu beart á léamh" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Ní féidir 'seek' a dhéanamh ag %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Rabhadh: Ní féidir 'seek' a dhéanamh ag %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Ní féidir nasc siombalach a chruthú le %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Níor scríobhadh ach %lu as %lu bheart" +msgstr[1] "%s: Níor scríobhadh ach %lu as %lu bheart" +msgstr[2] "%s: Níor scríobhadh ach %lu as %lu bheart" +msgstr[3] "%s: Níor scríobhadh ach %lu as %lu mbeart" +msgstr[4] "%s: Níor scríobhadh ach %lu as %lu beart" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Gach `%s' tosaigh á bhaint amach as ainmneacha baill" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Gach `%s' tosaigh á bhaint amach as spriocanna na nasc crua" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Ag cur `.' in ionad ainm baill folamh" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Ag cur `.' in ionad sprioc fholamh den nasc crua" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Níl an tseirbhís ar fáil" + +# cf French -KPS +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +# cf French -KPS +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Úsáid: %s [ROGHA]\n" -"Láimhseáil tiomántán téipe, agus glac le horduithe ó chianphróiseas.\n" -"\n" -" --version Taispeáin eolas faoin leagan.\n" -" --help Taispeáin an chabhair seo.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Earráid i bhfritháireamh 'seek'" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Ní féidir cianbhlaosc a rith" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Treo 'seek' as raon" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Mód neamhbhailí ar rogha" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Méid neamhbhailí: %s" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Fritháireamh 'seek' as raon" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Treo 'seek' as raon" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Fad téipe neamhbhailí" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Fritháireamh 'seek' as raon" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Comhadchríoch gan choinne\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Príomh-mhód oibre:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" msgstr "Comhadchríoch gan choinne" -#: rmt/rmt.c:672 +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "UIMHIR" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "COMHAD" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "ní féidir `%s' a oscailt" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "an iomarca argóintí" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Ordú dramhaíola" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Ní cosúil le cartlann `tar' é seo" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Bearta scríofa go hiomlán" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Bearta léite go hiomlán" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Bearta scriosta go hiomlán: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(píopa)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Luach neamhbhailí do record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Ní thugtar ainm na cartlainne" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Ní féidir cartlann stdin/stdout a fhíorú" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Is cartlann chomhbhrúite í seo. Úsáid an rogha %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Ní féidir cartlanna comhbhrúite a nuashonrú" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Tosach na téipe, ag scor anois" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "An iomarca earráidí, ag scor" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -649,7 +695,7 @@ msgstr[2] "Méid taifid = %lu bhloc" msgstr[3] "Méid taifid = %lu mbloc" msgstr[4] "Méid taifid = %lu bloc" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -659,38 +705,38 @@ msgstr[2] "Bloc neamhailínithe (%lu bheart) sa chartlann" msgstr[3] "Bloc neamhailínithe (%lu mbeart) sa chartlann" msgstr[4] "Bloc neamhailínithe (%lu beart) sa chartlann" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Ní féidir an chartlann a chúlú; is dócha gur doléite í gan -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "Níor stopadh rmtlseek ag teorainn taifid" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: tá uimhir imleabhair neamhbhailí ann" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Uimhir imleabhair thar maoil" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "" "Socraigh an t-imleabhar #%d le haghaidh %s agus brúigh an eochair iontrála: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Fuarthas comhadchríoch in áit freagra ón úsáideoir" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "RABHADH: Tá an chartlann neamhiomlán" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -702,67 +748,67 @@ msgstr "" " q Tobscoir tar\n" " y nó líne nua Lean ar aghaidh\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Sceith fobhlaosc\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Priontáil an liosta seo\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Níl aon imleabhar nua; ag scor.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Ainm an chomhaid gan sonrú. Bain triail eile as.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ionchur neamhbhailí. Iontráil ? chun cabhair a fháil.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "Theip ar ordú %s" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "Seans go leanann %s ar aghaidh ar an imleabhar seo: tá ainm teasctha sa " "cheanntásc" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "Ní leanann %s ar an imleabhar seo" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "Níl %s an méid ceart (%s != %s + %s)" -#: src/buffer.c:1253 -#, fuzzy, c-format +#: src/buffer.c:1326 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Tá an t-imleabhar seo as ord" +msgstr "Tá an t-imleabhar seo as ord (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Lipéad ar chartlann nach comhoiriúnaithe le %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Níl an t-imleabhar %s comhoiriúnaithe le %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -770,12 +816,11 @@ msgstr "" "%s: ní féidir an comhadainm seo a stóráil i gceanntásc il-imleabhar GNU; " "teasctha" -#: src/buffer.c:1621 -#, fuzzy +#: src/buffer.c:1749 msgid "write did not end on a block boundary" -msgstr "Níor stopadh rmtlseek ag teorainn taifid" +msgstr "níor stop an scríobh ag teorainn bhloic" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -785,49 +830,49 @@ msgstr[2] "Níorbh fhéidir ach %lu de %lu bheart a léamh" msgstr[3] "Níorbh fhéidir ach %lu de %lu mbeart a léamh" msgstr[4] "Níorbh fhéidir ach %lu de %lu beart a léamh" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Tá difríocht idir na hábhair" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Comhadchríoch gan choinne i gcartlann" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Tá difríocht idir na cineálacha comhaid" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Tá difríocht idir na móid" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Tá difríocht idir na UIDanna" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Tá difríocht idir na GIDanna" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Tá difríocht idir na hamanna modhnaithe" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Tá difríocht idir na méideanna" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Ní ceangailte le %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Tá difríocht idir na naisc shiombalacha" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Tá difríocht idir na huimhreacha gléis" @@ -849,7 +894,7 @@ msgstr "Tá comhaid sa chartlann agus a réimíreanna scriosta." msgid "Verification may fail to locate original files." msgstr "Nach féidir i gcónaí na bunchomhaid a aimsiú agus le linn fíoraithe." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -859,27 +904,27 @@ msgstr[2] "THEIP AR DHEIMHNIÚ: aimsíodh %d cheanntásc neamhbhailí" msgstr[3] "THEIP AR DHEIMHNIÚ: aimsíodh %d gceanntásc neamhbhailí" msgstr[4] "THEIP AR DHEIMHNIÚ: aimsíodh %d ceanntásc neamhbhailí" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Bloc nialasach scoite ag %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: tá clib chomhadlainne taisce %s ann; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "tá an luach %s as raon %s: %s..%s; ag cur %s ina ionad" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "tá an luach %s as raon %s: %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Ceanntásca ochtnártha diúltacha á gcruthú" @@ -898,7 +943,7 @@ msgstr "%s: ainm comhaid rófhada (ní féidir é a scoilt); gan dumpáil" msgid "%s: link name is too long; not dumped" msgstr "%s: ainm naisc rófhada; gan dumpáil" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -908,286 +953,272 @@ msgstr[2] "%s: %s bheart níos lú sa chomhad; ag stuáil le nialais" msgstr[3] "%s: %s mbeart níos lú sa chomhad; ag stuáil le nialais" msgstr[4] "%s: %s beart níos lú sa chomhad; ag stuáil le nialais" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: is ar chóras comhad eile é an comhad; gan dumpáil" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "ábhar gan dumpáil" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Cineál anaithnid comhaid; ag déanamh neamhshuim air" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Naisc le %s ar iarraidh.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: comhad gan athrú; gan dumpáil" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: is ionann é agus an chartlann féin; gan dumpáil" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Scriosadh an comhad sular léadh é" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "níor dumpáladh an chomhadlann" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: athraíodh an comhad agus á léamh" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: rinneadh neamhshuim ar an soicéad" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: rinneadh neamhshuim ar an doras" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Ag bogadh go dtí an chéad cheanntásc eile" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Comhad nach ceanntásc á scriosadh ón chartlann" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: ní dócha go bhfuil an stampa ama ársa %s ceart" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: tá an stampa ama %s %s soicind amach anseo" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Bunoscionntacht gan choinne agus comhadlann á cruthú" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" "%s: Athainmníodh an chomhadlann sularbh fhéidir a stádas a bhaint amach" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Comhaid theorantacha á mbaint amach mar ghnáthchomhaid" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "" "Ag déanamh iarracht ar naisc shiombalacha a bhaint amach mar naisc chrua" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "%s á léamh\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ní féidir an comhad a bhaint amach -- ar lean ó imleabhar eile" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Ceanntásc ainm fada gan choinne" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Cineál anaithnid comhaid `%c', á bhaint amach mar ghnáthchomhad" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Tá an %s reatha níos nuaí nó ar comhaois" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Níorbh fhéidir cúltaca a dhéanamh" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Ní féidir %s a athainmniú go %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Ní féidir biseach a dhéanamh i ndiaidh earráid: ag scor" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Athainmníodh an chomhadlann ó %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Athainmníodh an chomhadlann" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Comhadlann nua" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Stampa ama neamhbhailí" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Am neamhbhailí mionathraithe (soicindí)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Am neamhbhailí mionathraithe (nanashoicindí)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Uimhir neamhbhailí gléis" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Uimhir inode as raon" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Réimse rófhada agus an comhad roghbhlúire á léamh" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Earráid agus an comhad roghbhlúire á léamh" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Comhadchríoch gan choinne sa chomhad roghbhlúire" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Luach réimse gan choinne sa chomhad roghbhlúire" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Críochnaitheoir taifid ar iarraidh" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Drochfhormáid incriminteach" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" "Ní thacaítear leis an leagan seo den fhormáid incriminteach: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "dumpdir míchumtha: bhíothas ag súil le '%c' ach fuarthas %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "dumpdir míchumtha: 'X' faoi dhó" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "dumpdir míchumtha: ainm folamh i 'R'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "dumpdir míchumtha: 'T' gan 'R' roimhe" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "dumpdir míchumtha: ainm folamh i 'T'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" "dumpdir míchumtha: bhíothas ag súil le '%c' ach fuarthas deireadh na sonraí" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "dumpdir míchumtha: níor úsáideadh 'X' riamh" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Ní féidir comhadlann shealadach a chruthú le teimpléad %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: ní féidir an chomhadlann a stat: gan ghlanadh" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: tá an chomhadlann ar ghléas eile ar fad; gan ghlanadh" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: %s á scriosadh\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Ní féidir scriosadh a dhéanamh" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: ag fágáil ar lár" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloc %s: ** bloc de NULanna **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloc %s: ** Deireadh comhaid **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "bloc %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Bearnaí sa cheanntásc; ag súil le luach uimhriúil %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1195,141 +1226,160 @@ msgstr "" "ag glacadh le comhlánú dénártha" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Tá an luach ochtnártha %.*s as raon %s sa chartlann" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Tá ceanntásca le bunuimhir 64 i léig sa chartlann" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Teaghrán %s le sín agus bunuimhir 64 as raon %s sa chartlann" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Tá an luach le bunuimhir 256 as raon %s sa chartlann" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Tá %.*s sa chartlann; ag súil le luach uimhriúil %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Tá an luach cartlainne %s as raon %s: %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " nasc le %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " cineál anaithnid comhaid %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Nasc Fada--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Ainm Fada--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Ceanntásc Imleabhair--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Ar lean ag beart %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Comhadlann á cruthú:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "%s á athainmniú go %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Ní féidir athainmniú go %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s á athainmniú go %s arís\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Ní féidir an chomhadlann reatha a shábháil" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Ní féidir an chomhadlann reatha a athrú" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Scriosadh an comhad sular léadh é" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Scriosadh an comhad sular léadh é" + +#: src/misc.c:795 msgid "child process" msgstr "macphróiseas" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "bealach idir próisis" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Aimsíodh saoróga in ainmneacha comhaid." -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "Úsáid --wildcards chun comhoiriúnú patrún a chumasú, nó --no-wildcards" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "chun an rabhadh seo a mhúchadh." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ní sa chartlann é" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Níl rud riachtanach sa chartlann" -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Tá an gnáth-ionchur de dhíth ar na roghanna `-%s' agus `-%s'" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Formáid neamhbhailí chartlainne" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Níl roghanna GNU ar fáil d'fhormáid neamh-chomhoiriúnach chartlainne" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1337,7 +1387,7 @@ msgstr "" "Stíl anaithnid athfhriotail `%s'. Bain triail as `%s --quoting-style=help' " "chun liosta a fheiceáil." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1357,7 +1407,7 @@ msgstr "" "(foclach).\n" " tar -xf cartlann.tar # Bain gach comhad amach as cartlann.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1379,87 +1429,80 @@ msgstr "" "bhfuil\n" " never, simple déan cúltacaí simplí i gcónaí\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Príomh-mhód oibre:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "taispeáin an t-ábhar i gcartlann" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "bain comhaid as cartlann" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "cruthaigh cartlann nua" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "taispeáin difríochtaí idir cartlann agus córas comhaid" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "iarcheangail le deireadh cartlainne" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "ná hiarcheangail ach comhaid mhionathraithe leis an gcartlann" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "iarcheangail comhaid tar le cartlann" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "scrios as an gcartlann (nach ar théipeanna maighnéadacha!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "tástáil lipéad imleabhair na cartlainne agus scoir" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Mionathraitheoirí oibríochta:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "caith le gannchomhaid go héifeachtach" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "PRÍOMH[.MION]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" "socraigh leagan fhormáid na ngannchomhad le húsáid (--sparse intuigthe)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "déan cúltaca incriminteach de shean-nós GNU" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "COMHAD" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "déan cúltaca incriminteach nua-aoise GNU" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "ná scoir le stádas earráide má tá comhad doléite ann" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "UIMHIR" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1471,122 +1514,126 @@ msgstr "" "extract nó --list agus nuair a thugtar liosta comhad ar líne na n-orduithe " "nó leis an rogha -T; de réir réamhshocraithe UIMHIR=1" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "tá an chartlann inchuardaithe" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "tá an chartlann inchuardaithe" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" "ná seiceáil uimhreacha gléasanna agus cartlanna incriminteacha á gcruthú" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "seiceáil uimhreacha gléasanna agus cartlanna incriminteacha á gcruthú " "(réamhshocrú)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Rialú forscríofa:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "fíoraigh an chartlann i ndiaidh ag scríobh" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "scrios comhaid i ndiaidh iad a chur leis an gcartlann" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "ná forscríobh comhaid atá ann le linn baint amach" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "ná forscríobh comhaid atá ann má tá siad níos nuaí ná na cinn sa chartlann" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "forscríobh comhaid atá ann le linn baint amach" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "scrios gach comhaid sula scríobhtar air" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "folmhaigh géagchóras sula mbaintear comhadlann amach" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "ná forscríobh meiteashonraí comhadlainne" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "forscríobh meiteashonraí de chomhadlanna atá ann agus cartlanna á mbaint " "amach (réamhshocrú)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Roghnaigh sruth aschurtha:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "bain comhaid amach agus scríobh ar an ngnáth-aschur" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "ORDÚ" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "píopaigh comhaid bhainte go ríomhchlár eile" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "ná bac le cóid scortha na macphróiseas" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "láimhseáil cóid scortha nach nialas ó mhacphróisis mar earráidí" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Tréithe comhaid á láimhseáil:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "éiligh AINM mar úinéir de chomhaid bhreise" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "éiligh AINM mar ghrúpa de chomhaid bhreise" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DÁTA-NÓ-COMHAD" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "socraigh am mionathraithe na gcomhad nua de réir DÁTA-NÓ-COMHAD" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "ATHRUITHE" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "déan ATHRUITHE ar mhód de chomhaid bhreise" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "MODH" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1596,27 +1643,31 @@ msgstr "" "ndiaidh na comhaid a léamh (MODH='replace', réamhshocraithe), nó gan a " "bheith ag socrú na n-amanna sa chéad áit (MODH='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "ná bain am mionathraithe an chomhaid" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "bain triail as úinéireacht a choinneáil" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "bain comhaid amach mar thusa féin" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "bain úsáid as uimhreacha d'ainmneacha úsáideora/grúpa" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "bain eolas faoi cheadanna (réamhshocrú don fhorúsáideoir)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1624,15 +1675,15 @@ msgstr "" "cuir umask an úsáideora i bhfeidhm agus ceadanna á mbaint ón chartlann " "(réamhshocrú do ghnáthúsáideoirí)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "sórtáil ainmneacha le cur in oiriúint" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "ar comhbhrí le -p agus -s araon" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1640,139 +1691,139 @@ msgstr "" "ná socraigh amanna mionathraithe ná ceadanna de na comhadlanna go dtí go " "bhfuil an bhaint curtha i gcrích" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "cealaigh an éifeacht de rogha --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Roghnú gléis agus malartú:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "CARTLANN" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "bain úsáid as cartlann chomhaid nó gléas CARTLANN" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "is logánta í an chartlann fiú má tá idirstad ina hainm" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "bain úsáid as ORDÚ in ionad rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "bain úsáid as ORDÚ cian in ionad rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "sonraigh tiomántán agus a dhlús" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "cruthaigh/liostaigh/bain amach cartlann le hiliomad imleabhair" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "athraigh téip i ndiaidh UIMHIR × 1024 beart" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "rith script i ndiaidh gach téip (-M intuigthe)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "úsáid/nuashonraigh an uimhir imleabhair i gCOMHAD" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Blocáil ghléis:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOIC" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOIC × 512 beart sa taifead" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "UIMHIR beart sa taifead, iolraí de 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "déan neamhshuim ar bhloic nialasacha sa chartlann (is ionann le EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "athbhlocáil le linn léimh (le píopaí 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Roghnú formáide:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMÁID" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "cruthaigh cartlann san fhormáid seo" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "Is FORMÁID ceann de na rudaí seo:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "seanfhormáid V7 tar" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "formáid de réir GNU tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "formáid de réir GNU tar 1.13" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "formáid POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "formáid POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "ar comhbhrí le pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "is ionann le --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "is ionann le --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "lorgfhocal[[:]=luach][,lorgfhocal[[:]=luach]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "rialaigh lorgfhocail pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TÉACS" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1780,105 +1831,79 @@ msgstr "" "cruthaigh cartlann le TÉACS mar ainm imleabhair; úsáid TÉACS mar phatrún " "globála ar an ainm imleabhair agus an chartlann á liostú/baint amach" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Roghanna comhbhrúite:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "úsáid iarmhír na cartlainne chun an modh comhbhrúite a dhéanamh amach" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" -msgstr "úsáid iarmhír na cartlainne chun an modh comhbhrúite a dhéanamh amach" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "scag an chartlann le bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "scag an chartlann le gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "scag an chartlann le compress" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "scag an chartlann le lzma" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "scag an chartlann le gzip" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "scag an chartlann le gzip" +msgstr "" +"ná húsáid iarmhír na cartlainne chun an clár comhbhrúite a dhéanamh amach" -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "CLÁR" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "scag le CLÁR (ní foláir -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Roghnú comhaid logánta:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "cuir an COMHAD sainithe leis an gcartlann (is áisiúil an rogha seo nuair atá " "dais ag tosach an chomhadainm)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "COMHADLANN" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "athraigh go dtí COMHADLANN" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "tóg ainmneacha le baint/cruthú as comhad COMHAD" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "léigh ainmneacha, foirceanta le NULanna; múch -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "díchumasaigh an rogha --null roimhe seo" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "bain comharthaí athfhriotail ó chomhadainmneacha a léadh le -T (réamhshocrú)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "ná bain comharthaí athfhriotail ó chomhadainmneacha a léadh le -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "PATRÚN" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "fág comhaid as an áireamh, tugtha mar PHATRÚN" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "fág as an áireamh aon phatrún atá i gCOMHAD" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1886,90 +1911,94 @@ msgstr "" "gabh thar ábhar na gcomhadlann ina bhfuil CACHEDIR.TAG, seachas an comhad " "clibe féin" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "gabh thar chomhadlanna ina bhfuil CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "gabh thar ábhar na gcomhadlann ina bhfuil COMHAD, seachas COMHAD féin" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil COMHAD" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "gabh thar chomhadlanna a bhfuil COMHAD iontu" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "gabh thar chomhadlanna a bhaineann le córas rialaithe foinsí" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "ná téigh isteach i bhfochomhadlanna go huathoibríoch" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "ná fág an córas comhaid seo agus cartlann á cruthú" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "téigh isteach i gcomhadlanna (réamhshocrú)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "ná struipeáil `/' tosaigh ó ainmneacha comhaid" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "lean naisc shiombalacha; cartlannaigh agus dumpáil na comhaid a nascann na " "naisc leo" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "lean naisc chrua; cartlannaigh agus dumpáil na comhaid a nascann na naisc leo" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "AINM-BAILL" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "tosaigh ag ball AINM-BAILL sa chartlann" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "ná sábháil comhaid níos nuaí ná DÁTA-NÓ-COMHAD" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DÁTA" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "déan comparáid le dáta/am modhnaithe" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "MODH" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "déan cúltaca sula scriostar, roghnaigh modh oibre maidir le leaganacha" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "TEAGHRÁN" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1977,92 +2006,101 @@ msgstr "" "déan cúltaca roimh bhaint, agus sáraigh an gnáth-iarmhír ('~' mura dtugtar é " "leis an athróg thimpeallachta SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Trasfhoirmiú ainmneacha comhaid:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "struipeáil UIMHIR comhpháirt tosaigh ó ainmneacha comhaid" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "SLONN" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "Úsáid ordú ionadaíochta SLONN, i bhformáid \"sed\", chun ainmneacha comhaid " "a thrasfhoirmiú" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Roghanna maidir le comhoiriúnú ainmneacha comhaid (cuirfear iad seo i " "bhfeidhm do phatrúin eisiata agus do phatrúin iniata araon):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "ná bí cásíogair" # subject is "exclude patterns" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "comhoiriúnaíonn patrúin do thosach ainm an chomhaid" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "comhoiriúnaíonn patrúin tar éis gach `/' (réamhshocrú i gcás eisiata)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "dealaigh idir litreacha beaga/móra (réamhshocrú)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "úsáid saoróga (réamhshocrú do phatrúin eisiata)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "comhoiriúnú teaghráin carachtar ar charachtar" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "ní ghlacann saoróga le `/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "comhoiriúnaíonn saoróga do `/' (réamhshocrú le patrúin eisiata)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Aschur faisnéiseach:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "taispeáin gach comhad atá próiseáilte, go foclach" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Rialú forscríofa:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "cuir dul chun cinn ar taispeáint, gach UIMHIRú taifid (réamhshocrú 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "GNÍOMH" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "déan GNÍOMH ag gach seicphointe" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "taispeáin eolas mura bhfuil gach nasc dumpáilte" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "COMHARTHA" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2074,27 +2112,27 @@ msgstr "" "Ceadaítear na comharthaí seo a leanas: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 agus " "SIGUSR2; glacfar leis na hainmneacha céanna gan an réimír SIG freisin" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "taispeáin dátaí mionathraithe de réir UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "scríobh aschur foclach i gCOMHAD" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "taispeáin bloc sa chartlann le gach teachtaireacht" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "iarr deimhniú ar gach gníomh" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "taispeáin réamhshocruithe tar" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2102,33 +2140,33 @@ msgstr "" "agus á liostú nó á bhaint amach, taispeáin gach comhadlann nach bhfuil " "comhoiriúnaithe don chuardach" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "taispeáin ainmneacha comhaid/cartlainne i ndiaidh trasfhoirmithe" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STÍL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "socraigh stíl athfhriotail ainmneacha; féach thíos le haghaidh luachanna " "bailí do STÍL" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "cuir carachtair athfhriotail timpeall na carachtair ó TEAGHRÁN" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "ná húsáid comharthaí athfhriotail timpeall carachtair ó TEAGHRÁN" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Roghanna Comhoiriúnachta:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2136,56 +2174,64 @@ msgstr "" "is ionann le --old-archive le linn cruthaithe; is ionann le --no-same-owner " "le linn baint" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Roghanna eile:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "cuir bac ar úsáid de roghanna gurbh fhéidir leo a bheith urchóideach" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Ná tabhair ach ceann de na roghanna `-Acdtrux'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Roghanna contrártha comhbhrúite" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Comhartha anaithnid: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Comhad samplach dáta gan aimsiú" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Formáid dáta anaithnid; ag baint úsáid as %s in ionad %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Rogha %s: Ag caitheamh le dáta `%s' mar %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: léadh an liosta comhad cheana" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: tá carachtar nialasach sa chomhadainm a léadh" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "scag an chartlann le xz" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "Argóintí bailí do roghanna --quoting-style:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2193,111 +2239,123 @@ msgstr "" "\n" "Luachanna réamhshocraithe don tar *seo*:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Fachtóir bacainneach neamhbhailí" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Fad téipe neamhbhailí" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Drochfhormáid incriminteach" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Níos mó ná spriocdháta amháin" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Leagan neamhbhailí ar fhormáid na ngannchomhad" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "ní thacaítear le --atime-preserve='system' ar an chóras seo" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "ní mór do luach --checkpoint a bheith ina slánuimhir" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Grúpa neamhbhailí" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Mód neamhbhailí ar rogha" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Uimhir neamhbhailí" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Úinéir neamhbhailí" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" +"tá an rogha --preserve dulta i léig, bain úsáid as --preserve-permissions --" +"preserve-order ina háit" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Méid taifid neamhbhailí" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Ní foláir méid taifid a bheith iolraí de %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Tá líon na mball neamhbhailí" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Ní cheadaítear ach aon rogha --to-command amháin" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Tá an argóint dlúis míchumtha: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Dlús anaithnid: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Níl na roghanna `-[0-7][lmh]' ar fáil sa leagan seo tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[COMHAD]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Tá gá le hargóint ar an seanrogha `%c'." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "tá an rogha --occurrence gan bhrí in éagmais liosta comhad" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "níl an rogha --occurrence ar fáil sa mhód iarrtha" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Ní foláir an rogha `-M' le níos mó ná cartlann amháin" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Ní féidir --listed-incremental a úsáid le --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2307,50 +2365,51 @@ msgstr[2] "%s: Lipéad imleabhair rófhada (%lu bheart ar a mhéad)" msgstr[3] "%s: Lipéad imleabhair rófhada (%lu mbeart ar a mhéad)" msgstr[4] "%s: Lipéad imleabhair rófhada (%lu beart ar a mhéad)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Ní féidir cartlanna le hiliomad imleabhair a fhíorú" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Ní féidir cartlanna comhbhrúite a fhíorú" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Ní féidir úsáid a bhaint as cartlanna il-ranna comhbhrúite" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Ní féidir cartlanna comhbhrúite a iarcheangal" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "níl an rogha --pax-option le fáil ach le cartlanna POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "Ní cheadaítear fad an imleabhair a bheith níos lú ná an mhéid taifid" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" -msgstr "" +msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Ní chruthófar cartlann fholamh (go cladhartha)" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Níl na roghanna `-Aru' ar fáil in éineacht le `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Ní foláir rogha amháin de `-Acdtrux' ar a laghad" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "Scor le stádas teipthe de bharr earráidí roimhe seo" #: src/update.c:86 #, c-format @@ -2362,53 +2421,58 @@ msgstr[2] "%s: Chrap an comhad %s bheart" msgstr[3] "%s: Chrap an comhad %s mbeart" msgstr[4] "%s: Chrap an comhad %s beart" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Tá an lorgfhocal %s anaithnid nó nach bhfuil sé curtha i bhfeidhm fós" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Stampa ama as raon" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Ní féidir an patrún %s a úsáid" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ní féidir an lorgfhocal %s a shárú" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Ceanntásc míchumtha breisithe: fad ar iarraidh" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Fad an cheanntáisc breisithe as raon" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Fad %*s as raon sa cheanntásc breisithe" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Ceanntásc míchumtha breisithe: spás bán ar iarraidh tar éis an fhaid" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Ceanntásc míchumtha breisithe: sín chothroime ar iarraidh" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Ceanntásc míchumtha breisithe: líne nua ar iarraidh" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" "Lorgfhocal anaithnid `%s' sa cheanntásc breisithe; ag déanamh neamhshuim air" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2416,29 +2480,29 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Tá an ceanntásc breisithe %s=%s as raon %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Ceanntásc míchumtha breisithe: %s=%s neamhbhailí" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Ceanntásc míchumtha breisithe: %s=%s sa bhreis" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Ceanntásc míchumtha breisithe: %s neamhbhailí: bhíothas ag súil le " "teormharcóir %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Ceanntásc míchumtha breisithe: %s neamhbhailí: corruimhir de luachanna" @@ -2479,7 +2543,7 @@ msgstr "Seicphointe scríofa %u" msgid "Read checkpoint %u" msgstr "Seicphointe léimh %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2488,89 +2552,95 @@ msgstr "" "paxutils.\n" "Is iad na ROGHANNA:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Roghanna - cruthú comhad:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "MÉID" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Cruthaigh comhad leis an MÉID seo" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Scríobh i gcomhad AINM, in ionad an ghnáth-aschuir" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Léigh ainmneacha comhaid ó COMHAD" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "Léann -T ainmneacha, foirceanta le NULanna" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Líon an comhad leis an PATRÚN sonraithe. Is é PATRÚN 'default' nó 'zeros'" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Méid bhloic sa gannchomhad" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Cruthaigh gannchomhad. Tugtar an mapa comhaid ar an chuid eile de líne na n-" "orduithe." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "FRITHÁIREAMH" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Léim go dtí an FRITHÁIREAMH roimh scríobh na sonraí" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Roghanna - staitisticí comhaid" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Taispeáin inneachar an struct stat le haghaidh gach comhad sonraithe. " "FORMÁID réamhshocraithe: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Roghanna - feidhmiú sioncrónach:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [ROGHA...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "Rith an tORDÚ sonraithe. Is áisiúil an rogha seo le --checkpoint agus ceann " "de --cut, --append, nó --touch" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Déan an gníomh sonraithe (féach thíos) nuair a shroichtear seicphointe UIMHIR" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Socraigh an dáta le haghaidh an chéad rogha --touch eile" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Taispeáin na seicphointí a ritheadh agus stádas scortha den ORDÚ" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2578,7 +2648,7 @@ msgstr "" "Gníomhartha rite sioncrónaigh. Ritear iad seo nuair a shroichtear an uimhir " "sheicphointe a sonraíodh leis an rogha --checkpoint" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2586,146 +2656,214 @@ msgstr "" "Teasc COMHAD go dtí an mhéid a sonraíodh leis an rogha --length roimhe seo " "(nó teasc go dtí 0, mura sonraítear an rogha seo)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Iarcheangail MÉID beart le COMHAD. Tógtar MÉID ón rogha --length roimhe seo." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Nuashonraigh na hamanna rochtana/mionathraithe de CHOMHAD" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Rith ORDÚ" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Méid neamhbhailí: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Uimhir as raon: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Méid diúltach: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "theip ar stat(%s)" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "fad iarrtha %lu, fíorfhad %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "ní gannchomhad é an comhad cruthaithe" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Earráid agus uimhir á parsáil i ngar do `%s'" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Formáid anaithnid ar an dáta" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGÓINTÍ...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "ní féidir `%s' a oscailt" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "ní féidir 'seek' a dhéanamh" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "tá carachtar nialasach sa chomhadainm" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "ní féidir gannchomhaid a chruthú ar an ngnáth-aschur; úsáid rogha --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "masc mícheart (i ngar do `%s')" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Réimse anaithnid `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "ní féidir an t-am a shocrú ar `%s'" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "ní féidir `%s' a oscailt" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "D'éirigh leis an ordú\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Theip ar an ordú le stádas %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Stopadh an t-ordú le comhartha %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Stopadh an t-ordú ar chomhartha %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Rinne an t-ordú córdhumpa\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Ordú críochnaithe\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "Tá ainmneacha comhaid de dhíth ar --stat" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "an iomarca argóintí" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: rogha neamhcheadaithe -- %c\n" + +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Seol tuairiscí fabhtanna chuig <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "%s á léamh\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Ní féidir biseach a dhéanamh i ndiaidh earráid: ag scor" + +#~ msgid "suppress this warning." +#~ msgstr "chun an rabhadh seo a mhúchadh." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "scag an chartlann le bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "scag an chartlann le gzip" + +#~ msgid "filter the archive through compress" +#~ msgstr "scag an chartlann le compress" + +#~ msgid "filter the archive through lzma" +#~ msgstr "scag an chartlann le lzma" + +#~ msgid "filter the archive through lzop" +#~ msgstr "scag an chartlann le lzop" + +#~ msgid "Input string too long" +#~ msgstr "Teaghrán ionchurtha rófhada" + +#~ msgid "Number syntax error" +#~ msgstr "Earráid chomhréire in uimhir" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Ní féidir maolán a dháileadh\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Ní féidir maolán a dháileadh" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Úsáid: %s [ROGHA]\n" +#~ "Láimhseáil tiomántán téipe, agus glac le horduithe ó chianphróiseas.\n" +#~ "\n" +#~ " --version Taispeáin eolas faoin leagan.\n" +#~ " --help Taispeáin an chabhair seo.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Earráid i bhfritháireamh 'seek'" + +#~ msgid "Premature end of file" +#~ msgstr "Comhadchríoch gan choinne" #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" #~ msgstr "Rabhadh: níl an rogha -I ar fáil; ar mhaith leat -j nó -T?" -#, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "cealaigh an éifeacht de rogha --delay-directory-restore" - #~ msgid "Error exit delayed from previous errors" #~ msgstr "Earráid; tobscor moillithe ó earráidí roimhe seo" @@ -2761,9 +2899,6 @@ msgstr "an iomarca argóintí" #~ msgid "Unknown demangling command %s" #~ msgstr "Ordú anaithnid díchoscartha %s" -#~ msgid "Time stamp out of range" -#~ msgstr "Stampa ama as raon" - #~ msgid "Modification time (seconds) out of range" #~ msgstr "Am mionathraithe (soicindí) as raon" @@ -2776,9 +2911,6 @@ msgstr "an iomarca argóintí" #~ msgid "Error reading time stamp" #~ msgstr "Earráid agus stampa ama á léamh" -#~ msgid "Unexpected EOF" -#~ msgstr "Comhadchríoch gan choinne" - #~ msgid "same as -N" #~ msgstr "ar comhbhrí le -N" diff --git a/po/gl.gmo b/po/gl.gmo index d67ca8aa6dba19cc22668d7ab8bb362cd2ebb21d..80ef7438bc6e43bcebca3ae81310f1b82f79243a 100644 Binary files a/po/gl.gmo and b/po/gl.gmo differ diff --git a/po/gl.po b/po/gl.po index ecfb076da41293d82f20f99e961ee3c2c91fc684..170fc842351483bedaf026811e8c1662c81e7ca5 100644 --- a/po/gl.po +++ b/po/gl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.13.25\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2002-03-26 19:17+0100\n" "Last-Translator: Jacobo Tarr�o Barreiro <jtarrio@iname.com>\n" "Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n" @@ -14,73 +14,73 @@ msgstr "" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argumento %s non v�lido para %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumento %s ambiguo para %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Os argumentos v�lidos son:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Emprego: %s [OPCI�N]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Escriba '%s --help' para m�is informaci�n.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, fuzzy, c-format msgid "Report bugs to %s.\n" msgstr "" @@ -88,214 +88,121 @@ msgstr "" "Informe dos erros no programa a <bug-tar@gnu.org>.\n" "Informe dos erros na traducci�n a <proxecto@trasno.net>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Erro do sistema desco�ecido" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: a opci�n \"%s\" precisa dun argumento\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: a opci�n \"%s\" � ambigua\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: a opci�n \"--%s\" non admite un argumento\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: a opci�n \"%c%s\" non admite un argumento\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: a opci�n \"%s\" precisa dun argumento\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opci�n \"--%s\" non reco�ecida\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opci�n \"%c%s\" non reco�ecida\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: opci�n non admitida -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: opci�n non v�lida -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: a opci�n precisa dun argumento -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: a opci�n \"-W %s\" � ambigua\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: a opci�n \"-W %s\" non admite un argumento\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "memoria esgotada" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Non se puido obte-lo directorio actual" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Non se pode armacena-lo directorio de traballo" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Non se pode %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Aviso: Non se pode %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Non se pode cambia-lo modo a %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Non se pode cambia-la propiedade ao uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Non se pode libar a %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Erro de lectura no byte %s, lendo %lu bytes" -msgstr[1] "%s: Erro de lectura no byte %s, lendo %lu bytes" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Aviso: Erro de lectura no byte %s, lendo %lu bytes" -msgstr[1] "%s: Aviso: Erro de lectura no byte %s, lendo %lu bytes" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Non se pode saltar a %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Aviso: Non se pode saltar a %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Non se pode crear unha ligaz�n simb�lica a %s" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Grav�ronse s� %lu de %lu bytes" -msgstr[1] "%s: Grav�ronse s� %lu de %lu bytes" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -309,17 +216,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "\"" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "\"" @@ -329,7 +236,7 @@ msgstr "\"" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -339,38 +246,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Servicio non dispo�ible" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "entrada est�ndar" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "sa�da est�ndar" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Non se pode executar un int�rprete de comandos remoto" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -381,19 +278,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Escrito por Fran�ois Pinard" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Escrito por Fran�ois Pinard" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrito por Fran�ois Pinard" @@ -401,7 +298,7 @@ msgstr "Escrito por Fran #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -411,7 +308,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -421,7 +318,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -431,7 +328,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -441,7 +338,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -452,7 +349,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -463,7 +360,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -475,183 +372,334 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" "Informe dos erros no programa a <bug-tar@gnu.org>.\n" "Informe dos erros na traducci�n a <proxecto@trasno.net>.\n" -#: lib/version-etc.c:182 -#, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" +"\n" +"Informe dos erros no programa a <bug-tar@gnu.org>.\n" +"Informe dos erros na traducci�n a <proxecto@trasno.net>.\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Non se pode reservar espacio para o buffer\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Non se pode %s" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Aviso: Non se pode %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Non se pode cambia-lo modo a %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Non se pode reservar espacio para o buffer" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Non se pode cambia-la propiedade ao uid %lu, gid %lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Escriba '%s --help' para m�is informaci�n.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Non se pode libar a %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Erro de lectura no byte %s, lendo %lu bytes" +msgstr[1] "%s: Erro de lectura no byte %s, lendo %lu bytes" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Aviso: Erro de lectura no byte %s, lendo %lu bytes" +msgstr[1] "%s: Aviso: Erro de lectura no byte %s, lendo %lu bytes" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Non se pode saltar a %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Aviso: Non se pode saltar a %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Non se pode crear unha ligaz�n simb�lica a %s" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Grav�ronse s� %lu de %lu bytes" +msgstr[1] "%s: Grav�ronse s� %lu de %lu bytes" + +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" + +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" + +#: lib/paxnames.c:169 +#, fuzzy +msgid "Substituting `.' for empty member name" +msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" msgstr "" -"Emprego: %s [OPCI�N]\n" -"Manipula unha unidade de fita, aceptando comandos dun proceso remoto.\n" -"\n" -" --version Amosar informaci�n da versi�n.\n" -" --help Amosar esta axuda.\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Servicio non dispo�ible" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "entrada est�ndar" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "sa�da est�ndar" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Non se pode executar un int�rprete de comandos remoto" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Direcci�n de desprazamento f�ra de rango" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Desprazamento f�ra de rango" +msgid "Invalid seek direction" +msgstr "Proporcionouse na opci�n un modo non v�lido" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Marca de tempo non v�lida" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Desprazamento f�ra de rango" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Direcci�n de desprazamento f�ra de rango" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Lonxitude da fita non v�lida" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Desprazamento f�ra de rango" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Fin de ficheiro prematura\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Fin de ficheiro prematura" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "%s: opci�n non v�lida -- %c\n" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Fin de ficheiro inesperado nos nomes alterados" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "Non se puido abrir %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Comando lixo" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Isto non semella un arquivo tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Bytes totais escritos: %s (%sB, %sB/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Bytes totais escritos: %s (%sB, %sB/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(canalizaci�n)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Valor non v�lido para record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Non se proporcionou o nome do arquivo" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Non se poden verifica-los arquivos da entrada/sa�da est�ndar" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Non se poden actualiza-los arquivos comprimidos" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "No comezo da cinta, sa�ndo agora" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Demasiados erros, sa�ndo" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Tama�o do rexistro = %lu bloques" msgstr[1] "Tama�o do rexistro = %lu bloques" -#: src/buffer.c:718 +#: src/buffer.c:765 #, fuzzy, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Bloque desali�ado (%lu bytes) no arquivo" msgstr[1] "Bloque desali�ado (%lu bytes) no arquivo" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Non se pode recuar no arquivo; pode ser ilexible sen -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: cont�n un n�mero de volume non v�lido" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Desbordamento no n�mero de volume" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepare o volume #%d para %s e prema enter: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Chegouse � fin de ficheiro onde se esperaba unha resposta do usuario" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "AVISO: O arquivo est� incompleto" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -663,125 +711,125 @@ msgstr "" " ! Executar outro int�rprete de comandos\n" " ? Amosar esta lista\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Non hai novos volumes; sa�ndo.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "O comando \"%s\" fallou" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s non contin�a neste volume" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s non contin�a neste volume" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s ten un tama�o incorrecto (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Este volume est� fora da secuencia" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "O arquivo non est� etiquetado para coincidir con %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "O volume %s non coincide con %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "A fin do ficheiro (EOF) do arquivo %s non se atopa no l�mite do bloque" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "So se puido ler %lu de %lu bytes" msgstr[1] "So se puido ler %lu de %lu bytes" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "O contido � diferente" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Fin de ficheiro inesperado no arquivo" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "O tipo de ficheiro � diferente" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "O modo � diferente" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Os uid son diferentes" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Os gid son diferentes" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "A data de modificaci�n � diferente" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "O tama�o � diferente" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Non ligado a %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "A ligaz�n simb�lica � diferente" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "O n�mero de dispositivo � diferente" @@ -804,34 +852,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "FALLO NA VERIFICACION: detect�ronse %d cabeceiras non v�lidas" msgstr[1] "FALLO NA VERIFICACION: detect�ronse %d cabeceiras non v�lidas" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "valor %s f�ra do rango de %s %s..%s; substitu�ndo %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "valor %s f�ra do rango de %s %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Xerando cabeceiras octais negativas" @@ -850,297 +898,283 @@ msgstr "%s: ficheiro sen cambios; non se envorca" msgid "%s: link name is too long; not dumped" msgstr "%s: ficheiro sen cambios; non se envorca" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: O ficheiro encolleu %s bytes; enchendo con ceros" msgstr[1] "%s: O ficheiro encolleu %s bytes; enchendo con ceros" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: o ficheiro est� nun sistema de ficheiros diferente; non se envorca" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 #, fuzzy msgid "contents not dumped" msgstr " (memoria volcada)" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipo de ficheiro desco�ecido; ign�rase este ficheiro" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " ligaz�n a %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: ficheiro sen cambios; non se envorca" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: o ficheiro � o arquivo; non se envorca" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Ficheiro eliminado antes da s�a lectura" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: o ficheiro cambiou mentres se l�a" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: ign�rase o socket" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: ign�rase a porta" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Pasando � seguinte cabeceira" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Borrando o que non sexan cabeceiras do arquivo" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: a marca de tempo %s est� %lu segundos no futuro" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsistencia inesperada ao crea-lo directorio" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Renomeouse o directorio antes de poder estrae-lo seu estado" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Extraendo os ficheiros contiguos coma ficheiros normais" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Tentando extrae-las ligaz�ns simb�licas coma ligaz�ns duras" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Lendo %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Non se pode extraer -- o ficheiro � continuaci�n doutro volume" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Fin de ficheiro (EOF) inesperado no arquivo" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "" "%s: Tipo de ficheiro \"%c\" desco�ecido, extra�ndoo coma ficheiro normal" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Non se puido copiar este ficheiro" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: Non se pode renomear a %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "O erro non � recuperable: s�ese agora" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Renomeouse o directorio" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Renomeouse o directorio" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: O directorio � novo" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Marca de tempo non v�lida" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Proporcionouse na opci�n un modo non v�lido" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "N�mero de dispositivo non v�lido" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "N�mero de inode non v�lido" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 #, fuzzy msgid "Read error in snapshot file" msgstr "Erro de lectura en %s" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Fin de ficheiro (EOF) inesperado no arquivo" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 #, fuzzy msgid "Unexpected field value in snapshot file" msgstr "Fin de ficheiro (EOF) inesperado no arquivo" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "Non se pode reservar memoria para o factor de bloqueo %d" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, fuzzy, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: o ficheiro est� nun sistema de ficheiros diferente; non se envorca" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Borrando %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Non se pode eliminar" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Omit�ndoo" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloque %s: ** Bloque de nulos **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloque %s: ** Fin de Ficheiro **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "bloque %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" "Atop�ronse espacios na cabeceira onde se esperaba un valor n�merico de %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1148,147 +1182,162 @@ msgstr "" "a 2" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "O valor octal do arquivo %.*s est� f�ra do rango de %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "O arquivo cont�n cabeceiras base-64 obsoletas" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "A cadea base-64 asinada do arquivo %s est� f�ra do rango de %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "O valor base-256 do arquivo est� f�ra do rango de %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "O arquivo cont�n %.*s onde se esperaba un valor num�rico de %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "O valor do arquivo %s est� f�ra do rango de %s %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " ligaz�n a %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " Tipo de ficheiro %s desco�ecido\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Cabeceira de Volume--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Contin�a no byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Creando o directorio:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Renomeando %s a %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Non se pode renomear a %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Renomeando %s a %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Non se pode armacena-lo directorio de traballo" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Non se pode cambia-lo directorio de traballo" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Ficheiro eliminado antes da s�a lectura" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Ficheiro eliminado antes da s�a lectura" + +#: src/misc.c:795 msgid "child process" msgstr "proceso fillo" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "canle interproceso" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Non atopado no arquivo" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Non atopado no arquivo" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "As opci�ns \"-%s\" e \"-%s\" precisan da entrada est�ndar" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Grupo non v�lido" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Qu�rense as caracter�sticas de GNU no formato de arquivo incompatible" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1309,7 +1358,7 @@ msgstr "" " # dando moitos datos\n" " %s -xf arquivo.tar # Extraer t�dolos ficheiros de arquivo.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1331,87 +1380,80 @@ msgstr "" " nil, existing numera se existen copias de seguridade numeradas\n" " never, simple sempre fai copias de seguridade sinxelas\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Fin de ficheiro inesperado no arquivo" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1419,580 +1461,568 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 #, fuzzy msgid "remove files after adding them to the archive" msgstr "Borrando a especificaci�n de unidade dos nomes do arquivo" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 #, fuzzy msgid "extract files to standard output" msgstr "Erro ao gravar na sa�da est�ndar" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "Non se pode verifica-los arquivos multi-volume" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Arquivar da entrada est�ndar" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Opci�ns de compresi�n conflictivas" -#: src/tar.c:595 +#: src/tar.c:615 #, fuzzy msgid "use archive suffix to determine the compression program" msgstr "Non se puido escribir no programa de compresi�n" -#: src/tar.c:597 +#: src/tar.c:617 #, fuzzy msgid "do not use archive suffix to determine the compression program" msgstr "Non se puido escribir no programa de compresi�n" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: o ficheiro � o arquivo; non se envorca" - -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: o ficheiro � o arquivo; non se envorca" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: o ficheiro � o arquivo; non se envorca" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: o ficheiro � o arquivo; non se envorca" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: o ficheiro � o arquivo; non se envorca" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Non se pode cambia-lo directorio de traballo" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "O volume %s non coincide con %s" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2000,275 +2030,291 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 #, fuzzy msgid "ask for confirmation for every action" msgstr "Non se puido le-la confirmaci�n do usuario" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Non pode especificar m�is dunha das opci�ns \"-Acdtrux\"" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Opci�ns de compresi�n conflictivas" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " Tipo de ficheiro %s desco�ecido\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Non se atopou o ficheiro de data" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Substitu�ndo o formato de data desco�ecido %2$s por %1$s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: o ficheiro � o arquivo; non se envorca" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "%s: o ficheiro � o arquivo; non se envorca" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Factor de bloqueo non v�lido" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Lonxitude da fita non v�lida" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "M�is dunha data de umbral" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Grupo non v�lido" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Proporcionouse na opci�n un modo non v�lido" -#: src/tar.c:1774 +#: src/tar.c:1894 #, fuzzy msgid "Invalid number" msgstr "N�mero de inode non v�lido" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Propietario non v�lido" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Tama�o de rexistro non v�lido" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "O tama�o do rexistro debe ser m�ltiplo de %d." -#: src/tar.c:1872 +#: src/tar.c:2000 #, fuzzy msgid "Invalid number of elements" msgstr "Lonxitude da fita non v�lida" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, fuzzy, c-format msgid "Unknown density: `%c'" msgstr "Patr�n desco�ecido `%s'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Opci�ns `-[0-7][lmh]' non soportadas por *este* tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "A antiga opci�n \"%c\" precisa dun argumento." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Varios ficheiros de arquivo requiren a opci�n \"-M\"" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Non se pode combinar --listed-incremental con --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, fuzzy, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: A etiqueta do volume � longa de m�is (o l�mite � %lu bytes)" msgstr[1] "%s: A etiqueta do volume � longa de m�is (o l�mite � %lu bytes)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Non se pode verifica-los arquivos multi-volume" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Non se poden verifica-los arquivos comprimidos" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Non se poden empregar arquivos comprimidos multi-volume" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Non se poden actualiza-los arquivos comprimidos" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "De xeito cobarde rex�itase crear un ficheiro baleiro" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "As opci�ns \"-Aru\" son incompatibles con \"-f -\"" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Debe especificar unha das opci�ns \"-Acdtrux\"" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2280,79 +2326,84 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: O ficheiro encolleu %s bytes" msgstr[1] "%s: O ficheiro encolleu %s bytes" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Marca de tempo f�ra de rango" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "A cadea base-64 asinada do arquivo %s est� f�ra do rango de %s" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "O valor do arquivo %s est� f�ra do rango de %s %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2393,236 +2444,304 @@ msgstr "Punto de control de escritura %d" msgid "Read checkpoint %u" msgstr "Punto de control de lectura %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Xera-los ficheiros de datos para a suite de probas de GNU tar.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Opci�ns de compresi�n conflictivas" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Erro ao gravar na sa�da est�ndar" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Emprego: %s [OPCI�N]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "%s: Non se puido cambia-la hora de acceso e modificaci�n" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Marca de tempo non v�lida" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "N�mero de inode f�ra de rango" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Erro do sistema desco�ecido" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "Non se puido abrir %s" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Non se pode pechar" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "Patr�n desco�ecido `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "Non se puido evalua-lo ficheiro %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "Non se puido abrir %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "O fillo morreu co sinal %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Nomes de ficheiro alterados--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: opci�n non admitida -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Aviso: a opci�n -I non est� soportada; �quer�a dicir -j ou -T?" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Informe dos erros no programa a <bug-tar@gnu.org>.\n" +#~ "Informe dos erros na traducci�n a <proxecto@trasno.net>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Lendo %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "O erro non � recuperable: s�ese agora" + +#, fuzzy +#~ msgid "filter the archive through compress" +#~ msgstr "%s: o ficheiro � o arquivo; non se envorca" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "%s: o ficheiro � o arquivo; non se envorca" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "%s: o ficheiro � o arquivo; non se envorca" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Non se pode reservar espacio para o buffer\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Non se pode reservar espacio para o buffer" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Escriba '%s --help' para m�is informaci�n.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Emprego: %s [OPCI�N]\n" +#~ "Manipula unha unidade de fita, aceptando comandos dun proceso remoto.\n" +#~ "\n" +#~ " --version Amosar informaci�n da versi�n.\n" +#~ " --help Amosar esta axuda.\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Desprazamento f�ra de rango" + +#~ msgid "Premature end of file" +#~ msgstr "Fin de ficheiro prematura" #~ msgid "block size" #~ msgstr "tama�o de bloque" @@ -2654,18 +2773,12 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Erro no nome longo visible" -#~ msgid "Time stamp out of range" -#~ msgstr "Marca de tempo f�ra de rango" - #~ msgid "Device number out of range" #~ msgstr "N�mero de dispositivo f�ra de rango" #~ msgid "Visible longname error" #~ msgstr "Erro de nome longo visible" -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "Fin de ficheiro inesperado nos nomes alterados" - #~ msgid "Renamed %s to %s" #~ msgstr "Renomeado %s a %s" @@ -3064,6 +3177,9 @@ msgstr "" #~ msgid "Obsolete option name replaced by --read-full-records" #~ msgstr "Nome de opci�n obsoleta substitu�do por --read-full-records" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "Aviso: a opci�n -I non est� soportada; �quer�a dicir -j ou -T?" + #~ msgid "Obsolete option name replaced by --touch" #~ msgstr "Nome de opci�n obsoleta substitu�do por --touch" diff --git a/po/hr.gmo b/po/hr.gmo index d1d175abadc78b9e07159ac1cfab68eb8e63f574..05afdbc28c9819229c97688e595747bdf531afaf 100644 Binary files a/po/hr.gmo and b/po/hr.gmo differ diff --git a/po/hr.po b/po/hr.po index 97187181aff62a5a2b709229a60dc9be0d5519d5..78dac0856ca3b273158c4f8f25c853c89234e492 100644 --- a/po/hr.po +++ b/po/hr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.13.25\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2002-04-26 10:49+MET(DST)(UTC+2)\n" "Last-Translator: Mirsad Todorovac <mtodorov_69@yahoo.com>\n" "Language-Team: Croatian <lokalizacija@linux.hr>\n" @@ -16,287 +16,194 @@ msgstr "" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: 8bit\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "pogre�an argument %s za %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "nejednozna�an argument %s za %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Ispravni argumenti su:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Kori�tenje: %s [OPCIJA]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Poku�ajte `%s --help' za vi�e informacija.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, fuzzy, c-format msgid "Report bugs to %s.\n" msgstr "" "\n" "Prijavi gre�ke i bugove na <bug-tar@gnu.org>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Nepoznata pogre�ka u sistemu" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: za opciju `%s' neophodan je argument\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: opcija `%s' nije jednozna�na\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: opcija `--%s' ne dozvoljava argument\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: opcija `%c%s' ne dozvoljava argument\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: za opciju `%s' neophodan je argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: ne prepoznajem opciju `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: ne prepoznajem opciju `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: ilegalna opcija -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: pogre�na opcija -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opcija zahtijeva neophodan argument -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: opcija `-W %s' nije jednozna�na\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: opcija `-W %s' ne dozvoljava argument\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "iscrpljena memorija" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Ne mogu promijeniti radni direktorij" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Ne mogu pohraniti radni direktorij" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Ne mogu %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Upozorenje: Ne mogu %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Ne mogu promijeniti mod u %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Ne mogu promijeniti vlasni�tvo na uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Ne mogu napraviti hard link na %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" -msgstr[1] "%s: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Upozorenje: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" -msgstr[1] "%s: Upozorenje: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Neuspjeli seek na %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Upozorenje: Neuspjeli seek na %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Ne mogu kreirati simboli�ki link prema %s" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Upsje�no zapisao samo %lu od %lu bajtova" -msgstr[1] "%s: Upsje�no zapisao samo %lu od %lu bajtova" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Uklanjam vode�e `%.*s' iz imena �lanova" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Uklanjam vode�e `%.*s' iz imena �lanova" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Uklanjam vode�e `%.*s' iz imena �lanova" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - # # MT -- FIXME -- for now this is left untranslated, until we # come to UTF-8 or something alike (20020412) @@ -313,17 +220,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -333,7 +240,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -343,39 +250,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Servis nije dostupan" - -# FIXME -- verify against source -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin -- standardni ulaz" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "stdout -- standardni ulaz" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Ne mogu pokrenuti udaljenu (remote) ljusku" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -386,19 +282,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Napisao Fran�ois Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Napisao Fran�ois Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Napisao Fran�ois Pinard." @@ -406,7 +302,7 @@ msgstr "Napisao Fran #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -416,7 +312,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -426,7 +322,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -436,7 +332,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -446,7 +342,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -457,7 +353,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -468,7 +364,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -480,186 +376,337 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" "Prijavi gre�ke i bugove na <bug-tar@gnu.org>.\n" -#: lib/version-etc.c:182 -#, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" +"\n" +"Prijavi gre�ke i bugove na <bug-tar@gnu.org>.\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Ne mogu alocirati prostor za me�uspremnik\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Ne mogu %s" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Upozorenje: Ne mogu %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Ne mogu promijeniti mod u %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Ne mogu alocirati prostor za me�uspremnik" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Ne mogu promijeniti vlasni�tvo na uid %lu, gid %lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Poku�ajte `%s --help' za vi�e informacija.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Ne mogu napraviti hard link na %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" +msgstr[1] "%s: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Upozorenje: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" +msgstr[1] "%s: Upozorenje: Pogre�ka u �itanju na bajtu %s, �itam %lu bajtova" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Neuspjeli seek na %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Upozorenje: Neuspjeli seek na %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Ne mogu kreirati simboli�ki link prema %s" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Upsje�no zapisao samo %lu od %lu bajtova" +msgstr[1] "%s: Upsje�no zapisao samo %lu od %lu bajtova" + +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Uklanjam vode�e `%.*s' iz imena �lanova" + +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Uklanjam vode�e `%.*s' iz imena �lanova" + +#: lib/paxnames.c:169 +#, fuzzy +msgid "Substituting `.' for empty member name" +msgstr "Uklanjam vode�e `%.*s' iz imena �lanova" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" msgstr "" -"Kori�tenje: %s [OPCIJA]\n" -"Upravljaj jedinicom trake, prihva�aju�i naredbe od udaljenih procesa.\n" -"\n" -" --version Informacije o verziji programskih ispisa.\n" -" --help Ispi�i ovu pomo�.\n" -# FIXME -- find xlation for 'seek offset' -- TM -#: rmt/rmt.c:397 +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Servis nije dostupan" + +# FIXME -- verify against source +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin -- standardni ulaz" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout -- standardni ulaz" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Ne mogu pokrenuti udaljenu (remote) ljusku" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Seek smjer izvan opsega" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Seek ofset izvan opsega" +msgid "Invalid seek direction" +msgstr "Pogre�an mod dan opcijom" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Pogre�na oznaka vremena" # FIXME -- find xlation for 'seek offset' -- TM -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Seek ofset izvan opsega" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Seek smjer izvan opsega" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Pogre�na duljina trake" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +# FIXME -- find xlation for 'seek offset' -- TM +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Seek ofset izvan opsega" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Prerani eof\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Prerani kraj datoteke" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "%s: pogre�na opcija -- %c\n" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Neo�ekivani EOF u arhivi" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s: Neuspjeli seek na %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Neispravna naredba" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Ovo ne izgleda kao tar arhiva" # FIXME -- ovo ne�e raditi ako je prevedeno -- Denis? -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Ukupno ispisano bajtova: %s (%sB, %sB/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" # FIXME -- ovo ne�e raditi ako je prevedeno -- Denis? -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Ukupno ispisano bajtova: %s (%sB, %sB/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(cjevovod - pipe)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Pogre�na vrijednost za record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Nije dano ime arhive" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Ne mogu verificirati stdin/stdout arhive" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Ne mogu a�urirati komprimirane arhive" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Po�etak trake, zavr�avam" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Previ�e pogre�aka, zavr�avam" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Veli�ina sloga = %lu blokova" msgstr[1] "Veli�ina sloga = %lu blokova" -#: src/buffer.c:718 +#: src/buffer.c:765 #, fuzzy, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Neporavnat (unaligned) blok (%lu bajtova) unutar arhive" msgstr[1] "Neporavnat (unaligned) blok (%lu bajtova) unutar arhive" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Ne mogu se pomicati unazad unutar arhive; mo�e biti ne�itljiva bez -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: sadr�i pogre�an broj dijela arhive" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Prekora�enje u broju dijela arhive" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Pripremite dio arhive #%d za %s i pritisni <RETURN>:" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Na�en EOF gdje sam o�ekivao odgovor korisnika" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "UPOZORENJE: Arhiva nije kompletirana" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -671,126 +718,126 @@ msgstr "" " ! Pokreni podljusku operativnog sistema\n" " ? Ispi�i ovu listu\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Nema novog dijela arhive; zavr�avam.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "Neuspjela `%s' naredba" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s nije nastavljen za ovom dijelu arhive" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s nije nastavljen za ovom dijelu arhive" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s je pogre�ne veli�ine (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Ovaj dio arhive je izvan slijeda" # FIXME -- clean against source! (TM) -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arhiva nije ozna�ena labelom da odgovara %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Dio arhive %s ne odgovara %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Uspio pro�itati samo %lu od %lu bajtova" msgstr[1] "Uspio pro�itati samo %lu od %lu bajtova" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Sadr�aji se razlikuju" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Neo�ekivani EOF u arhivi" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Tipovi datoteka se razlikuju" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Mod se razlikuje" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid se razlikuje" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid se razlikuje" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Mod time (vrijeme modifikacije) se razlikuje" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Veli�ina se razlikuje" # FIXME -- language purists might lynch me for this "polinkan" -- TM -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Nije polinkan na %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Simboli�ki link se razlikuje" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Broj ure�aja (device number) se razlikuje" @@ -812,35 +859,35 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "NEUSPJELA VERIFIKACIJA: detektirano %d pogre�nih zaglavlja" msgstr[1] "NEUSPJELA VERIFIKACIJA: detektirano %d pogre�nih zaglavlja" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "vrijednost %s izvan %s raspona %s..%s; substituiram %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "vrijednost %s izvan %s raspona %s..%s" # FIXME -- find `pade�' here from source -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Generiram negativna oktalna zaglavlja" @@ -859,296 +906,282 @@ msgstr "%s: datoteka nepromijenjena; ne arhiviram ju" msgid "%s: link name is too long; not dumped" msgstr "%s: datoteka nepromijenjena; ne arhiviram ju" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Datoteka se skratila za %s bajtova; nadopunjujemo nulama" msgstr[1] "%s: Datoteka se skratila za %s bajtova; nadopunjujemo nulama" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: datoteka je na drugom datote�nom sustavu; ne arhiviram ju" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Nepoznat tip datoteke; datoteka ignorirana" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " link do %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: datoteka nepromijenjena; ne arhiviram ju" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: datoteka je arhiva; ne arhiviram ju" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Datoteka uklonjena (removed) prije nego �to smo ju pro�itali" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: datoteka se promijenila dok smo ju �itali" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: socket ignoriran" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: door ignoriran" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Preska�em do slijede�eg zaglavlja" # FIXME -- non-header dubious -- clean against source! -- TM -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Bri�em neispravno zaglavlje iz arhive" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: oznaka vremena %s je %lu sekundi u budu�nost" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Neo�ekivana nekonzistentnost kod otvaranja direktorija" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Direktoriju promijenjeno ime prije nego �to mu je dobavljen status" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Ekstrahiram neprekinute datoteke kao regularne datoteke" # FIXME -- 'hard links' -- TM -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Poku�avam ekstrakciju simboli�kih linkova kao hard linkova" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "�itam %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" "%s: Ne mogu ekstrahirati -- datoteka se nastavlja iz drugog dijela arhive" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Neo�ekivan EOF u mangliranim imenima" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Nepoznat tip datoteke '%c', ekstrahiran kao normalna datoteka" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Nisam uspio napraviti backup ove datoteke" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: Ne mogu preimenovati u %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Gre�ka iz koje se ne mogu oporaviti: zavr�avam s radom" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Direktoriju promijenjeno ime" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Direktoriju promijenjeno ime" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Novi direktorij" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Pogre�na oznaka vremena" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Pogre�an mod dan opcijom" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Pogre�an broj ure�aja" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Pogre�an inode broj" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Neo�ekivani EOF u arhivi" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" # FIXME -- blocking factor -- can't translate (ask others) -- TM -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "Ne mogu alocirati memoriju za faktor pakiranja u blokove %d" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, fuzzy, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: datoteka je na drugom datote�nom sustavu; ne arhiviram ju" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Bri�em %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Ne mogu obrisati" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Izostavljam" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok ispunjen NULama **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Kraj datoteke **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Razmaci u zaglavlju gdje se o�ekuje numeri�ka %s vrijednost" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1156,150 +1189,165 @@ msgstr "" "komplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Oktalna vrijednost iz arhive %.*s je izvan %s opsega" # FIXME -- obsolescent -- TM -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiva sadr�i base-64 zaglavlja zastarjelog formata" # FIXME?? -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Base-64 vrijednost s predznakom %s iz arhive je izvan %s opsega" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Base-256 vrijednost iz arhive je izvan %s opsega" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arhiva sadr�i %.*s gdje je o�ekivana numeri�ka %s vrijednost" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Vrijednost %s iz arhive je izvan %s opsega %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " link do %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " nepoznat tip datoteke %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Zaglavlje dijela arhive--\n" # FIXME -- clarify against source -- TM -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Nastavljeno s bajtom %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Kreiram direktorij:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Preimenujem %s u %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Ne mogu preimenovati u %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Preimenujem %s natrag u %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Ne mogu pohraniti radni direktorij" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Ne mogu promijeniti radni direktorij" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Datoteka uklonjena (removed) prije nego �to smo ju pro�itali" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Datoteka uklonjena (removed) prije nego �to smo ju pro�itali" + +#: src/misc.c:795 msgid "child process" msgstr "podproces" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "me�uprocesni kanal" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nije na�eno u arhivi" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Nije na�eno u arhivi" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Opcije `-%s' i `-%s' obje zahtijevaju standardni ulaz" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Pogre�na grupa" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU specijalne pogodnosti zatra�ene na nekompatibilnom formatu arhive" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1319,7 +1367,7 @@ msgstr "" "op�irno.\n" " %s -xf arhiva.tar # Ekstrahiraj sve datoteke iz arhiva.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1340,87 +1388,80 @@ msgstr "" " nil, existing pobrojani ako pobrojani ve� postoje, ina�e jednostavni\n" " never, simple uvijek radi jednostavne backupe\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Neo�ekivani EOF u arhivi" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1428,578 +1469,566 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 #, fuzzy msgid "extract files to standard output" msgstr "Pogre�ka u pisanju na standardni izlaz" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" # FIXME -- volume -- find more suitable (ask others) -- TM -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "Ne mogu verificirati vi�edjelne arhive" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Konfliktne opcije formata arhive" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Konfliktne opcije za kompresiju" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: datoteka je arhiva; ne arhiviram ju" - -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: datoteka je arhiva; ne arhiviram ju" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: datoteka je arhiva; ne arhiviram ju" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: datoteka je arhiva; ne arhiviram ju" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: datoteka je arhiva; ne arhiviram ju" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Ne mogu promijeniti radni direktorij" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Uklanjam vode�e `%.*s' iz imena �lanova" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "Dio arhive %s ne odgovara %s" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2007,227 +2036,242 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Ne mo�ete navesti vi�e od jedne od `-Acdtrux' opcija" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Konfliktne opcije za kompresiju" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " nepoznat tip datoteke %s\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Datoteka s datumom nije prona�ena" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Substituiram %s za nepoznat format datuma %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: datoteka je arhiva; ne arhiviram ju" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "%s: datoteka je arhiva; ne arhiviram ju" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" # FIXME -- clarify this against source and man -- TM -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Pogre�an faktor pakiranja u blokove" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Pogre�na duljina trake" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Vi�e od jednog datuma s pragom (threshold)" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Pogre�na grupa" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Pogre�an mod dan opcijom" -#: src/tar.c:1774 +#: src/tar.c:1894 #, fuzzy msgid "Invalid number" msgstr "Pogre�an inode broj" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Pogre�an vlasnik" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Pogre�na veli�ina sloga (record)" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Veli�ina sloga (record) mora biti vi�ekratnik %d." -#: src/tar.c:1872 +#: src/tar.c:2000 #, fuzzy msgid "Invalid number of elements" msgstr "Pogre�na duljina trake" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Opcije `-[0-7][lmh]' nisu podr�ane od strane *ovog* tar-a" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Stara opcija `%c' zahtijeva obavezan argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Vi�edjelne arhive zahtijevaju `-M' opciju" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Ne mogu kombinirati --listed-incremental s --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, fuzzy, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2235,49 +2279,50 @@ msgstr[0] "%s: Oznaka dijela arhive je preduga msgstr[1] "%s: Oznaka dijela arhive je preduga�ka (limit je %lu bajtova)" # FIXME -- volume -- find more suitable (ask others) -- TM -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Ne mogu verificirati vi�edjelne arhive" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Ne mogu verificirati komprimirane arhive" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Ne mogu koristiti vi�edjelne komprimirane arhive" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Ne mogu a�urirati komprimirane arhive" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" # LOL -- TM -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Kukavi�ki odbijam kreirati praznu arhivu!" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Opcije `-Aru' nisu kompatibilne s `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Morate specificirati jednu od `-Acdtrux' opcija" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2289,80 +2334,85 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Datoteka se skratila za %s bajtova" msgstr[1] "%s: Datoteka se skratila za %s bajtova" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Oznaka vremena izvan opsega" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" # FIXME?? -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "Base-64 vrijednost s predznakom %s iz arhive je izvan %s opsega" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Vrijednost %s iz arhive je izvan %s opsega %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2403,236 +2453,304 @@ msgstr "To msgid "Read checkpoint %u" msgstr "To�ka provjere �itanja %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Generiraj podatkovne datoteke za GNU tar skup test programa.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Konfliktne opcije za kompresiju" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Pogre�ka u pisanju na standardni izlaz" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Kori�tenje: %s [OPCIJA]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Pogre�na oznaka vremena" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Inode broj izvan opsega" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Nepoznata pogre�ka u sistemu" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Ne mogu zatvoriti" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " nepoznat tip datoteke %s\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Neuspjeli seek na %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s: Neuspjeli seek na %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "Potproces zavr�io uz signal %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" # FIXME -- 'mangled filenames'??? -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Manglirana imena datoteka--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: ilegalna opcija -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Upozorenje: opcija -I nije podr�ana; mo�da ste mislili -j ili -T?" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Prijavi gre�ke i bugove na <bug-tar@gnu.org>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "�itam %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Gre�ka iz koje se ne mogu oporaviti: zavr�avam s radom" + +#, fuzzy +#~ msgid "filter the archive through compress" +#~ msgstr "%s: datoteka je arhiva; ne arhiviram ju" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "%s: datoteka je arhiva; ne arhiviram ju" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "%s: datoteka je arhiva; ne arhiviram ju" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Ne mogu alocirati prostor za me�uspremnik\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Ne mogu alocirati prostor za me�uspremnik" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Poku�ajte `%s --help' za vi�e informacija.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Kori�tenje: %s [OPCIJA]\n" +#~ "Upravljaj jedinicom trake, prihva�aju�i naredbe od udaljenih procesa.\n" +#~ "\n" +#~ " --version Informacije o verziji programskih ispisa.\n" +#~ " --help Ispi�i ovu pomo�.\n" + +# FIXME -- find xlation for 'seek offset' -- TM +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Seek ofset izvan opsega" + +#~ msgid "Premature end of file" +#~ msgstr "Prerani kraj datoteke" #~ msgid "block size" #~ msgstr "veli�ina bloka" @@ -2669,9 +2787,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Vidljiva pogre�ka u dugom imenu" -#~ msgid "Time stamp out of range" -#~ msgstr "Oznaka vremena izvan opsega" - #~ msgid "Device number out of range" #~ msgstr "Broj ure�aja izvan opsega" @@ -3083,6 +3198,9 @@ msgstr "" #~ msgid "Obsolete option name replaced by --read-full-records" #~ msgstr "Zastarjelo ime opcije zamijenjeno s --read-full-records" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "Upozorenje: opcija -I nije podr�ana; mo�da ste mislili -j ili -T?" + #~ msgid "Obsolete option name replaced by --touch" #~ msgstr "Zastarjelo ime opcije zamijenjeno s --touch" diff --git a/po/hu.gmo b/po/hu.gmo index e4442331c4665be74c312a29bd4672fe4dc757e7..1640973853d0b1c7014a5c173a97f27d6197337a 100644 Binary files a/po/hu.gmo and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po index ab792f300c34217b609dee2d7eef8859dad491c7..76fadda15a47926869e45a8469c74f29c447089d 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,14 +1,15 @@ # Hungarian translation of the GNU tar. -# Copyright (C) 2002, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. +# # Gábor István <stive@mezobereny.hu>, 2002. -# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008. +# Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2010. msgid "" msgstr "" -"Project-Id-Version: tar 1.20\n" +"Project-Id-Version: tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-05-11 16:11+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-23 20:01+0100\n" "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -17,47 +18,47 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "a(z) „%s” argumentum érvénytelen a következőhöz: %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "a(z) „%s” argumentum nem egyértelmű a következőhöz: „%s”" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Az érvényes argumentumok a következők:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s értéke nem nagyobb, mint %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: Az ARGP_HELP_FMT paraméter egy értéket igényel" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: Az ARGP_HELP_FMT paraméternek pozitívnak kell lennie" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Ismeretlen ARGP_HELP_FMT paraméter" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Szemét az ARGP_HELP_FMT-ben: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -65,241 +66,145 @@ msgstr "" "A hosszú kapcsolók kötelező vagy elhagyható argumentumai a megfelelő rövid " "kapcsolókhoz is kötelezőek vagy elhagyhatóak." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Használat:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " vagy: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [KAPCSOLÓ...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "" "További információkért próbálja kiadni a „%s --help” vagy „%s --usage” " "parancsokat.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "A hibák a(z) %s címen jelenthetők.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Ismeretlen rendszerhiba" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "ezen súgószöveg megjelenítése" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "rövid használati utasítás megjelenítése" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NÉV" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "a program nevének beállítása" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "MP" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "szünet MP másodpercre (alapértelmezetten 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "a programverzió kiírása" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(PROGRAMHIBA) A verziószám ismeretlen???" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: túl sok argumentum\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(PROGRAMHIBA) A kapcsolót fel kellett volna ismerni???" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "íráshiba" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" +msgid "%s: option '%s' requires an argument\n" msgstr "%s: a(z) „%s” kapcsolóhoz argumentum szükséges\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: a(z) „--%s” kapcsoló ismeretlen\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: a(z) „%c%s” kapcsoló ismeretlen\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: illegális kapcsoló -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: érvénytelen kapcsoló -- „%c”\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: érvénytelen kapcsoló -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: a kapcsoló egy argumentumot igényel -- %c\n" - -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n" -#: lib/getopt.c:932 lib/getopt.c:950 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "elfogyott a memória" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "A munkakönyvtár nem jegyezhető fel" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "a visszatérés meghiúsult a kiinduló munkakönyvtárba" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: a következő függvény meghiúsult: %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Figyelmeztetés: a következő függvény meghiúsult: %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Nem lehet %s módba váltani" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Nem módosítható a tulajdonos uid-ja %lu, gid-je %lu értékekre" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Nem hozható létre közvetlen link a következőre: %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása közben" -msgstr[1] "%s: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása közben" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -"%s: Figyelmeztetés: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása " -"közben" -msgstr[1] "" -"%s: Figyelmeztetés: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása " -"közben" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Nem lehet a(z) %s helyre pozicionálni" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Figyelmeztetés: Nem lehet a(z) %s helyre pozicionálni" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Nem hozható létre szimbolikus link a következőre: %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Csak %lu bájt került kiírásra, összesen %lu bájtból" -msgstr[1] "%s: Csak %lu bájt került kiírásra, összesen %lu bájtból" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "A kezdő „%s” eltávolítása a nevek elejéről" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "A kezdő „%s” eltávolítása a közvetlen linkek céljaiból" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Egy . helyettesítése az üres tagnév helyett" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Egy . helyettesítése a közvetlen link üres célja helyett" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -313,17 +218,17 @@ msgstr "Egy . helyettesítése a közvetlen link üres célja helyett" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "”" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "”" @@ -333,7 +238,7 @@ msgstr "”" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[iIyY]" @@ -343,39 +248,28 @@ msgstr "^[iIyY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/TCP: A szolgáltatás nem érhető el" +msgid "Packaged by %s (%s)\n" +msgstr "Csomagolta: %s (%s)\n" -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:79 #, c-format -msgid "stdin" -msgstr "szabványos bemenet" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "szabványos kimenet" - -#: lib/rtapelib.c:512 -#, c-format -msgid "Cannot execute remote shell" -msgstr "Nem futtatható távoli parancssor" +msgid "Packaged by %s\n" +msgstr "Csomagolta: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "(C)" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -392,19 +286,19 @@ msgstr "" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Írta: %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Írta: %s és %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Írta: %s, %s és %s.\n" @@ -412,7 +306,7 @@ msgstr "Írta: %s, %s és %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -424,7 +318,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -436,7 +330,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -448,7 +342,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -460,7 +354,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -474,7 +368,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -488,7 +382,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -503,183 +397,330 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"A programhibákat a(z) <%s> címen jelentheted.\n" +"A hibák a(z) %s címen jelenthetők.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" -msgstr "" +msgid "Report %s bugs to: %s\n" +msgstr "A(z) %s hibái a(z) %s címen jelenthetők.\n" + +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "A(z) %s honlapja: <%s>\n" + +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "A(z) %s honlapja: <http://www.gnu.org/software/%s/>.\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/" +"gethelp/>.\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: a következő függvény meghiúsult: %s" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "A bemeneti karakterlánc túl hosszú" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Figyelmeztetés: a következő függvény meghiúsult: %s" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Számszintaxis hiba" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Nem lehet %s módba váltani" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Nem foglalható hely a puffernek\n" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Nem módosítható a tulajdonos uid-ja %lu, gid-je %lu értékekre" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Nem foglalható hely a puffernek" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Nem hozható létre közvetlen link a következőre: %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "További információkért adja ki a „%s --help” parancsot.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása közben" +msgstr[1] "%s: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása közben" -#: rmt/rmt.c:308 +#: lib/paxerror.c:192 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +"%s: Figyelmeztetés: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása " +"közben" +msgstr[1] "" +"%s: Figyelmeztetés: Olvasási hiba a(z) %s. bájtnál, %lu bájt beolvasása " +"közben" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Nem lehet a(z) %s helyre pozicionálni" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Figyelmeztetés: Nem lehet a(z) %s helyre pozicionálni" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Nem hozható létre szimbolikus link a következőre: %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Csak %lu bájt került kiírásra, összesen %lu bájtból" +msgstr[1] "%s: Csak %lu bájt került kiírásra, összesen %lu bájtból" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "A kezdő „%s” eltávolítása a nevek elejéről" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "A kezdő „%s” eltávolítása a közvetlen linkek céljaiból" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Egy . helyettesítése az üres tagnév helyett" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Egy . helyettesítése a közvetlen link üres célja helyett" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/TCP: A szolgáltatás nem érhető el" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "szabványos bemenet" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "szabványos kimenet" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Használat: %s [KAPCSOLÓ]\n" -"Egy szalagmeghajtó kezelése, egy távoli folyamattól származó parancsok\n" -"elfogadása.\n" -"\n" -" --version Kiírja a verzióinformációkat\n" -" --help Ezen súgó megjelenítése\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Keresésieltolás-hiba" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Nem futtatható távoli parancssor" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "A keresési irány kívül esik a tartományon" + +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "Érvénytelen pozicionálási irány" + +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "Érvénytelen pozicionálási eltolás" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "A keresési eltolás kívül esik a tartományon" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "A keresési irány kívül esik a tartományon" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "Érvénytelen bájtszám" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: Idő előtti fájlvége\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "A bájtszám kívül esik a tartományon" -#: rmt/rmt.c:474 -msgid "Premature end of file" +#: rmt/rmt.c:539 +msgid "Premature eof" msgstr "Idő előtti fájlvége" -#: rmt/rmt.c:672 +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "Érvénytelen működési kód" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "A művelet nem támogatott" + +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "Váratlan paraméterek" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" +"Szalagos meghajtó manipulálása, parancsok elfogadása távoli folyamattól" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "SZÁM" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "hibakeresési szint beállítása" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FÁJL" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "hibakeresés kimeneti fájlnevének beállítása" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "a(z) %s nem nyitható meg" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "túl sok argumentum" + +#: rmt/rmt.c:803 msgid "Garbage command" -msgstr "Fölösleges parancs" +msgstr "Értelmetlen parancs" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Ez nem úgy néz ki, mint egy tar archívum" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Kiírt bájtok teljes száma" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Olvasott bájtok teljes száma" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Törölt bájtok teljes száma: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(cső)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "A record_size értéke érvénytelen" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Nem adott meg archívumnevet" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Nem ellenőrizhető az archívum, ha a szabványos be/kimenetet használja" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Az archívum tömörített. Használja a(z) %s kapcsolót." -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Tömörített archívumok nem frissíthetők" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "A szalag eleje, most kilépek" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Túl sok hiba, kilépek" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Rekordméret = %lu blokk" msgstr[1] "Rekordméret = %lu blokk" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Kitöltetlen blokk (%lu bájt) az archívumban" msgstr[1] "Kitöltetlen blokk (%lu bájt) az archívumban" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Nem törölhető vissza az archív fájl, lehet hogy olvashatatlan lesz a -i " "nélkül" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "az rmtlseek nem állt meg egy rekord határán" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: érvénytelen kötetszámot tartalmaz" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Kötetszám-túlcsordulás" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Készítse elő a(z) %d kötetet %s számára és üssön entert:" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" -msgstr "EOF ahol a program felhasználói választ várt" +msgstr "Fájlvége a várt felhasználói válasz helyett" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "FIGYELMEZTETÉS: Az archívum befejezetlen" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -690,67 +731,67 @@ msgstr "" " q A Tar megszakítása\n" " y vagy újsor A művelet folytatása\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Új parancsértelmező hívása\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Ezen lista kiírása\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Nincs új kötet, kilépés.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Nincs megadva fájlnév, próbálkozzon újra.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Érvénytelen bemenet. A súgó a ? beírásával kérhető le.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "A(z) „%s” parancs meghiúsult" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s lehetséges, hogy ezen a köteten folytatódott: a fejléc csonkolt nevet " "tartalmaz" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s nem folytatódik ezen a köteten" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s mérete hibás (%s != %s + %s)" -#: src/buffer.c:1253 -#, fuzzy, c-format +#: src/buffer.c:1326 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Ez a kötet túl van a sorozaton" +msgstr "Ez a kötet kívül esik a sorozaton (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Az archívum nincs úgy címkézve, hogy megfeleljen a következőhöz: %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "A(z) %s kötet nem felel meg a következőnek: %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -758,61 +799,60 @@ msgstr "" "%s: a fájlnév túl hosszú egy GNU többkötetes fejlécben való tároláshoz, " "csonkításra került" -#: src/buffer.c:1621 -#, fuzzy +#: src/buffer.c:1749 msgid "write did not end on a block boundary" -msgstr "az rmtlseek nem állt meg egy rekord határán" +msgstr "az írás nem egy rekord határán fejeződött be" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Csak %lu bájt olvasható %lu bájtból" msgstr[1] "Csak %lu bájt olvasható %lu bájtból" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "A tartalom eltér" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" -msgstr "Váratlan EOF az archívumban" +msgstr "Váratlan fájlvége jel az archívumban" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "A fájltípus eltér" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "A mód eltér" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Az Uid eltér" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "A Gid eltér" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "A módosítási idő eltér" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "A méret eltér" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Nincs a következőre linkelve: %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "A szimbolikus link eltér" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Az eszközszám eltér" @@ -836,36 +876,36 @@ msgid "Verification may fail to locate original files." msgstr "" "Lehetséges, hogy az ellenőrzés nem fogja megtalálni az eredeti fájlokat." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "AZ ELLENŐRZÉS SIKERTELEN: %d érvénytelen fejléc található" msgstr[1] "AZ ELLENŐRZÉS SIKERTELEN: %d érvénytelen fejléc található" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Egy magányos nulla blokk %s helyen" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: fájl gyorsítótár-könyvtár címkét tartalmaz (%s); %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" "a(z) %s érték a(z) %s %s...%s tartományán kívül esik, helyettesítve a " "következővel: %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "a(z) %s érték a(z) %s %s...%s tartományán kívül esik" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Negatív oktális fejlécek előállítása" @@ -884,295 +924,281 @@ msgstr "%s: a fájlnév túl hosszú (nem darabolható), nem kerül kiírásra" msgid "%s: link name is too long; not dumped" msgstr "%s: a fájlnév túl hosszú, nem kerül kiírásra" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: a fájl zsugorítva %s bájtra, nullákkal kerül kitöltésre" msgstr[1] "%s: a fájl zsugorítva %s bájtra, nullákkal kerül kitöltésre" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: a fájl eltérő fájlrendszeren van, nem kerül kiírásra" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "a tartalom nem került kiírásra" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Ismeretlen fájltípus, fájl a figyelmen kívül hagyva" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "Hiányzó linkek a következőre: „%s”.\n" +msgid "Missing links to %s." +msgstr "Hiányzó linkek a következőre: „%s”." -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: a fájl változatlan, nem kerül kiírásra" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: a fájl az archívumban van, nem kerül kiírásra" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: a fájl el lett távolítva a beolvasás előtt" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "a könyvtár nem került kiírásra" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: a fájl módosult olvasás közben" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: a foglalat figyelmen kívül hagyva" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: ajtó figyelmen kívül hagyva" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Ugrás a következő fejlécre" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "A nem fejlécek törlése az archívumból" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: valószínűtlenül régi időbélyeg: %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: a(z) %s időbélyeg %s másodperccel a jövőbe mutat" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Váratlan inkonzisztencia a könyvtár létrehozása során" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: a könyvtár átnevezésre került az állapotának kinyerése előtt" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "A folytonos fájlok kibontása normál fájlként" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Kísérlet a szimbolikus linkek kibontására közvetlen linkként" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "%s olvasása\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: nem lehet kibontani -- a fájl egy másik köteten folytatódik" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Váratlan hosszú névfejléc" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Ismeretlen fájltípus: „%c”, normál fájlként lesz kibontva" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "A jelenlegi „%s” újabb vagy egyező korú" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Nem sikerült biztonsági mentést készíteni erről a fájlról" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "%s: Nem nevezhető át a következőre: %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "A hiba nem hozható helyre: kilépés" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: A könyvtár át lett nevezve a következőről: %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: a könyvtár át lett nevezve" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: a könyvtár új" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Érvénytelen időbélyeg" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Érvénytelen módosítási idő (másodperc)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Érvénytelen módosítási idő (nanomásodperc)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Érvénytelen eszközszám" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Érvénytelen inode-szám" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Túl hosszú mező a pillanatképfájl olvasása közben" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Olvasási hiba a pillanatképfájlban" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Váratlan fájlvége a pillanatképfájlban" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Váratlan mezőérték a pillanatképfájlban" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Hiányzó rekordlezáró" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Hibás növekményes fájlformátum" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Nem támogatott növekményes formátumverzió: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" "Rosszul formázott kiíratási könyvtár: a várt „%c” helyett %#3o található" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Rosszul formázott kiíratási könyvtár: az „X” többször szerepel" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Rosszul formázott kiíratási könyvtár: üres név az „R”-ben" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Rosszul formázott kiíratási könyvtár: a „T”-t nem előzi meg az „R”" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Rosszul formázott kiíratási könyvtár: üres név a „T”-ben" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" "Rosszul formázott kiíratási könyvtár: a várt „%c” helyett az adatok vége " "található" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" "Rosszul formázott kiíratási könyvtár: az „X” soha nem került felhasználásra" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "" "Nem hozható létre ideiglenes könyvtár a következő sablon használatával: %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: a könyvtár nem kerül törlésre: nem érhető el" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: a fájl egy másik eszközön van: nem kerül törlésre" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: %s törlése\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: nem távolítható el" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: kihagyás" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blokk %s: ** A blokk üres **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" -msgstr "blokk %s: ** A fájl vége **\n" +msgstr "blokk %s: ** Fájlvége **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blokk %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" "Üres értékek a fejléc azon részében, ahol a program a(z) %s számértéket várta" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1180,145 +1206,164 @@ msgstr "" "feltételezi, hogy kettes komplemens" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Az archívum %.*s oktális értéke túllépi a(z) %s tartományt" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Az archívum elavulófélben levő base-64-es fejléceket tartalmaz" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" "Az archívum előjeles base-64 karakterlánca (%s) túllépi a(z) %s tartományt" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Az archívum base-256-os értéke túllépi a(z) %s tartományt" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Az archívum %.*s értéket tartalmaz, ahol a program %s számértéket vár" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Az archívum %s értéke túllépi a(z) %s %s..%s tartományát" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " link a következőre: %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " ismeretlen fájltípus: %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Hosszú link--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Hosszú név--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Kötetfejléc--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Folytatva %s bájttól--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Könyvtár létrehozása:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "%s átnevezése a következőre: %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Nem nevezhető át a következőre: %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s helyreállítása a következő névre: %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "A munkakönyvtár nem menthető" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "A munkakönyvtár nem módosítható" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: a fájl el lett távolítva a beolvasás előtt" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: a könyvtár el lett távolítva a beolvasás előtt" + +#: src/misc.c:795 msgid "child process" msgstr "gyermekfolyamat" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "folyamatközi csatorna" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Mintaillesztő karaktereket használt a fájlnevekben. " -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" "Használja a --wildcards kapcsolót a mintaillesztés engedélyezéséhez vagy a --" "no-wildcards kapcsolót " -#: src/names.c:597 -msgid "suppress this warning." -msgstr "ezen figyelmeztetés elnyomásához." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nem található az archívumban" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: A szükséges előfordulás nem található az archívumban" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" +"A -C használata fájllistán belül nem engedélyezett a --listed-incremental " +"kapcsolóval" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Csak egy -C engedélyezett a --listed-incremental kapcsolóval" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "" "A(z) „-%s” és a(z) „-%s” kapcsolók mind a szabványos bemenetet igénylik" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Érvénytelen archívumformátum" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU szolgáltatásokat kértél inkompatibilis az archívumformátumokon" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1326,7 +1371,7 @@ msgstr "" "A(z) „%s” idézési stílus ismeretlen. Próbálja a „%s --quoting-style=help” " "parancsot segítségért." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1347,7 +1392,7 @@ msgstr "" " tar -xf archívum.tar # Kibontja az összes fájlt az archívum.tar\n" " fájlból.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1369,88 +1414,81 @@ msgstr "" " egyébként egyszerű\n" " never, simple mindig egyszerű mentés létrehozása\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Fő működési mód:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "felsorolja egy archívum tartalmát" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "fájlok kibontása egy archívumból" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "új archívum létrehozása" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "különbségek keresése az archívum és a fájlrendszer között" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "fájlok hozzáfűzése egy archívum végéhez" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "csak az archívumban lévő másolatnál újabb fájlok hozzáfűzése" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "tar fájlok hozzáfűzése egy archívumhoz" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "törlés az archívumból (szalagon nem működik!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "az archívum kötetcímkéjének tesztelése és kilépés" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Műveletmódosítók:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "ritka fájlok hatékony kezelése" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAGAS[.ALACSONY]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" "a használandó ritka formátum verziójának beállítása (magával vonja\n" " a --sparse kapcsolót)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "régi GNU formátumú növekményes mentés kezelése" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FÁJL" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "új GNU formátumú növekményes mentés kezelése" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "kiíratási szint a létrehozott listázott növekményes archívumhoz" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "ne lépjen ki nem nulla értékkel ha a fájl olvashatatlan" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "SZÁM" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1463,119 +1501,122 @@ msgstr "" "átadásra a parancssoron vagy a -T kapcsolón keresztül. A SZÁM " "alapértelmezett értéke az 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "az archívum kereshető" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "az archívumban nem lehet pozicionálni" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "ne ellenőrizze az eszközszámokat növekményes archívumok létrehozásakor" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "eszközszámok ellenőrzése növekményes archívumok létrehozásakor " "(alapértelmezett)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Felülírás felügyelete:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "kísérlet az archívum ellenőrzésére annak kiírása után" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "fájlok eltávolítása azok archívumhoz adása után" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "ne cserélje a meglévő fájlokat kibontáskor" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "ne cserélje az archív változatuknál újabb meglévő fájlokat" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "meglévő fájlok felülírása kibontáskor" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "minden egyes fájl eltávolítása a rá történő kibontás előtt" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "hierarchiák kiürítése könyvtár kibontása előtt" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "meglévő könyvtárak metaadatainak megőrzése" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "meglévő könyvtárak metaadatainak felülírása kibontáskor (alapértelmezett)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Kimeneti adatfolyam kiválasztása:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "fájlok kibontása a szabványos kimenetre" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "PARANCS" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "kibontott fájlok továbbítása másik program számára" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "utódok kilépési kódjainak figyelmen kívül hagyása" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "az utódok nem nulla kilépési kódjainak kezelése hibaként" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Fájlattribútumok kezelése:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "a NÉV kényszerítése a hozzáadott fájlok tulajdonosaként" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "a NÉV kényszerítése a hozzáadott fájlok csoportjaként" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DÁTUM-VAGY-FÁJL" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "a DÁTUM-VAGY-FÁJL dátumnál újabb fájlok mtime értékének beállítása" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "MÓDOSÍTÁSOK" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "a (szimbolikus) mód módosítások kényszerítése a hozzáadott fájlokra" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "MÓDSZER" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1585,29 +1626,34 @@ msgstr "" "olvasás után történő visszaállításával (MÓDSZER='replace'; alapértelmezett) " "vagy az időpontok be nem állításával az első helyen (MÓDSZER='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "ne bontsa ki a fájl módosításának időpontját" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "próbálja azonos tulajdonossal kibontani a fájlokat" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "" +"próbálja az archívumban létezővel azonos tulajdonossal kibontani a fájlokat " +"(alapértelmezett a rendszergazdának)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "fájlok kibontása az Ön nevében" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "" +"fájlok kibontása a saját nevében (alapértelmezett normál felhasználóknak)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "mindig számok használata a felhasználó- vagy csoportnevekhez" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "a fájl jogosultságaival kapcsolatos információk kibontása (alapértelmezett a " "rendszergazda számára)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1615,15 +1661,15 @@ msgstr "" "a felhasználó umask értékének alkalmazása a jogosultságok kibontásakor az " "archívumból (alapértelmezett az egyszerű felhasználók számára)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "kibontandó nevek rendezése, az archívumnak való megfelelés érdekében" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "azonos, mint a -p és -s egyszerre" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1631,139 +1677,139 @@ msgstr "" "kibontott könyvtárak módosítási idői és jogosultságai beállításának " "késleltetése a kibontás befejeztéig" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "a --delay-directory-restore kapcsoló hatásának megszüntetése" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Eszköz kiválasztása és váltása:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHÍVUM" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "az ARCHÍVUM archívumfájl vagy -eszköz használata" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "az archívumfájl helyi, még ha tartalmaz is kettőspontot" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "az adott rmt PARANCS használata az rmt helyett" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "a távoli PARANCS használata az rsh helyett" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "meghajtó és sűrűség megadása" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "többkötetes archívum létrehozása/listázása/kibontása" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "szalagváltás a SZÁM x 1024 bájt kiírása után" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "parancsfájl futtatása minden egyes szalag végén (-M esetén)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "a FÁJLBAN található számú kötet használata/frissítése" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Eszközblokkolás:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOKK" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "rekordonként BLOKK x 512 bájt" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "SZÁM bájt rekordonként, az 512 többszöröse" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "nullázott blokkok (EOF) mellőzése az archívumban" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "újrablokkolás olvasáskor (4.2BSD csövekhez)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Archívumformátum kiválasztása:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMÁTUM" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "az adott formátumú archívum létrehozása" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "A FORMÁTUM a következők egyike:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "régi V7 tar formátum" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "A tar <= 1.12 által használt GNU formátum" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x formátum" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) formátum" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) formátum" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "azonos a pax formátummal" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "azonos a --format=v7 formátummal" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "azonos a --format=posix formátummal" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "kulcsszó[[:]=érték][,kulcsszó[[:]=érték]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "a pax kulcsszavak irányítása" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "SZÖVEG" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1771,106 +1817,80 @@ msgstr "" "archívum létrehozása a SZÖVEG kötetnévvel. Listázáskor vagy kibontáskor " "használja a kötetnév keresési mintájaként a SZÖVEGET" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Tömörítési kapcsolók:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "archívum kiterjesztésének használata a tömörítőprogram meghatározására" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" -msgstr "archívum kiterjesztésének használata a tömörítőprogram meghatározására" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "az archívum tömörítése a bzip2 használatával" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "az archívum tömörítése a gzip használatával" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "az archívum tömörítése a compress használatával" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "az archívum tömörítése az lzma használatával" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "az archívum tömörítése a gzip használatával" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "az archívum tömörítése a gzip használatával" +msgstr "" +"ne használja az archívum kiterjesztését a tömörítőprogram meghatározására" -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "tömörítése a PROG használatával (el kell fogadnia a -d kapcsolót)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Helyi fájlválasztás:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "az adott FÁJL hozzáadása az archívumhoz (hasznos, ha neve kötőjellel " "kezdődik)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "KÖNYVTÁR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "váltás a KÖNYVTÁR könyvtárba" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "kibontandó nevek lekérdezése vagy létrehozás a FÁJLBÓL" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "a -T nullal lezárt neveket olvas, letiltja a -C kapcsolót" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "a korábbi --null kapcsoló hatásának letiltása" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "a -T segítségével beolvasott fájlnevek idézettségének megszüntetése " "(alapértelmezett)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "ne szüntesse meg a -T segítségével beolvasott fájlnevek idézettségét" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "MINTA" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "a MINTAKÉNT megadott fájlok kihagyása" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "a FÁJLBAN megadott minták kihagyása" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1878,92 +1898,96 @@ msgstr "" "a CACHEDIR.TAG-et tartalmazó könyvtárak tartalmának kihagyása, a címkefájl " "kivételével" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak alatt minden kihagyása" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak kihagyása" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "a FÁJLT tartalmazó könyvtárak tartalmának kihagyása, a FÁJL kivételével" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "a FÁJLT tartalmazó könyvtárak alatt minden kihagyása" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "a FÁJLT tartalmazó könyvtárak kihagyása" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "verziókezelő-könyvtárak kihagyása" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "mentési és zárolási fájlok kihagyása" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "ne lépjen be automatikusan a könyvtárakba" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "az archívum létrehozásakor maradjon a helyi fájlrendszeren" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "belépés a könyvtárakba rekurzívan (alapértelmezett)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "ne vágja le a kezdő „/” jelet a fájlnevekből" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "szimbolikus linkek követése; az általuk mutatott fájlok archiválása és " "kiíratása" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "közvetlen linkek követése; az általuk mutatott fájlok archiválása és " "kiíratása" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "TAGNÉV" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "kezdés a TAGNÉV tagnál az archívumban" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "csak a DÁTUM-VAGY-FÁJL dátumnál újabb fájlok tárolása" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DÁTUM" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "dátum és idő összehasonlítása ha csak a dátum módosult" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "FELÜGYELET" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "mentés eltávolítás előtt, a FELÜGYELET verzió kiválasztása" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "KARAKTERLÁNC" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1971,94 +1995,102 @@ msgstr "" "mentés eltávolítás előtt, a szokásos utótag („~”, hacsak a " "SIMPLE_BACKUP_SUFFIX környezeti változó nem bírálja felül) felülbírálása" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Fájlnév-átalakítások:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "a fájlnevek SZÁM darab kezdő összetevőjének levágása kibontáskor" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "KIFEJEZÉS" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "A KIFEJEZÉS sed helyettesítőkifejezés használata fájlnevek átalakítására" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Fájlnévillesztés beállításai (érintik mind a kihagyási, mind a felvételi " "mintákat):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "kis- és nagybetűk figyelmen kívül hagyása" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "a minták illesztése a fájlnevek elejére" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "a minták illesztése bármely / után (alapértelmezett kihagyáskor)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "kis- és nagybetűkre érzékeny illesztés (alapértelmezett)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "helyettesítő karakterek használata (alapértelmezett kihagyáskor)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "szó szerinti karakterlánc-illesztés" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "a helyettesítő karakterek nem illeszkednek a perjelre" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" "a helyettesítőkarakterek illeszkednek a „/” jelre (alapértelmezett " "kihagyáskor)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Informatív kimenet:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "feldolgozott fájlok bőbeszédű listázása" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "KULCSSZÓ" + +#: src/tar.c:740 +msgid "warning control" +msgstr "figyelmeztetés felügyelete" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "előrehaladási üzenetek megjelenítése minden SZÁM. rekordnál (alapértelmezés: " "10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "MŰVELET" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "a MŰVELET végrehajtása minden ellenőrzőponton" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "üzenet kiírása, ha nem minden link került kiíratásra" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SZIGNÁL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2070,27 +2102,27 @@ msgstr "" "Az engedélyezett szignálok: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 és SIGUSR2; a " "SIG előtag nélküli nevek is elfogadottak" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "a fájlmódosítási dátumok kiírása UTC szerint" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "bőbeszédű kimenet küldése a FÁJLBA" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "az archívumon belüli blokkszám megjelenítése minden egyes üzenettel" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "megerősítés kérése minden egyes művelethez" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "a tar alapértelmezéseinek megjelenítése" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2098,31 +2130,31 @@ msgstr "" "listázáskor vagy kibontáskor minden egyes, a keresési feltételnek meg nem " "felelő könyvtár listázása" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "fájl- vagy archívumnevek megjelenítése átalakítás után" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STÍLUS" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "az idézési stílus beállítása, az érvényes STÍLUS értékeket lásd alább" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "a KARAKTERLÁNCBÓL származó karakterek kiegészítő idézése" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "a KARAKTERLÁNCBÓL származó karakterek idézésének letiltása" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Kompatibilitási kapcsolók:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2130,56 +2162,64 @@ msgstr "" "létrehozáskor megegyezik a --old-archive kapcsolóval; kibontáskor a --no-" "same-owner kapcsolóval" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Egyéb kapcsolók:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "néhány potenciálisan káros kapcsoló használatának letiltása" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "A következő kapcsolók közül egynél többet nem használhat: „-Acdtrux”" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "" +"A következő kapcsolók közül egynél többet nem használhat: „-Acdtrux” vagy „--" +"test-label”" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "A tömörítési kapcsolók ütköznek" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Ismeretlen szignálnév: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "A dátummintafájl nem található" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "%s cseréje az ismeretlen %s dátumformátumhoz" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "„%s” kapcsoló: A(z) „%s” dátum kezelése mint %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: a fájllista már be van olvasva" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: a beolvasott fájlnév null karaktert tartalmaz" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "A --quoting-style kapcsolók érvényes argumentumai:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "az archívum tömörítése a(z) %s használatával" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" +msgstr "A --quoting-style kapcsoló érvényes paraméterei:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2187,163 +2227,173 @@ msgstr "" "\n" "*Ezen* tar alapértelmezései:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Érvénytelen blokkolási tényező" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Érvénytelen szalagméret" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "Hibás növekményszintérték" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Egynél több küszöbdátum" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Érvénytelen ritka verzió érték" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" "Az --atime-preserve='system' nem támogatott ezen az operációs rendszeren" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "A --checkpoint értéke nem egy egész" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: Érvénytelen csoport" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "Érvénytelen csoport" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Érvénytelen mód került megadásra a kapcsolóban" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Érvénytelen szám" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Érvénytelen tulajdonos" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" +"A --preserve kapcsoló elavult, használja a --preserve-permissions --preserve-" +"order kapcsolókat helyette" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Érvénytelen rekordméret" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "A rekordméretnek %d többszörösének kell lennie." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Érvénytelen elemszám" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Csak egy --to-command kapcsoló engedélyezett" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Rosszul formázott sűrűségargumentum: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Ismeretlen sűrűség: „%c”" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "A „-[0-7][lmh]” kapcsolókat *ez* a tar NEM támogatja" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FÁJL]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "A régi „%c” kapcsoló paramétert igényel." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "a --occurrence értelmetlen fájllista nélkül" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "a --occurrence nem használható a kért működési módban" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Több archívumfájl esetén szükséges a „-M” kapcsoló" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "" "A --listed-incremental és a --newer kapcsolók nem használhatók egyszerre" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "a --level értelmetlen a --listed-incremental nélkül" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: A kötetcímke túl hosszú (a korlát %lu bájt)" msgstr[1] "%s: A kötetcímke túl hosszú (a korlát %lu bájt)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "A többkötetes archívumok nem ellenőrizhetők" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "A tömörített archívumok nem ellenőrizhetők" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Nem használhatók többkötetes tömörített archívumok" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Tömörített archívumok nem fűzhetők össze" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "a --pax kapcsoló csak POSIX archívumokon használható" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "A kötet hossza nem lehet kisebb a rekord méreténél" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" -msgstr "" +msgstr "a --preserve-order nem kompatibilis a --listed-incremental kapcsolóval" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Üres archívum létrehozása visszautasítva" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Az „-Aru” kapcsolók összeférhetetlenek a „-f” kapcsolóval" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "A következő kapcsolók közül egyikét meg kell adnia: „-Acdtrux”" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "" +"Meg kell adnia a következő kapcsolók egyikét: „-Acdtrux” vagy „--test-label”" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "Kilépés hibaállapottal a korábbi hibák miatt" #: src/update.c:86 #, c-format @@ -2352,84 +2402,88 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: A fájl zsugorítva %s bájttal" msgstr[1] "%s: A fájl zsugorítva %s bájttal" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "A(z) %s kulcsszó ismeretlen vagy még nincs megvalósítva" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "Az időbélyeg kívül esik az engedélyezett tartományon" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "A(z) %s minta nem használható" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "A(z) %s minta nem bírálható felül" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Rosszul formázott kiterjesztett fejléc: a hossz hiányzik" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "A kiterjesztett fejléc hossza kívül esik a tartományon" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "A kiterjesztett fejléc %*s hossza kívül esik a tartományon" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -"Rosszul formázott kiterjesztett fejléc: a hossz után hiányzik egy üreshely " +"Rosszul formázott kiterjesztett fejléc: a hossz után hiányzik egy üres hely " "karakter" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "A kiterjesztett fejléc hibás: egy egyenlőségjel hiányzik" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Rosszul formázott kiterjesztett fejléc: az újsor hiányzik" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" "A(z) „%s” ismeretlen kiterjesztett fejléc kulcsszó figyelmen kívül marad" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Az előállított kulcsszó/érték pár túl hosszú (kulcsszó: %s, hossz: %s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "A kiterjesztett fejléc %s=%s értéke túllépi a(z) %s..%s tartományát" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Rosszul formázott kiterjesztett fejléc: érvénytelen %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Rosszul formázott kiterjesztett fejléc: többlet %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Rosszul formázott kiterjesztett fejléc: érvénytelen %s: váratlan határoló (%" "c)" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2472,7 +2526,7 @@ msgstr "%u. írási ellenőrzőpont" msgid "Read checkpoint %u" msgstr "%u. olvasási ellenőrzőpont" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2480,91 +2534,95 @@ msgstr "" "a genfiles adatfájlokat kezel a GNU paxutils tesztcsomag számára.\n" "A KAPCSOLÓK:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Fájllétrehozási kapcsolók:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "MÉRET" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Az adott MÉRETŰ fájl létrehozása" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Írás a NÉV nevű fájlba a szabványos kimenet helyett" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Fájlnevek beolvasása a FÁJLBÓL" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "a -T nullal lezárt neveket olvas" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "A fájl feltöltése az adott MINTÁVAL. A MINTA a 'default' (alapértelmezett) " "vagy 'zeros' (nullák) egyike" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Egy blokk mérete ritka fájlhoz" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Ritka fájl előállítása. A parancssor többi része megadja a fájlleképezést." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "ELTOLÁS" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Az adott eltolásra pozicionálás az adatok kiírása előtt" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Fájlstatisztika kapcsolói:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "A stat struktúra tartalmának kiírása minden egyes megadott fájlhoz. Az " "alapértelmezett FORMÁTUM: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Szinkron végrehajtási kapcsolók:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "KAPCSOLÓ" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"Az adott PARANCS végrehajtása. Hasznos a --checkpoint és a --cut, --append " -"vagy --touch egyikével" +"Az adott ARGS végrehajtása. Hasznos a --checkpoint és a --cut, --append, --" +"touch vagy --unlink egyikével" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Az adott művelet (lásd alább) végrehajtása a SZÁM-adik ellenőrzőpont elérése " "után" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Dátum beállítása a következő --touch kapcsoló számára" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Végrehajtott ellenőrzőpontok és a PARANCS kilépési állapotának megjelenítése" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2572,7 +2630,7 @@ msgstr "" "Szinkron végrehajtási tevékenységek. Ezek a --checkpoint kapcsoló által " "megadott számú ellenőrzőpont elérésekor kerülnek végrehajtásra." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2580,149 +2638,147 @@ msgstr "" "A FÁJL csonkolása az előző --length kapcsoló által megadott méretre (vagy " "nullára, ha nincs megadva)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "MÉRET bájt hozzáfűzése a FÁJLHOZ. A MÉRETET az előző --length kapcsoló adja " "meg." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "A FÁJL hozzáférési és módosítási idejének frissítése" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "A PARANCS végrehajtása" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "A FÁJL törlése" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Érvénytelen méret: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "A szám kívül esik az engedélyezett tartományon: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatív méret: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "a stat(%s) meghiúsult" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "a kért fájlhossz %lu, a tényleges %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "a létrehozott fájl nem ritka" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Hiba a(z) „%s” közelében található szám elemzésekor" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Ismeretlen dátumformátum" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGUMENTUMOK...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "a(z) „%s” nem nyitható meg" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "Nem lehet pozicionálni" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "a fájlnév null karaktert tartalmaz" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "nem állíthatók elő ritka fájlok a szabványos kimeneten, használja a --file " "kapcsolót" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "helytelen maszk (a(z) „%s” közelében)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Ismeretlen mező: „%s”" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "nem állítható be az idő a következőn: „%s”" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "a(z) „%s” nem törölhető" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "A parancs sikeresen befejeződött\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "A parancs meghiúsult a következő állapottal: %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "A parancs befejeződött a következő szignállal: %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "A parancs leállítva a következő szignállal: %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "A parancs hibakeresési kimenetet adott vissza\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "A parancs befejeződött\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "a --stat fájlneveket igényel" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "túl sok argumentum" - -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "" -#~ "Figyelmeztetés: a „-l” kapcsoló nem támogatott; talán a „-j” vagy a „-T” " -#~ "egyikére gondolt?" - -#, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "a --delay-directory-restore kapcsoló hatásának megszüntetése" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "Nem oldható fel a gépnév (%s)" -#~ msgid "Error exit delayed from previous errors" -#~ msgstr "A hibás kilépés késleltetve a korábbi hibákból" +#~ msgid "suppress this warning." +#~ msgstr "ezen figyelmeztetés elnyomásához." diff --git a/po/id.gmo b/po/id.gmo index 04860ac72f3ebb255edaf721c35f4a878fd6ec9b..df037d0ecb874f5dc274e692ea99dd6eeae13a85 100644 Binary files a/po/id.gmo and b/po/id.gmo differ diff --git a/po/id.po b/po/id.po index a86f4c9ce88010115b14ff44d6ea086fea00e3ad..0127933a83e1a2ca5094893b95e2c4d8137baf5f 100644 --- a/po/id.po +++ b/po/id.po @@ -2,14 +2,14 @@ # Copyright (C) 1999, 2002 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # Tedi Heriyanto <tedi_h@gmx.net>, 1999, 2002. -# Arif E. Nugroho <arif_endro@yahoo.com>, 2008. +# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009, 2010. # msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-12-30 12:30+0700\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-14 07:00+0700\n" "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n" "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -17,283 +17,191 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argumen %s untuk %s tidak valid" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumen %s untuk %s ambigu" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Argumen yang valid adalah:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s nilai lebih kecil atau sama dengan %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT parameter membutuhkan sebuah nilai" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT parameter harus positif" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Parameter ARGP_HELP_FMT tidak diketahui" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Sampah dalam ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -"Argumen wajib atau opsional ke opsi panjang juga wajib atau opsional untuk " -"argumen pendek yang berkorespondennya." +"Argumen wajib atau opsional ke pilihan panjang juga wajib atau opsional " +"untuk argumen pendek yang berkorespondennya." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Penggunaan:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " atau: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" -msgstr " [OPSI...]" +msgstr " [PILIHAN...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Coba `%s --help' atau `%s --usage' untuk informasi lebih lanjut.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Laporkan bug ke %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Kesalahan sistem tidak dikenal" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "berikan daftar bantuan ini" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "berikan sebuah pesan penggunaan singkat" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NAMA" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "set nama aplikasi" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SECS" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "berhenti untuk DETIK detik (baku 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "tampilkan versi aplikasi" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(APLIKASI ERROR) Tidak ada versi yang dikenal!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Terlalu banyak argumen\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" -msgstr "(APLIKASI ERROR) Opsi seharusnya telah dikenali!?" +msgstr "(APLIKASI ERROR) Pilihan seharusnya telah dikenali!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "error menulis" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: opsi `%s' ambigu\n" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: pilihan '%s' ambigu\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: opsi `--%s' tidak mengijinkan sebuah argumen\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: pilihan '--%s' tidak mengijinkan sebuah argumen\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: opsi `%c%s' tidak mengijinkan sebuah argumen\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: pilihan '%c%s' tidak mengijinkan sebuah argumen\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: opsi `%s' membutuhkan sebuah argumen\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: pilihan '%s' membutuhkan sebuah argumen\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: opsi tidak dikenal `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: pilihan tidak dikenal '--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: opsi tidak dikenal `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: pilihan tidak dikenal '%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: opsi -- %c tidak legal\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: pilihan -- '%c' tidak valid\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: opsi -- %c tidak valid\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: pilihan membutuhkan sebuah argumen -- '%c'\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: opsi membutuhkan sebuah argumen -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: pilihan '-W %s' ambigu\n" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: opsi `-W %s' ambigu\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: pilihan '-W %s' tidak mengijinkan sebuah argumen\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: opsi `-W %s' tidak mengijinkan sebuah argumen\n" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "kehabisan memori" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "tidak dapat menyimpan direktori kerja sekarang" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "gagal untuk kembali ke direktori kerja inisial" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Tidak dapat %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Peringatan: Tidak dapat %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Tidak dapat mengganti mode ke %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Tidak dapat merubah kepemilikan ke uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Tidak dapat membuat hard link ke %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Error pembacaan di byte %s, ketika membaca %lu byte" -msgstr[1] "%s: Error pembacaan di byte %s, ketika membaca %lu byte" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Peringatan: Error pembacaan di byte %s, ketika membaca %lu byte" -msgstr[1] "%s: Peringatan: Error pembacaan di byte %s, ketika membaca %lu byte" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Tidak dapat mencari ke %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Peringatan: Tidak dapat mencari ke %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Tidak dapat membuat symlink ke %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Hanya dapat menulis %lu dari %lu byte" -msgstr[1] "%s: Hanya dapat menulis %lu dari %lu byte" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Menghilangkan awalan `%s' dari nama anggota" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Menghilangkan awalan `%s' dari target hard link" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Mengganti `.' untuk nama anggota kosong" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Mengganti `.' untuk target hard link kosong" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -307,17 +215,17 @@ msgstr "Mengganti `.' untuk target hard link kosong" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -327,7 +235,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yY]" @@ -337,39 +245,28 @@ msgstr "^[yY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Service tidak tersedia" +msgid "Packaged by %s (%s)\n" +msgstr "Dibungkus oleh %s (%s)\n" -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:79 #, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "stdout" - -#: lib/rtapelib.c:512 -#, c-format -msgid "Cannot execute remote shell" -msgstr "Tidak dapat menjalankan remote shell" +msgid "Packaged by %s\n" +msgstr "Dibungkus oleh %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "(C)" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -379,8 +276,8 @@ msgid "" "\n" msgstr "" "\n" -"Lisensi GPLv3+: GNU GPL versi 3 atau lebih <http://gnu.org/licenses/gpl." -"html>\n" +"Lisensi GPLv3+: GNU GPL versi 3 atau selanjutnya <http://gnu.org/licenses/" +"gpl.html>\n" "Ini adalah aplikasi bebas: anda bebas untuk mengubah dan " "mendistribusikannya.\n" "TIDAK ADA GARANSI disini, sampai batas yang diijinkan oleh hukum yang " @@ -388,19 +285,19 @@ msgstr "" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Ditulis oleh %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Ditulis oleh %s dan %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Ditulis oleh %s, %s, dan %s.\n" @@ -408,7 +305,7 @@ msgstr "Ditulis oleh %s, %s, dan %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +317,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +329,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -444,7 +341,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -456,7 +353,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -470,7 +367,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -484,7 +381,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -499,181 +396,322 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"Laporkan bug ke <%s>.\n" +"Laporkan bug ke: %s\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" -msgstr "" +msgid "Report %s bugs to: %s\n" +msgstr "Laporkan %s bug ke: %s\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "%s halaman rumah: <%s>\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Masukan string terlalu panjang" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "%s halaman rumah: <http://www.gnu.org/software/%s/>\n" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Sintaks jumlah error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "Bantuan umum menggunakan aplikasi GNU: <http://www.gnu.org/gethelp/>\n" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Tidak dapat mengalokasi buffer space\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Tidak dapat %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Tidak dapat mengalokasi buffer space" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Peringatan: Tidak dapat %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:93 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n" +msgid "%s: Cannot change mode to %s" +msgstr "%s: Tidak dapat mengganti mode ke %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:101 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Tidak dapat merubah kepemilikan ke uid %lu, gid %lu" + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Tidak dapat membuat hard link ke %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Error pembacaan di byte %s, ketika membaca %lu byte" +msgstr[1] "%s: Error pembacaan di byte %s, ketika membaca %lu byte" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Peringatan: Error pembacaan di byte %s, ketika membaca %lu byte" +msgstr[1] "%s: Peringatan: Error pembacaan di byte %s, ketika membaca %lu byte" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Tidak dapat mencari ke %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Peringatan: Tidak dapat mencari ke %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Tidak dapat membuat symlink ke %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Hanya dapat menulis %lu dari %lu byte" +msgstr[1] "%s: Hanya dapat menulis %lu dari %lu byte" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Menghilangkan awalan `%s' dari nama anggota" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Menghilangkan awalan `%s' dari target hard link" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Mengganti `.' untuk nama anggota kosong" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Mengganti `.' untuk target hard link kosong" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Service tidak tersedia" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Penggunaan: %s [OPSI]\n" -"Manipulasi sebuah tape drive, menerima perintah dari proses remote.\n" -"\n" -" --version Tampilkan informasi versi.\n" -" --help Tampilkan bantuan ini.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Offset pencarian error" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Tidak dapat menjalankan remote shell" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Arah pencarian di luar jangkauan" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "Arah pencarian tidak valid" + +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "Ofset pencarian tidak valid" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Offset pencarian di luar jangkauan" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Arah pencarian di luar jangkauan" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "Jumlah byte tidak valid" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "Jumlah byte di luar jangkauan" + +#: rmt/rmt.c:539 +msgid "Premature eof" +msgstr "EOF prematur" + +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "Kode operasi tidak valid" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: EOF prematur\n" +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "Operasi tidak didukung" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Akhir dari berkas prematur" +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "Unexpected tidak terduga" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "Manipulasi sebuah tape drive, menerima perintah dari proses remote" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "NOMOR" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "tentukan tingkat penelusuran" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "BERKAS" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "tentukan keluaran nama berkas penelusuran" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "tidak dapat membuka %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "terlalu banyak argumen" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Perintah sampah" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Ini sepertinya bukan sebuah tar archive" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Total byte ditulis" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Total byte dibaca" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Total byte dihapus: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Nilai record_size tidak valid" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Tidak diberikan nama archive" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Tidak dapat memverifikasi stdin/stdout archive" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" -msgstr "Archive terkompres. Gunakan %s opsi" +msgstr "Archive terkompres. Gunakan %s pilihan" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Tidak dapat update compressed archives" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Berada pada awal tape, berhenti sekarang" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Terlalu banyak errors, berhenti" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Ukuran record = %lu blok" msgstr[1] "Ukuran record = %lu blok" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Blok tidak sesuai (%lu byte) dalam arsip" msgstr[1] "Blok tidak sesuai (%lu byte) dalam arsip" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Tidak dapat backspace file archives; kemungkinan tidak bisa dibaca tanpa -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek tidak dapat berhenti di sebuah batas rekaman" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: berisi nomor volum yang tidak valid" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Nomor volum overflow" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Mempersiapkan volume #%d untuk %s dan tekan return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF pada saat user reply diharapkan" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "PERINGATAN: Archive tidak lengkap" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -685,65 +723,65 @@ msgstr "" " q Batalkan tar\n" " y or newline Lanjutkan operasi\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Spawn sebuah subshell\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Tampilkan daftar ini\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Tidak ada new volume; keluar.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Nama berkas tidak dispesifikasikan. Coba lagi.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Masukan tidak valid. Ketik ? untuk bantuan.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "Perintah %s gagal" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s mungkin dilanjutkan di volume ini: header berisi nama terpotong" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s tidak dilanjutkan di volume ini" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s adalah ukuran yang salah (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Volume ini di luar urutan (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Label archive tidak cocok dengan %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Volume %s tidak sesuai dengan %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -751,60 +789,60 @@ msgstr "" "%s: nama berkas terlalu panjang untuk diurutkan dalam sebuah GNU multivolume " "header, dipotong" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "tulis tidak berhenti di batas blok" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Hanya dapat membaca %lu dari %lu byte" msgstr[1] "Hanya dapat membaca %lu dari %lu byte" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Isi berbeda" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Unexpected EOF dalam archive" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Tipe berkas berbeda" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Mode berbeda" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid berbeda" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid berbeda" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Mod time berbeda" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Ukuran berbeda" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Tidak dilink ke %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlink berbeda" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Nomor perangkat berbeda" @@ -826,34 +864,34 @@ msgstr "Archive berisi nama berkas dengan awalan dihapus." msgid "Verification may fail to locate original files." msgstr "Verifikasi mungkin gagal untuk menemukan berkas orisinil." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "GAGAL VERIFIKASI: header %d tidak valid terdeteksi" msgstr[1] "GAGAL VERIFIKASI: header %d tidak valid terdeteksi" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Sebuah lone blok nol di %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: berisi sebuah cache direktori tag %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "nilai %s dari %s di luar jangkauan %s..%s; menggantikan %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "nilai %s dari %s di luar dari jangkauan %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Membuat header oktal negatif" @@ -873,432 +911,437 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: nama link terlalu panjang; tidak di-dump" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" -msgstr[0] "%s: File diperkecil %s byte; dipadding dengan nol" -msgstr[1] "%s: File diperkecil %s byte; dipadding dengan nol" +msgstr[0] "%s: Berkas diperkecil %s byte; dipadding dengan nol" +msgstr[1] "%s: Berkas diperkecil %s byte; dipadding dengan nol" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: file berada pada filesistem yang berbeda; tidak di-dump" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "isi tidak didump" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipe file tidak dikenal; file diabaikan" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "Hilang link ke %s.\n" +msgid "Missing links to %s." +msgstr "Hilang hubungan ke %s." -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: berkas tidak berubah; tidak di-dump" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: berkas adalah archive; tidak di-dump" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: File dihapus sebelum kita membacanya" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "direktori tidak didump" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: berkas berubah saat kita membacanya" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: soket diabaikan" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: door diabaikan" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Skip ke header berikutnya" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Menghapus non-header dari archive" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: implausibly penanda waktu lama %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: penanda %s adalah %s dalam masa datang" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inkonsistensi tidak diharapkan ketika membuat direktori" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Direktori diganti nama sebelum statusnya dapat diperoleh" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Sedang extract contiguous file sebagai regular file" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Mencoba extract symbolic link sebagai hard link" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Membaca %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" "%s: Tidak dapat mengekstrak -- berkas adalah kelanjutan dari volume lain" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Tidak terduga nama header panjang" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Tipe berkas tidak dikenal '%c', diekstraksi sebagai berkas normal" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Saat ini %s adalah lebih baru atau berumuran sama" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Tidak dapat melakukan backup berkas ini" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Tidak dapat mengubah nama %s ke %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Error tidak dapat diperbaiki: keluar sekarang" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Direktori telah diubah nama dari %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Direktori telah diganti nama" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Direktori adalah baru" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Time stamp tidak valid" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Waktu modifikasi (detik) tidak valid" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "waktu modifikasi (nano detik) tidak valid" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Nomor perangkat tidak valid" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Nomor inode tidak valid" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Field terlalu panjang ketika membaca berkas snapshot" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Pembacaan error dalam berkas snapshot" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Tidak terduga EOF dalam berkas snapshot" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Tidak terduga nilai field dalam berkas snapshot" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Hilang pengakhir rekaman" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Format berkas incremental buruk" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Versi format incremental tidak didukung: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Salah bentuk dumpdir: diduga '%c' tetapi ditemukan %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Salah bentuk dumpdir: 'X' terduplikasi" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Salah bentuk dumpdir: nama kosong dalam 'R'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Salah bentuk dumpdir: 'T' tidak diawali oleh 'R'" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Salah bentuk dumpdir: nama kosong dalam 'T'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Salah bentuk dumpdir: diduga '%c' tetapi ditemukan akhir dari data" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Salah bentuk dumpdir: 'X' tidak pernah digunakan" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Tidak dapat membuat direktori sementara menggunakan template %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Tidak menghapus direktori: tidak dapat memperoleh statistik" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: direktori berada di perangkat yang berbeda: tidak menghapus" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Menghapus %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Tidak dapat menghapus" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Mengabaikan" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok dari KOSONG **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Akhir dari Berkas **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Kosong dalam header saat diharapkan nilai %s numerik" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "Nilai oktal arsip %.*s di luar batasan %s; asumsikan komplemen dua" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Nilai oktal arsip %.*s di luar batasan %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arsip berisikan header base-64 yang kadaluarsas" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Arsip yang ditandatangahi dengan string base-64 %s di luar batasan %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Nilai arsip base-256 di luar batasan %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arsip berisikan %.*s ketika nilai numerik %s diharapkan" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Nilai arsip %s dari %s di luar batasan %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " link ke %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " tipe file tidak dikenal %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Link Panjang--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Nama Panjang--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Volume Header--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Diteruskan pada byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Membuat direktori:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Mengganti nama %s ke %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s:Tidak dapat mengganti nama ke %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Mengganti nama %s kembali ke %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Tidak dapat menyimpan direktori kerja" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Tidak bisa pindah direktori kerja" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Berkas dihapus sebelum kita membacanya" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Direktori dihapus sebelum kita membacanya" + +#: src/misc.c:795 msgid "child process" msgstr "proses anak" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "saluran interproses" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Pola pencocokan karakter digunakan dalam nama berkas. Mohon," -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" "gunakan --wildcards untuk mengaktifkan pencocokan pola, atau --no-wildcards " "untuk" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "menekan peringatan ini." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Tidak ditemukan dalam archive" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Kejadian yang diinginkan tidak ditemukan dalam archive" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" +"Menggunakan pilihan -C didalam daftar berkas tidak diijinkan dengan --listed-" +"incremental" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Hanya satu pilihan -C yang diijinkan dengan --listed-incremental" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" -msgstr "Opsi `-%s' dan `-%s' membutuhkan standard masukan" +msgstr "Pilihan `-%s' dan `-%s' membutuhkan standard masukan" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Format archive tidak valid" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Feature GNU dibutuhkan untuk format archive yang tidak kompatibel" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1306,7 +1349,7 @@ msgstr "" "Gaya quoting `%s' tidak diketahui. Coba `%s --quoting-style=help' untuk " "memperoleh daftar." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1326,7 +1369,7 @@ msgstr "" "secara rinci.\n" " tar -xf archive.tar # Bongkar semua berkas dari archive.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1347,211 +1390,207 @@ msgstr "" "sebaliknya\n" " never, simple selalu buat sederhana backups\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Mode operasi utama:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "daftar isi dari sebuah archive" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "ekstrak berkas dari sebuah archive" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "buat sebuah archive baru" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "cari perbedaan diantara archive dan sistem berkas" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "tambahkan berkas ke akhir dari sebuah archive" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "hanya tambahkan berkas yang lebih bari dari salinan dalam archive" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "tambahkan berkas tar ke sebuah archive" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "hapus dari archive (bukan dalam pita mag!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "test label volume archive dan keluar" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Pemodifikasi operasi:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "tangani berkas sparse secara efisien" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJOR[.MINOR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" "set versi dari format sparse untuk digunakan (mengimplikasikan --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "tangani format GNU lama incremental backup" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "BERKAS" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "tangani format GNU barus incremental backup" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "tingkat `dump' untuk pembuatan `listed-incremental archive'" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "jangan keluar dengan bukan nol dalam berkas tidak dapat dibaca" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "NOMOR" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" "diff, --extract or --list and when a list of files is given either on the " "command line or via the -T option; NUMBER defaults to 1" msgstr "" -"proses hanya JUMLAH pertemuan dari setiap berkas dalam archive; opsi ini " +"proses hanya JUMLAH pertemuan dari setiap berkas dalam archive; pilihan ini " "hanya berlaku dalam konjungsi dengan satu dari sub perintah --delete, --" "diff, --extract atau --list dan ketika sebuah daftar dari berkas diberikan " -"baik dalam baris perintah atau melalui opsi -T; JUMLAH baku ke 1" +"baik dalam baris perintah atau melalui pilihan -T; JUMLAH baku ke 1" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "pencarian tidak dapat dilakukan dalam archive" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "pencarian tidak dapat dilakukan dalam archive" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" "tidak dapat memeriksa nomor perangkat ketika membuat archive incremental" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "periksa nomor perangkat ketika membuat incremental archive (baku)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Overwrite kontrol:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "mencoba untuk memverifikasi archive setelah menulisnya" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "hapus berkas setelah menambahkannya ke archive" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "jangan timpa berkas yang sudah ada ketika mengekstrak" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "jangan timpa berkas yang sudah ada yang lebih baru dari salinan archivenya" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "overwrite berkas yang sudah ada ketika mengekstrak" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "hapus setiap berkas sebelum mengekstrak diatasnya" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "kosongkan susunan sebelum mengekstrak ke direktori" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "jaga metadata dari direktori yang sudah ada" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "overwrite metadata dari direktori yang sudah ada ketika mengekstrak (baku)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Pilih stream keluaran:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "ekstrak berkas ke standar keluaran" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "PERINTAH" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "pipe berkas terekstrak ke aplikasi lain" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "abaikan kode keluaran dari anak" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "perlakukan kode keluaran bukan nol dari anak sebagai error" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Penanganan dari atribut berkas:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "paksa NAMA sebagai pemilik untuk berkas yang ditambahkan" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "paksa NAMA sebagai grup untuk berkas yang ditambahkan" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATE-ATAU-BERKAS" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "set mtime untuk berkas yang ditambahkan dari DATE-OR-FILE" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "PERUBAHAN" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "paksa PERUBAHAN (simbolik) mode untuk berkas yang ditambahkan" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METODE" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1561,27 +1600,31 @@ msgstr "" "setelah membaca (METODE='replace'; baku) atau dengan tidak menset waktu di " "tempat pertama (METODE='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "jangan ekstrak waktu modifikasi berkas" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "mencoba mengekstrak berkas dengan kepemilikan yang sama" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "" +"mencoba mengekstrak berkas dengan kepemilikan yang sama yang ada dalam " +"archive (baku untuk pengguna super)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "ekstrak berkas seperti dirimu" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "ekstrak berkas seperti dirimu (baku untuk pengguna biasa)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "selalu gunakan nomor untuk nama pengguna/grup" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "ekstrak informasi mengenai ijin berkas (baku untuk superuser)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1589,15 +1632,15 @@ msgstr "" "aplikasikan umask pengguna ketika mengekstrak ijin dari archive (baku untuk " "pengguna biasa)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "urutkan nama untuk mengekstrak supaya cocok dengan archive" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "sama seperti baik -p dan -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1605,139 +1648,139 @@ msgstr "" "tunda konfigurasi waktu modifikasi dan ijin untuk direktori terekstrak " "sampai akhir dari ekstrasi" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" -msgstr "batalkan efek dari opsi --delay-directory-restore" +msgstr "batalkan efek dari pilihan --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Pemilihan dan pengubahan perangkat:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIVE" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "gunakan berkas archive atau perangkat ARCHIVE" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "berkas archive adalah lokal walaupun ini memiliki sebuah kolon" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "gunakan PERINTAH rmt yang diberikan daripad rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "gunakan PERINTAH remote daripada rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "spesifikasikan drive dan kepadatan" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "buat/daftar/ekstrak multi-volume archive" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "ubah pita setelah menulis ANGKA x 1024 bytes" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "jalankan script di akhir dari setiap pite (mengimplikasikan -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "gunakan/update jumlah volume dalam BERKAS" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Bloking perangkat:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOK" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOK x 512 byte per detik" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "JUMLAH dari byte per rekaman, kelipatan dari 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "abaikan blok yang dinolkan dalam archive (berarti EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "reblok saat kita baca (untuk 4.2BSD pipes)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Pemilihan format archive:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "buat archive dari format yang diberikan" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT adalah satu dari berikut:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "format tar lama V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "format gnu tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "format GNU tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "format POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "format POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "sama seperti pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "sama seperti --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "sama seperti --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "kata kunci[[:]=nilai][,kata kunci[[:]=nilai]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "kontrol kata kunci pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEKS" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1745,103 +1788,77 @@ msgstr "" "buat archive dengan nama volume TEKS; di waktu daftar/ekstrak, gunakan TEKS " "sebagai sebuah pola globbing untuk nama volume" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" -msgstr "Opsi kompresi:" +msgstr "Pilihan kompresi:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "gunaka nama akhiran archive untuk menentukan aplikasi kompresi" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "jangan gunakan nama akhiran archive untuk menentukan aplikasi kompresi" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "saring archive melalui bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "saring archive melalui gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "saring archive melalui compress" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "saring archive melalui lzma" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "saring archive melalui lzop" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "saring archive melalui gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "saring melalui PROG (harus menerima -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Pemilihan berkas lokal:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "tambahkan berkas yang diberikan ke archive (berguna jika namanya berawal " "dengan sebuah dash)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DIR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "pindah ke direktori DIR" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "dapatkan nama untuk ekstrak atau buat dari BERKAS" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T baca nama berakhiran kosong, non-aktifkan -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "non-aktifkan efek dari opsi --null sebelumnya" +msgstr "non-aktifkan efek dari pilihan --null sebelumnya" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "unquote nama berkas baca dengan -T (baku)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "jangan unquote nama berkas baca dengan -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "POLA" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "jangan masukan berkas, berikan sebagai sebuah POLA" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "jangan masukan pola yang terdaftar dalam BERKAS" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1849,89 +1866,93 @@ msgstr "" "jangan masukan isi dari direktori berisi CACHEDIR.TAG, kecuali untuk berkas " "tag itu sendiri" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "jangan masukan apapun dibawah direktori berisi CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "jangan masukan direktori berisi CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "jangan masukan isi dari direktori berisi BERKAS, kecuali untuk BERKAS itu " "sendiri" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "jangan masukan apapun dibawah direktori berisi BERKAS" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "jangan masukan direktori berisi BERKAS" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "jangan masukan direktori sistem pengontrol direktori" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "abaikan berkas cadangan dan berkas kunci" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "hindari penurunan secara otomatis dalam direktori" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "tetap dalam sistem berkas lokal ketika membuat archive" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "rekursif kedalam direktori (baku)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "jangan hilangkan awalan `/' dari nama berkas" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "ikuti symlinks; berkas archive dan dump yang mereka tunjuk ke" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "ikuti hard links; berkas archive dan dump yang mereka refer ke" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "NAMA-ANGGOTA" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "berawal di anggota NAMA-ANGGOTA dalam archive" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "hanya simpan berkas lebih baru dari DATE-OR-FILE" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "TANGGAL" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "bandingkan tanggal dan waktu hanya ketika data berubah" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "KONTROL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "backup sebelum penghapusan, pilih PENGONTROL versi" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "STRING" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1939,88 +1960,97 @@ msgstr "" "backup sebelum penghapusan, override akhiran biasa ('~' kecuali di override " "oleh variabel lingkungan SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Transformasi nama berkas:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "hilangkan NOMOR yang mengawali komponen dari nama berkas di waktu ekstraksi" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "EKSPRESI" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "gunakan sed EKSPRESI replace untuk mengubah nama berkas" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" -msgstr "Opsi nama berkas cocok (mempengaruhi baik pola exclude dan include):" +msgstr "" +"Pilihan nama berkas cocok (mempengaruhi baik pola exclude dan include):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "abaikan perbedaan huruf besar dan huruf kecil" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "pencocokan pola nama berkas mulai" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "pencocokan polah setelah `/' apapun (baku untuk exclusion)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "pencocokan dengan memperhatikan huruf besar dan huruf kecil (baku)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "gunakan wildcards (baku untuk exclusion)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "pencocok verbatim string" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "wildcards tidak cocok `/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "wildcards cocok `/' (baku untuk exclusion)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Keluaran informative:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "proses daftar berkas secara verbose" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "KATA KUNCI" + +#: src/tar.c:740 +msgid "warning control" +msgstr "pengendali peringatan" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "tampilkan pesan perkembangan setiap rekaman ke ANGKA (baku 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "AKSI" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "jalankan AKSI disetiap titik pemeriksaan" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "tampilkan sebuah pesan jika tidak seluruh link didump" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SINYAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2032,27 +2062,27 @@ msgstr "" "adalah: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 dan SIGUSR2; nama tanpa awalah SIG " "juga diterima" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "tampilkan waktu modifikasi berkas dalam UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "kirim keluaran verbose ke BERKAS" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "tampilkan jumlah blok didalam archive dengan setiap pesan" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "minta konfirmasi untuk setiap aksi" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "tampilkan tar baku" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2060,31 +2090,31 @@ msgstr "" "ketika mendaftar atau mengekstrak, daftar setiap direktori yang tidak cocok " "dengan kriteria pencarian" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "tampilkan berkas atau nama berkas setelah transformasi" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "GAYA" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "set nama quoting gaya; lihat dibawah untuk nilai GAYA yang valid" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "sebagai tambahan karakter quote dari STRING" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "non-aktifkan quoting untuk karakter dari STRING" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" -msgstr "Opsi yang kompatibel:" +msgstr "Pilihan yang kompatibel:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2092,56 +2122,64 @@ msgstr "" "ketika membuat, sama seperti --old-archive; ketika mengekstrak, sama seperti " "--no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" -msgstr "Opsi lain:" +msgstr "Pilihan lain:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" -msgstr "non-aktifkan penggunaan dari opsi berbahaya yang berpotensial" +msgstr "non-aktifkan penggunaan dari pilihan berbahaya yang berpotensial" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "Anda tidak bisa menjalankan lebih dari satu opsi `-Acdtrux'" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "" +"Anda tidak bisa menspesifikasikan lebih dari satu pilihan `-Acdtrux' atau `--" +"test-label'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" -msgstr "Opsi kompresi konflik" +msgstr "Pilihan kompresi konflik" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Nama sinyal: %s tidak dikenal" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Tanggal contoh berkas tidak ditemukan" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Menggantikan %s untuk format tanggal tidak dikenal %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" -msgstr "Opsi %s: memperlakukan tanggal `%s' sebagai %s" +msgstr "Pilihan %s: memperlakukan tanggal `%s' sebagai %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: daftar berkas telah dibaca" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: nama berkas yang dibaca berisi karakter nul" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "Argumen yang valid untuk opsi --quoting-style adalah:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "saring archive melalui %s" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" +msgstr "Argumen yang valid untuk pilihan --quoting-style adalah:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2149,160 +2187,169 @@ msgstr "" "\n" "*Ini* tar baku ke:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Faktor bloking tidak valid" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Panjang tape tidak valid" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "Nilai tingkat peningkatan tidak valid" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Lebih dari satu treshold date" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Nilai versi sparse tidak valid" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" -msgstr "opsi --atime-preserve='system' tidak didukung di platform ini" +msgstr "pilihan --atime-preserve='system' tidak didukung di platform ini" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "nilai --checkpoint bukan sebuah integer" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: grup tidak valid" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "Grup tidak valid" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" -msgstr "Mode tidak tepat diberikan pada opsi" +msgstr "Mode tidak tepat diberikan pada pilihan" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Nomor tidak valid" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Pemilik tidak valid" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -"Opsi --preserve sudah ditinggalkan, lebih baik gunakan --preserve-" +"Pilihan --preserve sudah ditinggalkan, lebih baik gunakan --preserve-" "permissions --preserve-order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Ukuran record tidak valid" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Jumlah record harus kelipatan dari %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Jumlah dari elemen tidak valid" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" -msgstr "Hanya satu opsi --to-command yang diijinkan" +msgstr "Hanya satu pilihan --to-command yang diijinkan" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Salah bentuk kepadatan argumen: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Kepadatan tidak diketahui: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" -msgstr "Opsi `-[0-7][lmh]' tidak didukung oleh tar *ini*" +msgstr "Pilihan `-[0-7][lmh]' tidak didukung oleh tar *ini*" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[BERKAS]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." -msgstr "Opsi 'lama' `%c' membutuhkan argument." +msgstr "Pilihan 'lama' `%c' membutuhkan argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence tidak berarti tanpa sebuah daftar berkas" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence tidak dapat digunakan dalam mode operasi yang diminta" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" -msgstr "Berkas multiple archive membutuhkan opsi '-M'" +msgstr "Berkas multiple archive membutuhkan pilihan '-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Tidak dapat menggabungkan --listed-incremental dengan --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "--level tidak berarti tanpa --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Label volume terlalu panjang (batasnya adalah %lu byte)" msgstr[1] "%s: Label volume terlalu panjang (batasnya adalah %lu byte)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Tidak dapat verifikasi multi-volume archives" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Tidak dapat verify compressed archives" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Tidak dapat menggunakan multi-volume compressed archives" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Tidak dapat update compressed archives" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option hanya dapat digunakan dalam archive POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "Panjang volume tidak dapat lebih kecil dari ukuran rekaman" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "--preserve-order tidak kompatibel dengan --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Secara takut menolak untuk membuat sebuah archive kosong" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" -msgstr "Opsi '-Aru' tidak kompatibel dengan `-f -'" +msgstr "Pilihan '-Aru' tidak kompatibel dengan `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "Anda harus menggunakan salah satu dari opsi `-Acdtrux'" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "" +"Anda harus menspesifikasikan salah satu dari pilihan `-Acdtrux' atau `--test-" +"label'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Keluar dengan status gagal karena error error sebelumnya" @@ -2311,55 +2358,59 @@ msgstr "Keluar dengan status gagal karena error error sebelumnya" #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" -msgstr[0] "%s: file mengecil sebanyak %s byte" -msgstr[1] "%s: file mengecil sebanyak %s byte" +msgstr[0] "%s: Berkas mengecil sebanyak %s byte" +msgstr[1] "%s: Berkas mengecil sebanyak %s byte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Kata kunci %s tidak diketahui atau belum diimplementasikan" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "Penanda waktu di luar dari jangkauan yang diijinkan" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Pola %s tidak dapat digunakan" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Kata kunci %s tidak dapat dioverride" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Salah bentuk ekstensi header: hilang panjang" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Ekstensi panjang header diluar dari jangkauan yang diijinkan" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Ekstensi panjang header %*s diluar dari jangkauan" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Salah bentuk ekstensi header: hilang blank setelah panjang" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Salah bentuk ekstensi header: hilang tanda sama dengan" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Salah bentuk ekstensi header: hilang baris baru" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Mengabaikan kata kunci ekstensi `%s' yang tidak diketahui" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2368,27 +2419,27 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Ekstensi header %s=%s diluar dari jangkauan %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Salah bentuk ekstensi header: tidak valid %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Salah bentuk ekstensi header: kelebihan %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Salah bentuk ekstensi header: tidak valid %s: tidak diduga pembatas %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Salah bentuk ekstensi header: tidak valid %s: jumlah dari nilai ganjil" @@ -2429,245 +2480,324 @@ msgstr "Menulis titik pemeriksaan %u" msgid "Read checkpoint %u" msgstr "Membaca titik pemeriksaan %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" "genfile memanipulasi berkas data untuk suite pemeriksaan GNU paxutils.\n" -"OPSI adalah:\n" +"PILIHAN adalah:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" -msgstr "Opsi pembuatan berkas:" +msgstr "Pilihan pembuatan berkas:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "UKURAN" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Buat berkas dari UKURAN yang diberikan" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Tulis ke berkas NAMA, daripada ke standar keluaran" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Baca nama berkas dari BERKAS" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T baca nama berakhiran null" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Isi berkas dengan POLA yang diberikan. POLA adalah 'baku' atau 'nol'" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Ukuran dari sebuah blok untuk berkas sparse" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Buat berkas sparse. Sisa dari baris perintah memberikan peta berkas." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "OFSET" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Cari ke ofset yang diberikan sebelum menulis data" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" -msgstr "Opsi statistik berkas:" +msgstr "Pilihan statistik berkas:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Tampilkan isi dari statistik struk untuk setiap berkas yang diberikan. " "FORMAT baku adalah: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" -msgstr "opsi eksekusi synchronous:" +msgstr "pilihan eksekusi synchronous:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "PILIHAN" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"Jalankan PERINTAH yang diberikan. Berguna dengan --checkpoint dan satu dari " -"--cut, --append, --touch" +"Jalankan ARG. Berguna dengan --checkpoint dan satu dari --cut, --append, --" +"touch, --unlink" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Lakukan aksi yang diberikan (lihat dibawah) ketika mencapai titik " "pemeriksaan NOMOR" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" -msgstr "Set tanggal untuk opsi --touch selanjutnya" +msgstr "Set tanggal untuk pilihan --touch selanjutnya" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Tampilkan titik pemeriksaan yang dijalankan dan status keluar dari PERINTAH" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" "Aksi eksekusi synchronous. Ini dijalankan ketika titik pemeriksaan nomor " -"yang diberikan oleh opsi --checkpoint dicapai." +"yang diberikan oleh pilihan --checkpoint dicapai." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -"Potong BERKAS ke ukuran yang dispesifikasikan oleh opsi --length sebelumnya " -"(atau 0, jika ini tidak diberikan)" +"Potong BERKAS ke ukuran yang dispesifikasikan oleh pilihan --length " +"sebelumnya (atau 0, jika ini tidak diberikan)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -"Tambahkan UKURAN bytes ke BERKAS. UKURAN yang diberikan oleh opsi --length " -"sebelumnya." +"Tambahkan UKURAN bytes ke BERKAS. UKURAN yang diberikan oleh pilihan --" +"length sebelumnya." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Update waktu akses dan modifikasi dari BERKAS" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Jalankan PERINTAH" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "Putus BERKAS" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ukuran: %s tidak valid" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Jumlah diluar dari jangkauan yang diijinkan: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Ukuran negatif: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) gagal" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "panjang berkas yang diminta %lu, sebenernya %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "pembuatan berkas tidak sparse" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Error parsing nomor didekat `%s'" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Format tanggal tidak diketahui" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARG...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "tidak dapat membuka `%s'" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "Tidak dapat mencari" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "nama berkas berisi karakter null" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -"tidak dapat menghasilkan berkas sparse di standar keluaran, gunakan opsi --" -"file" +"tidak dapat menghasilkan berkas sparse di standar keluaran, gunakan pilihan " +"--file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "mask tidak benar (didekat `%s')" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Field `%s' tidak diketahui" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "tidak dapat menset waktu di `%s'" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "tidak dapat memutus `%s'" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Perintah keluar secara sukses\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Perintah gagal dengan status %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Perintah berakhir di sinyal %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Perintah berhenti di sinyal %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Perintah memberika core dump\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Perintah berakhir\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat membutuhkan nama berkas" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "terlalu banyak argumen" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "Tidak dapat menemukan alamat dari nama host %s" + +#~ msgid "suppress this warning." +#~ msgstr "menekan peringatan ini." + +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: pilihan -- %c tidak legal\n" + +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Laporkan bug ke <%s>.\n" + +#~ msgid "Input string too long" +#~ msgstr "Masukan string terlalu panjang" + +#~ msgid "Number syntax error" +#~ msgstr "Sintaks jumlah error" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Tidak dapat mengalokasi buffer space\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Tidak dapat mengalokasi buffer space" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Coba `%s --help' untuk informasi lebih lanjut.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Penggunaan: %s [PILIHAN]\n" +#~ "Manipulasi sebuah tape drive, menerima perintah dari proses remote.\n" +#~ "\n" +#~ " --version Tampilkan informasi versi.\n" +#~ " --help Tampilkan bantuan ini.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Offset pencarian error" + +#~ msgid "Premature end of file" +#~ msgstr "Akhir dari berkas prematur" + +#~ msgid "Reading %s\n" +#~ msgstr "Membaca %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Error tidak dapat diperbaiki: keluar sekarang" + +#~ msgid "filter the archive through bzip2" +#~ msgstr "saring archive melalui bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "saring archive melalui gzip" + +#~ msgid "filter the archive through compress" +#~ msgstr "saring archive melalui compress" + +#~ msgid "filter the archive through lzma" +#~ msgstr "saring archive melalui lzma" + +#~ msgid "filter the archive through lzop" +#~ msgstr "saring archive melalui lzop" #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" #~ msgstr "" @@ -2706,9 +2836,6 @@ msgstr "terlalu banyak argumen" #~ msgid "Visible long name error" #~ msgstr "Kesalahan visible long file name" -#~ msgid "Time stamp out of range" -#~ msgstr "Time stamp di luar batasan" - #~ msgid "Device number out of range" #~ msgstr "Nomor device di luar batasan" @@ -2759,7 +2886,7 @@ msgstr "terlalu banyak argumen" #~ "for the equivalent short option also. Similarly for optional arguments.\n" #~ msgstr "" #~ "\n" -#~ "Bila long option menunjukkan argumen sebagai mandatory, maka opsi " +#~ "Bila long option menunjukkan argumen sebagai mandatory, maka pilihan " #~ "tersebut\n" #~ "adalah mandatory juga untuk short option. Hal yang sama berlaku untuk\n" #~ "optional argumen.\n" @@ -3098,28 +3225,28 @@ msgstr "terlalu banyak argumen" #~ "Default `tar' *ini* adalah `-f%s -b%d'.\n" #~ msgid "Obsolete option, now implied by --blocking-factor" -#~ msgstr "Opsi tidak berlaku lagi, gunakan --blocking-factor" +#~ msgstr "Pilihan tidak berlaku lagi, gunakan --blocking-factor" #~ msgid "Obsolete option name replaced by --blocking-factor" -#~ msgstr "Opsi tidak berlaku lagi, digantikan oleh --blocking-factor" +#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --blocking-factor" #~ msgid "Obsolete option name replaced by --read-full-records" -#~ msgstr "Opsi tidak berlaku lagi, digantikan oleh --read-full-records" +#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --read-full-records" #~ msgid "Obsolete option name replaced by --touch" -#~ msgstr "Opsi tidak berlaku lagi, digantikan oleh --touch" +#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --touch" #~ msgid "Obsolete option name replaced by --absolute-names" -#~ msgstr "Opsi tidak berlaku lagi, digantikan oleh --absolute-names" +#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --absolute-names" #~ msgid "Obsolete option name replaced by --block-number" -#~ msgstr "Opsi tidak berlaku lagi, digantikan oleh --block-number" +#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --block-number" #~ msgid "Warning: the -y option is not supported; perhaps you meant -j?" #~ msgstr "Peringatan: option -y tidak didukung; mungkin maksud anda -j?" #~ msgid "Obsolete option name replaced by --backup" -#~ msgstr "Opsi tidak berlaku lagi, digantikan oleh --backup" +#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --backup" #~ msgid "Written by John Gilmore and Jay Fenlason." #~ msgstr "Ditulis oleh John Gilmore dan Jay Fenlason." @@ -3133,7 +3260,7 @@ msgstr "terlalu banyak argumen" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" -#~ "Bila long option menunjukkan argumen sebagai mandatory, maka opsi " +#~ "Bila long option menunjukkan argumen sebagai mandatory, maka pilihan " #~ "tersebut\n" #~ "adalah mandatory juga untuk short option. \n" #~ "\n" diff --git a/po/it.gmo b/po/it.gmo index 23c51279ed14c0e1924697e001cf9f3030450484..e5c718e8033753b33c3522af5d99b3dbe44160f8 100644 Binary files a/po/it.gmo and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po index ed8574203ce521869fc2b53901c427054fbd223c..974ca729ffd1dc696a530123ba9f498da4aae4bf 100644 --- a/po/it.po +++ b/po/it.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2009-01-15 21:46+0100\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-04-05 21:45+0200\n" "Last-Translator: Milo Casagrande <milo@casagrande.name>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "MIME-Version: 1.0\n" @@ -19,47 +19,47 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argomento %s non valido per %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argomento %s ambiguo per %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Gli argomenti validi sono:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: il valore %s è minore o uguale a %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: il parametro ARGP_HELP_FMT richiede un valore" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: il parametro ARGP_HELP_FMT deve essere positivo" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: parametro ARGP_HELP_FMT sconosciuto" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Spazzatura in ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -67,237 +67,143 @@ msgstr "" "Gli argomenti obbligatori o facoltativi per le opzioni estese lo sono anche " "per le corrispondenti opzioni brevi." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Uso:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " o: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [OPZIONE...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Usare \"%s --help\" o \"%s --usage\" per ulteriori informazioni.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Segnalare i bug a %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Errore di sistema sconosciuto" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "Mostra questo aiuto" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "Mostra un breve messaggio sull'uso" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NOME" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "Imposta il nome del programma" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SEC" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "Resta in attesa per SEC secondi (predefinito 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "Stampa la versione del programma" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(ERRORE DEL PROGRAMMA) Nessuna versione conosciuta." -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: troppi argomenti\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta." -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "Errore di scrittura" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: l'opzione \"%s\" è ambigua\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: l'opzione \"--%s\" non accetta un argomento\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: l'opzione \"%c%s\" non accetta un argomento\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: l'opzione \"%s\" richiede un argomento\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opzione \"--%s\" non riconosciuta\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opzione \"%c%s\" non riconosciuta\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: opzione non lecita -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: opzione non valida -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: l'opzione richiede un argomento -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: l'opzione \"-W %s\" è ambigua\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: l'opzione \"-W %s\" non accetta un argomento\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "memoria esaurita" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "Impossibile registrare la directory di lavoro corrente" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "Impossibile ritornare alla directory di lavoro iniziale" -# (ndt) metto tra virgolette visto che è -# il nome di una funzione non traducibile -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: funzione \"%s\" non riuscita" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: attenzione: funzione \"%s\" non riuscita" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: impossibile cambiare il modo a %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: impossibile cambiare il proprietario all'UID %lu e al GID %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: impossibile creare un collegamento fisico a %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: errore di lettura al byte %s leggendo %lu byte" -msgstr[1] "%s: errore di lettura al byte %s leggendo %lu byte" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: attenzione: errore di lettura al byte %s leggendo %lu byte" -msgstr[1] "%s: attenzione: errore di lettura al byte %s leggendo %lu byte" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: impossibile fare seek a %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: attenzione: impossibile fare seek a %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: impossibile creare un collegamento simbolico a %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: scritto solo %lu byte su %lu" -msgstr[1] "%s: scritti solo %lu byte su %lu" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Rimozione di \"%s\" iniziale dai nomi dei membri" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Rimozione di \"%s\" iniziale dagli obiettivi dei collegamenti fisici" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Sostituzione di \".\" al nome vuoto di un membro" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Sostituzione di \".\" all'obiettivo vuoto di un collegamento fisico" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -311,17 +217,17 @@ msgstr "Sostituzione di \".\" all'obiettivo vuoto di un collegamento fisico" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "\"" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "\"" @@ -331,7 +237,7 @@ msgstr "\"" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[sSyY].*" @@ -341,39 +247,28 @@ msgstr "^[sSyY].*" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN].*" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: servizio non disponibile" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Impossibile eseguire la shell remota" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -391,19 +286,19 @@ msgstr "" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Scritto da %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Scritto da %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Scritto da %s, %s e %s.\n" @@ -411,7 +306,7 @@ msgstr "Scritto da %s, %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -423,7 +318,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -435,7 +330,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -447,7 +342,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -459,7 +354,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -473,7 +368,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -487,7 +382,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -502,183 +397,334 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Segnalare i bug a %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Segnalare i bug a <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Sito web di %s: <http://www.gnu.org/software/%s/>.\n" + +#: gnu/version-etc.c:258 +#, fuzzy +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" + +# (ndt) metto tra virgolette visto che è +# il nome di una funzione non traducibile +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: funzione \"%s\" non riuscita" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Stringa di input troppo lunga" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: attenzione: funzione \"%s\" non riuscita" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Errore nella sintassi del numero" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: impossibile cambiare il modo a %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: impossibile allocare spazio per il buffer\n" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: impossibile cambiare il proprietario all'UID %lu e al GID %lu" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Impossibile allocare spazio per il buffer" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: impossibile creare un collegamento fisico a %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Usare \"%s --help\" per ulteriori informazioni.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: errore di lettura al byte %s leggendo %lu byte" +msgstr[1] "%s: errore di lettura al byte %s leggendo %lu byte" -#: rmt/rmt.c:308 +#: lib/paxerror.c:192 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: attenzione: errore di lettura al byte %s leggendo %lu byte" +msgstr[1] "%s: attenzione: errore di lettura al byte %s leggendo %lu byte" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: impossibile fare seek a %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: attenzione: impossibile fare seek a %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: impossibile creare un collegamento simbolico a %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: scritto solo %lu byte su %lu" +msgstr[1] "%s: scritti solo %lu byte su %lu" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Rimozione di \"%s\" iniziale dai nomi dei membri" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Rimozione di \"%s\" iniziale dagli obiettivi dei collegamenti fisici" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Sostituzione di \".\" al nome vuoto di un membro" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Sostituzione di \".\" all'obiettivo vuoto di un collegamento fisico" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: servizio non disponibile" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Uso: %s [OPZIONE]\n" -"Manipola un'unità a nastro accettando comandi da un processo remoto.\n" -"\n" -" --version Mostra le informazioni sulla versione.\n" -" --help Mostra questo aiuto.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Errore offset di seek" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Impossibile eseguire la shell remota" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Direzione di seek fuori dell'intervallo" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Modo fornito sull'opzione non valido" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Dimensione non valida: %s" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Offset di seek fuori dell'intervallo" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Direzione di seek fuori dell'intervallo" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Lunghezza del nastro non valida" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Offset di seek fuori dell'intervallo" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" +msgstr "rmtd: EOF prematuro\n" + +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Modi operativi principali:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "EOF inatteso nell'archivio" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "NUMERO" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FILE" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: EOF prematuro\n" +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "impossibile aprire \"%s\"" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Prematura fine del file" +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "troppi argomenti" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Comando spazzatura" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Questo non sembra un archivio tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Byte totali scritti" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Byte totali letti" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Byte totali eliminati: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Valore di record_size non valido" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Non è stato indicato il nome di un archivio" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Impossibile verificare archivi su stdin/stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "L'archivio è compresso. Usare l'opzione %s." -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Impossibile aggiornare archivi compressi" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "All'inizio del nastro, uscita immediata" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Troppi errori, uscita" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Dimensioni del record = %lu blocco" msgstr[1] "Dimensioni del record = %lu blocchi" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Blocco non allineato nell'archivio (%lu byte)" msgstr[1] "Blocco non allineato nell'archivio (%lu byte)" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Impossibile muoversi all'indietro nel file dell'archivio; potrebbe non " "essere\n" "leggibile senza l'opzione -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek non si è fermata al limite di un record" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: contiene un numero di volume non valido" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Overflow del numero di volume" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Preparare il volume #%d per %s e premere Invio: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Ricevuto EOF quando era attesa la risposta dell'utente" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "Attenzione: l'archivio non è completo" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -690,67 +736,67 @@ msgstr "" " q Termina tar\n" " y o Invio Continua l'operazione\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Esegue una subshell\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Stampa questo elenco\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Nessun nuovo volume; uscita.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Nome file non specificato. Riprovare.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Input non valido. Premere ? per l'aiuto.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "comando \"%s\" non riuscito" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s potrebbe continuare su questo volume: l'intestazione contiene un nome " "troncato" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s non continua su questo volume" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s è la dimensione sbagliata (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Questo volume è fuori sequenza (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "L'archivio non ha un'etichetta corrispondente a %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Il volume %s non corrisponde a %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -758,60 +804,60 @@ msgstr "" "%s: il nome del file è troppo lungo per essere scritto in un'intestazione " "GNU multi-volume, troncato" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "write non si è fermata al limite di un record" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "È stato possibile leggere solo %lu byte di %lu" msgstr[1] "È stato possibile leggere solo %lu byte di %lu" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "I contenuti sono differenti" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "EOF inatteso nell'archivio" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "I tipi dei file sono diversi" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "I modi sono diversi" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Gli UID sono diversi" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "I GID sono diversi" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Gli orari di modifica sono diversi" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Le dimensioni sono diverse" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Non è collegato a %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "I collegamenti simbolici sono diversi" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "I numeri dei device sono diversi" @@ -833,34 +879,34 @@ msgstr "L'archivio contiene nomi di file con i prefissi iniziali rimossi." msgid "Verification may fail to locate original files." msgstr "La verifica potrebbe non riuscire a trovare i file originali." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "Errore di verifica: trovata %d intestazione non valida" msgstr[1] "Errore di verifica: trovate %d intestazioni non valide" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Un singolo blocco di zeri a %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: contiene un'etichetta di directory cache %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "valore %s fuori dall'intervallo (%s) %s..%s; sostituzione con %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "valore %s fuori dall'intervallo (%s) %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Generazione delle intestazioni ottali negative" @@ -880,119 +926,109 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: il nome del collegamento è troppo lungo; non archiviato" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: file ristretto di %s byte; riempito con zeri" msgstr[1] "%s: file ristretto di %s byte; riempito con zeri" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: il file si trova su un altro file system; non archiviato" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "contenuti non archiviati" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: tipo di file sconosciuto; file ignorato" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Collegamenti mancanti a %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: il file non è modificato; non archiviato" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: il file è l'archivio; non archiviato" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: file rimosso prima di poterlo leggere" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "directory non archiviata" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: file modificato mentre era in lettura" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: socket ignorato" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: door ignorata" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Passaggio alla prossima intestazione" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Eliminazione non-intestazione dall'archivio" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: orario %s inverosimilmente vecchio" # (ndt) problema del plurale... -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: l'orario %s è %s secondi nel futuro" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: incoerenza inaspettata nel creare la directory" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: directory rinominata prima di poterne estrarre lo stato" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Estrazione file contigui come file normali" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "" "Tentativo di estrazione dei collegamenti simbolici come collegamenti fisici" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Lettura di %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: impossibile estrarre -- il file continua da un altro volume" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Intestazione di nome lungo inattesa" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: tipo di file \"%c\" sconosciuto, estratto come file normale" @@ -1004,175 +1040,171 @@ msgstr "%s: tipo di file \"%c\" sconosciuto, estratto come file normale" # quote (file_name))); # return 0; # } -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Il file %s corrente è più recente o ha la stessa data" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: impossibile eseguire il backup di questo file" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Impossibile rinominare %s in %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Errore irrimediabile: uscita immediata" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: directory rinominata da %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: directory rinominata" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: la directory è nuova" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Orario non valido" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Orario di modifica non valido (secondi)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Orario di modifica non valido (nanosecondi)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Numero di device non valido" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Numero dell'inode non valido" # (ndt) oppure rendere snapshot come istantanea? -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Campo troppo lungo nel leggere il file di snapshot" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Errore di lettura nel file di snapshot" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "EOF inatteso nel file di snapshot" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Valore del campo inatteso nel file di snapshot" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Record finale mancante" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Formato file incrementale errato" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Versione formato incrementale non supportata: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "dumpdir malformata: atteso \"%c\", ma trovato %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "dumpdir malformata: \"X\" duplicata" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "dumpdir malformata: nessun nome in \"R\"" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "dumpdir malformata: \"T\" non preceduta da \"R\"" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "dumpdir malformata: nessun nome in \"T\"" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "dumpdir malformata: atteso \"%c\", ma trovata la fine dei dati" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "dumpdir malformata: \"X\" mai usata" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Impossibile creare la directory temporanea usando il modello %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: eliminazione directory non eseguita: impossibile fare stat" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: la directory si trova su un altro device: non eliminata" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: eliminazione di %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: impossibile rimuoverlo" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: omesso" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blocco %s: ** Blocco di NUL **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blocco %s: ** Fine del file **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blocco %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Trovati spazi nell'intestazione dove era atteso il valore numerico %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1180,143 +1212,162 @@ msgstr "" "che sia in complemento a due" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Il valore ottale %.*s dell'archivio è fuori dall'intervallo %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "L'archivio contiene intestazioni base-64 obsolete" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" "La stringa base-64 con segno %s dell'archivio è fuori dall'intervallo %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Il valore base-256 dell'archivio è fuori dall'intervallo %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "L'archivio contiene %.*s dove era atteso il valore numerico %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Il valore %s dell'archivio è fuori dall'intervallo (%s) %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " collegamento a %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " tipo di file sconosciuto %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Collegamento lungo--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Nome lungo--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Intestazione del volume--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continua al byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Creazione directory:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Rinomina di %s in %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: impossibile rinominarlo in %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Rinomina di %s nuovamente in %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Impossibile salvare la directory di lavoro" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Impossibile cambiare la directory di lavoro" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: file rimosso prima di poterlo leggere" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: file rimosso prima di poterlo leggere" + +#: src/misc.c:795 msgid "child process" msgstr "il processo figlio" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "il canale tra processi" # (ndt) pattern matching... trovare di meglio... -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Usati caratteri di corrispondenza nei nomi dei file. Usare " -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "--wildcards per abilitare la corrispondenza o --no-wildcards " -#: src/names.c:597 -msgid "suppress this warning." -msgstr "per disattivare questo avviso." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: non trovato nell'archivio" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: occorrenza richiesta non trovata nell'archivio" -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "--preserve-order non è compatibile con --listed-incremental" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "--preserve-order non è compatibile con --listed-incremental" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Le opzioni \"-%s\" e \"-%s\" richiedono entrambe lo standard input" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: formato dell'archivio non valido" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Richieste funzionalità GNU su un formato di archivio incompatibile" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1324,7 +1375,7 @@ msgstr "" "Stile di citazione \"%s\" non conosciuto. Provare \"%s --quoting-style=help" "\" per visualizzarne un elenco." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1344,7 +1395,7 @@ msgstr "" "tar.\n" " tar -xf archivio.tar # Estrae tutti i file da archivio.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1367,87 +1418,80 @@ msgstr "" " nil, existing Numerati se esistono backup numerati, altrimenti semplici\n" " never, simple Esegue sempre backup semplici\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Modi operativi principali:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "Elenca i contenuti dell'archivio" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "Estrae file da un archivio" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "Crea un nuovo archivio" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "Trova differenze tra l'archivio e il file system" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "Accoda i file alla fine di un archivio" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "Accoda solo i file più recenti della copia nell'archivio" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "Aggiunge il contenuto di un altro archivio" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "Elimina dall'archivio (non su nastri magnetici)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "Verifica l'etichetta di volume dell'archivio ed esce" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Modificatori delle operazioni:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "Gestisce efficientemente i file sparsi" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJOR[.MINOR]" # (ndt) hmmm... formato sparso... -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "Imposta la versione da usare per il formato sparso (implica --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "gestisce i vecchi backup incrementali GNU" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FILE" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "Gestisce il nuovo formato di backup incrementali GNU" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "Non esce con non-zero quando ci sono file non leggibili" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "NUMERO" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1460,119 +1504,123 @@ msgstr "" "sulla riga di comando o attraverso l'opzione -T; il valore predefinito di " "NUMERO è 1" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "L'archivio è posizionabile" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "L'archivio è posizionabile" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "Non controlla i numeri del device quando crea archivi incrementali" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "Controlla i numeri del device quando crea archivi incrementali (predefinito)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Controlli di sovrascrittura:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "Tenta di verificare l'archivio dopo averlo scritto" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "Rimuove i file dopo averli aggiunti all'archivio" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "Durante l'estrazione non sovrascrive i file esistenti" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "Non sostituisce i file esistenti più recenti delle copie nell'archivio" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "Sovrascrive i file esistenti durante l'estrazione" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "Rimuove ogni file prima di estrarre su di esso" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "Svuota le directory prima di estrarle" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "Preserva i metadati delle directory esistenti" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "Sovrascrive i metadati delle directory esistenti durante l'estrazione " "(predefinito)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Selezione stream di output:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "Estrae i file sullo standard output" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "COMANDO" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "Invia in pipe i file estratti a un altro programma" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "Ignora il codice di uscita dei figli" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "Considera i codici di uscita non-zero come un errore" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Gestione degli attributi dei file:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "Forza NOME come proprietario per i file aggiunti" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "Forza NOME come gruppo per i file aggiunti" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATA-O-FILE" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "Imposta mtime per i file aggiunti da DATA-O-FILE" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "CAMBI" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "Forza il modo CAMBI (simbolico) per i file aggiunti" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METODO" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1582,29 +1630,33 @@ msgstr "" "dopo la lettura (METODO=\"replace\"; predefinito) o impostando l'orario " "all'inizio (METODO=\"system\")" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "Non estrae l'orario di ultima modifica del file" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "Cerca di estrarre i file con lo stesso proprietario" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "Estrae i file come l'utente attuale" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "Usa sempre i numeri per i nomi di utente/gruppo" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "Estrae informazioni riguardo i permessi dei file (predefinito per il super-" "utente)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1612,15 +1664,15 @@ msgstr "" "Applica la umask dell'utente nell'estrarre i permessi dall'archivio " "(predefinito per gli utenti normali)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "Ordina i nomi da estrarre come nell'archivio" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "Come -p e -s assieme" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1628,139 +1680,139 @@ msgstr "" "Ritarda l'impostazione dei tempi di modifica e dei permessi delle directory " "estratte al termine dell'estrazione" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "Annulla l'effetto dell'opzione --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Selezione e cambio del device:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIVIO" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "Usa come archivio il file o il dispositivo ARCHIVIO" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "L'archivio è locale anche se contiene \":\"" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "Usa il COMANDO rmt indicato invece di rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "Usa il COMANDO remoto invece di rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "Indica drive e densità" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "Crea, elenca, estrae archivi multi-volume" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "Cambia il nastro dopo avere scritto NUMERO × 1024 byte" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "Esegue lo script alla fine di ogni nastro (implica -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "Usa/aggiorna il numero del volume nel FILE" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Blocchi del device:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOCCHI" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "Usa record di BLOCCHI × 512 byte" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "NUMERO di byte per record, multiplo di 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "Ignora i blocchi a zero nell'archivio (significa EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "Rifà i blocchi durante la lettura (per le pipe di 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Selezione formato di archiviazione:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMATO" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "Crea archivi nel formato indicato" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMATO è uno dei seguenti:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "Vecchio formato di tar V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "Formato GNU di tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "Formato GNU di tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "Formato POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "Formato POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "Come pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "Come --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "Come --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "PAROLA_CHIAVE[[:]=VALORE][,PAROLA_CHIAVE[[:]=VALORE], ...]" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "Controlla le parole chiavi di pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TESTO" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1768,105 +1820,79 @@ msgstr "" "Crea l'archivio con TESTO come nome di volume; durante l'elencazione o " "l'estrazione, usa TESTO come modello di glob per ogni volume" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Opzioni di compressione:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" "Usa il suffisso dell'archivio per determinare il programma di compressione" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" "Non usa il suffisso dell'archivio per determinare il programma di " "compressione" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "Filtra l'archivio attraverso bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "Filtra l'archivio attraverso gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "Filtra l'archivio attraverso compress" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "Filtra l'archivio attraverso lzma" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "Filtra l'archivio attraverso lzop" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "Filtra l'archivio attraverso gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "Filtra attraverso PROG (deve accettare -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Selezione dei file locali:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "Aggiunge FILE all'archivio (utile se il nome inizia con un trattino)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DIR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "Passa alla directory DIR" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "Prende i nomi da estrarre o creare dal file FILE" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T legge nomi terminati da NULL, disabilita -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "Disabilita l'effetto dell'opzione --null precedente" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "Toglie i caratteri di citazione dai nomi dei file letti con -T (predefinito)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "Non toglie i caratteri di citazione dai nomi dei file letti con -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "MODELLO" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "Esclude i file i cui nomi corrispondono a MODELLO" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "Esclude i modelli elencati in FILE" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1874,93 +1900,97 @@ msgstr "" "Esclude i contenuti delle directory contenenti CACHEDIR.TAG, a parte il " "file .TAG stesso" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "Esclude tutto quanto all'interno di directory contenenti CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "Esclude le directory contenenti CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "Esclude i contenuti delle directory contenenti FILE, a parte FILE stesso " -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "Esclude tutto quanto all'interno di directory contenenti FILE" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "Esclude le directory contenenti FILE" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "Esclude le directory dei sistemi di controllo della versione" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "Non entra automaticamente nelle directory" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "Resta nel file system locale durante la creazione dell'archivio" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "Entra ricorsivamente nelle directory (predefinito)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "Non rimuove le \"/\" iniziali dai nomi dei file" # (ndt) hmmm... non molto chiara... -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "Segue i collegamenti simbolici; archivia ed esegue il dump dei file a cui " "puntano" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "Segue i collegamenti fisici; archivia ed esegue il dump dei file a cui si " "riferiscono" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "NOME" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "Inizia dal membro NOME nell'archivio" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "Archivia solo i file più recenti di DATA-O-FILE" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATA" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "Confronta data e ora solo quando il contenuto è cambiato" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "CONTROLLO" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "Esegue un backup prima di rimuovere, usando il CONTROLLO di versione" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "STRINGA" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1968,94 +1998,103 @@ msgstr "" "Esegue un backup prima di rimuovere, sovrascrivendo il suffisso \"~\" a meno " "che non sia sovrascritto dalla variabile d'ambiente SIMPLE_BACKUP_SUFFIX" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Trasformazioni dei nomi di file:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "Toglie NUMERO componenti iniziali dai nomi dei file durante l'estrazione" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "ESPRESSIONE" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "Usa un'ESPRESSIONE di sostituzione di sed per trasformare i nomi dei file" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Opzioni di corrispondenza del nome del file (vale sia per i modelli di " "esclusione che inclusione):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "Non fa differenza tra maiuscole e minuscole" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "I modelli corrispondono all'inizio del nome del file" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" "I modelli corrispondono dopo ogni \"/\" (predefinito per le esclusioni)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "Considera diverse le maiuscole e le minuscole (predefinito)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "Utilizza i metacaratteri (predefinito per le esclusioni)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "Corrispondenza letterale della stringa" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "I metacaratteri non corrispondono \"/\"" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "I metacaratteri corrispondono \"/\" (predefinito per le esclusioni)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Output informativo:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "Elenca prolissamente i file elaborati" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Controlli di sovrascrittura:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "Visualizza un messaggio di avanzamento ogni NUMERO-esimo record (predefinito " "10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "AZIONE" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "Esegue l'azione a ogni punto di controllo" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "Stampa un messaggio se non tutti i collegamenti sono archiviati" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SEGNALE" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2067,27 +2106,27 @@ msgstr "" "sono: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 e SIGUSR2; sono accettati anche i " "nomi senza il prefisso SIG" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "Stampa le date di modifica dei file in formato UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "Invia l'output prolisso al FILE" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "Mostra il numero di blocco nell'archivio con ogni messaggio" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "Chiede conferma per ogni azione" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "Mostra le impostazioni predefinite di tar" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2095,33 +2134,33 @@ msgstr "" "All'elencazione o all'estrazione, elenca ogni directory che non corrisponde " "al criterio di ricerca" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "Mostra il nome del file o dell'archivio dopo la trasformazione" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STILE" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "Imposta lo stile di citazione del nome; consultare più sotto per i valori di " "STILE consentiti" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "Caratteri di citazione aggiuntivi da STRINGA" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "Disabilita la citazione per i caratteri dalla STRINGA" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Opzioni di compatibilità:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2129,56 +2168,64 @@ msgstr "" "Alla creazione, uguale a --old-archive; all'estrazione, uguale a --no-same-" "owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Altre opzioni:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "Disabilita l'uso di alcune opzioni potenzialmente dannose" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Non è possibile indicare più di un'opzione \"-Acdtrux\"" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Conflitto tra le opzioni di compressione" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Nome del segnale sconosciuto: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "File campione della data non trovato" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Sostituzione di %s al posto del formato di data sconosciuto %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Opzione %s: la data \"%s\" viene considerata come %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: elenco file già letto" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: il nome di file letto contiene un carattere NULL" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "Filtra l'archivio attraverso xz" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "Argomenti validi per le opzioni --quoting-style sono:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2186,48 +2233,53 @@ msgstr "" "\n" "Questo tar ha le seguenti impostazioni predefinite:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Fattore del blocco non valido" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Lunghezza del nastro non valida" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Formato file incrementale errato" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Più di una data di soglia" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Valore versione sparsa non valido" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve=\"system\" non è supportato su questa piattaforma" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "Il valore --checkpoint non è un intero" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: gruppo non valido" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Modo fornito sull'opzione non valido" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Numero non valido" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Proprietario non valido" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2235,112 +2287,118 @@ msgstr "" "L'opzione --preserve è deprecata, usare --preserve-permissions --preserve-" "order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Dimensione del record non valida" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "La dimensione del record deve essere un multiplo di %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Numero di elementi non valido" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Consentita solo un'opzione --to-command" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Argomento densità non corretto: \"%s\"" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Densità sconosciuta: \"%c\"" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Le opzioni \"-[0-7][lmh]\" non sono gestite da questo tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FILE]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "La vecchia opzione \"%c\" richiede un argomento." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence non ha senso senza un elenco di file" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence non può essere usata nel modo di operazioni richiesto" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Archivi multipli richiedono l'opzione \"-M\"" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Impossibile combinare --listed-incremental e --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--preserve-order non è compatibile con --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: l'etichetta di volume è troppo lunga (il limite è %lu byte)" msgstr[1] "%s: l'etichetta di volume è troppo lunga (il limite sono %lu byte)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Impossibile verificare archivi multi-volume" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Impossibile verificare archivi compressi" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Impossibile usare archivi multi-volume compressi" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Impossibile concatenare archivi compressi" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option può essere usata solo su archivi POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" "La lunghezza del volume non può essere minore della dimensione del record" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "--preserve-order non è compatibile con --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Rifiuto totale di creare un archivio vuoto" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Le opzioni \"-Aru\" sono incompatibili con \"-f -\"" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "È necessario specificare una delle opzioni \"-Acdtrux\"" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Uscita con stato di fallimento in base agli errori precedenti" @@ -2352,52 +2410,57 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: il file si è ridotto di %s byte" msgstr[1] "%s: il file si è ridotto di %s byte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "La parola chiave %s è sconosciuta o non ancora implementata" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Numero fuori dall'intervallo consentito: %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Il modello %s non può essere usato" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "La parola chiave %s non può essere sostituita" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Intestazione estesa malformata: manca la lunghezza" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "La lunghezza intestazione estesa è fuori dall'intervallo consentito" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "La lunghezza dell'intestazione estesa %*s è fuori dall'intervallo" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Intestazione estesa malformata: manca lo spazio dopo la lunghezza" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Intestazione estesa malformata: manca il segno di uguale" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Intestazione estesa malformata: manca un newline" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Parola chiave sconosciuta \"%s\" dell'intestazione estesa ignorata" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2406,28 +2469,28 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "L'intestazione estesa %s=%s è fuori dall'intervallo %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Intestazione estesa malformata: %s=%s non valido" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Intestazione estesa malformata: %s=%s in eccesso" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Intestazione estesa malformata: %s non valido: delimitatore %c non atteso" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2469,7 +2532,7 @@ msgstr "Punto di controllo di scrittura %u" msgid "Read checkpoint %u" msgstr "Punto di controllo di lettura %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2477,91 +2540,97 @@ msgstr "" "genfile manipola i file per la suite di test GNU paxutils.\n" "Le opzioni sono:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Opzioni di creazione file:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "DIMENSIONE" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Crea file della DIMENSIONE indicata" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Scrive sul file NOME invece dello standard output" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Legge i nomi dei file da FILE" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T legge nomi terminati da NULL" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Riempie il file con il MODELLO fornito. MODELLO è \"default\" o \"zeros\"" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Dimensione del blocco per il file sparso" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Genera file sparso. Il resto della riga di comando fornisce la mappa del " "file." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "OFFSET" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Si posiziona all'OFFSET indicato prima di scrivere i dati" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Opzioni per le statistiche:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Stampa i contenuti di struct stat per ogni file dato. Il FORMATO predefinito " "è:" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Opzioni di esecuzione sincrona:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [OPZIONE...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "Esegue il COMANDO dato. Utile con --checkpoint e uno tra --cut, --append, --" "touch" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Esegue l'azione indicata (consultare più sotto) al raggiungimento del punto " "di controllo NUMERO" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Imposta la data per l'opzione --touch successiva" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Visualizza i punti di controllo eseguiti e lo stato di uscita del COMANDO" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2569,7 +2638,7 @@ msgstr "" "Azioni di esecuzione sincrona. Queste sono eseguite quando viene raggiunto " "il punto di controllo fornito dall'opzione --checkpoint." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2577,81 +2646,85 @@ msgstr "" "Tronca il FILE alla dimensione specificata dall'opzione --length precedente " "(0 se non viene fornita)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Aggiunge DIMENSIONE byte al FILE. DIMENSIONE è fornita dall'opzione --length " "precedente." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Aggiorna l'orario di accesso e modifica del FILE" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Esegue il COMANDO" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Dimensione non valida: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Numero fuori dall'intervallo consentito: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Dimensione negativa: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) non riuscita" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "lunghezza file richiesta %lu, effettiva %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "il file creato non è sparso" # (ndt) ? -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Errore nell'analizzare il numero vicino a \"%s\"" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Formato data non conosciuto" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGOMENTI...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "impossibile aprire \"%s\"" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "impossibile eseguire seek" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "il nome del file contiene caratteri NULL" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" @@ -2659,60 +2732,128 @@ msgstr "" "file" # (ndt) ? -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "maschera non corretta (vicino a \"%s\")" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Campo \"%s\" sconosciuto" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "impossibile impostare l'orario su \"%s\"" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "impossibile aprire \"%s\"" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Comando eseguito con successo\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Comando non riuscito con lo stato %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Comando terminato al segnale %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Comando fermato al segnale %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Il comando ha fatto un dump del core\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Comando terminato\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat richiede i nomi dei file" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "troppi argomenti" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: opzione non lecita -- %c\n" + +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Segnalare i bug a <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Lettura di %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Errore irrimediabile: uscita immediata" + +#~ msgid "suppress this warning." +#~ msgstr "per disattivare questo avviso." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "Filtra l'archivio attraverso bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "Filtra l'archivio attraverso gzip" + +#~ msgid "filter the archive through compress" +#~ msgstr "Filtra l'archivio attraverso compress" + +#~ msgid "filter the archive through lzma" +#~ msgstr "Filtra l'archivio attraverso lzma" + +#~ msgid "filter the archive through lzop" +#~ msgstr "Filtra l'archivio attraverso lzop" + +#~ msgid "Input string too long" +#~ msgstr "Stringa di input troppo lunga" + +#~ msgid "Number syntax error" +#~ msgstr "Errore nella sintassi del numero" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: impossibile allocare spazio per il buffer\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Impossibile allocare spazio per il buffer" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Usare \"%s --help\" per ulteriori informazioni.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Uso: %s [OPZIONE]\n" +#~ "Manipola un'unità a nastro accettando comandi da un processo remoto.\n" +#~ "\n" +#~ " --version Mostra le informazioni sulla versione.\n" +#~ " --help Mostra questo aiuto.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Errore offset di seek" + +#~ msgid "Premature end of file" +#~ msgstr "Prematura fine del file" #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" #~ msgstr "" diff --git a/po/ja.gmo b/po/ja.gmo index c8220ce54ce16121175d03da98906ab5d59997fd..f4bb6409f3e3486969c1cc6d66173e48b119fd2c 100644 Binary files a/po/ja.gmo and b/po/ja.gmo differ diff --git a/po/ja.po b/po/ja.po index f987c40a91a73bba1db6f06b04e13ede04445932..3fac5259e80de4bbec554d2c25c28422de0e1c72 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,17 +1,17 @@ -# Japanese messages for GNU tar 1.21 -# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. +# Japanese messages for GNU tar 1.22.91 +# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. -# Masahito Yamaga <ma@yama-ga.com>, 2008. +# Masahito Yamaga <ma@yama-ga.com>, 2010. # derived from the version by # Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999-2001. # Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 2007. # msgid "" msgstr "" -"Project-Id-Version: GNU tar 1.21\n" +"Project-Id-Version: GNU tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-12-27 20:22+0900\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-13 10:46+0900\n" "Last-Translator: Masahito Yamaga <ma@yama-ga.com>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -19,47 +19,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=0;\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "���� %s �� %s ���Ф���̵���Ǥ�" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "���� %s �� %s ���Ф��Ƥ����ޤ��Ǥ�" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "������������:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s �ͤ� %s ��꾮������������" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT �ѥ������ͤ�ɬ��" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT �ѥ����������ͤǤʤ���Фʤ�ޤ���" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: ̤�Τ� ARGP_HELP_FMT �ѥ���" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "ARGP_HELP_FMT �˥���: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -67,235 +67,143 @@ msgstr "" "Ĺ�����ץ������Ф���ɬ�ܤޤ���Ǥ�դΰ������б�����û�����ץ������Ф��Ƥ�" "ɬ�ܤޤ���Ǥ�դǤ�." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "����ˡ:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " �ޤ���: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [���ץ����...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "���ܤ�������� `%s --help' �ޤ��� `%s --usage' ��.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "�Х���ݡ��Ȥ� %s �ޤ�.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "�����ʥ����ƥ२�顼" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "���Υإ�װ�����ɽ��" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "û������ˡ��å�������ɽ��" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NAME" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "�ץ������̾�����" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SECS" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "SECS ����� (ɸ�� 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "�ץ������С�������ɽ��" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(�ץ�����२�顼) �С����������!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: ������¿�����ޤ�\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(�ץ�����२�顼) ���ץ����ǧ����ǽ!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "���ߥ��顼" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: ���ץ���� `%s' �Ϥ����ޤ��Ǥ�\n" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: ���ץ���� '%s' �Ϥ����ޤ��Ǥ�\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: ���ץ���� `--%s' �ˤϰ����Ϥ���ޤ���\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: ���ץ���� '--%s' �˰����Ϥ���ޤ���\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: ���ץ���� `%c%s' �ˤϰ����Ϥ���ޤ���\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: ���ץ���� '%c%s' �˰����Ϥ���ޤ���\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: ���ץ���� `%s' �ˤϰ�����ɬ�פǤ�\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: ���ץ���� '%s' �ˤϰ�����ɬ�פǤ�\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: ̤�ΤΥ��ץ���� `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: ̤�ΤΥ��ץ���� '--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: ̤�ΤΥ��ץ���� `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: ̤�ΤΥ��ץ���� '%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: �����ʥ��ץ���� -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: ̵���ʥ��ץ���� -- '%c'\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ̵���ʥ��ץ���� -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: ���ץ����ˤϰ�����ɬ�פǤ� -- '%c'\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: ���ץ����ˤϰ�����ɬ�פǤ� -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: ���ץ���� '-W %s' �Ϥ����ޤ��Ǥ�\n" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -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" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: ���ץ���� `-W %s' �ˤϰ����Ϥ���ޤ���\n" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "�����Ȥ��ڤ�ޤ���" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "���ߤΥ���ǥ��쥯�ȥ��Ͽ�Ǥ��ޤ���" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "�������ǥ��쥯�ȥ�����Τ˼��Ԥ��ޤ���" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: %s ��ǽ" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: �ٹ�: %s ��ǽ" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: �⡼�ɤ� %s ���ѹ��Ǥ��ޤ���" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: uid %lu gid %lu �˽�ͭ�Ԥ��ѹ��Ǥ��ޤ���" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: %s �˥ϡ��ɥ�Ǥ��ޤ���Ǥ���" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" -msgstr[1] "%s: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: �ٹ�: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" -msgstr[1] "%s: �ٹ�: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: %s �ؤ� seek ���Ǥ��ޤ���" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: �ٹ�: %s �ؤ� seek ���Ǥ��ޤ���" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: `%s' �ؤΥ���ܥ�å�������ޤ���" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%1$s: %3$lu �Х��ȤΤ�����%2$lu �Х��ȤΤ߽��ߤޤ���" -msgstr[1] "%1$s: %3$lu �Х��ȤΤ�����%2$lu �Х��ȤΤ߽��ߤޤ���" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "����̾������Ƭ�� `%s' ��������ޤ�" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "�ϡ��ɥ���褫����Ƭ�� `%s' ��������ޤ�" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "���Υ���̾�� `.' ���������ޤ�" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "���Υϡ��ɥ����� `.' ���������ޤ�" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -309,17 +217,17 @@ msgstr " #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -329,7 +237,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yY]" @@ -339,39 +247,28 @@ msgstr "^[yY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: ���Υ����ӥ��ϻȤ��ޤ���" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "ɸ������" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "ɸ�����" +msgid "Packaged by %s (%s)\n" +msgstr "�ѥå�������: %s (%s)\n" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "��֥����뤬�¹ԤǤ��ޤ���" +msgid "Packaged by %s\n" +msgstr "�ѥå�������: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "(C)" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -387,24 +284,24 @@ msgstr "" "There is NO WARRANTY, to the extent permitted by law.\n" "\n" "[������]\n" -"����ϥե���եȥ������Ǥ�: �ѹ��Ⱥ����ۤϼ�ͳ�Ǥ�.\n" +"����ϥե���եȥ������Ǥ�. �ѹ��Ⱥ����ۤϼ�ͳ�Ǥ�.\n" "ˡΧ��ǧ������ϰϤǡ�̵�ݾڡפǤ�.\n" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "���: %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "���: %s, %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "���: %s, %s, %s.\n" @@ -412,7 +309,7 @@ msgstr " #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -424,7 +321,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -436,7 +333,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -448,7 +345,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -460,7 +357,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -474,7 +371,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -488,7 +385,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -503,181 +400,322 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"�Х���ݡ��Ȥ� <%s> �ޤ�.\n" +"�Х���ݡ��Ȱ���: %s\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" -msgstr "" +msgid "Report %s bugs to: %s\n" +msgstr "%s �Х��Υ�ݡ��Ȱ���: %s\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "%s �ۡ���ڡ���: <%s>\n" + +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "%s �ۡ���ڡ���: <http://www.gnu.org/software/%s/>\n" + +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "GNU ���եȥ��������Ѿ�ΰ���Ū�إ��: <http://www.gnu.org/gethelp/>\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: %s ��ǽ" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: �ٹ�: %s ��ǽ" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: �⡼�ɤ� %s ���ѹ��Ǥ��ޤ���" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "����ʸ����Ĺ��ޤ�" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: uid %lu gid %lu �˽�ͭ�Ԥ��ѹ��Ǥ��ޤ���" + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: %s �˥ϡ��ɥ�Ǥ��ޤ���Ǥ���" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "����ʸˡ���顼" +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" +msgstr[1] "%s: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: �Хåե����ΰ����ݤǤ��ޤ���\n" +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: �ٹ�: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" +msgstr[1] "%s: �ٹ�: %s �Х����ܤ��ɤ߹��ߥ��顼 (%lu �Х����ɤ߹�����)" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "�Хåե��ΰ����ݤǤ��ޤ���" +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: %s �ؤ� seek ���Ǥ��ޤ���" -#: rmt/rmt.c:304 +#: lib/paxerror.c:275 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "��äȾܤ�������� `%s --help' �����Ϥ���������ޤ�.\n" +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: �ٹ�: %s �ؤ� seek ���Ǥ��ޤ���" -#: rmt/rmt.c:308 +#: lib/paxerror.c:284 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot create symlink to %s" +msgstr "%s: `%s' �ؤΥ���ܥ�å�������ޤ���" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%1$s: %3$lu �Х��ȤΤ�����%2$lu �Х��ȤΤ߽��ߤޤ���" +msgstr[1] "%1$s: %3$lu �Х��ȤΤ�����%2$lu �Х��ȤΤ߽��ߤޤ���" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "����̾������Ƭ�� `%s' ��������ޤ�" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "�ϡ��ɥ���褫����Ƭ�� `%s' ��������ޤ�" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "���Υ���̾�� `.' ���������ޤ�" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "���Υϡ��ɥ����� `.' ���������ޤ�" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: ���Υ����ӥ��ϻȤ��ޤ���" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "ɸ������" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "ɸ�����" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"�Ȥ���: %s [���ץ����]\n" -"�ơ��ץɥ饤�֤����,��⡼�ȥץ���������Υ��ޥ�ɤ�����դ��ޤ�.\n" -"\n" -" --version �С�������������.\n" -" --help ���Υإ�פ����.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "�������ե��åȥ��顼" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "��֥����뤬�¹ԤǤ��ޤ���" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "�����������ϰϳ�" + +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "̵���ʸ�������" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "̵���ʸ������ե��å�" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "�������ե��åȤ��ϰϳ�" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "�����������ϰϳ�" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "̵���ʥХ��ȿ�" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "�Х��ȿ����ϰϳ�" + +#: rmt/rmt.c:539 +msgid "Premature eof" +msgstr "�ե���������潪λ" + +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "̵����������" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "��������Ƥ��ʤ����" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: �᤹���� eof\n" +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "ͽ�����̰���" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "�ե�����ν�ü���᤹���ޤ�" +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "��֥ץ����������̿�������դ��ƥơ��ץɥ饤�֤����" -#: rmt/rmt.c:672 +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "NUMBER" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "�ǥХå���٥������" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FILE" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "�ǥХå����ϥե�����̾������" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "%s ���ޤ���" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "������¿�����ޤ�" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "���פʥ��ޥ��" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "����� tar ���������֤ǤϤʤ��褦�Ǥ�" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "���Ф��Х��ȿ�" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "���ɤ߹��ߥХ��ȿ�" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "������Х��ȿ�: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(�ѥ���)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "record_size ��̵�����ͤǤ�" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "����������̾�����ꤵ��Ƥ��ޤ���" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "ɸ�������ϤΥ��������֤ϸ��ڤǤ��ޤ���" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "���������֤ϰ��̤���Ƥ��ޤ�. %s ���ץ�����ȤäƤ�������" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "���̤��줿���������֤ϥ��åץǡ��ȤǤ��ޤ���" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "�ơ��פ���Ƭ�Ǥ�. ��������ߤ��ޤ�" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "���顼��¿�����ޤ�. ��������ߤ��ޤ�" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "��Ͽ������ = %lu �֥��å�" msgstr[1] "��Ͽ������ = %lu �֥��å�" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "������������Υ��饤����Ȥ���Ƥ��ʤ��֥��å� (%lu �Х���)" msgstr[1] "������������Υ��饤����Ȥ���Ƥ��ʤ��֥��å� (%lu �Х���)" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "���������֥ե���������������᤻�ޤ���. -i �ʤ��Ǥ��ɤ�ʤ������Τ�ޤ���." -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ��Ͽ�ζ����ǻߤ�ޤ���" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: ̵���ʥܥ�塼���ֹ��ޤ�Ǥ��ޤ�" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "�ܥ�塼���ֹ椬�����С��ե������ޤ���" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "�ܥ�塼�� #%d (%s) ��������ޤ�. ��������Ƥ�������: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "�桼������������ EOF ��ɬ�פȤʤ�ޤ�" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "�ٹ�: ���������֤��Դ����Ǥ�" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -689,67 +727,67 @@ msgstr "" " q tar ��λ\n" " y �ޤ��ϲ��� �����³\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! ���֥������ư\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? ���Υꥹ�Ȥ�ɽ��\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "�������ܥ�塼�ब����ޤ���. ��λ���ޤ�.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "�ե�����̾�����ꤵ��Ƥ��ޤ���. �⤦����.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "����������. ? �ǥإ�פ�ɽ��\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "%s ���ޥ�ɤ����Ԥ��ޤ���" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s �Ϥ��Υܥ�塼���Ǥ����餯Ϣ³���Ƥ��ޤ�: �إå��Ͼ�ά���줿̾����ޤ��" "���ޤ�" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s �Ϥ��Υܥ�塼����Ϣ³���Ƥ��ޤ���" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s �������ʥ������Ǥ� (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "���Υܥ�塼���Ϣ³���Ƥ��ޤ��� (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "���������֤� %s �˰��פ����٥뤬�դ��Ƥ��ޤ���" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "�ܥ�塼�� %s �� %s �˰��פ��ޤ���" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -757,60 +795,60 @@ msgstr "" "%s: �ե�����̾��Ĺ��� GNU �ޥ���ܥ�塼��إå�����¸�Ǥ��ʤ��Τ��ڤ�Τ�" "�ޤ�" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "���ߤ��֥��å������ǽ���äƤ��ޤ���" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "%lu �Х��Ȥ����� %lu �Х��Ȥ����ɤ߹��ळ�Ȥ��Ǥ��ޤ���" msgstr[1] "%lu �Х��Ȥ����� %lu �Х��Ȥ����ɤ߹��ळ�Ȥ��Ǥ��ޤ���" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "���Ƥ��ۤʤ�ޤ�" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "�������������ͽ������ EOF ������ޤ�" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "�ե����륿���פ��ۤʤ�ޤ�" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "�⡼�ɤ��ۤʤ�ޤ�" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "�桼�� ID ���ۤʤ�ޤ�" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "���롼�� ID ���ۤʤ�ޤ�" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "�ǽ��������郎�ۤʤ�ޤ�" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "���������ۤʤ�ޤ�" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "%s �˥���Ƥ��ޤ���" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "����ܥ�å�����ۤʤ�ޤ�" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "�ǥХ����ֹ椬�㤤�ޤ�" @@ -832,34 +870,34 @@ msgstr " msgid "Verification may fail to locate original files." msgstr "���Υե�����ν�߳�ǧ�˼��Ԥ�����ǽ��������ޤ�." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "��ǧ����: %d �Ĥ�̵���ʥإå������Ĥ���ޤ���" msgstr[1] "��ǧ����: %d �Ĥ�̵���ʥإå������Ĥ���ޤ���" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "%s ��Ĺ�������֥��å�" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: ����å��� �ǥ��쥯�ȥ� ���� %s ��ޤ�Ǥ��ޤ�; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "�� %s �� %s ���ϰ� %s..%s �ˤ���ޤ��� -- %s ������" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "�� %s �� %s ���ϰ� %s..%s �ˤ���ޤ���" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "��� 8 �ʥإå����������ޤ�" @@ -878,435 +916,439 @@ msgstr "%s: msgid "%s: link name is too long; not dumped" msgstr "%s: ���̾��Ĺ���Τǥ���פ��ޤ���" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: %s �Х��Ⱦ������ʤä��Τǡ����������ޤ�" msgstr[1] "%s: %s �Х��Ⱦ������ʤä��Τǡ����������ޤ�" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: �ե�����ϰۤʤ�ե����륷���ƥ��ˤ���Τǥ���פ��ޤ���" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "���Ƥ����פ��ޤ���" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: ̤�ΤΥե��������; �ե������̵�뤵��ޤ�" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "%s �ؤΥ������ޤ���.\n" +msgid "Missing links to %s." +msgstr "%s �ؤΥ������ޤ���." -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: �ѹ�����Ƥ��ʤ��Τǥ���פ��ޤ���" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: �ϥ��������֤ʤΤǥ���פ��ޤ���" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: �ɤ߹��߰����˺������ޤ���" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "�ǥ��쥯�ȥ�����פ��ޤ���" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: �ɤ߹�����ե����뤬�ѹ�����Ƥ��ޤ�" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: �����åȤ�̵�뤷�ޤ�" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: door ��̵�뤷�ޤ�" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "���Υإå����åפ��ޤ�" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "���������֤���إå��Ǥʤ���Τ������ޤ�" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: ���餯�Ť������ॹ����� %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: �����ॹ����� %s �� %s ������Ƥ��ޤ�" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: �ǥ��쥯�ȥ����������¬��̷�⤬������ޤ���" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: �ǥ��쥯�ȥ�Ͼ��֤�Ÿ���Ǥ���褦�ˤʤ�����̾�����ѹ�����ޤ���" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Ϣ³�����ե����������ʥե�����Ȥ��Ƽ��Ф��ޤ�" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "����ܥ�å����ϡ��ɥ�Ȥ��Ƽ��Ф��Ƥߤޤ�" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "%s ���ɤ߹�����Ǥ�\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: ���Ф��ޤ��� -- �ե�������̤Υܥ�塼�फ��³���Ƥ��ޤ�" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "ͽ������Ĺ��̾���إå�" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: ̤�ΤΥե����륿���� '%c', �̾�ե�����Ȥ������" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "���ߤ� %s ��������������Ʊ��" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: ���Υե�����ΥХå����åפ��뤳�Ȥ��Ǥ��ޤ���Ǥ���" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "%s ��̾���� %s ���ѹ��Ǥ��ޤ���" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "���顼������Ǥ��ޤ���: ľ���˽�λ���ޤ�" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: �ǥ��쥯�ȥ�̾�� %s �����ѹ�����ޤ���" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: �ǥ��쥯�ȥ�̾���ѹ�����ޤ���" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: �ǥ��쥯�ȥ�Ͽ���������ޤ���" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "̵���ʥ����ॹ�����" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "�����ʺǽ��������� (��)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "�����ʺǽ��������� (�ʥ���)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "̵���ʥǥХ����ֹ�Ǥ�" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "̵���� inode �ֹ�" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "���ʥåץ���åȥե�������ɤ߹�����˥ե�����ɤ�Ĺ��ޤ�" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "���ʥåץ���åȥե�������ɤ߹��ߥ��顼" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "���ʥåץ���åȥե������ͽ������ EOF" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "���ʥåץ���åȥե������ͽ�����̥ե��������" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "��ü��Ͽ�ʤ�" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "��������ʬ�ե��������" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "̤��������ʬ�����С������: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "���������� dumpdir: '%c' ������٤��Ȥ����� %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "���������� dumpdir: 'X' ����ʣ" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "���������� dumpdir: 'R' �˶���̾��" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "���������� dumpdir: 'T' �� 'R' �����ˤʤ�" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "���������� dumpdir: 'T' �˶���̾��" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "���������� dumpdir: '%c' ������٤��Ȥ����˥ǡ����ν�ü" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "���������� dumpdir: 'X' ��̤����" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "�ƥ�ץ졼�� %s ��Ȥäư켡�ǥ��쥯�ȥ����ޤ���" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: �ǥ��쥯�ȥ�������ޤ���: ���֤�ʬ����ޤ���" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: �ǥ��쥯�ȥ�ϰۤʤ�ǥХ�����ˤ���ΤǾõ�ޤ���" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: %s ����\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: ����Ǥ��ޤ���" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: ��ά���ޤ�" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "�֥��å� %s: ** NUL �Υ֥��å� **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "�֥��å� %s: ** �ե�����ν�ü **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "�֥��å� %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "���� %s �Ȥʤ�٤��إå����֤����ˤʤäƤ��ޤ�" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "8 �ʿ��� %.*s �� %s ���ϰϳ��Ǥ� -- 2 ������ȸ��ʤ��ޤ�" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "8 �ʿ��� %.*s �� %s ���ϰϳ��Ǥ�" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "���������֤��Ѥ줿 base-64 �إå����ޤޤ�Ƥ��ޤ�" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "����դ� base-64 ʸ���� %s �� %s ���ϰϳ��Ǥ�" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "base-256 �ͤ� %s ���ϰϳ��Ǥ�" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "���������֤� %.*s ���ޤޤ�Ƥ��ޤ����������Ͽ��� %s �Ȥʤ�Ϥ��Ǥ�" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "���������֤��� %s �� %s ���ϰ� %s..%s ��ˤ���ޤ���" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " %s �ؤΥ��\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " �����ʥե����륿���� %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Ĺ�����--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Ĺ��̾��--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--�ܥ�塼��إå�--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--�Х��� %s ��Ϣ³--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "�ǥ��쥯�ȥ�����:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "̾���� %s ���� %s ���ѹ����ޤ�\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: ̾���� %s ���ѹ��Ǥ��ޤ���" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "̾���� %s ���� %s ���ᤷ�ޤ�\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "����ǥ��쥯�ȥ����¸�Ǥ��ޤ���" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "����ǥ��쥯�ȥ���ѹ��Ǥ��ޤ���" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: �ɤ߹��߰����˺������ޤ���" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: �ɤ߹������˺�����줿�ǥ��쥯�ȥ�" + +#: src/misc.c:795 msgid "child process" msgstr "�ҥץ�����" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "�ץ������֥���ͥ�" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "�ѥ�����ޥå���ʸ�����ե�����̾�˻Ȥ��Ƥ��ޤ�." -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "--wildcards �ǥѥ�����ޥå���ͭ����, �ޤ� --no-wildcards ��" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "���ηٹ��å�������ɽ�����ʤ��褦�ˤ��Ƥ�������." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: ������������˸��Ĥ���ޤ���" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: ������������˸��Ĥ���ޤ���" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" +"�ե�����ꥹ����� -C ���ץ����� --listed-incremental �Ȱ��˻Ȥ��ޤ���" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "-C ���ץ����� 1�Ĥ����ʤ� --listed-incremental �Ȱ��˻Ȥ��ޤ�" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "���ץ���� `-%s' �� `-%s' �Ϥɤ����ɸ�����Ϥ�ɬ�פǤ�" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: ̵���ʥ��������ַ���" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU ��ͭ�ε�ǽ�ϡ���ߴ��ʷ�����ɬ�פȤ��ޤ�" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "�����ʰ��ѷ��� `%s', `%s --quoting-style=help' �ǰ���ɽ��." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1325,7 +1367,7 @@ msgstr "" " tar -tvf archive.tar # archive.tar ������ե������ܤ�������ɽ��\n" " tar -xf archive.tar # archive.tar �������ե��������Ф�\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1346,86 +1388,79 @@ msgstr "" " �����Ǥʤ����ñ�˥Хå����åפ���\n" " never, simple ���ñ��ʥХå����åפ���\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "�����⡼��:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "���������֤����Ƥ����ɽ��" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "���������֤���ե���������" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "���������������֤����" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "���������֤ȥե����륷���ƥ�Ȥΰ㤤���դ���" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "���������֤������˥ե�������ɲ�" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "������������ˤ���ե������꿷�����ե�����Τߤ��ɲ�" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "���������֤� tar �ե�������ɲ�" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "���������֤����� (�����ơ���Ǥϥ���!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "���������֤Υܥ�塼���٥��ƥ��Ȥ��ƽ�λ" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "���ץ������Ф����ղõ�ǽ:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "�ޤФ��¸�ߤ���ե���������Ū�˽���" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJOR[.MINOR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "�ޤФ� (sparse) �����ΥС����������� (--sparse �ΰ�̣��ޤ�)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "�Ť� GNU �����Υ�����Хå����åפ����" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FILE" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "������ GNU �����Υ�����Хå����åפ����" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "���줿 listed-incremental ���������֤��Ф������ץ�٥�" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "�ɤ߹���ʤ��ե����������ξ��֤�¸�ߤ��ޤ���" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "NUMBER" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1437,116 +1472,119 @@ msgstr "" "�ե�������������ޥ�ɥ饤�� -T ���ץ�����ͳ�Τɤ��餫�ǻ��ꤵ�줿����" "��ͭ��. NUMBER ��ɸ��� 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "���������֤ϸ�����ǽ" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "���������֤ϸ�����ǽ�ǤϤ���ޤ���" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "�����륢�������ֺ������˥ǥХ����ֹ������å����ʤ�" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "�����륢�������ֺ������˥ǥХ����ֹ������å����� (ɸ��)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "�������:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "���������֤�Ф�����˸���" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "�ե�����������֤˲ä�����Ǻ��" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "���Ф��ݤ˴�¸�Υե�������֤������ʤ�" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "���������֥��ԡ���꿷������¸�ե�������֤������ʤ�" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "���Ф��ݤ˴�¸�ե��������" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "�ơ��Υե��������Ф��ƾ�������˺��" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "�ǥ��쥯�ȥ����Ф����˳��ؤ����" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "��¸�ǥ��쥯�ȥ�Υ�ǡ�������¸" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "���Ф��ݤ˴�¸�ǥ��쥯�ȥ�Υ�ǡ������� (ɸ��)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "���ϥ��ȥ�������" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "�ե��������Ф���ɸ����Ϥ˽���" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "COMMAND" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "�ե��������Ф����̤Υץ������˽���" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "�ҥץ������ν�λ�����ɤ�̵��" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "�ҥץ�����������λ�����ɤ顼�Ȥ��ƽ���" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "�ե�����°���ν���" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "�ä����ե�����ν�ͭ�Ԥ� NAME ���ѹ�" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "�ä����ե�����Υ��롼�פ� NAME ���ѹ�" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATE-OR-FILE" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "DATE-OR-FILE �����ɲåե������ mtime ������" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "CHANGES" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "�ä����ե������ (����ܥ�å�) �⡼�ɤ� CHANGES ���ѹ�" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METHOD" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1555,181 +1593,185 @@ msgstr "" "�ǽ��������������, �ɤ߹��߸���������� (METHOD='replace'; ɸ��) ���ǽ����" "�ꤷ�ʤ� (METHOD='system') ���Τɤ��餫����ˡ�ǥ���ץե������ǰݻ�" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "�ե�����ι����������Ф��ʤ�" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "Ʊ����ͭ�ԤΤޤޤǥե��������Ф��Ƥߤ�" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "" +"�������������Ʊ����ͭ�ԤΤޤޤǥե��������Ф��Ƥߤ� (�����ѡ��桼���Ǥ�" +"�ǥե����)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "���ʤ����ȤΥե�����Ȥ��Ƽ��Ф�" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "���ʤ����ȤΥե�����Ȥ��Ƽ��Ф� (���̥桼���Ǥϥǥե����)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "�桼��̾/���롼��̾�Ȥ��ƾ�˿�����Ȥ�" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "�ե�����°���ˤĤ��Ƥξ������� (superuser �Ǥ�ɸ��)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" "���������֤���°������Ф���ݤ˥桼���� umask ��Ŭ�� (���̥桼���Ǥ�ɸ��)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "���������֤ȥޥå������뤿��˼��Ф�̾�����¤��ؤ�" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "-p �� -s ��ξ������ꤷ����Τ�Ʊ��" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" "��Ф���λ����ޤ���Ф��줿�ǥ��쥯�ȥ�κǽ����������°����������٤餻��" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "--delay-directory-restore ���ץ����θ��̤���ä�" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "�ǥХ��������������:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIVE" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "���������֥ե�����ޤ��ϥǥХ��� ARCHIVE �����" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "���������֥ե�����ϥ������ޤ�Ǥ��Ƥ��������" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "���ꤵ�줿 rmt COMMAND �� rmt ������˻���" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "rsh ������� COMMAND �����" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "�ɥ饤�֤�̩�٤����" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "�ޥ���ܥ�塼��Υ��������֤����/����/���" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "NUMBER x 1024 �Х��Ȥ�Ф�����ǥơ��פ��ѹ�" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "�ơ��Υơ��פκǸ�ǥ�����ץȤ�¹� (-M ɬ��)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "FILE ��Υܥ�塼���ֹ�����/����" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "�ǥХ����֥��å���:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOCKS" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "�쥳���ɤ����� BLOCKS x 512 �Х���" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "�쥳���ɤ����� NUMBER �Х���. 512 ���ܿ�" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "������������Υ����֥��å� (�Ĥޤ� EOF) ��̵��" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "�ɤ߽Ф����褦�˺ƥ֥��å� (4.2BSD �ѥ�����)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "���������ַ���������" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "���ꤵ�줿�����Υ��������֤����" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT �ϼ��Τ����� 1��:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "�Ť� V7 tar ����" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU tar 1.12 �����η���" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x ����" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) ����" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) ����" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "pax ��Ʊ��" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "--format=v7 ��Ʊ��" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "--format=posix ��Ʊ��" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "keyword[[:]=value][,keyword[[:]=value]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "pax ������ɤ�����" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEXT" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1737,189 +1779,167 @@ msgstr "" "�ܥ�塼��̾ TEXT �Υ��������֤����. ����/��л��� TEXT ��ܥ�塼��̾���Ф�" "����Хѥ�����˻���" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "���̥��ץ����:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "���̥ץ����������Τ˥�������������������Ѥ���" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "���̥ץ����������Τ˥�������������������Ѥ��ʤ�" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "bzip2 ��ͳ�ǥ��������֤�ե��륿" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "gzip ��ͳ�ǥ��������֤�ե��륿" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "compress ��ͳ�ǥ��������֤�ե��륿" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "lzma ��ͳ�ǥ��������֤�ե��륿" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "lzop ��ͳ�ǥ��������֤�ե��륿" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "gzip ��ͳ�ǥ��������֤�ե��륿" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "PROG ��ͳ�ǥե��륿 (-d ������դ���ɬ�פ���)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "��������ե���������:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "���ꤵ�줿 FILE �������֤��ɲ� (���å��� ' �ǻϤޤ�ե�����̾�ξ�����" "��)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DIR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "�ǥ��쥯�ȥ� DIR �ذ�ư" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "��Фޤ��Ϻ�������̾����ե����� FILE �������" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T �� null �ǽ����̾�����ɤ߹���, -C ��̵����" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "���� --null ���ץ����θ��̤�̵����" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "-T ���ɤ߹�����ե�����̾����ѽ�λ���� (ɸ��)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "-T ���ɤ߹��ե�����̾����ѽ�λ���ʤ�" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "PATTERN" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "PATTERN �˰��פ���ե���������" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "FILE ����줿�ѥ���������" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "�����ե����뼫�Ȥ���� CACHEDIR.TAG ��ޤ�ǥ��쥯�ȥ�����Ƥ����" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG ��ޤ�ǥ��쥯�ȥ�ʲ������Ƥ����" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG ��ޤ�ǥ��쥯�ȥ�����" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "FILE ���Ȥ���� FILE ��ޤ�ǥ��쥯�ȥ�����Ƥ����" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "FILE ��ޤ�ǥ��쥯�ȥ�ʲ������Ƥ����" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "FILE ��ޤ�ǥ��쥯�ȥ�����" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "�С��������������ƥ�Υǥ��쥯�ȥ�����" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "�Хå����åפ�������ƥե��������å�" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "�ǥ��쥯�ȥ��ưŪ�˲��äƤ����ʤ�" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "���������ֺ������˥�������ե����륷���ƥ�˸���" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "�ǥ��쥯�ȥ��緫��˲��äƤ��� (default)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "�ե�����̾������Ƭ�� `/' ��������ʤ�" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "����ܥ�å���ɤ�; ����餬�ؤ��ե�����������֤��ƥ����" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "�ϡ��ɥ�ɤ�; ����餬�ؤ��ե�����������֤��ƥ����" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "MEMBER-NAME" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "������������Υ��С� MEMBER-NAME �dz���" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "DATE-OR-FILE ��뿷�����ե�����Τߤ��Ǽ" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATE" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "�ǡ������ѹ����줿���������դ���ӻ�������" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "������˥С����������� CONTROL �ˤ��ƥХå����å�" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "STRING" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1927,87 +1947,95 @@ msgstr "" "������˥Хå����å�, �̾�������� (�Ķ��ѿ� SIMPLE_BACKUP_SUFFIX ��̤�����" "�� '~') ����" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "�ե�����̾�Ѵ�:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "��л��˥ե�����̾������Ƭ�� NUMER �ĤΥ���ݥͥ�Ȥ����" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "EXPRESSION" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "�ե�����̾���Ѵ��� sed ���ִ� EXPRESSION �����" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "�ե�����̾���ץ��ץ���� (����/��ޤ�ξ�ѥ�����˺���):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "��ʸ����ʸ����̵��" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "�ե�����̾����Ƭ�ȥѥ�������" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "Ǥ�դ� `/' �ʹߤ˥ѥ������� (ɸ��ǽ���)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "��ʸ����ʸ�����θ���ư��� (ɸ��)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "�磻��ɥ����ɤ���� (ɸ��ǽ���)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "���Ūʸ�������" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "�磻��ɥ����ɤ� `/' �˰��פ��ʤ�" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "�磻��ɥ����ɤ� `/' �˰��� (ɸ��ǽ���)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "����:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "��������Ƥ���ե�����ΰ������Ĺ��ɽ��" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "KEYWORD" + +#: src/tar.c:740 +msgid "warning control" +msgstr "�ٲ�����" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "NUMBER (ɸ�� 10) ���ܤε�Ͽ���Ȥ˿�Ľ��å�������ɽ��" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "ACTION" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "�Ƹ���� ACTION ��¹�" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "���ƤΥ������פ���ʤ�����å�������ɽ��" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2018,112 +2046,120 @@ msgstr "" "�������Х��ȿ���ɽ��. ���Ĥ��줿 SIGNAL ��: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 " "����� SIGUSR2. SIG ��Ƭ�����ʤ�̾���Ǥ��" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "�ե�����ι������դ� UTC ��ɽ��" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "��Ĺ���Ϥ� FILE ������" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "������������Υ֥��å�����ơ���å������դ���ɽ��" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "���Ƥ�ư����ǧ" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "tar �ε����ͤ�ɽ��" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "��������л���, �������˰��פ��ʤ��ǥ��쥯�ȥ��ơ�����ɽ��" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "�ִԸ�˥ե�����̾�ޤ��ϥ���������̾��ɽ��" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STYLE" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "̾�����ѷ���������. ͭ���� STYLE �ͤϲ�������." -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "���� STRING ����ʸ�������" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "STRING �����ʸ�����Ѥ�̵����" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "�ߴ����ץ����:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "�������� --old-archive ��Ʊ��. ��л��� --no-same-owner ��Ʊ��" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "����¾���ץ����:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "����Ū�˳��ˤʤ륪�ץ����λ��Ѥ�̵����" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "`-Acdtrux' ���ץ����Τ��� 2�İʾ���ꤹ�뤳�ȤϤǤ��ޤ���." +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "" +"`-Acdtrux' �ޤ��� `--test-label' ���ץ����Τ��� 2�İʾ���ꤹ�뤳�ȤϤǤ���" +"����" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "���̥��ץ��������äƤ��ޤ�" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "̤�ΤΥ����ʥ�̾: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "���ե���ץ�ե����뤬���Ĥ���ޤ���" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "̤�Τ����եե����ޥåȤ� %2$s ����� %1$s �Ȥ��ޤ�" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "���ץ���� %s: `%s' �� %s �Ȥ��ư���" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: �ե���������ϴ����ɤ߹��ߺѤ�" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: �ɤ߹��ޤ줿�ե�����̾�˥̥�ʸ��" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "--quoting-style ���ץ������Ф���ͭ���ʰ�����:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "%s ��ͳ�ǥ��������֤�ե��륿" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" +msgstr "--quoting-style ���ץ������Ф���ͭ���ʰ���:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2131,48 +2167,51 @@ msgstr "" "\n" "�֤��Ρ�tar �ε�����:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "̵���ʥ֥��å�����" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "̵���ʥơ��פ�Ĺ��" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "̵������ʬ��٥���" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "1�İʾ���ߵ�Ȥʤ�����" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "̵���ʤޤФ� (sparse) �С��������" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' �Ϥ��Υץ�åȥե�����Ǥϼ�������Ƥ��ޤ���" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "--checkpoint �ͤ������ǤϤ���ޤ���" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: ̵���ʥ��롼��" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "̵���ʥ��롼��" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "���ץ����ǻ��ꤵ�줿�⡼�ɤ�̵���Ǥ�" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "̵���ʿ�" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "̵���ʽ�ͭ��" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2180,111 +2219,117 @@ msgstr "" "--preserve ���ץ������ѻ�ͽ��ʤΤ�, ����� --preserve-permissions --" "preserve-order ��ȤäƤ�������" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "̵���ʵ�Ͽ������" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "��Ͽ�������� %d ���ܿ��Ǥʤ���Ф����ޤ���" -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "̵���ʥ�����ȿ�" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "--to-command ���ץ����� 1�Ĥ�������" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "����������̩�ٰ���: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "̤�Τ�̩��: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "���ץ���� `-[0-7][lmh]' �ϡ֤��Ρ�tar �Ǥϼ�������Ƥ��ޤ���" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[�ե�����]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "�Ť����ץ���� `%c' �ϰ�����ɬ�פȤ��ޤ�" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence �ϥե�����������ʤ����̵��̣" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence ���ᤵ�줿���⡼�ɤǤϻȤ��ޤ���" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "ʬ�䷿�Υ��������֥ե�����ˤ� `-M' ���ץ����ɬ�פǤ�" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "--listed-incremental �� --newer �Ȥ���Ǥ��ޤ���" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "--listed-incremental �ʤ��� --level ��̵��̣�Ǥ�" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: �ܥ�塼���٥뤬Ĺ�����ޤ� (%lu �Х�������)" msgstr[1] "%s: �ܥ�塼���٥뤬Ĺ�����ޤ� (%lu �Х�������)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "�ޥ���ܥ�塼�ॢ�������֤��ǧ�Ǥ��ޤ���" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "���̤��줿���������֤ϳ�ǧ�Ǥ��ޤ���" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "�ޥ���ܥ�塼��˰��̤��줿���������֤ϻȤ��ޤ���" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "���̤��줿���������֤�Ϣ��Ǥ��ޤ���" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option �� POSIX ���������֤ǤΤȤ��ޤ�" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "�ܥ�塼��Ĺ�ϥ쥳���ɥ�������꾮�����ƤϤ����ޤ���" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "--preserve-order �� --listed-incremental ��ξΩ���ޤ���" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "���Υ��������ֺ����Ϥ��Ƽϴꤤ�ޤ�" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "���ץ���� `-Aru' �� `-f -' �Ȥ����Ƥ�ޤ���" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "���ץ���� `-Acdtrux' �Τ����������줫����ꤷ�ʤ���Фʤ�ޤ���" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "" +"`-Acdtrux' �ޤ��� `--test-label' ���ץ����Τ����������줫 1�Ĥ���ꤷ�ʤ���" +"�Фʤ�ޤ���" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "���Υ��顼�ˤ�꼺�ԥ��ơ������ǽ�λ���ޤ�" @@ -2296,79 +2341,83 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: �ե����뤬 %s �Х��Ⱦ������ʤäƤ��ޤ�" msgstr[1] "%s: �ե����뤬 %s �Х��Ⱦ������ʤäƤ��ޤ�" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "������� %s ��̤�Τޤ���̤����" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "�����ॹ����פ����Ĥ��줿�ϰϳ��Ǥ�" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "�ѥ����� %s �ϻȤ��ޤ���" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "������� %s ��ʤ���ޤ���" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "���������γ�ĥ�إå�: Ĺ���λ��꤬����ޤ���" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "��ĥ�إå�Ĺ�ϵ��Ĥ��줿�ϰϳ��Ǥ�" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "��ĥ�إå�Ĺ %*s ���ϰϳ��Ǥ�" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "���������γ�ĥ�إå�: Ĺ���θ�˥֥������ޤ���" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "���������γ�ĥ�إå�: = (��������) ���椬����ޤ���" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "���������γ�ĥ�إå�: ���Ԥ�����ޤ���" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "̤�Τγ�ĥ�إå�������� `%s' ��̵��" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "�������줿������ɤ��ͤΥڥ���Ĺ��ޤ� (�������=%s, Ĺ��=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "��ĥ�إå� %s=%s �� %s..%s ���ϰ���ˤ���ޤ���" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "���������γ�ĥ�إå�: %s=%s ������" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "���������γ�ĥ�إå�: %s=%s ��;ʬ" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "���������γ�ĥ�إå�: %s ��̵��: ͽ�����̶��ڤ�ʸ�� %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "���������γ�ĥ�إå�: %s ��̵��: �����" @@ -2409,7 +2458,7 @@ msgstr " msgid "Read checkpoint %u" msgstr "�����å��ݥ���� %u ���ɤ߹��ߤޤ�" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2417,85 +2466,89 @@ msgstr "" "genfile �� GNU paxutils �ƥ��ȥ��åȤ��Ф��ƥǡ����ե���������ޤ�.\n" "���ץ�����:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "�ե�����������ץ����:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "SIZE" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "���ꤵ�줿 SIZE �Υե���������" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "ɸ����Ϥ�����˥ե����� NAME �˽���" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "FILE ����ե�����̾���ɤ߹���" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T �� null �ǽ����̾�����ɤ߹��ߤޤ�" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "���ꤵ�줿 PATTERN �ǥե���������ޤ�. PATTERN �� 'default' �ޤ��� 'zeros'" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "�ޤФ�� (sparse) �ե�����Υ֥��å�������" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "�ޤФ�� (sparse) �ե����������. �Ĥ�Υ��ޥ�ɥ饤��ǥե�����ޥåפ����." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "���ե��å�" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "�ǡ�����Ф����˻��ꤵ�줿���ե��åȤޤǸ���" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "�ե��������ץ��ץ����:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "�ơ��λ���ե�������Ф��� struct stat �����Ƥ�ɽ��. ɸ�� FORMAT ��: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Ʊ���¹ԥ��ץ����:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "OPTION" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"���ꤵ�줿 COMMAND ��¹�. --checkpoint ����� --cut, --append, --touch ����" -"�� 1�ĤȤȤ�˻��Ѥ���Ȥ褤" +"ARGS ��¹�. --checkpoint ����� --cut, --append, --touch, --unlink ����� 1" +"�ĤȤȤ�˻��Ѥ���Ȥ褤" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "�����å��ݥ���� NUMBER ��ã���˻��ꤵ�줿��������� (��������) ��¹�" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "���� --touch ���ץ��������դ�����" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "�¹Ԥ��줿�����å��ݥ���Ȥ� COMMAND �ν�λ���ơ�������ɽ��" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2503,7 +2556,7 @@ msgstr "" "Ʊ���¹ԥ��������. ������ --checkpoint option �ǻ��ꤵ�줿�����å��ݥ����" "�ֹ����ã�����Ȥ��˼¹Ԥ����." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2511,137 +2564,144 @@ msgstr "" "FILE �� --length ���ץ���� (�ޤ��ϻ��꤬�ʤ���� 0) �ǻ��ꤵ�줿���������ڤ�" "�Τ�" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "FILE �� SIZE �Х����ɵ�. SIZE ������ --length ���ץ����ǻ���." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "FILE �κǽ�������������Ⱥǽ����������" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "COMMAND ��¹�" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "FILE �� unlink" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "̵���ʥ�����: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "�ֹ椬���Ĥ��줿�ϰϳ�: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "��Υ�����: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) ����" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "�ᤵ�줿�ե�����Ĺ %lu, �ºݤ��� %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "�������줿�ե�����ϥ��ѡ����ǤϤ���ޤ���" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "`%s' �ζ�ǿ�����ʸʬ�ϻ��˥��顼" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "̤�Τ����շ���" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "`%s' ���ޤ���" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "�ܤ��Ф��ޤ���" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "�ե�����̾���̥�ʸ����ޤ�Ǥ��ޤ�" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "�ޤФ�� (sparse) �ե������ɸ����Ϥ˽Ф��ޤ���. --file ���ץ��������" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "�����ʥޥ��� (`%s' �˶ᤤ)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "̤�ΤΥե������ `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "`%s' �˻��������Ǥ��ޤ���" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "`%s' �� unlink �Ǥ��ޤ���" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "���ޥ�ɤ����ェλ\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "���ޥ�ɤ����ơ����� %d �Ǽ���\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "���ޥ�ɤ������ʥ� %d �ǽ�λ\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "���ޥ�ɤ������ʥ� %d �����\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "���ޥ�ɤ�����������\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "���ޥ�ɤ���λ\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat �ˤϥե�����̾��ɬ��" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "������¿�����ޤ�" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "�ۥ���̾ %s ����Ǥ��ޤ���" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "�ٹ�: -I ���ץ����ϼ���������ޤ��� -- ¿ʬ -j �� -T �ʤΤǤ�?" +#~ msgid "suppress this warning." +#~ msgstr "���ηٹ��å�������ɽ�����ʤ��褦�ˤ��Ƥ�������." diff --git a/po/ko.gmo b/po/ko.gmo index f6102f577a49a12a14eb76235b9afafc37bc7362..1e6a0e07ec92cbf79565ed7155578ac64f74dda9 100644 Binary files a/po/ko.gmo and b/po/ko.gmo differ diff --git a/po/ko.po b/po/ko.po index 431f1235aa14e03464760d5358c8da7af0d83ec6..84d7201c466ddd2a32e54eeab3df95562c24cf73 100644 --- a/po/ko.po +++ b/po/ko.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU tar 1.12\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 1997-05-30 22:55+0900\n" "Last-Translator: Bang Jun-Young <bangjy@nownuri.net>\n" "Language-Team: Korean <ko@li.org>\n" @@ -14,61 +14,61 @@ msgstr "" "Content-Type: text/plain; charset=EUC-KR\n" "Content-Transfer-Encoding: 8-bit\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, fuzzy, c-format msgid "invalid argument %s for %s" msgstr "�������� ��¥ ���� `%s'" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, fuzzy, c-format msgid "ambiguous argument %s for %s" msgstr "��ȣ�� ���� `%s'" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" @@ -77,232 +77,133 @@ msgstr "" "\n" # -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "�� ���� ������ ������ `%s --help' �Ͻʽÿ�.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "�� �� ���� �ý��� ����" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, fuzzy, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +msgid "%s: option '%s' is ambiguous\n" msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, fuzzy, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, fuzzy, c-format -msgid "%s: option `%s' requires an argument\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" +msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `%c%s'\n" +msgid "%s: unrecognized option '--%s'\n" msgstr "" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: illegal option -- %c\n" +msgid "%s: unrecognized option '%c%s'\n" msgstr "" -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" +msgstr "record_size�� �������� ��" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, fuzzy, c-format -msgid "%s: option requires an argument -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: lib/getopt.c:932 lib/getopt.c:950 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, fuzzy, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 #, fuzzy msgid "memory exhausted" msgstr "�� �ٴڳ�" # -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "���� ���丮�� �� �� �����ϴ�" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "" -# -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, fuzzy, c-format -msgid "%s: Cannot %s" -msgstr "%s�� ������ �� �����ϴ�" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "" - -#: lib/paxerror.c:93 -#, fuzzy, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: ��带 %0.4o�� �ٲ� �� �����ϴ�" - -#: lib/paxerror.c:101 -#, fuzzy, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: �����ڸ� uid %d, gid %d�� �ٲ� �� �����ϴ�" - -# -#: lib/paxerror.c:127 -#, fuzzy, c-format -msgid "%s: Cannot hard link to %s" -msgstr "��ũ %s�� ���� �� �����ϴ�" - -# -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" -msgstr[1] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" - -# -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" -msgstr[1] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" - -# -#: lib/paxerror.c:259 -#, fuzzy, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s�� �� �� �����ϴ�" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "" - -#: lib/paxerror.c:284 -#, fuzzy, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: `%s'�� ���� ��ȣ��ũ�� ���� �� �����ϴ�" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: %d ����Ʈ(%d ����Ʈ ��)�� ����ϴ�" -msgstr[1] "%s: %d ����Ʈ(%d ����Ʈ ��)�� ����ϴ�" - -# -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "���� ��ũ�鿡�� �տ� ���� `/'�� ������" - -# -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "���� ��ũ�鿡�� �տ� ���� `/'�� ������" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -316,17 +217,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "" @@ -336,7 +237,7 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -346,40 +247,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -# -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: �� �� ���� ����" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "ǥ���Է�" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "ǥ�����" +msgid "Packaged by %s (%s)\n" +msgstr "" -# -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "���� ���� ������ �� �����ϴ�" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -390,19 +279,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -410,7 +299,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +309,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -430,7 +319,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -440,7 +329,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -450,7 +339,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -461,7 +350,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -472,7 +361,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -484,194 +373,355 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" "<tar-bugs@gnu.ai.mit.edu>�� ���� ������ �ֽʽÿ�.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" +msgstr "" +"\n" +"<tar-bugs@gnu.ai.mit.edu>�� ���� ������ �ֽʽÿ�.\n" + +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +# +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, fuzzy, c-format +msgid "%s: Cannot %s" +msgstr "%s�� ������ �� �����ϴ�" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" msgstr "" +#: lib/paxerror.c:93 +#, fuzzy, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: ��带 %0.4o�� �ٲ� �� �����ϴ�" + +#: lib/paxerror.c:101 +#, fuzzy, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: �����ڸ� uid %d, gid %d�� �ٲ� �� �����ϴ�" + # -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: ���� ������ �Ҵ��� �� �����ϴ�\n" +#: lib/paxerror.c:127 +#, fuzzy, c-format +msgid "%s: Cannot hard link to %s" +msgstr "��ũ %s�� ���� �� �����ϴ�" # -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "���� ������ �Ҵ��� �� �����ϴ�" +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, fuzzy, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" +msgstr[1] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" # -#: rmt/rmt.c:304 +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" +msgstr[1] "%ld ����Ʈ°���� �б� ����, %d ����Ʈ ����, ���� %s" + +# +#: lib/paxerror.c:259 +#, fuzzy, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s�� �� �� �����ϴ�" + +#: lib/paxerror.c:275 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "�� ���� ������ ������ `%s --help' �Ͻʽÿ�.\n" +msgid "%s: Warning: Cannot seek to %s" +msgstr "" + +#: lib/paxerror.c:284 +#, fuzzy, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: `%s'�� ���� ��ȣ��ũ�� ���� �� �����ϴ�" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: %d ����Ʈ(%d ����Ʈ ��)�� ����ϴ�" +msgstr[1] "%s: %d ����Ʈ(%d ����Ʈ ��)�� ����ϴ�" + +# +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "���� ��ũ�鿡�� �տ� ���� `/'�� ������" + +# +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "���� ��ũ�鿡�� �տ� ���� `/'�� ������" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "" -#: rmt/rmt.c:308 +# +#: lib/rtapelib.c:299 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: �� �� ���� ����" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "ǥ���Է�" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "ǥ�����" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -#: rmt/rmt.c:397 -msgid "Seek offset error" +# +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "���� ���� ������ �� �����ϴ�" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" msgstr "" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "�ɼǿ� �������� ��尡 �־���" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "�������� ��¥ ���� `%s'" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "�ɼǿ� �������� �����ڰ� �־���" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "" + +# +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" +msgstr "rmtd: �߸��� eof\n" + +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "record_size�� �������� ��" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +# +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "��ī�̺꿡 ����ġ ���� EOF" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" msgstr "" # -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: �߸��� eof\n" +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s�� �� �� �����ϴ�" -# -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "�߸��� ���� ��" +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" # -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "������� ����" # -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "�̰��� tar ��ī�̺�ó�� ������ �ʽ��ϴ�" # -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "�� ������ ����Ʈ: " # -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 #, fuzzy msgid "Total bytes read" msgstr "�� ������ ����Ʈ: " # -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "�� ������ ����Ʈ: " -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "record_size�� �������� ��" # -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "��ī�̺� �̸��� �־����� �ʾҽ��ϴ�" # -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "ǥ����/��� ��ī�̺긦 ������ �� �����ϴ�" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" # -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "����� ��ī�̺긦 ������ �� �����ϴ�" # -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "�������� ���� �κп��� ���� ������" # -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "������ �ʹ� ���Ƽ� �����մϴ�" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "���ڵ� ũ�� = %d ����" msgstr[1] "���ڵ� ũ�� = %d ����" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "" msgstr[1] "" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "" # -#: src/buffer.c:931 +#: src/buffer.c:978 #, fuzzy, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "���� #%d(%s�� ����)�� �غ��ϰ� ������ ġ����: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "������� ������ �ʿ��� ���� EOF�� ����" # -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "���: ��ī�̺갡 �ҿ����մϴ�" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -683,143 +733,143 @@ msgstr "" " ! ������� �����մϴ�\n" " ? �� ����� �μ��մϴ�\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" # -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "�� ������ �ƴ�; ����.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "" # -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s�� �� ������ ���ӵǾ� ���� �ʽ��ϴ�" # -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s�� �� ������ ���ӵǾ� ���� �ʽ��ϴ�" # -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, fuzzy, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s�� �߸��� ũ���Դϴ� (%ld != %ld + %ld)" # -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "�� ������ ������ ������ϴ�" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, fuzzy, c-format msgid "Archive not labeled to match %s" msgstr "`%s'�� ��ġ�ϵ��� ���� ���� ���� ��ī�̺�" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, fuzzy, c-format msgid "Volume %s does not match %s" msgstr "���� `%s'�� `%s'�� ��ġ���� �ʽ��ϴ�" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" # -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "���� ��谡 �ƴ� �κп��� ��ī�̺� %s�� EOF ����" # -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "%d ����Ʈ(%ld ����Ʈ ��)�� ���� �� �ֽ��ϴ�" msgstr[1] "%d ����Ʈ(%ld ����Ʈ ��)�� ���� �� �ֽ��ϴ�" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 #, fuzzy msgid "Contents differ" msgstr "��尡 �ٸ��ϴ�" # -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "��ī�̺꿡 ����ġ ���� EOF" # -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 #, fuzzy msgid "File type differs" msgstr "ũ�Ⱑ �ٸ��ϴ�" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "��尡 �ٸ��ϴ�" # -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "uid�� �ٸ��ϴ�" # -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "gid�� �ٸ��ϴ�" # -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "���� �ð��� �ٸ��ϴ�" # -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "ũ�Ⱑ �ٸ��ϴ�" # -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "%s�� ������� ����" # -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "��ȣ��ũ�� �ٸ��ϴ�" # -#: src/compare.c:322 +#: src/compare.c:321 #, fuzzy msgid "Device number differs" msgstr "��ġ ��ȣ�� �ٲ����" @@ -845,34 +895,34 @@ msgid "Verification may fail to locate original files." msgstr "" # -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "���� ����: %d���� �������� ����� �����" msgstr[1] "���� ����: %d���� �������� ����� �����" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "" @@ -894,7 +944,7 @@ msgid "%s: link name is too long; not dumped" msgstr "%s: ������� �ʾҽ��ϴ�; �������� ����" # -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -902,470 +952,471 @@ msgstr[0] "%s: msgstr[1] "%s: ������ %d ����Ʈ �پ��, (�Ϳ�!)" # -#: src/create.c:1177 +#: src/create.c:1175 #, fuzzy, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: �ٸ� ���Ͻý��� �� ����; �������� ����" # -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 #, fuzzy msgid "contents not dumped" msgstr " (�ھ� ��µ�)" # -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: �� �� ���� ���� Ÿ��; ������ ���õ�" # -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " %s�� ��ũ\n" # -#: src/create.c:1535 +#: src/create.c:1543 #, fuzzy, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: ������� �ʾҽ��ϴ�; �������� ����" # -#: src/create.c:1543 +#: src/create.c:1552 #, fuzzy, c-format msgid "%s: file is the archive; not dumped" msgstr "%s�� ��ī�̺��Դϴ�; �������� ����" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "" # -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "���� ����� �dz� ��" # -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "��ī�̺꿡�� ����� �κ��� ������" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "���ӵǾ� �ִ� ������ �Ϲ� ���Ϸ� ������" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "��ȣ ��ũ�� �ϵ� ��ũ�� �����ϰ� �ֽ��ϴ�" -# -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "%s�� �д� ��\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, fuzzy, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "`%s'�� ������ �� �����ϴ� -- �� ������ �ٸ� ������ ���ӵǾ� �ֽ��ϴ�" # -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "��ī�̺� ���Ͽ� ����ġ ���� EOF" # -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: �� �� ���� ���� Ÿ��; ������ ���õ�" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: �� ������ ����� �� �������ϴ�" # -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "%s�� %s�� �̸��� �ٲ� �� �����ϴ�" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "" - # -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s ���丮�� �̸��� �ٲ�����ϴ�" # -#: src/incremen.c:460 +#: src/incremen.c:494 #, fuzzy, c-format msgid "%s: Directory has been renamed" msgstr "%s ���丮�� �̸��� �ٲ�����ϴ�" # -#: src/incremen.c:505 +#: src/incremen.c:539 #, fuzzy, c-format msgid "%s: Directory is new" msgstr "%s�� �� ���丮�Դϴ�" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "�ɼǿ� �������� ��尡 �־���" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" # -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 #, fuzzy msgid "Read error in snapshot file" msgstr "%s���� �б� ����" # -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "��ī�̺� ���Ͽ� ����ġ ���� EOF" # -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 #, fuzzy msgid "Unexpected field value in snapshot file" msgstr "��ī�̺� ���Ͽ� ����ġ ���� EOF" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" # -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "%s�� ���丮�� �ٲ� �� �����ϴ�" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "" # -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: %s�� ����\n" # -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, fuzzy, c-format msgid "%s: Cannot remove" msgstr "%s�� ���� �� �����ϴ�" # -#: src/list.c:113 +#: src/list.c:115 #, fuzzy, c-format msgid "%s: Omitting" msgstr "%s�� ����" -#: src/list.c:131 +#: src/list.c:133 #, fuzzy, c-format msgid "block %s: ** Block of NULs **\n" msgstr "���� %10ld: ** NUL�� �� ���� **\n" -#: src/list.c:155 +#: src/list.c:159 #, fuzzy, c-format msgid "block %s: ** End of File **\n" msgstr "���� %10ld: ** ������ �� **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, fuzzy, c-format msgid "block %s: " msgstr "���� %10ld: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" # -#: src/list.c:803 +#: src/list.c:821 #, fuzzy, c-format msgid "Archive base-256 value is out of %s range" msgstr "�� ������ ������ ������ϴ�" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "" # -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " %s�� ��ũ\n" # -#: src/list.c:1234 +#: src/list.c:1253 #, fuzzy, c-format msgid " unknown file type %s\n" msgstr " �� �� ���� ���� Ÿ�� `%c'\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" # -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--���� ���--\n" # -#: src/list.c:1268 +#: src/list.c:1287 #, fuzzy, c-format msgid "--Continued at byte %s--\n" msgstr "--%ld ����Ʈ °�� ��ӵ�--\n" # -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "���丮�� ����� ��:" # -#: src/misc.c:456 +#: src/misc.c:502 #, fuzzy, c-format msgid "Renaming %s to %s\n" msgstr "%s�� %s�� �̸� �ٲ�" # -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, fuzzy, c-format msgid "%s: Cannot rename to %s" msgstr "%s�� %s�� �̸��� �ٲ� �� �����ϴ�" # -#: src/misc.c:488 +#: src/misc.c:534 #, fuzzy, c-format msgid "Renaming %s back to %s\n" msgstr "%s�� %s�� �̸� �ٲ�" # -#: src/misc.c:615 +#: src/misc.c:669 #, fuzzy msgid "Cannot save working directory" msgstr "%s�� ���丮�� �ٲ� �� �����ϴ�" # -#: src/misc.c:621 +#: src/misc.c:675 #, fuzzy msgid "Cannot change working directory" msgstr "%s�� ���丮�� �ٲ� �� �����ϴ�" -#: src/misc.c:711 -msgid "child process" +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" msgstr "" -#: src/misc.c:720 -msgid "interprocess channel" +# +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s ���丮�� �̸��� �ٲ�����ϴ�" + +#: src/misc.c:795 +msgid "child process" msgstr "" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/misc.c:804 +msgid "interprocess channel" msgstr "" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" # -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: ��ī�̺꿡 ����" # -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: ��ī�̺꿡 ����" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "`-%s'�� `-%s' �ɼ��� ��� ǥ�� �Է��� �ʿ��մϴ�" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "�������� ��¥ ���� `%s'" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1376,7 +1427,7 @@ msgid "" " tar -xf archive.tar # Extract all files from archive.tar.\n" msgstr "" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1388,88 +1439,81 @@ msgid "" " never, simple always make simple backups\n" msgstr "" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" # -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "��ī�̺꿡 ����ġ ���� EOF" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1477,583 +1521,572 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" # -#: src/tar.c:432 +#: src/tar.c:452 #, fuzzy msgid "remove files after adding them to the archive" msgstr "��ī�̺꿡 �ִ� �̸��鿡�� ����̺� �������� ������" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" # -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "����-���� ��ī�̺긦 ������ �� �����ϴ�" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" # -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "ǥ���Է¿� ���� ��ī�̺�" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "���� ���� �ɼ�" -#: src/tar.c:595 +#: src/tar.c:615 #, fuzzy msgid "use archive suffix to determine the compression program" msgstr "���� ���α��� �� �� �����ϴ�" -#: src/tar.c:597 +#: src/tar.c:617 #, fuzzy msgid "do not use archive suffix to determine the compression program" msgstr "���� ���α��� �� �� �����ϴ�" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "" - -# -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s�� ��ī�̺��Դϴ�; �������� ����" - -# -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s�� ��ī�̺��Դϴ�; �������� ����" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" # -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "%s�� ���丮�� �ٲ� �� �����ϴ�" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" # -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "���� ��ũ�鿡�� �տ� ���� `/'�� ������" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "���� `%s'�� `%s'�� ��ġ���� �ʽ��ϴ�" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2061,227 +2094,242 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" # -#: src/tar.c:741 +#: src/tar.c:761 #, fuzzy msgid "ask for confirmation for every action" msgstr "������� Ȯ���� ���� �� �����ϴ�" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "`-Acdtrux' �ɼ� �� �ϳ� �̻��� �����ϸ� �� �˴ϴ�" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "���� ���� �ɼ�" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr "�� �� ���� ���� `%s'" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" +msgstr "�ɼǿ� �������� �����ڰ� �־���" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "�ɼǿ� �������� ��尡 �־���" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "" -#: src/tar.c:1796 +#: src/tar.c:1916 #, fuzzy msgid "Invalid owner" msgstr "�ɼǿ� �������� �����ڰ� �־���" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 #, fuzzy msgid "Invalid record size" msgstr "record_size�� �������� ��" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "���ڵ� ũ��� %d�� ����� �Ǿ�� �մϴ�." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, fuzzy, c-format msgid "Unknown density: `%c'" msgstr "�� �� ���� ���� `%s'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "`-[0-7][lmh]' �ɼ��� �� tar���� �������� �ʽ��ϴ�" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "������ �ɼ� `%c'�� �μ��� �ʿ��մϴ�." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "���� ��ī�̺� ������ `-M' �ɼ��� �ʿ��մϴ�" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2289,51 +2337,52 @@ msgstr[0] "" msgstr[1] "" # -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "����-���� ��ī�̺긦 ������ �� �����ϴ�" # -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "����� ��ī�̺긦 ������ �� �����ϴ�" # -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "����� ����-���� ��ī�̺긦 ����� �� �����ϴ�" # -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "����� ��ī�̺긦 ������ �� �����ϴ�" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "`-Aru' �ɼ��� `-f -'�� ���ÿ� �� �� �����ϴ�" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "`-Acdtrux' �ɼǵ� �� �ϳ��� �����ؾ� �մϴ�" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2346,79 +2395,83 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: ������ %d ����Ʈ �پ��, (�Ϳ�!)" msgstr[1] "%s: ������ %d ����Ʈ �پ��, (�Ϳ�!)" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2461,235 +2514,268 @@ msgstr " msgid "Read checkpoint %u" msgstr "�˻����� %d�� ����" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "GNU tar ���� ������ ������ ������ �����մϴ�.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "���� ���� �ɼ�" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"����: %s [�ɼ�]...\n" +"\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "%s: ���� �ð��� ���� �ð��� �ٲ� �� �����ϴ�" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "�������� ��¥ ���� `%s'" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "�� �� ���� �ý��� ����" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" # -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "%s�� �� �� �����ϴ�" # -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "%s�� ������ �� �����ϴ�" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "�� �� ���� ���� `%s'" # -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s�� stat�� �� �����ϴ�" -#: tests/genfile.c:805 +# +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s�� �� �� �����ϴ�" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +# +#~ msgid "Reading %s\n" +#~ msgstr "%s�� �д� ��\n" + +# +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: ���� ������ �Ҵ��� �� �����ϴ�\n" + +# +#~ msgid "Cannot allocate buffer space" +#~ msgstr "���� ������ �Ҵ��� �� �����ϴ�" + +# +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "�� ���� ������ ������ `%s --help' �Ͻʽÿ�.\n" + +# +#~ msgid "Premature end of file" +#~ msgstr "�߸��� ���� ��" #~ msgid "Cannot close file #%d" #~ msgstr "���� #%d�� ���� �� �����ϴ�" diff --git a/po/ky.gmo b/po/ky.gmo index 74b9bb036a78cfaf8edcd17130886435bde23d42..e53575d1132e0a05e429d7d250d12a2987d8f025 100644 Binary files a/po/ky.gmo and b/po/ky.gmo differ diff --git a/po/ky.po b/po/ky.po index 791270fed836bde3b317641fa48d1668b505d81b..1ce343efb3fd55fbc2152b900df9de5480c9e6f6 100644 --- a/po/ky.po +++ b/po/ky.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.18\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2007-09-01 01:06+0100\n" "Last-Translator: Azilet Beishenaliev <aziletb@gmail.com>\n" "Language-Team: Kirghiz <i18n-team-ky-kyrgyz@lists.sourceforge.net>\n" @@ -19,48 +19,48 @@ msgstr "" "X-Poedit-Country: KYRGYZSTAN\n" "X-Poedit-SourceCharset: utf-8\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "%2$s үчүн %1$s аргументи жарабайт" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "%2$s үчүн %1$s аргументи так эмес" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Жарактуу аргументтер мындай:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s, %s'тен кичине же барабар" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси болуш керек" # положительный кыргызча кандайле? -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси оң болуш керек" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: ARGP_HELP_FMT параметри белгисиз" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "ARGP_HELP_FMT параметри бузук: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -69,239 +69,144 @@ msgstr "" "жараша жазылса, кыска жазылган опциялар менен да сөзсүз түрдө же тилекке " "жараша жазылат." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Колдонулушу:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " же: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [ОПЦИЯ...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Толук маалымат үчүн `%s --help' же `%s --usage' деп жазгыла.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Каталарды бул жерге билдиргиле %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Белгисиз система катасы" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "Бул жардам тизмесин көрсөтөт" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "Колдонуу жөнүндө кыска маалымат көрсөтөт" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "АТЫ" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "Программага ат кой" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "СЕК" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "СЕК секунда күтүңүз (алдынала - 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "программанын версиясын көрсөтөт" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(ПРОГРАММАДА КАТА) Версиясы белгисиз!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Аргументтердин саны көп\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(ПРОГРАММАДА КАТА) Опция билиниш керек болчу!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: `%s' опциясы так эмес\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: `--%s' опциясы менен аргумент колдонулбайт\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: `%c%s' опциясы менен аргумент колдонулбайт\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: `%s' опциясы менен аргумент болуш керек\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: бул опция түшүнүксүз `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: бул опция түшүнүксүз `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: мындай опция колдонулбайт -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: жараксыз опция -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: бул опциянын аргументи болуш керек -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: `-W %s' опциясы так эмес\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' опциясы менен аргумент колдонулбайт\n" # Памятты эмне дейбиз яя? ;) -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "Память жетпей калды" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Учурдагы папка алмаштырылбайтат" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Учурдагы папка сакталбайтат" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: %s кылалбайтат" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Эскертүү: %s кылалбайтат" - -# mode: права доступа, муну укук абалы деп койдум -# жакшыраак вариант болсо алмаштырыш керек -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Укук абалын %s түрүнө алмаштыралбай калды" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Ээлик uid = %lu, gid = %lu деп алмашпай койду" - -# hard link'ти түз шилтеме дебатам -# symbolic болсо символикалык болот -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: %s'ке түз шилтеме болбойтат" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%1$s: %3$lu байт окуу учурунда %2$s адресинде ката байт окуду" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -"%1$s: Эскертүү: %3$lu байт окуу учурунда %2$s адресинде ката байт окуду" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: %s орунуна баралбай жатат" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Эскертүү: %s орунуна баралбай жатат" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: %s'ке символикалык шилтеме жасалбайтат" - -# %s: жалпы %2$lu байттан %1$lu байт гана жазылды -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%1$s: жалпы %3$lu байттан %2$lu байт гана жазылды" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Мүчө аттарынын башындагы `%s' алынып салды" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Түз шилтемелер көрсөтүп турган файлдардын башындагы `%s' алынып салды" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Бош болгон мүчө аттын ордуна `.' коюлду" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Түз шилтеме көрсөтүп турган бош файлдын ордуна `.' коюлду" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -315,17 +220,17 @@ msgstr "Түз шилтеме көрсөтүп турган бош файлды #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "„" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "“" @@ -336,7 +241,7 @@ msgstr "“" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[оО]" @@ -347,38 +252,28 @@ msgstr "^[оО]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[жЖ]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: сервис жок" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Алыстагы команда процессору иштетилген жок" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -389,19 +284,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -409,7 +304,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -419,7 +314,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -429,7 +324,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -439,7 +334,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -449,7 +344,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -460,7 +355,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -471,7 +366,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -483,179 +378,329 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Каталарды бул жерге билдиргиле %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Каталарды бул жерге билдиргиле <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -# Input string дегендин ордуна жакшы нерсе билсеңер алмаштырсаңар болот -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Жазылган сүйлөм өтө узун" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: %s кылалбайтат" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Эскертүү: %s кылалбайтат" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Номердин жазуусунда ката бар" +# mode: права доступа, муну укук абалы деп койдум +# жакшыраак вариант болсо алмаштырыш керек +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Укук абалын %s түрүнө алмаштыралбай калды" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Буфер үчүн жер алыналган жок\n" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Ээлик uid = %lu, gid = %lu деп алмашпай койду" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr " Буфер үчүн жер алыналган жок" +# hard link'ти түз шилтеме дебатам +# symbolic болсо символикалык болот +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: %s'ке түз шилтеме болбойтат" -#: rmt/rmt.c:304 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Толук маалымат үчүн `%s --help' деп жазгыла.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%1$s: %3$lu байт окуу учурунда %2$s адресинде ката байт окуду" -#: rmt/rmt.c:308 +#: lib/paxerror.c:192 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +"%1$s: Эскертүү: %3$lu байт окуу учурунда %2$s адресинде ката байт окуду" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: %s орунуна баралбай жатат" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Эскертүү: %s орунуна баралбай жатат" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: %s'ке символикалык шилтеме жасалбайтат" + +# %s: жалпы %2$lu байттан %1$lu байт гана жазылды +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%1$s: жалпы %3$lu байттан %2$lu байт гана жазылды" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Мүчө аттарынын башындагы `%s' алынып салды" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Түз шилтемелер көрсөтүп турган файлдардын башындагы `%s' алынып салды" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Бош болгон мүчө аттын ордуна `.' коюлду" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Түз шилтеме көрсөтүп турган бош файлдын ордуна `.' коюлду" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: сервис жок" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Колдонулушу: %s [ОПЦИЯ]\n" -"Башка процесстен командалрды алып \"магниттик лентада сактоочту\" колдон.\n" -"\n" -" --version Версия маалыматын көрсөт.\n" -" --help Бул маалыматты көрсөт.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Издөө даражасы туура эмес" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Алыстагы команда процессору иштетилген жок" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Издөө жолу диапазондун тышында" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Опцияда жарабаган укук абалы берилди" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Жараксыз көлөм: %s" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Издөө даражасы диапазондун тышында" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Издөө жолу диапазондун тышында" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Лентанын узундугу жараксыз" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Издөө даражасы диапазондун тышында" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Файлдын соңу эрте келди\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Файлдын соңу эрте келди" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Негизги иштөө абалы:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Архивде күтүлбөгөн жерде файлдын соңу бар" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "N" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "ФАЙЛ" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "`%s' ачылбай жатат" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "аргументтердин саны көп" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Туура эмес команда" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Бул tar-архиви эмес окшойт" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Жазылган жалпы байт" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Алынган жалпы байт" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Өчүрүлгөн жалпы байт: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "record_size мааниси жарабайт" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Архивдин аты берилген жок" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Архивдин stdin/stdout текшерүүсү болбой жатат" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архив кысыштырылган абалда. %s опциясын колдонгула" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Кысыштырылган архивдерди жаңырталбай калды" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Лентанын башына келди, иш бүттү" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Өтө көп ката бар, иш бүттү" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Маалыматтын көлөмү = %lu блок" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Архивде түз жайлашпаган блок бар (%lu байт)" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Архивдеги файл өчпөй калды; архив ачылбаса -i деп колдонгула" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek маалыматтын чегинде токтогон жок" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: жараксыз том номери бар" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Томдун номери батпай калды" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "%2$s үчүн %1$d-томду даярдап Enter'ди басыңыз: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Колдонуучудан жооп күтүбатканда файлдын соңу келип калды" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ЭСКЕРТҮҮ: Архив толук эмес" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -666,125 +711,125 @@ msgstr "" " q\t\ttar программасынын ишин бүтүр\n" "y же Ввод\t\tИшти улант\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Команда строкасын ач\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Бул тизмени жаз\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Жаңы том жок; иш бүттү.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Файлдын аты берилген жок. Кайра жазып көргүлө.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Туура эмес ввод. Жардам үчүн ? жазгыла.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "%s командасы аткарылбай калды" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s бул томдо уланса керек: башкы-маалыматта аты кыскартылыптыр" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s мунун бул томдо уландысы жок" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s көлөмү туура эмес (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Бул том иретте эмес" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Архивдин тамгасы %s менен келишпей жатат" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "%s тому %s менен келишпей жатат" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" "%s: файлдын аты көп-томдук GNU башкы-маалымат үчүн өтө узун, кыскартылды" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "rmtlseek маалыматтын чегинде токтогон жок" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "%2$lu байттан %1$lu гана окулду" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Мазмундары окшобойт" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Архивде күтүлбөгөн жерде файлдын соңу бар" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Файл түрү окшошпойт" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Укук абалдары окшошпойт" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid окшошпойт" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid окшошпойт" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Алмаштыруу убактылары окшошпойт" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Көлөмү окшошпойт" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "%s жака шилтенген эмес" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Символикалык шилтеме окшошпойт" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Аспап номери окшошпойт" @@ -806,33 +851,33 @@ msgstr "Архивдин ичинде префикстери алынган фа msgid "Verification may fail to locate original files." msgstr "Текшерүү учурунда алгачкы файлдар табылбай калышы мүмкүн." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "ТЕКШЕРҮҮ КАТАСЫ: %d жараксыз башкы маалымат табылды" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "%s болгон жерде нөлдүк блок бар" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: мунун ичинде %s деген кэш-папка белгиси бар; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "%s мааниси %s диапазонунун тышында %s..%s; ордуна %s коюлат" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "%s мааниси %s диапазонунун тышында %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Терс сегиздик системасында башкы маалыматтар даярдалууда" @@ -851,292 +896,278 @@ msgstr "%s: файлдын аты өтө узун (бөлүнбөйт); кошу msgid "%s: link name is too long; not dumped" msgstr "%s: шилтеменин аты өтө узун; кошулбайт" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Файл %s байтка азайды; нөлдөр менен толтурулат" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: файл башка файл-системасында; кошулбайт" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "астындагылар кошулган жок" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Файлдын түрү белгисиз; файл каралбайт" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "%s жака шилтемелер жок.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: файл алмашкан жок; кошулбайт" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: файл архив экен; кошулбайт" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Файл окулганча өчүрүлүп кетти" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "папка кошулган жок" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файлды окуу учурунда файл алмашты" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: сокет каралбайт" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: door каралбайт" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Эмики башкы-маалыматка өттү" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Архивде башкы-маалымат болбогондор өчүрүлөт" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: %s убакыт тамгасы өтө эски" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: %s убакыт тамгасы %s сек. келечекте" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Папка ачыбатканда күтүлбөгөн нерселер болду" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Папканын статусу билинелектен мурун аты алмашып кетти" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Удаа болгон файлдар жөнөкөй файл катары чыгарылып жатат" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Символикалык шилтемелерди түз шилтеме катары чыгарууга аракет кылынат" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "%s жактан окуп жатат\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Чыгарылган жок -- файл башка томдон уланып келиптир" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Башкы-маалымат узун" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары чыгарылды" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Азыркы %s жаңыраак же бирдей" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Бул файлдын резерв копиясы алыналбай калды" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "%s файлы %s деп алмаштыралбай калды" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Оңолбогон ката: иш бүттү " - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Папканын эски аты %s эле" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Папка алмаштырылды" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Папка жаңы" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Жараксыз убакыт тамгасы" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Алмашуу убагы туура эмес (секундалары)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Алмашуу убагы туура эмес (нано-секундалары)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Аспаптын номери жараксыз " -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Inode номери жараксыз" # фиелд, снэпшот дегендер кандай болот? -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Снэпшот файлды окубатканда ото узун поле чыкты" # snapshot? -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Снэпшот файлды окубатканда ката болду" # snapshot? -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Снэпшот файлда күтүлбөгөн жерде файлдын соңу (EOF) бар" # фиелд кандай болот? snapshot? -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Снэпшот файлда күтүлбөгөн поле(фиелд) бар" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Записьтерди бөлүүчү символ жок" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Файлдын форматы туура эмес" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Форматтын бул версиясы иштетиле албайт: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок %#3o келди" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Кошулуучу папка бузук: 'X' копиялары бар" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Кошулуучу папка бузук: 'R' менен берилген ат бош" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Кошулуучу папка бузук: 'T'дан мурун 'R' жок" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Кошулуучу папка бузук: 'T' менен берилген ат бош" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок датанын соңу келди" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Кошулуучу папка бузук: 'X' эч колдонулган жок" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "%s шаблонун колдонуп убактылуу жаңы папка ачылган жок" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Папка өчүрүлгөн жок: stat иштебей койду" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: бул папка башка аспапта жайгашкан: өчүрүлбөйт" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: %s өчүрүлүп жатат\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Өчүрүлбөй жатат" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Муну аттады" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** нөлдөр болгон блок **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Файлдын соңу **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "блок %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Башкы-маалыматта сан түрүндө %s болотурган жерде бош жерлер бар" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1144,147 +1175,164 @@ msgstr "" "экилик системадагы терси алынды" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "" "Архивдин сегиздик системадагы мааниси болгон %.*s %s диапазонунун тышында" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Архивде эски түрдөгү base-64 башкы-маалымат бар" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Архивдеги base-64 түрүндөгү %s сөзү %s диапазонунун тышында" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Архивдин base-256 мааниси %s диапазонунун тышында" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "" "Архивдин ичинде %.*s бар, алардын ордунда сан түрүндө %s болушу керек эле" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Архивдин %s мааниси %s түрүнүн %s..%s диапазонунда эмес" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " %s жака шилтеме\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " белгисиз файл түрү %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Узун шилтеме--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Узун ат--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Томдун башкы-маалыматы--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--%s-байттан баштап уланды--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Жаңы папка ачылыбатат:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "%s'тин атын %s деп алмаштырды\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Аты %s деп алмаштыралбай калды" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s'тин атын кайра %s деп алмаштырды\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Учурдагы папка сакталбайтат" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Учурдагы папка алмаштырылбайтат" +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Файл окулганча өчүрүлүп кетти" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Файл окулганча өчүрүлүп кетти" + # орусчада дочерный процесс, бир процесс өз ичинен жаңы бир # процесс жаратканда ошол чайлд процесс болот. Биз эмне дейбиз? # Мен туулган процесс дейм. -#: src/misc.c:711 +#: src/misc.c:795 msgid "child process" msgstr "туулган процесс" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "процесс-аралык канал" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Файлдын аттарында уйкаштарды издөө үчүн колдонулган тамгалар бар." -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" "Уйкаштарды издөө үчүн --wildcards опциясын колдонуңуз, же --no-wildcards" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "опциясы менен бул эскертүүнү көрсөтпөс кыл." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Архивде табылган жок" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Керектүү нерселер архивде табылган жок" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "`-%s' жана `-%s' опцияларына стандарт кирүү(input) керек" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Архивдин форматы жарабайт" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Бул форматтагы архив үчүн жарабаган GNU өзгөчөлүктөрү суралууда" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1292,7 +1340,7 @@ msgstr "" "Ковычкалардын түрү белгисиз - `%s'. Тизмени көрүүгө `%s --quoting-" "style=help' жазгыла." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1314,7 +1362,7 @@ msgstr "" " tar -xf archive.tar # Аты archive.tar болгон архивдин ичиндеги " "баардык файлдарды чыгарат.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1336,89 +1384,82 @@ msgstr "" "жөнөкөй вариант\n" " never, simple ар дайым жөнөкөй резерв копиялар сакталат\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Негизги иштөө абалы:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "архивдин ичиндеги файлдарды тизмелейт" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "архивден файлдарды чыгарат" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "жаңы архив жаратат" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "архив менен файл система айырмаларын табат" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "файлдарды архивдин аягына кошот" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "архивдин ичиндегилерден жаңы болгон файлдарды гана кошот" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "tar файлын архивге кошот" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "архивден өчүрөт (магниттик ленталарда жарабайт!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "архивдик томдун атын текшерет анан бүтүрөт" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Иштөөнүн модификаторлору:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "кеңири жайлашкан файлдарды эфектүү түрдө колго ал" # major, minor -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "БАШКЫ[.КИЙИНКИ]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" "кеңири жайлаштыруу форматынын версиясын тандайт (--sparce опциясы кошулган " "болот)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "эски GNU форматындагы резервдөө методун колго ал" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "ФАЙЛ" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "жаңы GNU форматындагы резервдөө методун колго ал" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "окулбаган файлдар келгенде нөл болбогон статус менен ишти бүтүрбө" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "N" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1430,119 +1471,123 @@ msgstr "" "файлдардын аттары команда строкасында же -T опциясы менен берилгенде гана " "жарактуу болот. N-дин мааниси алдынала 1ге барабар." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "Архивдин ичиндегилерди издесе болот" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "Архивдин ичиндегилерди издесе болот" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "үстүнө көчүрүү контролу:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "архивди сактагандан кийин текшерүүгө аракет кылат" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "файлдарды архивге кошулгандан кийин өчүрөт" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "файлдарды чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрбө" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "мурун бар болгон файл архивдеги копиясындан жаңы болсо аны алмаштырба" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрөт" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "бар болгон файлдын ордуна көчүрүүдөн мурун ал файлды өчүрөт" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "папканы чыгарардан мурун баардык иерархияларды өчүрөт" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "мурун бар болгон папкалардын мета-касиеттерин корго" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "чыгаруу учурунда бар болгон папкалардын мета-даталардын үстүнө жазылат " "(алдынала тандалат)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Чыгаруу() жолун танда:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "файлдарды стандарт чыгарууга (output) жөнөт" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "КОМАНДА" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" "архивден чыккан файлдарды канал(pipe) жолу менен башка программага жөнөтөт" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "туулган процесстердин бүтүрүү кодторуна караба" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "туулган процесстердин нөл болбогон бүтүрүү кодторун ката деп ишке ал" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Файлдын өзгөчөлүктөрүн колго алууда:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "кошулган файлдардын ээсин АТЫ деп кой" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "кошулган файлдардын группасын АТЫ деп кой" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "ДАТА-ЖЕ-ФАЙЛ" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "кошулган файлдардын алмашуу убактысын ДАТА-ЖЕ-ФАЙЛ дан ал" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "УКУК" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "кошулган файлдардын укук абалын УКУК деп кой" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "МЕТОД" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1552,28 +1597,32 @@ msgstr "" "сакта (МЕТОД='replace'; алдынала тандалат) же колдонуу убакыттарын " "алмашырбай туруп сактап кал (МЕТОД='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "файлдын алмаштыруу убактын чыгарбайт" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "ээсин ошол бойдон калтырып файлдарды чыгарууга аракет кылат" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "файлдарды өзүңдүкү катары чыгарат" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "ээси/группа аттарын ардайым номерлер менен көрсөтөт" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "файлдын уруксат маалыматын да чыгар (суперколдонуучуга алдынала тандалат)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1581,15 +1630,15 @@ msgstr "" "архивден уруксат маалыматын чыгарыбатканда колдонуучунун umask'ын колдон " "(жөн колдонуучуларга алдынала тандлат)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "чыгатурган файлдарды архивдегидей кылып сортто" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "-p жана -s менен бирдей" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1597,141 +1646,141 @@ msgstr "" "чыгарылган папкалардын колдонуу убакыттарын жана уруксаттарын чыгаруу иши " "бүткөндөн кийин коёт" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "--delay-directory-restore опциясынын эффектин токтотот" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Аспапты тандоо жана ага өтүү:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "АРХИВ" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "АРХИВ деген архивдик файлды же аспапты колдонот" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "архивдик файлда эки точка болушуна карабастан ал локалдуу" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "rmt'нин ордуна КОМАНДА колдонулат" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "rsh'тын ордуна КОМАНДА колдонулат" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "драйв жана анын тыгыздыгын белгиле" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "көп томдуу архивди жарат/тизмеле/чыгар" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "N x 1024 байт жазгандан кийин лентаны алмаштыр" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "ар лентанын аягында скриптти иштет (-M опциясы колдонулат)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "ФАЙЛ файлынын ичиндеги том номерин колдон/жаңырт" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Аспаптын блоктолушу:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "БЛОК" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "ар маалыматка БЛОК x 512 байт түшөт" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "Ар маалыматка N байт түшөт, 512 көбөйтүндүсү" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "архивдеги нөлдүү блокторду өтүп кетет (EOF жөнүндө)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "окубатканда кайрадан блокторго бөлүп чык (4.2BSD каналдары үчүн)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Архивдин форматын тандоо:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "ФОРМАТ" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "тандалган форматта архив жаратат" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "ФОРМАТ булардан бирөө болот:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "эски V7 tar форматы" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "tar <= 1.12 версиясында болгондой GNU форматы" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x форматы" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) форматы" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) форматы" # pax деген gid,atime сияктуу нерселер -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "pax менен бирдей" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "--format=v7 менен бирдей" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "--format=posix менен бирдей" # keyword эмне болот? -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "ачкыч-сөз[[:]=мааниси][,ачкыч-сөз[[:]=мааниси]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "контролдоо үчүн pax ачкыч сөздөрү" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "ТЕКСТ" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1739,105 +1788,78 @@ msgstr "" "том аты ТЕКСТ болгон архив жарат; тизмелөө/чыгаруу учурунда, ТЕКСТ дегенди " "том атынын глоб шаблону катары колдон" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Бирбирине келишпеген кысыштыруу опциялары берилди" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "архивди bzip2 менен ишке ал" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "архивди gzip менен ишке ал" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "архивди compress менен ишке ал" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "архивди gzip менен ишке ал" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "архивди gzip менен ишке ал" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "архивди gzip менен ишке ал" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "ПРОГ" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "ПРОГ менен ишке ал (-d опциясы болушу керек)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Локалдуу файлдарды тандоо:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "ФАЙЛды архивге кош (файлдын аты тире менен баштаган учурда пайдалуу)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "ПАПКА" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "ПАПКА папкасына өт" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "чыгарылатурган же жаңы ачылатурган файлдарды АТЫ деген файлдан кара" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T опциясы нөл менен бүткөн аттарды окуйт, -C опциясы өчүрүлөт" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "-T менен алынган файлдардын аттарындагы ковычкалар өчүрүлөт (алдынала " "тандалат)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "-T менен алынган файлдардын аттарындагы ковычкалар калаберет" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "ШАБЛОН" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "ШАБЛОН менен уйкаш файлдар ишке алынбайт" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "ФАЙЛда тизмеленген шаблондор менен уйкаш файлдар ишке алынбайт" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1845,92 +1867,96 @@ msgstr "" "CACHEDIR.TAG файлы болгон папкалардын астындагылары тэг файлдан тышкарысы " "кошулбайт" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG файлы болгон папкалардын астындагыларынын баары кошулбайт" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG файлы болгон папкалар кошулбайт" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "ФАЙЛ файлы болгон папкалардын астындагылары ФАЙЛ файлындан тышкарысы " "кошулбайт" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "ФАЙЛ файлы болгон папкалардын астындагыларынын баары кошулбайт" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "ФАЙЛ файлы болгон папкалар кошулбайт" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "папкалардын тереңине кирип кетүүнү токтот" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "архивди жасабатканда локалдуу файл системасында кал" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "папкалардын тереңине кирет (алдынала тандалган)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "файл аттарынын башындагы '/'терди өчүрбө" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот" -#: src/tar.c:668 +#: src/tar.c:686 #, fuzzy msgid "follow hard links; archive and dump the files they refer to" msgstr "" "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "МҮЧӨНҮН-АТЫ" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "архивдеги МҮЧӨНҮН-АТЫ мүчөсүнөн башта" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "ДАТА-ЖЕ-ФАЙЛ'дан жаңы болгон файлдарды гана сакта" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "датасы алмашканда гана дата жана убактысын салыштыр" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "өчүрөрдөн мурун копиясын сактап кал, CONTROL версиясын танда" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "STRING" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1938,93 +1964,102 @@ msgstr "" "өчүрөрдөн мурун копиясын сактап калат, жалпы колдонулган суфикс кошулат (бул " "суфикс SIMPLE_BACKUP_SUFFIX жолу менен алмаштырылбаган болсо '~' болот)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Файлдын атынын алмашуулары:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "чыгаруу учурунда файл аттарынын башындагы N компонентти алып салат" # выражение кыргызча кандай? СҮЙЛӨМ башка жерде да бар -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "СҮЙЛӨМ" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "файлдардын аттарын алмаштыруу үчүн sed replace EXPRESSION колдонгула" # inclusion, exclusion - Kyrgyz equiv? -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "Файлдын атына уйкаштыруу опциялары (бардык шаблондорго тиешелүү):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "тамгалардын чоң-кичинесине каралбайт" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "шаблондор файлдын атынын башталышы менен уйкаштырылат" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" "шаблондор `/' символунан кийин келген ар жерде уйкашына каралат (алдынала " "тандалган)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "уйкаштырууда тамгалардын чоң-кичинесине каралат (алдынала тандалган)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "шаблондор колдонулат (иштен алынбаган файлдарга алдынала тандалат)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "кандай жазылса ошондой колдонулат" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "шаблондор `/' символун издебейт" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "шаблондор `/' символун издейт (алдынала тандалган)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Маалыматтандыруу:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "ишке алынган файлдарды кеңири маалыматы менен тизмеле" +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "үстүнө көчүрүү контролу:" + # Ушу 'record' сөзүнө жакшы котормо табалбай койдум # 'маалымат' деп жазыбаттым эле, бул жерде келишпей калаткен -#: src/tar.c:722 +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "ар N записьтен кийин маалымат берип турат (алдынала 10 болот)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "баардык шилтемелер кошулбай калса билдирүү жазып чыгар" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2036,27 +2071,27 @@ msgstr "" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 жана SIGUSR2; SIG префикси жазылбаган " "аттарын да колдонсо болот." -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "файлды алмаштыруу датасын UTC түрүндө көрсөт" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "чыккан кеңири маалыматты ФАЙЛ файлына жибер" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "ар билдирүүдө архивдин ичиндеги блок номерин көрсөт" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "ар ишти аткарууга макулдук сурап тур" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "tar'да алдынала коюлган опцияларды көрсөтөт" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2064,33 +2099,33 @@ msgstr "" "тизмелөө же чыгаруу учурунда издөө критериясына жатпаган папкаларды да " "тизмелейт" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "алмаштыруудан кийин файлдын же архивдин аттарын көрсөтөт" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "СТИЛЬ" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "аттарга ковычка кошуу стилин тандаңыз; жарактуу СТИЛЬ түрдөрү төмөндө " "көрсөтүлөт." -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "STRING ичинде болгон тамгаларга кошумча ковычка кошот" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "STRING ичинде болгон тамгаларга ковычка кошпойт" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Келишүү опциялары:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2098,56 +2133,64 @@ msgstr "" "жаңы архив жасабатканда --old-archive менен бирдей; чыгарыбатканда --no-same-" "owner менен бирдей" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Башка опциялар:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "зыяндуу көрүнгөн опцияларды колдонууга тыюуу салат" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "`-Acdtrux' опцияларынан бирөөнү гана колдоно аласыңар" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Бирбирине келишпеген кысыштыруу опциялары берилди" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Сигналдын аты белгисиз: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Датанын шаблон файлы табылган жок" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Белгисиз %1$s дата форматынын ордуна %2$s коюлат" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "%s опциясы: `%s' датасын %s деп алды" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: файл тизмеси окулган" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: алынган файлдын атында бош тамгалар бар" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "архивди gzip менен ишке ал" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style опциясы үчүн мындай аргументтер бар:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2155,157 +2198,168 @@ msgstr "" "\n" "*Бул* tar алдынала мындай иштетилет:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Блок көлөмү жараксыз" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Лентанын узундугу жараксыз" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Файлдын форматы туура эмес" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Бирден көп ченемдөөчү дата бар" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "кеңири жайлаштыруу форматынын версиясы жарактуу эмес" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "Бул платформада --atime-preserve='system' опциясы иштебейт" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "--checkpoint опциясына жазылган аргумент сан эмес" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Жараксыз группа" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Опцияда жарабаган укук абалы берилди" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Жарабаган номер" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Ээси жарабайт" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Маалымат көлөмү жарабайт" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Маалыматтын көлөмү %d көбөйтүндүсү болушу керек." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Элементтердин саны жарабайт" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "--to-command опциясы бир эле жолу жазылыш керек" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Тыгыздык аргументи туура эмес: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Түшүнүксүз тыгыздык: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "*Бул* tar `-[0-7][lmh]' опцияларын иштетпейт" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[ФАЙЛ]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Эски болгон `%c' опциясына параметр керек." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "Колдонулган иштетүү абалда --occurrence колдонулбайт" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Бир нече архив файлы болсо `-M' опциясы колдонулушу керек" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "--listed-incremental менен --newer чогу колдонулбайт" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Томдун тамгасы өтө узун (эң көп %lu байт боло алат)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Көп-томдуу архивдерди текшералбай калды" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Кысыштырылган архивдерди текшералбай калды" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Көп-томдуу кысыштырылган архивдерди колдоналбай калды" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Кысыштырылган архивдер кошулалбайт" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option POSIX архивдеринде гана колдонула алат" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Бош архив жаратуудан уялып баш тартып жатат" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "`-Aru' опциялары `-f -' менен келишпейт" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "`-Acdtrux' опцияларынан бирөөнү тандап колдонуңуз" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2316,83 +2370,88 @@ msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Файл %s байтка азайды" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "%s сөзү белигсиз же азырынча киргизилген эмес" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Сан жарактуу маанилердин тышында: %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "%s шаблону колдонулбайт" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "%s ачкыч сөзү алмаштырылбайт" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Кеңейтилген башкы-маалымат бузук: узундук жок" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Кеңейтилген башкы-маалыматтын узундугу жарактуу маанилердин тышында" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Кеңейтилген башкы-маалыматтын узундугу - %*s - диапазондун тышында" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" "Кеңейтилген башкы-маалымат бузук: узундуктан кийин бош жер (пробел) жок" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Кеңейтилген башкы-маалымат бузук: барабар символу жок" # newline эмне болот? -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Кеңейтилген башкы-маалымат бузук: жаңы сап жок" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Кеңейтилген башкы-маалыматта белгисиз `%s' сөзү каралбайт" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Чыккан ачкыч-сөз/маани экилиги ото узун (ачкыч-сөз=%s, узундугу=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "%s=%s түрүндөгү кеңейтилген башкы-маалымат %s..%s диапазондун тышында" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s туура эмес" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s ашыкча көп" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Кеңейтилген башкы-маалымат бузук: туура эмес %s: күтүлбөгөн жерде бул - %c - " "бөлүүчү символ бар" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Кеңейтилген башкы-маалымат бузук: туура эмес %s: так санда маани бар" @@ -2433,7 +2492,7 @@ msgstr "Жазууну текшерүү жери: %u" msgid "Read checkpoint %u" msgstr "Окуунун текшерүү жери: %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2441,89 +2500,95 @@ msgstr "" "genfile, GNU paxutils пакетинин дата файлдарын ишке алат.\n" "ОПЦИЯЛАР мындай:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Жаңы файл ачуу опциялары:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "КӨЛӨМ" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Көсөтүлгөн КӨЛӨМдө жаңы файл ач" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Стандарт чыгарууга жазбай, АТЫ деген файлга жаз" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Файлдын аттарын ФАЙЛдан ал" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T опциясы бош/нөл (null) менен бүткөн аттарды окуйт" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Файлды тандалган ШАБЛОН менен толтурат. ШАБЛОН 'default' же 'zeros' болот" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Кеңири жайлашкан файлдын блок көлөмү" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Файлды кеңири жайлаштыр. Кийинки команда строкаларында файлдын картасы бар." -#: tests/genfile.c:143 +#: tests/genfile.c:145 #, fuzzy msgid "OFFSET" msgstr "ОРУН" # seek the given offset - orunga jyl -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "данный(data) жазаардан мурун айтылган орунга жыл" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Файлдын статистикасынын опциялары:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Алынган ар бир файл үчүн struct stat курамын көрсөтөт. Алдынала тандалган " "ФОРМАТ мындай: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Синхрондуу иштетүүнүн опциялары:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [ОПЦИЯ...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "Жазылган КОМАНДАны иштет. Бул --checkpoint жана --cut, --append, --touch " "бирөөсү менен колдонулганда пайдалуу" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "N текшерүү жерине жеткенде буларды (төмөндү карагыла) аткар" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Эмики --touch опциясы үчүн дата жазгыла" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Өтүлгөн текшерүү жердерди жана КОМАНДАнын бүтүрүү статусун көрсөтөт" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2531,7 +2596,7 @@ msgstr "" "Синхрондуу аткаруу иштери. Булар --checkpoint опциясы менен берилгенн " "текшерүү жерине жеткенде аткарылат." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2539,147 +2604,215 @@ msgstr "" "ФАЙЛды --length опциясы менен берилген көлөмгө кыскартат (берилбеген болсо 0 " "болот)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "ФАЙЛга КӨЛӨМ байт кошот. КӨЛӨМ --length опциясы менен берилет." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "ФАЙЛдын колдонуу жана алмашуу убакыттарын жаңылайт." -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Бул команданы иштеткиле - КОМАНДА" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Жараксыз көлөм: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Сан жарактуу маанилердин тышында: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Көлөмү терс сан: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) аткарылбай калды" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "`%s' жанындагы санды окубатканда ката чыкты" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Датанын форматы түшүнүксүз" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[АРГУМЕНТТЕР...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "`%s' ачылбай жатат" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "издөө болбой калды" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "файлдын атында бош тамга бар" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "кеңири(чоң) файлдарды стандарт чыгарууга жибералбайт, --file опциясын " "колдонуңуз" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "туура эмес маска (`%s' жанында)" # фиелд деген кандай болот? -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Белгисиз поле `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "`%s'ке убакыт аталган жок" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "`%s' ачылбай жатат" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Команда толук аткарылды\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Команда %d статусу менен аткарылбай калды\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Команда %d сигналы менен жабылды\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Команда %d сигналы менен токтотулду\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Команда core dump менен бүттү\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Команда жабылды\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat опциясы менен файл аттары жазылыш керек" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "аргументтердин саны көп" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: мындай опция колдонулбайт -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Эскертүү: -I опциясы иштетилбейт; балким -j же -T дегиңиз келди эле?" +#~ "\n" +#~ "Каталарды бул жерге билдиргиле <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "%s жактан окуп жатат\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Оңолбогон ката: иш бүттү " + +#~ msgid "suppress this warning." +#~ msgstr "опциясы менен бул эскертүүнү көрсөтпөс кыл." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "архивди bzip2 менен ишке ал" + +#~ msgid "filter the archive through gzip" +#~ msgstr "архивди gzip менен ишке ал" + +#~ msgid "filter the archive through compress" +#~ msgstr "архивди compress менен ишке ал" #, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "--delay-directory-restore опциясынын эффектин токтотот" +#~ msgid "filter the archive through lzma" +#~ msgstr "архивди gzip менен ишке ал" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "архивди gzip менен ишке ал" + +# Input string дегендин ордуна жакшы нерсе билсеңер алмаштырсаңар болот +#~ msgid "Input string too long" +#~ msgstr "Жазылган сүйлөм өтө узун" + +#~ msgid "Number syntax error" +#~ msgstr "Номердин жазуусунда ката бар" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Буфер үчүн жер алыналган жок\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr " Буфер үчүн жер алыналган жок" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Толук маалымат үчүн `%s --help' деп жазгыла.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Колдонулушу: %s [ОПЦИЯ]\n" +#~ "Башка процесстен командалрды алып \"магниттик лентада сактоочту\" " +#~ "колдон.\n" +#~ "\n" +#~ " --version Версия маалыматын көрсөт.\n" +#~ " --help Бул маалыматты көрсөт.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Издөө даражасы туура эмес" + +#~ msgid "Premature end of file" +#~ msgstr "Файлдын соңу эрте келди" #~ msgid "block size" #~ msgstr "бир блоктун көлөмү" @@ -2687,5 +2820,9 @@ msgstr "аргументтердин саны көп" #~ msgid "[.]NUMBER" #~ msgstr "[.]N" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Эскертүү: -I опциясы иштетилбейт; балким -j же -T дегиңиз келди эле?" + #~ msgid "Error exit delayed from previous errors" #~ msgstr "Ката үчүн ишти бүтүрүү, мурунку каталардан улам кеч аткарылды" diff --git a/po/ms.gmo b/po/ms.gmo index f0f5fd7f24c9b9d8f0878c9d2da84edd0486945c..28f239c7bcaf40f81771ccb7caeaf78a10248b65 100644 Binary files a/po/ms.gmo and b/po/ms.gmo differ diff --git a/po/ms.po b/po/ms.po index f08d055ea23e4d801c18c4bf2cac2d0585395cd4..5f667b9ae5000be6580375ca7974260383e2906b 100644 --- a/po/ms.po +++ b/po/ms.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.13.25\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2002-11-23 02:38+0800\n" "Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n" "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" @@ -14,287 +14,194 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "hujah tidak sah %s bagi %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "hujah kabur %s bagi %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Hujah sah adalah:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Pengunaan : %s [OPSYEN]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Cuba '%s --help' untuk maklumat lanjut.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, fuzzy, c-format msgid "Report bugs to %s.\n" msgstr "" "\n" "Lapor pepijat ke <bug-tar@gnu.org>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Ralat sistem tidak diketahui" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: opsyen `%s' memerlukan hujah\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: opsyen `%s' adalah kabur\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: opsyen `--%s' tidak mengizinkan hujah\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: opsyen %c%s' tidak mengizinkan hujah\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: opsyen `%s' memerlukan hujah\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: opsyen tidak dikenali `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: opsyen tidak dikenali '%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: opsyen salah -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: opsyen tidak sah -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: opsyen memerlukan hujah -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: opsyen `-W %s' adalah kabur\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: opsyen `-W %s' tidak mengizinkan hujah\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "memori keletihan" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Tak dapat tukar direktori kerja" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Tak dapat simpan direktori kerja" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Tak dapat %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Amaran: Tak dapat %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Tak dapat menukar mod ke %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Tak dapat menukar pemilikan ke uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Tak dapat memaut keras ke %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: ralat pembacaan pada byte %s, membaca %lu byte" -msgstr[1] "%s: ralat pembacaan pada byte %s, membaca %lu byte" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Amaran: Ralat pembacaan pada byte %s, membaca %lu byte" -msgstr[1] "%s: Amaran: Ralat pembacaan pada byte %s, membaca %lu byte" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Tak dapat rayau ke %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Amaran: tidak dapat rayau ke %s " - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Tak dapat mencipta symlink ke %s" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Ditulis hanya %lu drpd %lu byte" -msgstr[1] "%s: Ditulis hanya %lu drpd %lu byte" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Membuang awalan `%.*s' drpd nama ahli" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Membuang awalan `%.*s' drpd nama ahli" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Membuang awalan `%.*s' drpd nama ahli" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -308,18 +215,18 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" # ui/galeon.glade.h:3 -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -329,7 +236,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -339,38 +246,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Tiada servis" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Tak boleh laksanakan shell jauh" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -381,19 +278,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Ditulis oleh F. Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Ditulis oleh F. Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Ditulis oleh F. Pinard." @@ -401,7 +298,7 @@ msgstr "Ditulis oleh F. Pinard." #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -411,7 +308,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -421,7 +318,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -431,7 +328,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -441,7 +338,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -452,7 +349,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -463,7 +360,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -475,184 +372,334 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" "Lapor pepijat ke <bug-tar@gnu.org>.\n" -#: lib/version-etc.c:182 -#, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" +"\n" +"Lapor pepijat ke <bug-tar@gnu.org>.\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: tak dapat memperuntukkan ruang penimbal\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Tak dapat %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Tak dapat memperuntukkan ruang penimbal" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Amaran: Tak dapat %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:93 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Cuba '%s --help' untuk maklumat lanjut.\n" +msgid "%s: Cannot change mode to %s" +msgstr "%s: Tak dapat menukar mod ke %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Tak dapat menukar pemilikan ke uid %lu, gid %lu" + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Tak dapat memaut keras ke %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: ralat pembacaan pada byte %s, membaca %lu byte" +msgstr[1] "%s: ralat pembacaan pada byte %s, membaca %lu byte" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Amaran: Ralat pembacaan pada byte %s, membaca %lu byte" +msgstr[1] "%s: Amaran: Ralat pembacaan pada byte %s, membaca %lu byte" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Tak dapat rayau ke %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Amaran: tidak dapat rayau ke %s " + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Tak dapat mencipta symlink ke %s" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Ditulis hanya %lu drpd %lu byte" +msgstr[1] "%s: Ditulis hanya %lu drpd %lu byte" + +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Membuang awalan `%.*s' drpd nama ahli" + +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Membuang awalan `%.*s' drpd nama ahli" + +#: lib/paxnames.c:169 +#, fuzzy +msgid "Substituting `.' for empty member name" +msgstr "Membuang awalan `%.*s' drpd nama ahli" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" msgstr "" -"Penggunaan: %s [OPSYEN]\n" -"Manupulasi pemacu pita, menerima arahan drpd proses jauh.\n" -"\n" -" --version Output maklumat versi.\n" -" --help Output bantuan ini.\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Tiada servis" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Tak boleh laksanakan shell jauh" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Hala rayauan diluar julat" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Offset rayauan diluar julat" +msgid "Invalid seek direction" +msgstr "Mod tidak sah diberi pada opsyen" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Setem masa tidak sah" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Offset rayauan diluar julat" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Hala rayauan diluar julat" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "panjang pita tidak sah" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Offset rayauan diluar julat" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: eof tak matang\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Akhir fail tak matang" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "%s: opsyen tidak sah -- %c\n" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "EOF tanpa diduga pada arkib" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s: Tak dapat rayau ke %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Arahan sampah" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Ia nampaknya bukan seperti arkib tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Jumlah byte ditulis: %s (%sB, %sB/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Jumlah byte ditulis: %s (%sB, %sB/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(paip)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Nilai tidak sah bagi record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Tiada nama arkib diberi" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Tak dapat menentusahkan arkib stdin/stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Tak dapat mengemaskini arkib termampat" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Pada permulaan pita, keluar sekarang" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Terlalu banyak ralat, keluar" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Saiz rekod = %lu blok" msgstr[1] "Saiz rekod = %lu blok" -#: src/buffer.c:718 +#: src/buffer.c:765 #, fuzzy, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Blok tidak dijajar (%lu byte) pada arkib" msgstr[1] "Blok tidak dijajar (%lu byte) pada arkib" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "tak dapat backspace fail arkib; ia mungkin tak boleh dibaca tanpa -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: mengandungi nombor volum yg tidak sah" -#: src/buffer.c:916 +#: src/buffer.c:963 #, fuzzy msgid "Volume number overflow" msgstr "Nombor volum melimpah" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Menyedia volum #%d bagi %s dan tekan return: " # libgnomeui/gnome-app-helper.c:127 -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF dimana maklumbalas pengguna dijangka" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "AMARAN: Arkib tidak lengkap" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -664,124 +711,124 @@ msgstr "" " ! Spawn subshell\n" " ? Cetak senarai ini\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Tiada volum baru; keluar.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "Arahan '%s' gagal" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s tidak bersambung pada volum ini" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s tidak bersambung pada volum ini" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s adalah salah saiz (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Volum ini tidak dalam turutan" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkib tidak dilabelkan supaya memadan %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Volum %s tidak sepadan %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Hanya boleh membaca %lu drpd %lu byte" msgstr[1] "Hanya boleh membaca %lu drpd %lu byte" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Kandungan berlainan" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "EOF tanpa diduga pada arkib" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Jenis fail berbeza" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Mod berbeza" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid berbeza" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid berbeza" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Masa mod berbeza" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Saiz berbeza" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Tidak dipautkan ke %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlink berbeza" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Nombor beranti berbeza" @@ -803,34 +850,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "GAGAL TENTUSAH: %d pengepala tak sah dikesan" msgstr[1] "GAGAL TENTUSAH: %d pengepala tak sah dikesan" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "nilai %s diluar julat %s %s..%s; menggantikan %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "nilai %s diluar julat %s %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Menjana pengepala oktal negatif" @@ -849,438 +896,439 @@ msgstr "%s: fail tidak berubah; tidak dilonggokkan" msgid "%s: link name is too long; not dumped" msgstr "%s: fail tidak berubah; tidak dilonggokkan" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Fail mengucup sebanyak %s byte; pad dengan sifar" msgstr[1] "%s: Fail mengucup sebanyak %s byte; pad dengan sifar" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Jenis fail tak dikenali; fail diabaikan" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr "Pautan ke %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fail tidak berubah; tidak dilonggokkan" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fail adalah arkib; tidak dilonggokkan" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Fail dibuang sebelum kami membacanya" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fail berubah bila kami membacanya" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: soket diabaikan" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: pintu diabaikan" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Melangkah ke pengepala berikut" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Memadam bukan-pengepala drpd arkib" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: setem masa %s adalah %lu pada masa akan datang" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Ketidakkonsistenan luar dugaan bila membuat direktori" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Direktori ditukarnama sebelum statusnya boleh diekstrak" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Mengekstrak fail bersambung sebagai fail biasa" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" -msgstr "Cuba mengekstrak pautan simbolik sebagai pautan keras" - -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Membaca %s\n" +msgstr "Cuba mengekstrak pautan simbolik sebagai pautan keras" -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Tak dapat ekstrak -- fail bersambung dari volum lain" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Penghujungan tanpa diduga data imej PNM" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Jenis fail tak dikenali '%c', diekstrak sebagai fail biasa" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Tak dapat backup fail ini" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: Tak dapat menukarnama ke %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Ralat adalah tidak boleh dipulihkan: keluar sekarang" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Direktori telah ditukarnama" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Direktori telah ditukarnama" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Direktori adalah baru" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Setem masa tidak sah" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Mod tidak sah diberi pada opsyen" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Nombor peranti tidak sah" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Nombot inod tidak sah" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "EOF tanpa diduga pada arkib" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "Tak dapat memperuntukkan memori bagi faktor pemblokan %d" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, fuzzy, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Memadam %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: tak dapat buang" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok TIADA **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Akhir Fail **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Pengepala kosong dimana nilai %s numerik dijangka" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "Nilai oktal arkib %.*s diluar julat %s; anggap kedua-dua pelengkap" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Nilai oktal arkib %.*s diluar julat %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Rentetan %s base-64 ditandatangani arkibadalah diluar julat %s " -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Nilai base-256 arkub adalah diluar julat %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arkib mengandungi %.*s dimana nilai %s numerik dijangka" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Nilai %s arkib adalah dijuar julat %s %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr "Pautan ke %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr "jenis fail tak diketahui %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Pengepala Volum--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Bersambung pada byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Mencipta direktori:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Menukarnama %s ke %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Tak dapat menukarnama ke %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Menukarnama %s kembali ke %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Tak dapat simpan direktori kerja" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Tak dapat tukar direktori kerja" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Fail dibuang sebelum kami membacanya" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Fail dibuang sebelum kami membacanya" + +#: src/misc.c:795 msgid "child process" msgstr "proses anak" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "saluran antaraproses" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Tak dijumpai pada arkib" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Tak dijumpai pada arkib" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Opsyen `-%s' dan `-%s' kedua-duanya memerlukan input piawai" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Kumpulan tidak sah" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1300,7 +1348,7 @@ msgstr "" "verbose.\n" " %s -xf arkib.tar # Ekstrak semua fail drpd arkib.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1312,87 +1360,80 @@ msgid "" " never, simple always make simple backups\n" msgstr "" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "EOF tanpa diduga pada arkib" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1400,577 +1441,565 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 #, fuzzy msgid "extract files to standard output" msgstr "Ralat ketika menulis ke output piawai" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "Tak dapat menentusah arkib multi-volume" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "opsyen format arkib konflik" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Opsyen mampatan konflik" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: fail adalah arkib; tidak dilonggokkan" - -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: fail adalah arkib; tidak dilonggokkan" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: fail adalah arkib; tidak dilonggokkan" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: fail adalah arkib; tidak dilonggokkan" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: fail adalah arkib; tidak dilonggokkan" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Tak dapat tukar direktori kerja" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Membuang awalan `%.*s' drpd nama ahli" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "Volum %s tidak sepadan %s" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1978,274 +2007,290 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Anda tak boleh nyatakan lebih drpd satu opsyen `-Acdtrux'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Opsyen mampatan konflik" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr "jenis fail tak diketahui %s\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Fail tarikh tidak dijumpai" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Mengganti %s bagi format tarikh tak diketahui %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: fail adalah arkib; tidak dilonggokkan" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "%s: fail adalah arkib; tidak dilonggokkan" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Faktor pemblokan tidak sah" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "panjang pita tidak sah" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Kumpulan tidak sah" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Mod tidak sah diberi pada opsyen" -#: src/tar.c:1774 +#: src/tar.c:1894 #, fuzzy msgid "Invalid number" msgstr "Nombot inod tidak sah" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Pemilik tidak sah" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Saiz rekod tidak sah" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Saiz rekod mesti dalam gandaan %d." -#: src/tar.c:1872 +#: src/tar.c:2000 #, fuzzy msgid "Invalid number of elements" msgstr "panjang pita tidak sah" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Opsyen `-[0-7][lmh]' tak disokong oleh tar *ini*" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "OPsyen lama `%c' memerlukan hujah." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Fail akrib beraneka memerlukan opsyen `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Tak boleh gabung --listed-incremental dengan --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, fuzzy, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Label volum adalah terlalu panjang (had adalah %lu byte)" msgstr[1] "%s: Label volum adalah terlalu panjang (had adalah %lu byte)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Tak dapat menentusah arkib multi-volume" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Tak dapat menentusahkan arkib termampat" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Tak dapat menggunakan arkib multi-volume termampat" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Tak dapat mengemaskini arkib termampat" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Secara dayus enggan mencipta arkib kosong" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Opsyen `-Aru' tak serasi dengan `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Anda mesti nyatakan satu drpd opsyen `-Acdtrux'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2257,79 +2302,84 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Fail mengecil sebanyak %s byte" msgstr[1] "%s: Fail mengecil sebanyak %s byte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Setem masa diluar julat" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "Rentetan %s base-64 ditandatangani arkibadalah diluar julat %s " -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Nilai %s arkib adalah dijuar julat %s %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2370,236 +2420,302 @@ msgstr "Menulis titiksemak %d" msgid "Read checkpoint %u" msgstr "Membaca titiksemak %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Menjana fail data untuk suit ujian GNU tar.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Opsyen mampatan konflik" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Ralat ketika menulis ke output piawai" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Pengunaan : %s [OPSYEN]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Setem masa tidak sah" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Nombor inod diluar julat" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Ralat sistem tidak diketahui" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Tak dapat tutup" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "jenis fail tak diketahui %s\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Tak dapat rayau ke %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s: Tak dapat rayau ke %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "Anak mati dengan isyarat %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "Nama fail modul" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: opsyen salah -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Amaran: opsyen -I tidak disokong; mungkin and amaksudkan -j atau -T?" +#~ "\n" +#~ "Lapor pepijat ke <bug-tar@gnu.org>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Membaca %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Ralat adalah tidak boleh dipulihkan: keluar sekarang" + +#, fuzzy +#~ msgid "filter the archive through compress" +#~ msgstr "%s: fail adalah arkib; tidak dilonggokkan" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "%s: fail adalah arkib; tidak dilonggokkan" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "%s: fail adalah arkib; tidak dilonggokkan" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: tak dapat memperuntukkan ruang penimbal\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Tak dapat memperuntukkan ruang penimbal" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Cuba '%s --help' untuk maklumat lanjut.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Penggunaan: %s [OPSYEN]\n" +#~ "Manupulasi pemacu pita, menerima arahan drpd proses jauh.\n" +#~ "\n" +#~ " --version Output maklumat versi.\n" +#~ " --help Output bantuan ini.\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Offset rayauan diluar julat" + +#~ msgid "Premature end of file" +#~ msgstr "Akhir fail tak matang" #~ msgid "block size" #~ msgstr "saiz blok" @@ -2631,9 +2747,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Ralat nama panjang boleh tampak" -#~ msgid "Time stamp out of range" -#~ msgstr "Setem masa diluar julat" - #~ msgid "Device number out of range" #~ msgstr "Nombor peranti diluar julat" @@ -2761,6 +2874,10 @@ msgstr "" #~ msgid "Obsolete option name replaced by --read-full-records" #~ msgstr "Nama opsyen ditelan zaman diganti dengan --read-full-records" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Amaran: opsyen -I tidak disokong; mungkin and amaksudkan -j atau -T?" + #~ msgid "Obsolete option name replaced by --touch" #~ msgstr "Nama opsyen ditelan zaman diganti dengan --touch" diff --git a/po/nb.gmo b/po/nb.gmo index 7b0b295336a034ca7501247a8aece9e1e2c5d85a..82630b30696cd67dd945795c264af0910c7d3b18 100644 Binary files a/po/nb.gmo and b/po/nb.gmo differ diff --git a/po/nb.po b/po/nb.po index cfc994bd3a021ea8db8bc81112f96b4b4bd0eb3c..4dfcbffd7ecc28941d40bc8f042cb5316767238f 100644 --- a/po/nb.po +++ b/po/nb.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU tar 1.12\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 1997-06-05 19:39 MET DST\n" "Last-Translator: Espen Skjelnes Johnsen <espejohn@sn.no>\n" "Language-Team: Norwegian-bokm�l <no@li.org>\n" @@ -14,287 +14,193 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, fuzzy, c-format msgid "invalid argument %s for %s" msgstr "Ugyldig datoformat �%s�" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, fuzzy, c-format msgid "ambiguous argument %s for %s" msgstr "Tvetydig m�nster �%s�" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Bruk: %s [FLAGG]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Tast �%s --help� for mer informasjon.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Unkjent systemfeil" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, fuzzy, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +msgid "%s: option '%s' is ambiguous\n" msgstr "Gammelt flagg �%c� beh�ver et argument." -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, fuzzy, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "Gammelt flagg �%c� beh�ver et argument." -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, fuzzy, c-format -msgid "%s: option `%s' requires an argument\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "Gammelt flagg �%c� beh�ver et argument." -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" +msgstr "Gammelt flagg �%c� beh�ver et argument." -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `%c%s'\n" +msgid "%s: unrecognized option '--%s'\n" msgstr "" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: illegal option -- %c\n" +msgid "%s: unrecognized option '%c%s'\n" msgstr "" -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" +msgstr "Ugyldig verdi for record_size" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, fuzzy, c-format -msgid "%s: option requires an argument -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" msgstr "Gammelt flagg �%c� beh�ver et argument." -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "Gammelt flagg �%c� beh�ver et argument." -#: lib/getopt.c:932 lib/getopt.c:950 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, fuzzy, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "Gammelt flagg �%c� beh�ver et argument." -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 #, fuzzy msgid "memory exhausted" msgstr "Minne oppbrukt" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Kunne ikke finne navnet p� aktiv filkatalog" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, fuzzy, c-format -msgid "%s: Cannot %s" -msgstr "Kan ikke eksekvere %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "" - -#: lib/paxerror.c:93 -#, fuzzy, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Kan ikke endre modus til %0.4o" - -#: lib/paxerror.c:101 -#, fuzzy, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Kan ikke endre eier til uid %d, gid %d" - -#: lib/paxerror.c:127 -#, fuzzy, c-format -msgid "%s: Cannot hard link to %s" -msgstr "Kan ikke lese link %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" -msgstr[1] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" -msgstr[1] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" - -#: lib/paxerror.c:259 -#, fuzzy, c-format -msgid "%s: Cannot seek to %s" -msgstr "Kan ikke skrive til %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "" - -#: lib/paxerror.c:284 -#, fuzzy, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Kunne ikke lage symbolisk link til �%s�" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Kunne bare skrive %d av %d bytes'" -msgstr[1] "%s: Kunne bare skrive %d av %d bytes'" - -# -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Tar bort ledende �/� fra absolutte linker" - -# -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Tar bort ledende �/� fra absolutte linker" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -308,17 +214,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "" @@ -328,7 +234,7 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -338,38 +244,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Tjenesten er ikke tilgjengelig" - -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:76 #, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Kan ikke eksekvere \"remote shell\"" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -380,19 +276,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -400,7 +296,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -410,7 +306,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +316,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -430,7 +326,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -440,7 +336,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -451,7 +347,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -462,7 +358,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -474,183 +370,339 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" "Rapporter feil til <tar-bugs@gnu.ai.mit.edu>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" +msgstr "" +"\n" +"Rapporter feil til <tar-bugs@gnu.ai.mit.edu>.\n" + +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, fuzzy, c-format +msgid "%s: Cannot %s" +msgstr "Kan ikke eksekvere %s" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Kan ikke allokere buffer\n" +#: lib/paxerror.c:93 +#, fuzzy, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Kan ikke endre modus til %0.4o" + +#: lib/paxerror.c:101 +#, fuzzy, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Kan ikke endre eier til uid %d, gid %d" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Kan ikke allokere plass til buffer" +#: lib/paxerror.c:127 +#, fuzzy, c-format +msgid "%s: Cannot hard link to %s" +msgstr "Kan ikke lese link %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, fuzzy, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" +msgstr[1] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" +msgstr[1] "Lesefeil ved byte %ld under lesing av %d bytes i fil %s" + +#: lib/paxerror.c:259 +#, fuzzy, c-format +msgid "%s: Cannot seek to %s" +msgstr "Kan ikke skrive til %s" + +#: lib/paxerror.c:275 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Tast �%s --help� for mer informasjon.\n" +msgid "%s: Warning: Cannot seek to %s" +msgstr "" + +#: lib/paxerror.c:284 +#, fuzzy, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Kunne ikke lage symbolisk link til �%s�" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Kunne bare skrive %d av %d bytes'" +msgstr[1] "%s: Kunne bare skrive %d av %d bytes'" + +# +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Tar bort ledende �/� fra absolutte linker" + +# +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Tar bort ledende �/� fra absolutte linker" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "" -#: rmt/rmt.c:308 +#: lib/rtapelib.c:299 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Tjenesten er ikke tilgjengelig" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -#: rmt/rmt.c:397 -msgid "Seek offset error" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Kan ikke eksekvere \"remote shell\"" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" msgstr "" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Ugyldig modus gitt i flagg" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Ugyldig datoformat �%s�" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Ugyldig eier gitt i flagg" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" msgstr "" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: For tidlig filslutt\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "For tidlig filslutt" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Ugyldig verdi for record_size" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Uventet filslutt i �delagte navn" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "Kan ikke �pne %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Ugyldig kommando" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Dette ser ikke ut som et tar-arkiv" # -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Totalt antall bytes skrevet: " # -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 #, fuzzy msgid "Total bytes read" msgstr "Totalt antall bytes skrevet: " # -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Totalt antall bytes skrevet: " -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Ugyldig verdi for record_size" # -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Arkivnavn er ikke oppgitt" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Kan ikke verifisere stdin/stdout-arkiv" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" # -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Kan ikke oppdatere komprimerte arkiver" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "P� begynnelsen av b�ndet, avslutter n�" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "For mange feil, avslutter" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Blokkst�rrelse = %d enheter" msgstr[1] "Blokkst�rrelse = %d enheter" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "" msgstr[1] "" -#: src/buffer.c:795 +#: src/buffer.c:842 #, fuzzy msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Kunne ikke g� tilbake i arkivfilen. Den kan v�re uleselig uten -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "" -#: src/buffer.c:931 +#: src/buffer.c:978 #, fuzzy, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "\aGj�r klar volum nummer %d for %s og trykk return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF der svar fra bruker var forventet" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ADVARSEL: Arkivet er ufullstendig" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -662,127 +714,127 @@ msgstr "" " ! Start et shell\n" " ? Skriv denne listen\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Ikke nytt volum; avslutter.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s fortsetter ikke i dette volumet" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s fortsetter ikke i dette volumet" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, fuzzy, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s har feil st�rrelse (%ld != %ld + %ld)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Dette volumet kommer ute av rekkef�lge" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, fuzzy, c-format msgid "Archive not labeled to match %s" msgstr "Arkivet er ikke navngitt for � passe med �%s�" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, fuzzy, c-format msgid "Volume %s does not match %s" msgstr "Volumet �%s� stemmer ikke overens med �%s�" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "Arkiv %s sluttet ikke ved en blokkgrense" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Kunne bare lese %d av %ld bytes" msgstr[1] "Kunne bare lese %d av %ld bytes" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 #, fuzzy msgid "Contents differ" msgstr "Modus er ulik" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Uventet filslutt i arkivet" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 #, fuzzy msgid "File type differs" msgstr "St�rrelse er ulik" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Modus er ulik" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid er ulik" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid er ulik" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Modifiseringstid er ulik" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "St�rrelse er ulik" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Ikke linket til %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolsk link er ulik" -#: src/compare.c:322 +#: src/compare.c:321 #, fuzzy msgid "Device number differs" msgstr "Enhetsnummer er endret" @@ -805,34 +857,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "VERIFIKASJONSFEIL: %d ukjente arkivhoder funnet" msgstr[1] "VERIFIKASJONSFEIL: %d ukjente arkivhoder funnet" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "" @@ -851,443 +903,444 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: er uendret; ikke lagret" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "Filen %s krympet med %d bytes, fyller ut med nuller" msgstr[1] "Filen %s krympet med %d bytes, fyller ut med nuller" -#: src/create.c:1177 +#: src/create.c:1175 #, fuzzy, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: P� et annet filesystem. Ikke lagret" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 #, fuzzy msgid "contents not dumped" msgstr " (minnet lagret)" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Ukjent filtype; filen ble ignorert" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " link til %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, fuzzy, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: er uendret; ikke lagret" -#: src/create.c:1543 +#: src/create.c:1552 #, fuzzy, c-format msgid "%s: file is the archive; not dumped" msgstr "%s er arkivet; ikke lagret" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Hopper til neste startseksjon" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Tar bort ikke-hodedata fra arkivet" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Ekstraherer sammenhengende filer som vanlige filer" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Fors�ker � ekstrahere symbolske linker som harde linker" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Leser %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, fuzzy, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "Kan ikke ekstrahere �%s� -- filen fortsetter fra et tidligere volum" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Uventet filslutt i arkivfilen" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "Ukjent filtype �%c� for %s, ekstrahert som en vanlig fil" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Kunne ikke lage sikkerhetskopi av denne filen" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Kan ikke endre navn p� %s til %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "Filkatalogen %s har endret navn" -#: src/incremen.c:460 +#: src/incremen.c:494 #, fuzzy, c-format msgid "%s: Directory has been renamed" msgstr "Filkatalogen %s har endret navn" -#: src/incremen.c:505 +#: src/incremen.c:539 #, fuzzy, c-format msgid "%s: Directory is new" msgstr "Filkatalogen %s er ny" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Ugyldig modus gitt i flagg" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 #, fuzzy msgid "Read error in snapshot file" msgstr "Lesefeil p� %s" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Uventet filslutt i arkivfilen" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 #, fuzzy msgid "Unexpected field value in snapshot file" msgstr "Uventet filslutt i arkivfilen" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "Kan ikke g� til filkatalogen %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Sletter %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, fuzzy, c-format msgid "%s: Cannot remove" msgstr "Kan ikke slette %s" -#: src/list.c:113 +#: src/list.c:115 #, fuzzy, c-format msgid "%s: Omitting" msgstr "Utelater %s" -#: src/list.c:131 +#: src/list.c:133 #, fuzzy, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blokk %10ld: ** Blokk med NUL-er **\n" -#: src/list.c:155 +#: src/list.c:159 #, fuzzy, c-format msgid "block %s: ** End of File **\n" msgstr "blokk %10ld: ** Slutt p� fil **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, fuzzy, c-format msgid "block %s: " msgstr "blokk %10ld: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" -#: src/list.c:803 +#: src/list.c:821 #, fuzzy, c-format msgid "Archive base-256 value is out of %s range" msgstr "Dette volumet kommer ute av rekkef�lge" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " link til %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, fuzzy, c-format msgid " unknown file type %s\n" msgstr " ukjent filtype �%c�\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Volumhode--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, fuzzy, c-format msgid "--Continued at byte %s--\n" msgstr "--Fortsetter ved byte %ld--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Lager filkatalog:" -#: src/misc.c:456 +#: src/misc.c:502 #, fuzzy, c-format msgid "Renaming %s to %s\n" msgstr "Endret navn p� %s til %s" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, fuzzy, c-format msgid "%s: Cannot rename to %s" msgstr "Kan ikke endre navn p� %s til %s" -#: src/misc.c:488 +#: src/misc.c:534 #, fuzzy, c-format msgid "Renaming %s back to %s\n" msgstr "Endret navn p� %s til %s" -#: src/misc.c:615 +#: src/misc.c:669 #, fuzzy msgid "Cannot save working directory" msgstr "Kan ikke g� til filkatalogen %s" -#: src/misc.c:621 +#: src/misc.c:675 #, fuzzy msgid "Cannot change working directory" msgstr "Kan ikke g� til filkatalogen %s" -#: src/misc.c:711 -msgid "child process" +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" msgstr "" -#: src/misc.c:720 -msgid "interprocess channel" +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "Filkatalogen %s har endret navn" + +#: src/misc.c:795 +msgid "child process" msgstr "" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/misc.c:804 +msgid "interprocess channel" msgstr "" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Finnes ikke i arkivet" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Finnes ikke i arkivet" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Flaggene �-%s� and �-%s� vil begge ta standard inn" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "Ugyldig datoformat �%s�" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-funksjoner fors�kt p� inkompatibelt arkiv-format" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1298,7 +1351,7 @@ msgid "" " tar -xf archive.tar # Extract all files from archive.tar.\n" msgstr "" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1322,87 +1375,80 @@ msgstr "" " ellers enkle\n" " never, simple lag enkle sikkerhetskopier\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Uventet filslutt i arkivet" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1410,577 +1456,568 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 #, fuzzy msgid "remove files after adding them to the archive" msgstr "Tar bort enhetsnavn fra navn i arkivet" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "Kan ikke verifisere arkiv som g�r over flere volum" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Arkiv�r til stdin" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Konflikt i kompresjonsflagg" -#: src/tar.c:595 +#: src/tar.c:615 #, fuzzy msgid "use archive suffix to determine the compression program" msgstr "Kan ikke skrive til komprimeringsprogrammet" -#: src/tar.c:597 +#: src/tar.c:617 #, fuzzy msgid "do not use archive suffix to determine the compression program" msgstr "Kan ikke skrive til komprimeringsprogrammet" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s er arkivet; ikke lagret" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s er arkivet; ikke lagret" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Kan ikke g� til filkatalogen %s" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" # -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Tar bort ledende �/� fra absolutte linker" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "Volumet �%s� stemmer ikke overens med �%s�" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1988,276 +2025,292 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 #, fuzzy msgid "ask for confirmation for every action" msgstr "Kan ikke lese bekreftelse fra brukeren" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Du kan ikke angi mer enn ett av �-Acdtrux�-flaggene" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Konflikt i kompresjonsflagg" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr "Ukjent m�nster �%s�" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Mer enn �n grense-dato" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" +msgstr "Ugyldig eier gitt i flagg" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Ugyldig modus gitt i flagg" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "" -#: src/tar.c:1796 +#: src/tar.c:1916 #, fuzzy msgid "Invalid owner" msgstr "Ugyldig eier gitt i flagg" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 #, fuzzy msgid "Invalid record size" msgstr "Ugyldig verdi for record_size" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Blokkst�rrelse m� v�re delbart p� %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, fuzzy, c-format msgid "Unknown density: `%c'" msgstr "Ukjent m�nster �%s�" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Flaggene �-[0-7][lmh]� st�ttes ikke av *denne* implementasjonen av tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Gammelt flagg �%c� beh�ver et argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Ved flere arkivfiler beh�ves �-M�-flagget" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "" msgstr[1] "" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Kan ikke verifisere arkiv som g�r over flere volum" # -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Kan ikke verifisere komprimerte arkiver" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Kan ikke bruke komprimerte arkiv som g�r over flere volum" # -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Kan ikke oppdatere komprimerte arkiver" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "For feig til � lage et tomt arkiv" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Flaggene �-Aru� er inkompatible med �-f -�" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Du m� angi ett av �-Acdtrux�-flaggene" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2269,79 +2322,83 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Filen krympet med %d bytes, (�h!)" msgstr[1] "%s: Filen krympet med %d bytes, (�h!)" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2382,232 +2439,258 @@ msgstr "Skriver kontrollpunkt %d" msgid "Read checkpoint %u" msgstr "Leser kontrollpunkt %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Genrerer datafiler for GNU tar testpakke.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Konflikt i kompresjonsflagg" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Bruk: %s [FLAGG]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "%s: Kunne ikke endre aksess- og modifiseringstider" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Ugyldig datoformat �%s�" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Unkjent systemfeil" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "Kan ikke �pne %s" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Kan ikke eksekvere %s" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "Ukjent m�nster �%s�" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "Kan ikke gj�re �stat� p� %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "Kan ikke �pne %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--�delagte filnavn--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "Reading %s\n" +#~ msgstr "Leser %s\n" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Kan ikke allokere buffer\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Kan ikke allokere plass til buffer" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Tast �%s --help� for mer informasjon.\n" + +#~ msgid "Premature end of file" +#~ msgstr "For tidlig filslutt" #~ msgid "Cannot close file #%d" #~ msgstr "Kan ikke lukke fil #%d" @@ -2827,9 +2910,6 @@ msgstr "" #~ msgid "Visible longname error" #~ msgstr "Feil p� et langt navn" -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "Uventet filslutt i �delagte navn" - #~ msgid "Cannot symlink %s to %s" #~ msgstr "Kan ikke lage en symbolisk link fra %s til %s" diff --git a/po/nl.gmo b/po/nl.gmo index d1c0c66af1fadf1ddd57fe666bcf89e99096e753..3e32023c424e6e86c188999c93d5e9f945cc6bb6 100644 Binary files a/po/nl.gmo and b/po/nl.gmo differ diff --git a/po/nl.po b/po/nl.po index db3db2d723a9a3c0b9df2fe92e064105930da4a0..a671c82dd0747b45ef807b793416411f0be03e85 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,15 +1,15 @@ # Dutch translations for tar. -# Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # # Elros Cyriatan <cyriatan@fastmail.fm>, 2004. # Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008. msgid "" msgstr "" -"Project-Id-Version: tar-1.21\n" +"Project-Id-Version: tar-1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-12-27 12:51+0100\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-03-25 21:42+0100\n" "Last-Translator: Erwin Poeze <erwin.poeze@gmail.com>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n" "MIME-Version: 1.0\n" @@ -17,47 +17,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "ongeldig argument %s van %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argument %s van %s is niet eenduidig" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Geldige argumenten zijn:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: waarde voor '%s' is kleiner of gelijk aan %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: Parameter in ARGP_HELP_FMT vereist een waarde" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: Parameter in ARGP_HELP_FMT moet positief zijn" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Onbekende parameter in ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Rommel in ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -65,237 +65,145 @@ msgstr "" "Een argument dat verplicht of optioneel is voor een lange optie, is dat\n" "ook voor de overeenkomstige korte optie." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Gebruik: " -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " of: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [OPTIE...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Typ '%s --help' of '%s --usage' voor meer informatie.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, 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" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Onbekende systeemfout" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "deze hulptekst tonen" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "een korte gebruikssamenvatting tonen" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NAAM" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "de programmanaam instellen" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SECONDEN" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "dit aantal seconden pauzeren (standaard 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "programmaversie tonen" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "**Interne programmafout**: geen versie bekend!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Te veel argumenten\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "**Interne programmafout**: optie had herkend moeten worden!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "schrijffout" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: optie '%s' is niet eenduidig\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: optie '--%s' staat geen argument toe\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: optie '%c%s' staat geen argument toe\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: optie '%s' vereist een argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: onbekende optie '--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: onbekende optie '%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: ongeldige optie -- %c\n" -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ongeldige optie -- %c\n" - -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: optie vereist een argument -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: optie '-W %s' is niet eenduidig\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: optie '-W %s' staat geen argument toe\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "onvoldoende geheugen beschikbaar" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "kan de huidige werkmap niet vastleggen" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "kan niet terugkeren naar de initiële werkmap" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Functie %s() is mislukt" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Waarschuwing: functie %s() is mislukt" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Kan modus niet wijzigen naar %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Kan eigenaar niet wijzigen naar UID %lu, GID %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "Kan geen harde koppeling maken van %s naar %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Leesfout op byte %s, tijdens lezen van %lu byte" -msgstr[1] "%s: Leesfout op byte %s, tijdens lezen van %lu bytes" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Waarschuwing: leesfout op byte %s, tijdens lezen van %lu byte" -msgstr[1] "%s: Waarschuwing: leesfout op byte %s, tijdens lezen van %lu bytes" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Kan in bestand niet naar %s springen" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Waarschuwing: kan in bestand niet naar %s springen" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "Kan geen symbolische koppeling maken van %s naar %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Slechts %lu van %lu byte geschreven" -msgstr[1] "%s: Slechts %lu van %lu bytes geschreven" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Leidende '%s' wordt uit lidnamen weggelaten" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Leidende '%s' wordt uit doelen van harde koppelingen weggelaten" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Lege lidnaam wordt vervangen door '.'" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Lege doelnaam van harde koppeling wordt vervangen door '.'" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -309,17 +217,17 @@ msgstr "Lege doelnaam van harde koppeling wordt vervangen door '.'" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "‘" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "’" @@ -329,7 +237,7 @@ msgstr "’" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[jJyY]" @@ -339,39 +247,28 @@ msgstr "^[jJyY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Dienst is niet beschikbaar" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "standaardinvoer" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "standaarduitvoer" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Kan gindse shell niet uitvoeren" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -381,26 +278,26 @@ msgid "" "\n" msgstr "" "\n" +"Licentie GPLv3+: GNU GPL versie 3 of nieuwer <http://gnu.org/licenses/gpl." +"html>.\n" "Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n" -"De precieze licentie is GPLv3+: GNU GPL versie 3 of later.\n" -"Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n" "Er is GEEN GARANTIE, voor zover de wet dit toestaat.\n" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Geschreven door %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Geschreven door %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Geschreven door %s, %s en %s.\n" @@ -408,7 +305,7 @@ msgstr "Geschreven door %s, %s en %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +317,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +329,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -444,7 +341,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -456,7 +353,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -470,7 +367,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -484,7 +381,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -499,182 +396,335 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "" +"Rapporteer gebreken in het programma aan %s;\n" +"meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Rapporteer gebreken in het programma aan <%s>;\n" "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "%s-beginpagina: <http://www.gnu.org/software/%s/>.\n" + +#: gnu/version-etc.c:258 +#, fuzzy +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Algemene hulp bij het gebruik van GNU software: <http://www.gnu.org/gethelp/" +">.\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Invoertekenreeks is te lang" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Functie %s() is mislukt" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Syntaxfout in getal" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Waarschuwing: functie %s() is mislukt" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Kan geen bufferruimte reserveren\n" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Kan modus niet wijzigen naar %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Kan geen bufferruimte reserveren" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Kan eigenaar niet wijzigen naar UID %lu, GID %lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Typ '%s --help' voor meer informatie.\n" +msgid "%s: Cannot hard link to %s" +msgstr "Kan geen harde koppeling maken van %s naar %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Leesfout op byte %s, tijdens lezen van %lu byte" +msgstr[1] "%s: Leesfout op byte %s, tijdens lezen van %lu bytes" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Waarschuwing: leesfout op byte %s, tijdens lezen van %lu byte" +msgstr[1] "%s: Waarschuwing: leesfout op byte %s, tijdens lezen van %lu bytes" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Kan in bestand niet naar %s springen" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Waarschuwing: kan in bestand niet naar %s springen" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "Kan geen symbolische koppeling maken van %s naar %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Slechts %lu van %lu byte geschreven" +msgstr[1] "%s: Slechts %lu van %lu bytes geschreven" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Leidende '%s' wordt uit lidnamen weggelaten" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Leidende '%s' wordt uit doelen van harde koppelingen weggelaten" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Lege lidnaam wordt vervangen door '.'" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Lege doelnaam van harde koppeling wordt vervangen door '.'" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Dienst is niet beschikbaar" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "standaardinvoer" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "standaarduitvoer" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Gebruik: %s [OPTIE]\n" -"Een magneetband manipuleren, en opdrachten accepteren van een ander proces.\n" -"\n" -" --version programmaversie tonen\n" -" --help deze hulptekst tonen\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Sprongpositiefout" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Kan gindse shell niet uitvoeren" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Sprongrichting valt buiten bereik" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Ongeldige modus gegeven bij optie" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Ongeldige grootte: %s" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Sprongpositie valt buiten bereik" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Sprongrichting valt buiten bereik" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Ongeldige bandlengte" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Sprongpositie valt buiten bereik" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" +msgstr "rmtd: Voortijdig einde van bestand\n" + +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Hoofdbewerkingen:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Onverwacht einde-van-bestand in archief" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "AANTAL" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "BESTAND" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: Voortijdig einde van bestand\n" +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "Kan '%s' niet openen" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Voortijdig einde van bestand" +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "te veel argumenten" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Ongeldige opdracht" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Dit ziet er niet uit als een tar-archief" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Totaal aantal geschreven bytes" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Totaal aantal gelezen bytes" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Totaal aantal verwijderde bytes: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(pijp)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Ongeldige waarde voor recordgrootte" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Geen archiefnaam opgegeven" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Kan archieven op standaardinvoer of -uitvoer niet verifiëren" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archief is gecomprimeerd. Gebruik optie '%s'." -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Kan ingepakte archieven niet bijwerken" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Aan het begin van de band -- tar sluit nu af." -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Te veel fouten -- tar sluit nu af." -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Recordgrootte = %lu blok" msgstr[1] "Recordgrootte = %lu blokken" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Niet-uitgelijnd blok (%lu byte) in archief" msgstr[1] "Niet-uitgelijnd blok (%lu bytes) in archief" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Kan niet terugzoeken in archiefbestand; het kan onleesbaar zijn zonder -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek() is niet gestopt op een recordgrens" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: bevat een ongeldig deelnummer" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Deelnummer-overloop" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Zet deel #%d voor %s klaar en druk op Enter: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "een lege tekst, terwijl gebruikersinvoer werd verwacht" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "WAARSCHUWING: Archief is onvolledig" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -686,65 +736,65 @@ msgstr "" " q tar afbreken\n" " y of Enter doorgaan\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! een subshell starten\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? dit lijstje tonen\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Geen nieuw deel -- tar sluit af.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Geen bestandsnaam opgegeven. Probeer het nog eens.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ongeldige invoer. Typ ? voor hulp.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "Opdracht %s is mislukt" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s gaat mogelijk verder in dit deel: de kop bevat een afgekapte naam" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s gaat niet verder in dit deel" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s heeft een verkeerde grootte (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Dit deel valt buiten de reeks (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Archief is niet gemerkt als overeenkomend met %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Deel %s komt niet overeen met %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -752,60 +802,60 @@ msgstr "" "%s: bestandsnaam is te lang om opgeslagen te worden in een GNU-meerdelenkop; " "afgekapt" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "write is niet gestopt op een blokgrens" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Kon slechts %lu van %lu byte lezen" msgstr[1] "Kon slechts %lu van %lu bytes lezen" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Inhouden verschillen" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Onverwacht einde-van-bestand in archief" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Bestandssoort verschilt" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Modus verschilt" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "UID verschilt" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "GID verschilt" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Wijzigingstijd verschilt" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Grootte verschilt" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Niet gekoppeld aan %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolische koppeling verschilt" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Apparaatnummer verschilt" @@ -827,34 +877,34 @@ msgstr "Archief bevat bestandsnamen waarvan de prefixen verwijderd zijn." msgid "Verification may fail to locate original files." msgstr "Een verificatie kan mogelijk de originele bestanden niet vinden." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "Verificatie is MISLUKT: %d ongeldige kop gevonden" msgstr[1] "Verificatie is MISLUKT: %d ongeldige koppen gevonden" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Een los blok met nullen op %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: map bevat cache-markering %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "waarde %s valt buiten bereik voor %s (%s..%s); wordt vervangen door %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "waarde %s valt buiten bereik voor %s (%s..%s)" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Er worden negatieve octale koppen gemaakt" @@ -874,292 +924,278 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: koppelingsnaam is te lang; niet gearchiveerd" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Bestand is gekrompen met %s byte; aangevuld met nullen" msgstr[1] "%s: Bestand is gekrompen met %s bytes; aangevuld met nullen" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: bestand staat op een ander bestandssysteem; niet gearchiveerd" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "inhoud niet gearchiveerd" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Onbekende bestandssoort; bestand genegeerd" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Ontbrekende koppelingen naar %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: bestand is ongewijzigd; niet gearchiveerd" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: bestand is het archief zelf; niet gearchiveerd" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Bestand werd verwijderd voordat het gelezen kon worden" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "map is niet gearchiveerd" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: bestand is gewijzigd tijdens het lezen" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: socket genegeerd" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: deur genegeerd" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Alles tot aan volgende kop wordt overgeslagen" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Niet-kop wordt uit archief verwijderd" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: onwaarschijnlijk oude tijdsstempel %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: tijdsstempel %s ligt %s seconden in de toekomst" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Onverwachte inconsistentie tijdens aanmaken van map" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Map werd hernoemd voordat de status ervan kon worden bepaald" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Aaneengesloten bestanden worden uitgepakt als gewone bestanden" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "" "Poging om symbolische koppelingen als harde koppelingen uit te pakken..." -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Lezen van %s...\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Kan niet uitpakken -- bestand gaat door in een ander deel" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Onverwachte lange-naamkop" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Onbekende bestandssoort '%c'; uitgepakt als gewoon bestand" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Huidige %s is nieuwer of even oud" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Kan geen reservekopie van dit bestand maken" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Kan %s niet tot %s hernoemen" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Fout is niet herstelbaar -- tar sluit nu af." - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Map is hernoemd van %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Map is hernoemd" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Map is nieuw" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Ongeldig tijdsstempel" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Ongeldige wijzigingstijd (seconden)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Ongeldige wijzigingstijd (nanoseconden)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Ongeldig apparaatnummer" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Ongeldig inode-nummer" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Veld is te lang, tijdens lezen van snapshot-bestand" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Leesfout tijdens lezen van snapshot-bestand" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Onverwacht einde-van-bestand in snapshot-bestand" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Onverwachte veldwaarde in snapshot-bestand" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Ontbrekende record-afsluiting" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Onjuiste incrementele bestandsindeling" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" "Niet-ondersteunde versie (%<PRIuMAX>) van incrementele bestandsindeling" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Onjuiste archiveringsmap: '%c' werd verwacht maar %#3o gevonden" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Onjuiste archiveringsmap: 'X' staat er dubbel" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Onjuiste archiveringsmap: lege naam in 'R'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Onjuiste archiveringsmap: 'T' werd niet voorafgegaan door 'R'" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Onjuiste archiveringsmap: lege naam in 'T'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" "Onjuiste archiveringsmap: '%c' werd verwacht, maar de gegevens houden op" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Onjuiste archiveringsmap: 'X' is nergens gebruikt" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Kan met sjabloon %s geen tijdelijke map aanmaken" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Map wordt niet leeggemaakt: kan de status ervan niet bepalen" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: Map staat op een ander bestandssysteem; niet leeggemaakt" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Verwijderen van %s...\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Kan niet verwijderen" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Overgeslagen" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok van NUL-tekens **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Einde-bestand **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Witruimte in kop waar numerieke waarde voor %s werd verwacht" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1167,141 +1203,160 @@ msgstr "" "aangenomen" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Octaalwaarde %.*s in archief valt buiten bereik voor %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Archief bevat ouderwetse grondtal-64 koppen" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Tekenreeks %s (met grondtal-64-met-teken) valt buiten bereik voor %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Grondtal-256 waarde in archief valt buiten bereik voor %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Archief bevat %.*s waar numerieke waarde voor %s werd verwacht" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Waarde %s in archief valt buiten bereik voor %s (%s..%s)" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " koppeling naar %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " onbekende bestandssoort %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Lange koppeling--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Lange naam--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Deelkop--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Verder bij byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Aanmaken van map:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Hernoemen van %s tot %s...\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Kan niet tot %s hernoemen" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Hernoemen van %s terug tot %s...\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Kan werkmap niet opslaan" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Kan werkmap niet wijzigen" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Bestand werd verwijderd voordat het gelezen kon worden" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Bestand werd verwijderd voordat het gelezen kon worden" + +#: src/misc.c:795 msgid "child process" msgstr "dochterproces" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "interproces-kanaal" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Bestandsnamen bevatten jokertekens. Gebruik '--wildcards'" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "om patroonovereenkomsten in te schakelen," -#: src/names.c:597 -msgid "suppress this warning." -msgstr "of '-no-wildcards' om deze melding te onderdrukken." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Komt niet voor in archief" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Is vereist maar komt niet voor in archief" -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "--preserve-order en --listed-incremental gaan niet samen" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "--preserve-order en --listed-incremental gaan niet samen" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Opties '-%s' en '-%s' willen beide standaardinvoer gebruiken" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Ongeldige archiefindeling" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-functies gevraagd bij een incompatibele archiefindeling" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1309,7 +1364,7 @@ msgstr "" "Onbekende aanhalingsstijl '%s'. Probeer '%s --quoting-style=help' voor een " "overzicht." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1329,7 +1384,7 @@ msgstr "" " tar -tvf archief.tar # Alle bestanden in archief.tar opsommen.\n" " tar -xf archief.tar # Alle bestanden van archief.tar uitpakken.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1350,87 +1405,80 @@ msgstr "" " nil, existing genummerd als ze al bestaan, anders simpel\n" " never, simple altijd simpele reservekopieën maken\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Hoofdbewerkingen:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "de inhoud van een archief opsommen" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "bestanden uit een archief uitpakken" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "een nieuw archief aanmaken" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "verschillen tussen archief en bestandssyteem vinden" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "bestanden aan het eind van een archief toevoegen" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" "alleen bestanden toevoegen die nieuwer zijn dan hun versie in het archief" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "tar-bestanden aan een archief toevoegen" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "uit het archief verwijderen (niet gebruiken bij magneetbanden!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "label van archiefdeel controleren en stoppen" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Werkingsaanpassers:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "luchtige bestanden efficiënt verwerken" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "HOOFD[.SUB]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "versie van te gebruiken luchtige indeling (impliceert '--sparse')" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "oude GNU-indeling van incrementeel archief verwerken" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "BESTAND" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "nieuwe GNU-indeling van incrementeel archief verwerken" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "niet afsluiten met een foutcode bij onleesbare bestanden" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "AANTAL" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1442,125 +1490,129 @@ msgstr "" "diff, --extract of --list, en wanneer een lijst van bestanden gegeven is op " "de opdrachtregel of via de optie -T; AANTAL is standaard 1" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "archief is doorzoekbaar" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "archief is doorzoekbaar" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" "geen apparaatnummers controleren tijdens aanmaken van incrementele archieven" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "apparaatnummers controleren tijdens aanmaken van incrementele archieven " "(standaard)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Overschrijvingsopties:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "het archief na het schrijven proberen te verifiëren" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "bestanden na hun toevoeging aan het archief verwijderen" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "bij het uitpakken bestaande bestanden niet vervangen" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "bestaande bestanden die nieuwer zijn dan die in het archief niet vervangen" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "bestaande bestanden bij het uitpakken overschrijven" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "elk bestand verwijderen alvorens eroverheen uit te pakken" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "bestaande mappen leegmaken alvorens eroverheen uit te pakken" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "metagegevens van bestaande mappen behouden" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "de metagegevens van bestaande mappen bij het uitpakken overschrijven " "(standaard)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Selecteren van uitvoerkanaal:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "bestanden uitpakken naar standaarduitvoer" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "OPDRACHT" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "uitgepakte bestanden via pijp naar gegeven programma sluizen" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "afsluitwaardes van dochterprocessen negeren" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" "afsluitwaardes van dochterprocessen die niet nul zijn als fout behandelen" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Behandeling van bestandskenmerken:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "toegevoegde bestanden krijgen NAAM als eigenaar" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "toegevoegde bestanden krijgen NAAM als groep" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATUM-OF-BESTAND" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" "wijzigingstijd zetten van bestanden die wegens DATUM-OF-BESTAND toegevoegd " "zijn" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "WIJZIGINGEN" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "toegevoegde bestanden krijgen (symbolische) WIJZIGINGEN in hun modus" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "MANIER" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1570,27 +1622,31 @@ msgstr "" "herstellen van de tijdsstempels na het lezen (MANIER='replace'; standaard), " "of door de tijdsstempels met rust te laten (MANIER='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "bestandswijzigingstijden niet uitpakken" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "bestanden proberen uit te pakken met gelijkblijvende eigenaar" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "bestanden uitpakken als uzelf" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "altijd getallen gebruiken voor gebruikers- en groepsnamen" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "bestandspermissies ook uitpakken (standaard voor root)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1598,17 +1654,17 @@ msgstr "" "de umask van de gebruiker toepassen bij het uitpakken van bestandspermissies " "(standaard voor gewone gebruikers)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" "uit te pakken namen sorteren zodanig dat ze overeenkomen met de volgorde in " "het archief" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "hetzelfde als -p en -s samen" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1616,139 +1672,139 @@ msgstr "" "het zetten van permissies en tijdsstempels van mappen uitstellen tot het " "einde van het uitpakken" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "het effect van de optie --delay-directory-restore ongedaan maken" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Apparaatselectie en -wisseling:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIEF" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "archiefbestand of apparaat ARCHIEF gebruiken" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "archiefbestand is lokaal, zelfs als het een dubbele punt bevat" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "deze OPDRACHT gebruiken in plaats van rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "deze OPDRACHT gebruiken in plaats van rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "schijf en dichtheid opgeven" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "meerdelig archief aanmaken/opsommen/uitpakken" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "band wisselen na schrijven van AANTAL x 1024 bytes" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "script uitvoeren aan einde van elke band (impliceert -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "het deelnummer in BESTAND gebruiken/bijwerken" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Blokverwerking:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOKKEN" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOKKEN x 512 bytes per record" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "AANTAL bytes per record (een veelvoud van 512)" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "blokken met nullen in archief negeren (betekenen einde-van-bestand)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "doorgaan met lezen tot blok compleet is (voor 4.2BSD-pijpen)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Archiefindelingskeuze:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "INDELING" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "een archief maken in de gekozen indeling" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "INDELING is een van de volgende:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "oude V7 tar-indeling" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU-indeling van tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU-indeling van tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar-indeling)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax-indeling)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "hetzelfde als pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "hetzelfde als --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "hetzelfde als --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "sleutelwoord[[:]=waarde][,sleutelwoord[[:]=waarde]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "het aangeven van pax-sleutelwoorden" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEKST" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1756,104 +1812,78 @@ msgstr "" "een archief met deelnaam TEKST maken; bij opsommen/uitpakken TEKST als " "zoekpatroon voor de deelnaam gebruiken" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Compressie-opties:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "compressieprogramma afleiden uit bestandsachtervoegsel" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "compressieprogramma niet afleiden uit bestandsachtervoegsel" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "het archief door 'bzip2' filteren" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "het archief door 'gzip' filteren" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "het archief door 'compress' filteren" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "het archief door 'lzma' filteren" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "het archief door 'lzop' filteren" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "het archief door 'gzip' filteren" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROGRAMMA" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "het archief door dit programma filteren (moet -d accepteren)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Lokale bestandskeuze:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "het gegeven BESTAND aan het archief toevoegen (handig als de naam begint met " "een '-')" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "MAP" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "naar MAP gaan" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "namen van in of uit te pakken bestanden uit BESTAND halen" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T leest met NUL afgesloten namen, -C uitzetten" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "het resultaat van de vorige --null-optie ongedaan maken" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "aanhalingstekens verwijderen rond bestandsnamen gelezen met -T (standaard)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "aanhalingstekens niet verwijderen rond bestandsnamen gelezen met -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "PATROON" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "bestanden uitsluiten, gegeven als een PATROON" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "uitsluitingspatronen staan opgesomd in BESTAND" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1861,91 +1891,95 @@ msgstr "" "inhoud van mappen die CACHEDIR.TAG bevatten uitsluiten, behalve CACHEDIR.TAG " "zelf" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "alles onder mappen die CACHEDIR.TAG bevatten uitsluiten" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "mappen die CACHEDIR.TAG bevatten uitsluiten" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "inhoud van mappen die BESTAND bevatten uitsluiten, behalve BESTAND zelf" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "alles onder mappen die BESTAND bevatten uitsluiten" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "mappen die BESTAND bevatten uitsluiten" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "systeemmappen van versiebeheer uitsluiten" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "niet automatisch afdalen in mappen" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "in het lokale bestandssysteem blijven bij maken van archief" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "recursief in mappen afdalen (standaard)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "leidende '/' niet uit bestandsnamen verwijderen" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "symbolische koppelingen volgen; de bestanden waar ze naar verwijzen " "archiveren" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "harde koppelingen volgen; de bestanden waar ze naar verwijzen archiveren" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "LIDNAAM" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "beginnen bij lid LIDNAAM in het archief" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "alleen bestanden opslaan die nieuwer zijn dan DATUM-OF-BESTAND" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATUM" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "datum en tijd alleen vergelijken wanneer gegevens veranderd zijn" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "MANIER" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "voor verwijdering een reservekopie maken, op de aangegeven MANIER" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "TEKENREEKS" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1954,90 +1988,99 @@ msgstr "" "(in plaats van '~', die standaard is tenzij door omgevingsvariable " "SIMPLE_BACKUP_SUFFIX veranderd)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Bestandsnaam-transformaties:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "dit AANTAL leidende componenten uit bestandsnamen verwijderen" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "EXPRESSIE" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "deze vervangings-EXPRESSIE gebruiken om bestandsnamen met 'sed' te " "transformeren" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "Bestandsnaamselectie-opties (voor zowel in- als uitsluitingspatronen)" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "verschil tussen hoofd- en kleine letters negeren" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "patronen komen overeen met begin van bestandsnaam" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" "patronen komen overeen met alles na een '/' (is standaard bij uitsluiting)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "hoofdlettergevoelige vergelijking (standaard)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "jokertekens gebruiken (is standaard bij uitsluiting)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "exacte tekenreeksvergelijking" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "jokertekens komen niet overeen met '/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "jokertekens komen overeen met '/' (is standaard bij uitsluiting)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Informatieve uitvoer:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "de verwerkte bestanden opsommen" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Overschrijvingsopties:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "voortgangsberichten tonen voor elk AANTALste record (standaard 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "ACTIE" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "bij elk controlepunt deze ACTIE uitvoeren" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "een bericht tonen als niet alle links gearchiveerd werden" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2049,27 +2092,27 @@ msgstr "" "ontvangen wordt; mogelijke signalen zijn: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 " "en SIGUSR2; de namen zonder het voorvoegsel SIG worden ook geaccepteerd" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "bestandswijzigingstijden in UTC tonen" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "breedsprakige uitvoer naar BESTAND sturen" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "blokgetal binnen archief tonen bij elk bericht" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "bij elke actie om toestemming vragen" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "standaardinstellingen van tar tonen" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2077,33 +2120,33 @@ msgstr "" "bij opsommen of uitpakken: elke map opsommen die niet aan zoekcriteria " "voldoet" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "bestands- of archiefnamen na transformatie tonen" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STIJL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "aanhalingsstijl voor namen instellen (zie verderop voor geldige waarden van " "STIJL)" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "ook de tekens in TEKENREEKS aanhalen" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "de tekens in TEKENREEKS niet aanhalen" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Compatibiliteitsopties:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2111,56 +2154,64 @@ msgstr "" "bij aanmaken hetzelfde als --old-archive; bij uitpakken hetzelfde als --no-" "same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Andere opties:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "gebruik van mogelijk gevaarlijke opties of opdrachten uitschakelen" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Slechts één van de opties 'Acdtrux' is mogelijk" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Conflicterende compressie-opties" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Onbekende signaalnaam: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Voorbeeldbestand voor tijdsstempel niet gevonden" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Onbekende datumopmaak %2$s wordt vervangen door %1$s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Optie %s: datum '%s' wordt begrepen als %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: bestandenlijst is al gelezen" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: gelezen bestandsnaam bevat een NUL-teken" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "het archief door 'xz' filteren" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "Geldige argumenten van --quoting-style zijn:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2168,48 +2219,53 @@ msgstr "" "\n" "*Deze* tar gebruikt de volgende standaardwaarden:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Ongeldige blokindeling" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Ongeldige bandlengte" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Onjuiste incrementele bestandsindeling" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Meerdere drempeldata" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Ongeldig versienummer voor luchtige indeling" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' is op dit platform niet mogelijk" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "waarde van --checkpoint is geen geheel getal" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Ongeldige groep" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Ongeldige modus gegeven bij optie" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Ongeldig nummer" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Ongeldige eigenaar" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2217,111 +2273,117 @@ msgstr "" "De optie --preserve is vervallen, gebruik nu --preserve-permissions --" "preserve-order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Ongeldige recordgrootte" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Recordgrootte moet een veelvoud zijn van %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Ongeldig aantal elementen" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Slechts één optie --to-command is toegestaan" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Ongeldig dichtheidsargument: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Onbekende dichtheid: '%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Opties '-[0-7][lmh]' worden niet ondersteund door *deze* tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[BESTAND]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Oude optie '%c' vereist een argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "'--occurrence' betekent niets zonder een bestandenlijst" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "'--occurrence' kan niet worden gebruikt in de gevraagde werkingsmodus" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Voor meerdere archiefbestanden is de optie '-M' vereist" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Kan '--listed-incremental' niet met '--newer' combineren" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--preserve-order en --listed-incremental gaan niet samen" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Deellabel is te lang (grens is %lu byte)" msgstr[1] "%s: Deellabel is te lang (grens is %lu bytes)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Kan meerdelige archieven niet verifiëren" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Kan ingepakte archieven niet verifiëren" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Kan geen meerdelige ingepakte archieven gebruiken" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Kan ingepakte archieven niet samenvoegen" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "optie '--pax' kan alleen worden gebruikt bij POSIX-archieven" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "Deellengte kan niet kleiner zijn dan de recordgrootte" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "--preserve-order en --listed-incremental gaan niet samen" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Een geheel leeg archief wordt niet aangemaakt" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Opties '-Aru' gaan niet samen met '-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "U dient een van de opties '-Acdtrux' op te geven" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Stopt met foutstatus vanwege eerdere fouten" @@ -2333,52 +2395,57 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Bestand is gekrompen met %s byte" msgstr[1] "%s: Bestand is gekrompen met %s bytes" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Sleutelwoord %s is onbekend of nog niet geïmplementeerd" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Getal valt buiten toegestaan bereik: %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Patroon %s kan niet worden gebruikt" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Sleutelwoord %s kan niet worden overstegen" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Onjuiste uitgebreide kop: ontbrekende lengte" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Lengte van uitgebreide kop valt buiten bereik" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Lengte %*s van uitgebreide kop valt buiten bereik" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Onjuiste uitgebreide kop: ontbrekende witruimte na de lengte" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Onjuiste uitgebreide kop: ontbrekend isgelijkteken" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Onjuiste uitgebreide kop: ontbrekend regeleinde" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Genegeerd: onbekend sleutelwoord '%s' in uitgebreide kop" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2387,28 +2454,28 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" "Waarde %2$s in uitgebreide kop valt buiten bereik voor %1$s (%3$s..%4$s)" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Onjuiste uitgebreide kop: ongeldige %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Onjuiste uitgebreide kop: overtollige %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Onjuiste uitgebreide kop: ongeldige %s: onverwacht scheidingsteken %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Onjuiste uitgebreide kop: ongeldige %s: oneven aantal waarden" @@ -2449,7 +2516,7 @@ msgstr "Schrijfcontrolepunt %u" msgid "Read checkpoint %u" msgstr "Leescontrolepunt %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2457,91 +2524,97 @@ msgstr "" "genfile manipuleert gegevensbestanden voor de testreeksen van GNU paxutils.\n" "OPTIES zijn:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Bestandsaanmaak-opties:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "GROOTTE" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "een bestand van de gegeven GROOTTE aanmaken" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "naar het bestand NAAM schrijven i.p.v. naar standaarduitvoer" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "bestandsnamen uit BESTAND lezen" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T leest met NUL afgesloten namen" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "het bestand met het gegeven PATROON vullen; PATROON is 'default' (standaard) " "of 'zeros' (nullen)" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "blokgrootte voor luchtig bestand" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "luchtig bestand genereren; de rest van de opdrachtregel specificeert de " "indeling" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "POSITIE" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "naar deze positie springen alvorens met schrijven te beginnen" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Bestandsstatistieken-opties:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "voor elk gegeven bestand de inhoud van de 'struct stat' printen; de " "standaard INDELING is: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Synchrone-uitvoer-opties:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [OPTIE...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "gegeven OPDRACHT uitvoeren; dit is nuttig bij '--checkpoint' samen met één " "van '--cut', '--append' of '--touch'" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "de gegeven actie uitvoeren (zie verderop) bij bereiken van het AANTALste " "controlepunt" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "de datum voor de volgende '--touch'" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "de uitgevoerde controlepunten en de afsluitwaarde van OPDRACHT tonen" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2549,7 +2622,7 @@ msgstr "" "Synchroon uit te voeren acties. Deze worden uitgevoerd bij het bereiken van " "het controlepunt opgegeven met de optie '--checkpoint'." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2557,140 +2630,214 @@ msgstr "" "BESTAND afkappen tot de grootte opgegeven met een voorafgaande optie '--" "length' (of 0 als niet gegeven)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "BESTAND met GROOTTE aantal bytes vergroten; deze GROOTTE is met een " "voorafgaande optie '--length' opgegeven" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "de toegangs- en wijzigingstijdsstempels van BESTAND bijwerken" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "OPDRACHT uitvoeren" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ongeldige grootte: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Getal valt buiten toegestaan bereik: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatieve grootte: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "Kan status van %s niet bepalen" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "gevraagde bestandslengte %lu, werkelijk %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "aangemaakt bestand is niet luchtig" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Fout tijdens getalsontleding, nabij '%s'" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Onbekende datumopmaak" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGUMENTEN]..." -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "Kan '%s' niet openen" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "kan niet springen" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "Bestandsnaam bevat een NUL-teken" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "Kan geen luchtige bestanden genereren op standaarduitvoer; gebruik de optie " "'--file'" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "Onjuist masker (nabij '%s')" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Onbekend veld '%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "Kan tijdsstempel van '%s' niet zetten" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "Kan '%s' niet openen" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Opdracht is succesvol afgesloten\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Opdracht is mislukt met afsluitwaarde %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Opdracht is afgebroken door signaal %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Opdracht is gestopt door signaal %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Opdracht resulteerde in een core-dump\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Opdracht is afgebroken\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "'--stat' vereist bestandsnamen" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "te veel argumenten" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: ongeldige optie -- %c\n" + +#~ msgid "" +#~ "\n" +#~ "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" + +#~ msgid "Reading %s\n" +#~ msgstr "Lezen van %s...\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Fout is niet herstelbaar -- tar sluit nu af." + +#~ msgid "suppress this warning." +#~ msgstr "of '-no-wildcards' om deze melding te onderdrukken." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "het archief door 'bzip2' filteren" + +#~ msgid "filter the archive through gzip" +#~ msgstr "het archief door 'gzip' filteren" + +#~ msgid "filter the archive through compress" +#~ msgstr "het archief door 'compress' filteren" + +#~ msgid "filter the archive through lzma" +#~ msgstr "het archief door 'lzma' filteren" + +#~ msgid "filter the archive through lzop" +#~ msgstr "het archief door 'lzop' filteren" + +#~ msgid "Input string too long" +#~ msgstr "Invoertekenreeks is te lang" + +#~ msgid "Number syntax error" +#~ msgstr "Syntaxfout in getal" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Kan geen bufferruimte reserveren\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Kan geen bufferruimte reserveren" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Typ '%s --help' voor meer informatie.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Gebruik: %s [OPTIE]\n" +#~ "Een magneetband manipuleren, en opdrachten accepteren van een ander " +#~ "proces.\n" +#~ "\n" +#~ " --version programmaversie tonen\n" +#~ " --help deze hulptekst tonen\n" + +#~ msgid "Seek offset error" +#~ msgstr "Sprongpositiefout" + +#~ msgid "Premature end of file" +#~ msgstr "Voortijdig einde van bestand" #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" #~ msgstr "" diff --git a/po/pl.gmo b/po/pl.gmo index a2b793f878a4c2a1790a6319e5c0f987d11a43aa..32778062a4ecde71b12a5e9fadbf6b2621b397ac 100644 Binary files a/po/pl.gmo and b/po/pl.gmo differ diff --git a/po/pl.po b/po/pl.po index de6d277c67501ad44e0e4630e7a158d9e3031ee5..6dd9fbd774e42a36f0cdcb14830b0b703d6db3df 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,17 +1,14 @@ # Polish translation of GNU tar -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. -# Rafał Maszkowski <rzm@icm.edu.pl>, 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, 2008. +# Rafał Maszkowski <rzm@icm.edu.pl>, 1996, 1997, 2000, 2001, 2003, 2004, 2006-2010. „ # Thanks to Jakub Bogusz for remarks and corrections, 2003, 2004, 2007, 2008 -# -# my „smart" mutt needs this line -# msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-12-27 23:59+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-15 16:05+0200\n" "Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -20,47 +17,47 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "błędny argument %s opcji %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "niejednoznaczny argument %s opcji %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Prawidłowe argumenty to:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: wartość %s jest mniejsza lub równa %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: Parametr ARGP_HELP_FMT wymaga podania wartości" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: Parametr ARGP_HELP_FMT musi być dodatni" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Nieznany parametr ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Śmieci w ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -68,239 +65,143 @@ msgstr "" "Argumenty obowiązkowe lub opcjonalne dla opcji długich są również " "obowiązkowe lub opcjonalne również dla odpowiadających im opcji krótkich." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Składnia:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " albo: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr "[OPCJE...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Użyj `%s --help' albo `%s --usage' żeby otrzymać więcej informacji\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Raporty o błędach należy wysyłać do %s .\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Nieznany błąd systemu" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "wyświetlenie tego opisu" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "krótka informacja o opcjach" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NAZWA" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "ustawienie nazwy programu" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SEK" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "poczekaj SEK sekund (domyślnie 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "informacja o wersji programu" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(BŁĄD PROGRAMU) Nieznana wersja!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Za dużo argumentów\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(BŁĄD PROGRAMU) Opcja powinna była być rozpoznana!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "błąd zapisu" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: opcja ~%s' jest niejednoznaczna\n" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: opcja '%s' jest niejednoznaczna\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: opcja `--%s' nie może mieć argumentu\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: opcja '--%s' nie może mieć argumentu\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: opcja `%c%s' nie może mieć argumentu\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: opcja '%c%s' nie może mieć argumentu\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: opcja `%s' wymaga argumentu\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: opcja '%s' wymaga argumentu\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: nierozpoznana opcja `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: nierozpoznana opcja '--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: nierozpoznana opcja `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: nierozpoznana opcja '%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: nielegalna opcja -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: błędna opcja -- '%c'\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: błędna opcja -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: opcja wymaga argumentu -- '%c'\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: opcja wymaga argumentu -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: opcja '-W %s' jest niejednoznaczna\n" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: opcja `-W %s' jest niejednoznaczna\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: opcja '-W %s' nie może mieć argumentu\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: opcja `-W %s' nie może mieć argumentu\n" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "brak pamięci" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" -msgstr "nie udało się zapisać bieżacego katalogu" +msgstr "nie udało się zapisać bieżącego katalogu" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "nie udało się powrócić do początkowego katalogu bieżącego" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Nie można %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Uwaga: Nie można %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Nie można zmienić uprawnień na %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Nie można zmienić właściciela na uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Nie można utworzyć łącza do %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Błąd czytania, bajt %s, przy czytaniu %lu bajtu" -msgstr[1] "%s: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" -msgstr[2] "%s: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Uwaga: Błąd czytania, bajt %s, przy czytaniu %lu bajtu" -msgstr[1] "%s: Uwaga: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" -msgstr[2] "%s: Uwaga: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Nie można ustawić pozycji %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Uwaga: Nie można ustawić wskaźnika na %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Nie można było utworzyć łącza symbolicznego do %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Można było zapisać tylko %lu z %lu bajtu" -msgstr[1] "%s: Można było zapisać tylko %lu z %lu bajtów" -msgstr[2] "%s: Można było zapisać tylko %lu z %lu bajtów" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Usunięcie początkowego `%s' z nazw plików" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "" -"Usunięcie początkowego `%s' z nazw plików wskazywanych przez łącza zwykłe" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Podstawienie `.' zamiast pustej nazwy" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Podstawienie `.' zamiast pustej nazwy wskazywanej przez łącze zwykłe" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -314,17 +215,17 @@ msgstr "Podstawienie `.' zamiast pustej nazwy wskazywanej przez łącze zwykłe" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -334,7 +235,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yYtT]" @@ -344,39 +245,28 @@ msgstr "^[yYtT]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Usługa niedostępna" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "Pakowane przez %s (%s)\n" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Nie można uruchomić zdalnego shella" +msgid "Packaged by %s\n" +msgstr "Pakowane przez %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "(C)" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -386,26 +276,26 @@ msgid "" "\n" msgstr "" "\n" -"Licencja GPLv3+: GNU GPL wersja 3 albo późniejsza <http://gnu.org/licenses/" -"gpl.html>\n" +"Licencja GPLv3+: GNU GPL wersja 3 albo późniejsza http://gnu.org/licenses/" +"gpl.html\n" "To jest wolne oprogramowanie: możesz je modyfikować i rozpowszechniać.\n" "Autorzy NIE DAJĄ GWARANCJI w granicach dozwolonych prawem.\n" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Napisany przez %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Napisany przez %s i %s\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Napisany przez %s, %s i %s.\n" @@ -413,7 +303,7 @@ msgstr "Napisany przez %s, %s i %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -425,7 +315,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -437,7 +327,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -449,7 +339,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -461,7 +351,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -475,7 +365,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -489,7 +379,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -504,136 +394,284 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"Raporty o błędach należy wysyłać do %s .\n" +"O błędach programu poinformuj %s\n" +"O błędach tłumaczenia poinformuj translation-team-pl@lists.sourceforge.net\n" + +#: gnu/version-etc.c:249 +#, c-format +msgid "Report %s bugs to: %s\n" +msgstr "Raporty o błędach %s należy wysyłać do %s\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" +msgstr "Strona domowa %s: %s\n" + +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Strona domowa %s: http://www.gnu.org/software/%s/\n" + +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Informacje o używaniu oprogramowania GNU: http://www.gnu.org/gethelp/\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Nie można %s" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Uwaga: Nie można %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Nie można zmienić uprawnień na %s" + +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Nie można zmienić właściciela na uid %lu, gid %lu" + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Nie można utworzyć łącza do %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Błąd czytania, bajt %s, przy czytaniu %lu bajtu" +msgstr[1] "%s: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" +msgstr[2] "%s: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Uwaga: Błąd czytania, bajt %s, przy czytaniu %lu bajtu" +msgstr[1] "%s: Uwaga: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" +msgstr[2] "%s: Uwaga: Błąd czytania, bajt %s, przy czytaniu %lu bajtów" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Nie można ustawić pozycji %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Uwaga: Nie można ustawić wskaźnika na %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Nie można było utworzyć łącza symbolicznego do %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Można było zapisać tylko %lu z %lu bajtu" +msgstr[1] "%s: Można było zapisać tylko %lu z %lu bajtów" +msgstr[2] "%s: Można było zapisać tylko %lu z %lu bajtów" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Usunięcie początkowego `%s' z nazw plików" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" msgstr "" +"Usunięcie początkowego `%s' z nazw plików wskazywanych przez łącza zwykłe" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Za długi napis na wejściu" +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Podstawienie `.' zamiast pustej nazwy" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Błąd syntaktyczny w liczbie" +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Podstawienie `.' zamiast pustej nazwy wskazywanej przez łącze zwykłe" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Nie można przydzielić miejsca na bufor\n" +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Usługa niedostępna" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Nie można przydzielić miejsca na bufor" +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" -#: rmt/rmt.c:304 +#: lib/rtapelib.c:306 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Spróbuj `%s --help' żeby otrzymać więcej informacji\n" +msgid "stdout" +msgstr "stdout" -#: rmt/rmt.c:308 +#: lib/rtapelib.c:429 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Składnia: %s [OPCJA]\n" -"Manipulacja napędem taśmowym, przyjmowanie komend od zdalnych procesów.\n" -"\n" -" --version Wypisanie informacji o wersji.\n" -" --help Pokazanie informacji o opcjach.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Błąd pozycji w pliku" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Nie można uruchomić zdalnego shella" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Sposób ustawiania pozycji w pliku spoza zakresu" + +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "Błędne kierunek przesuwania wskaźnika pozycji" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "Błędne przesunięcie wskaźnika pozycji" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Pozycja w pliku poza zakresem" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Sposób ustawiania pozycji w pliku spoza zakresu" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "Błędna liczba bajtów" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "Liczba bajtów poza zakresem" + +#: rmt/rmt.c:539 +msgid "Premature eof" +msgstr "Przedwczesny EOF" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: Przedwczesny EOF\n" +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "Błędny kod operacji" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Przedwczesny koniec pliku" +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "Operacja nie przewidziana" -#: rmt/rmt.c:672 +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "Nieoczekiwany argumenty" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" +"Posługiwanie się napędem taśmowym, przyjmowanie poleceń od zdalnego procesu" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "LICZBA" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "ustawienie poziomu wypisywania informacji diagnostycznych" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "PLIK" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "plik do zapisywania informacji diagnostycznych" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "nie można otworzyć %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "za dużo argumentów" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Bezsensowna komenda" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "To nie wygląda jak archiwum tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Licza zapisanych bajtów" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Liczba przeczytanych bajtów" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Liczba skasowanych bajtów: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Błędna wartość record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Nie podana nazwa archiwum" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Nie można zweryfikować archiwum z/do stdin/stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archiwum jest skompresowane. Należy użyć opcji %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Nie można uaktualnić archiwum skompresowanego" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Na początku taśmy, teraz kończę" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Za dużo błędów, kończę" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -641,7 +679,7 @@ msgstr[0] "Rozmiar rekordu = %lu blok" msgstr[1] "Rozmiar rekordu = %lu bloki" msgstr[2] "Rozmiar rekordu = %lu bloków" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -649,38 +687,38 @@ msgstr[0] "Nierówny blok (%lu bajt) w archiwum" msgstr[1] "Nierówny blok (%lu bajty) w archiwum" msgstr[2] "Nierówny blok (%lu bajtów) w archiwum" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Nie można się cofnąć w pliku archiwum; może nie być czytelny bez -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek nie zatrzymał się na granicy rekordów" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: zawiera błędny numer części" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Przepełnienie numeru części" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Przygotuj część numer %d dla %s i naciśnij return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF kiedy była oczekiwana odpowiedź użytkownika" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "UWAGA: Archiwum jest niekompletne" # rare case when `for parts' translates into `części' for both sing. and plural in Polish - rzm -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -691,68 +729,68 @@ msgstr "" " q Zakończenie programu tar\n" " y albo Enter Kontynuacja\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Uruchomienie powłoki\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Wypisanie tej listy\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Brak nowej części; zakończenie pracy.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Brak nazwy pliku. Spróbuj jeszcze raz.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" "Błędne dane wejściowe. Wciśnij ? żeby przeczytać informacje pomocnicze\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "%s polecenie zwróciło błąd" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s prawdopodobnie jest kontynuowany w tej części: nagłówek zawiera skróconą " "nazwę" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s nie jest kontynuowany w tej części" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s to zły rozmiar (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Ta część nie jest w kolejności (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Etykieta archiwum nie pasuje do %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Część %s nie pasuje do %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -760,11 +798,11 @@ msgstr "" "%s: nazwa pliku jest za długa do zapisania w nagłówku wieloczęściowego " "archiwum GNU, zostanie skrócona" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "zapis nie zakończył się na granicy bloków" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -772,49 +810,49 @@ msgstr[0] "Można było przeczytać tylko %lu z %lu bajtu" msgstr[1] "Można było przeczytać tylko %lu z %lu bajtów" msgstr[2] "Można było przeczytać tylko %lu z %lu bajtów" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Zawartości się różnią" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Nieoczekiwany EOF w archiwum" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Różne typy plików" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Uprawnienia się różnią" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid się różni" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid się różni" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Czas modyfikacji się różni" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Rozmiar się różni" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Nie dołączony do %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Łącze symboliczne się różni" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Różnią się numery urządzeń" @@ -836,7 +874,7 @@ msgstr "Archiwum zawiera nazwy plików bez początkowych elementów ścieżek." msgid "Verification may fail to locate original files." msgstr "Podczas weryfikacji mogą nie być znalezione pliki lokalne" -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -844,28 +882,28 @@ msgstr[0] "BŁĄD WERYFIKACJI: wykryto %d błędny nagłówek" msgstr[1] "BŁĄD WERYFIKACJI: wykryto %d błędne nagłówki" msgstr[2] "BŁĄD WERYFIKACJI: wykryto %d błędnych nagłówków" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Samotny blok zerowy przy %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: zawiera znacznik katalogu pamięci podręcznej %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "wartość %s z %s poza zakresem %s..%s; podstawione %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "wartość %s z %s poza zakresem %s..%s" # hm? - rzm -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Tworzenie ujemnych nagłówków ósemkowych" @@ -885,7 +923,7 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: nazwa łącza jest za długa; nie została zapisana" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -893,282 +931,268 @@ msgstr[0] "%s: Plik skurczył się o %s bajt; jest dopełniany zerami" msgstr[1] "%s: Plik skurczył się o %s bajty; jest dopełniany zerami" msgstr[2] "%s: Plik skurczył się o %s bajtów; jest dopełniany zerami" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: plik w innym systemie plików; nie został zapisany" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "zawartość nie została zapisana" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Nieznany typ pliku; plik zignorowany" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "Brakujące łącza do %s.\n" +msgid "Missing links to %s." +msgstr "Brakujące łącza do %s." -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: plik jest niezmieniony; nie został zapisany" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: plik jest w tym archiwum; nie został zapisany" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Plik usunięty zanim został przeczytany" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "katalog nie został zapisany" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: plik zmienił się w trakcie czytania" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: zignorowane gniazdo z nazwą" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: zignorowany plik door" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Przeskoczenie do następnego nagłówka" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Kasowanie z archiwum nie-nagłówka" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: niemożliwie stara data %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: znacznik czasowy %s jest przesunięty o %s s w przyszłość" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Nieoczekiwana niespójność przy zakładaniu katalogu" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Katalog zmienił nazwę zanim można było odtworzyć jego status" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Odtwarzanie plików ciągłych (nie sparse) jako zwykłych" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Próba odtworzenia łącza symbolicznego jako zwykłego" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Czytam %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Nie można odtworzyć -- plik jest kontynuowany z innej części" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Niespodziewany nagłówek z długą nazwą" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Nieznany typ pliku `%c', odtworzony jako plik zwykły" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Aktualny %s jest nowszy albo w tym samym wieku" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Nie można było zrobić kopii zapasowej tego pliku" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Nie można przemianować %s na %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Błąd nie do naprawienia: koniec" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Nazwa katalogu została zmieniona z %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Nazwa katalogu została zmieniona" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Katalog jest nowy" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Błędny czas pliku" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Błędny czas modyfikacji (sekundy)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Błędny czas modyfikacji (nanosekundy)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Błędny numer urządzenia" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Błędny numer inodu" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Za długie pole w pliku migawkowym" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Błąd czytania pliku migawkowego" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Nieoczekiwany EOF w pliku migawkowym" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Nieoczekiwana wartość pola w pliku migawkowym" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Brakujące zakończenie rekordu" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Zły format pliku przyrostowego" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Nie obsługiwana wersja formatu przyrostowego: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Zły format katalogu zrzutów: oczekiwano '%c', znaleziono %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Zły format katalogu zrzutów: powtórzone 'X'" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Zły format katalogu zrzutów: pusta nazwa w 'R'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Zły format katalogu zrzutów: 'T' nie jest poprzedzone przez 'R'" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Zły format katalogu zrzutów: pusta nazwa w 'T'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Zły format katalogu zrzutów: oczekiwano '%c', znaleziono koniec danych" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Zły format katalogu zrzutów: nigdy nie użyte 'X'" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Nie można utworzyć katalogu tymczasowego przy użyciu wzorca %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Bez skasowania katalogu: nie można odczytać stanu" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: katalog na innym urządzeniu: bez skasowania" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Usunięcie %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Nie można usunąć" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Pominięty" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok zer **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok: %s: ** Koniec pliku **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Odstępy w nagłówku zamiast spodziewanej wartości numerycznej %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1176,142 +1200,161 @@ msgstr "" "jak uzupełnienie dwójkowe" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Wartość ósemkowa %.*s w archiwum jest spoza zakresu %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Archiwum zawiera przestarzałe nagłówki base64" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "W archiwum jest łańcuch base64 %s spoza zakresu %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Wartość base256 w archiwum jest spoza zakresu %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Archiwum zawiera %.*s tam gdzie oczekiwana była liczba %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Wartość %s w archiwum jest spoza zakresu %s %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " łącze do %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " nieznany typ pliku %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Długie łącze--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Długa nazwa--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Nagłówek części--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Kontynuacja od bajtu %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Tworzony jest katalog:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Nazwa %s zmieniona na %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Nie można przemianować na %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Nazwa zmieniona z %s z powrotem na %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Nie można zapisać bieżącego katalogu" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Nie można zmienić katalogu" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Plik usunięty zanim został przeczytany" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Katalog usunięty zanim został przeczytany" + +#: src/misc.c:795 msgid "child process" msgstr "proces potomny" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "kanał między procesami" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "W nazwach plików użyto znaków dopasowania wzorców. Proszę" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" "użyć --wildcards aby włączyć porównywanie wzorców albo --no-wildcards żeby" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "wyłączyć to ostrzeżenie" - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nie znalazłem w archiwum" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Brak podanego wystąpienia pliku w archiwum" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" +"Nie jest dozwolone używanie opcji -C wewnątrz listy plików razem z --listed-" +"incremental" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Z --listed-incremental można użyć tylko jednej opcji -C" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Opcje `-%s' i `-%s' obie chcą dostępu do standardowego wejścia" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Błędny format archiwum" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Próba użycia rozszerzeń GNU z niekompatybilnym formatem archiwum" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1319,7 +1362,7 @@ msgstr "" "Nieznany styl cytowania `%s'. Użyj `%s --quoting-style=help' żeby zobaczyć " "listę." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1338,7 +1381,7 @@ msgstr "" "tar.\n" " tar -xf archive.tar # rozpakowanie plików z archive.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1361,86 +1404,79 @@ msgstr "" "proste\n" " never, simple proste kopie zapasowe\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Podstawowe tryby działania:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "wypisanie zawartości archiwum" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "rozpakowanie plików z archiwum" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "utworzenie nowego archiwum" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "sprawdzenie różnic między archiwum i plikami na dysku" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "dołączenie plików na końcu archiwum" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "dołączenie tylko plików nowszych niż kopie w archiwum" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "dołączenie plików tar do archiwum" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "skasowanie plików z archiwum (nie na taśmie!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "przetestowanie etykiety archiwum i wyjście" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Modyfikatory działania:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "efektywne przetwarzanie plików rzadkich" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJOR[.MINOR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "ustawienie wersji używanego formatu plików rzadkich (włącza --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "backup przyrostowy w starym formacie GNU" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "PLIK" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "backup przyrostowy w nowym formacie GNU" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "numer poziomu tworzonej albo oglądanej przyrostowej kopii zapasowej" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "bez zakończenia błędem jeżeli niedostępne pliki" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "LICZBA" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1452,121 +1488,124 @@ msgstr "" "plików jest podana w linii poleceń albo przez opcję -T. LICZBA domyślnie " "wynosi 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "archiwum o swobodnym dostępie" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "archiwum bez swobodnego dostępu" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "bez sprawdzania numerów urządzeń przy tworzeniu archiwów przyrostowych" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "ze sprawdzaniem numerów urządzeń przy tworzeniu archiwów przyrostowych" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Sterowanie zamazywaniem" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "próba weryfikacji archiwum po zapisaniu" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "usunięcie plików po dodaniu do archiwum" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "bez zamazania istniejących plików rozpakowanymi" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "bez zastępowania istniejących plików, które są nowsze niż ich kopie w " "archiwum" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "nadpisywanie istniejących plików" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "usunięcie każdego pliku przed zamazaniem go rozpakowanym plikiem" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "opróżnianie starych katalogów przed rozpakowaniem kopii z archiwum" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "zachowanie metadanych istniejących katalogów" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "nadpisywanie metadanych istniejących katalogów przy rozpakowywaniu " "(domyslnie)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Wybór strumienia wyjściowego" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "rozpakowanie plików na standardowe wyjście" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "POLECENIE" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "przekazanie rozpakowywanych plików do innego programu" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "zignorowanie kodów wyjścia procesów potomnych" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" "traktowanie niezerowych kodów wyjściowych procesów potomnych jako błędu" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Przetwarzanie atrybutów plików:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "nadanie właściciela NAZWA dodanym plikom" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "nadanie grupy NAZWA dodanym plikom" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATA_ALBO_PLIK" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "ustawianie czasu modyfikacji dodanych plików z DATA_ALBO_PLIK" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "ZMIANY" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "ZMIANA uprawnień dodanych plików (podanych symbolicznie)" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METODA" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1576,28 +1615,34 @@ msgstr "" "czytaniu (METODA='replace'; domyślnie) albo przez nieustawianie czasu " "(METODA='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "bez odtworzenia czasu modyfikacji rozpakowanego pliku" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "staranie się o odtworzenie właścicieli plików" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "" +"staranie się o odtworzenie właścicieli plików według zapisu w archiwum " +"(domyślnie dla superusera)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "rozpakowanie plików jako własności rozpakowującego" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "" +"rozpakowanie plików jako własności rozpakowującego (domyślnie dla zwykłych " +"użytkowników)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "używanie numerów, nie nazw użytkowników/grup" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "odtworzenie informacji o uprawnieniach plików (domyślnie dla superusera)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1605,15 +1650,15 @@ msgstr "" "użycie umask użytkownika przy odtwarzaniu uprawnień z archiwum (domyślnie " "dla zwykłych użytkowników)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "pliki do rozpakowania posortowane jak w archiwum" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "to samo co równocześnie -p i -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1621,139 +1666,139 @@ msgstr "" "ustawianie czasów zmian i uprawnień odtworzonych katalogów opóźnione do " "końca rozpakowywania" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "wyłączenie efektu opcji --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Wybór i przełączanie urządzeń:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIWUM" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "użycie pliku lub urządzenia ARCHIWUM" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "plik archiwum lokalny, nawet jeżeli ma dwukropek" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "użyj POLECENIA zamiast /etc/rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "użyj POLECENIA zamiast rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "podanie napędu i gęstości" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "tworzenie/wypisanie/rozpakowanie archiwum wieloczęściowego" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "zmiana taśmy po zapisaniu LICZBA x 1024 bajtów" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "uruchomienie skryptu na końcu taśmy (włącza -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "użycie/uaktualnienie numeru części w PLIKU" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Parametry bloków:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOKI" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOKI x 512 bajtów na rekord" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "LICZBA bajtów w rekordzie, wielokrotność 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "ignorowanie wyzerowanych bloków w archiwum (oznacza EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "podzielenie na bloki przy odczycie (dla pipe 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Wybór formatu archiwum:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "utworzenie archiwum w danym formacie." -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT może być jednym z następujących:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "stary format tara z V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "format GNU dla tara <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "format tara GNU 1.13" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "format POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "format POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "to samo co pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "to samo co --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "to samo co --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "słowo_kluczowe[[:]=wartość][,słowo_kluczowe[[:]=wartość]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "ustawianie słów kluczowych formatu pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEKST" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1761,107 +1806,80 @@ msgstr "" "utworzenie archiwum z nazwą wolumenu TEKST. Przy wypisywaniu/rozpakowaniu " "TEKST będzie użyty jako wzorzec dopasowania dla nazwy" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Opcje kompresji" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" -msgstr "" -"użycie przyrostka nazwy archiwum do wyznaczenia programu kompresującego" +msgstr "użycie przyrostka nazwy archiwum do ustalenia programu kompresującego" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" "bez używania przyrostka nazwy archiwum do wyznaczenia programu kompresującego" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "filtrowanie archiwum przez bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "filtrowanie archiwum przez gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "filtrowanie archiwum przez compress" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "filtrowanie archiwum przez lzma" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "filtrowanie archiwum przez lzop" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "filtrowanie archiwum przez gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROGRAM" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "filtrowanie przez PROGRAM (akceptujący -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Wybór plików lokalnych:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "dodanie podanego PLIKU do archiwum (przydatne jeżeli jego nazwa startuje od " "myślnika)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "KATALOG" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "przejście do KATALOGU" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "nazwy plików do rozpakowania lub spakowania z PLIKU" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T czyta nazwy zakończone zerem, wyłącz -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "wyłączenie efektu użycia opcji --null" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" "usunięcie znaków cytowania z nazw plików czytanych poprzez opcję -T " "(domyślnie)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "bez usuwania znaków cytowania z nazw plików czytanych poprzez opcję -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "WZORZEC" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "wykluczenie nazw pasujących do WZORCA" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "wykluczenie nazw pasujących do wzorców w PLIKU" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1869,87 +1887,91 @@ msgstr "" "wykluczenie katalogów zawierających znacznik pamięci podręcznej CACHEDIR." "TAG, oprócz samych plików znacznika" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG i ich podkatalogów" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "wykluczenie katalogów zawierających PLIK, ale nie samego PLIKU" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "wykluczenie katalogów zawierających PLIK i ich podkatalogów" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "wykluczenie katalogów zawierających PLIK" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "wykluczenie katalogów systemu administrowania wersjami" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "wykluczenie plików kopii zapasowych i rezerwacji zasobów" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "bez automatycznego zagłębiania się w katalogi" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "pozostanie w jednym systemie plików" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "zagłębianie się w podkatalogi (domyślnie)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "bez usuwania początkowego `/' z nazw plików" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "archiwizacja plików, na które wskazują łącza symboliczne" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "archiwizacja plików, na które wskazują łącza zwykłe" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "NAZWA-PLIKU" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "zaczęcie od pliku NAZWA-PLIKU w archiwum" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "zapisanie tylko plików nowszych niż DATA albo data PLIKU" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATA" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "porównywanie daty i czasu tylko dla zmienionych danych" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "TRYB" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "kopia zapasowa przed usunięciem, wybranie TRYBU zarządzania wersjami" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "NAPIS" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1957,92 +1979,100 @@ msgstr "" "kopia zapasowa przed usunięciem, zmiana domyślnego przyrostka ('~', jeżeli " "nie zmieniony przez zmienną środowiska SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Zmiany nazwy plików:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "ucięcie przed rozpakowaniem LICZBY początkowych elementów ścieżki z nazw " "plików" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "WYRAŻENIE" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "użycie WYRAŻENIA zamiany sed-a do przekształcenia nazw plików" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Opcje filtracji nazw plików (dotyczą zarówno wzorców wykluczania jak " "włączania):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "traktowanie tak samo małych i wielkich liter" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "nazwy porównywane od początków nazw plików" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "wzorce odnoszą się do nazw po każdym / (domyślnie)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "odróżnianie małych i wielkich liter (domyślnie)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "używanie wildcards (domyślnie dla wykluczania)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "dosłowne porównywanie napisów" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "wildcards nie są porównywane z `/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "wildcards są porównywane z '/' (domyślnie dla wykluczania)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Informacje:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "wypisywanie szczegółów o przetwarzanych plikach" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "SŁOWO KLUCZOWE" + +#: src/tar.c:740 +msgid "warning control" +msgstr "sterowanie ostrzeżeniami" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "wypisywanie co ILE rekordów informacji o przetwarzaniu (domyslnie co 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "AKCJA" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "wykonanie AKCJI przy każdym punkcie kontrolnym" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "wypisanie komunikatu jeżeli nie wszytkie łącza zostały zapisane" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SYGNAŁ" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2054,27 +2084,27 @@ msgstr "" "sygnały: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2; nazwy bez prefiksu SIG " "są też akceptowane" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "wypisanie dat modyfikacji plików w UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "zapisanie dokładnych informacji w PLIKU" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "pokazanie przy każdym komunikacie numeru bloku w archiwum" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "proszenie o potwierdzenie każdego działania" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "wypisanie domyślnych ustawień tar-a" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2082,33 +2112,33 @@ msgstr "" "wypisywanie każdego katalogu nie pasującego do kryteriów szukania przy " "wypisywaniu albo rozpakowywaniu archiwum" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "pokazanie nazw plików albo archiwów po przeszktałceniu" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STYL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "ustawienie stylu ujmowania nazw w cudzysłowy; poniżej dozwolone wartości " "STYLU" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "dodatkowe ujmowanie w znaki cytowania znaków z ŁAŃCUCHA" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "wyłączenie ujmowania w znaki cytowania znaków z ŁAŃCUCHA" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Opcje kompatybilności:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2116,56 +2146,63 @@ msgstr "" "przy tworzeniu: to samo co --old-archive przy odtwarzaniu: to co --no-same-" "owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Inne opcje:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "wyłączenie używania potencjalnie szkodliwych opcji" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "Nie można podać więcej niż jednej opcji z `-Acdtrux'" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "" +"Nie można podać więcej niż jednej opcji z `-Acdtrux' albo `--test-label'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Niezgodne opcje kompresji" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Nieznana nazwa sygnału: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Nie znaleziono pliku z datą" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Postawienie %s w miejscu nieznanego formatu daty %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Opcja %s: Potraktowanie daty `%s' jako %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: lista plików już przeczytana" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: przeczytana nazwa pliku zawiera znak NUL" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "Argumenty opcji --quoting-style:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "filtrowanie archiwum przez %s" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" +msgstr "Prawidłowe argumenty dla opcji --quoting-style:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2173,48 +2210,51 @@ msgstr "" "\n" "*Ten* tar ma domyślne parametry:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Błędny współczynnik łączenia w bloki" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Błędna długość taśmy" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "Błędny numer poziomu przyrostowej kopii zapasowej" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Więcej niż jedna data graniczna" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Błędna wartość wersji plików rzadkich" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "ten system nie pozwala na użycie --atime-preserve='system'" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "wartość --checkpoint nie jest liczbą całkowitą" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: błędna grupa" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "Błędna grupa" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Błędne uprawnienia podane w opcji" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Błędny numer" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Błędny właściciel" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2222,64 +2262,68 @@ msgstr "" "Opcja --preserve jest przestarzała, zamiast niej użyj --preserve-permissions " "--preserve-order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Błędna wielkość rekordu" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Rozmiar rekordu musi być wielokrotnością %d" -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Błędna ilość elementów" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Wolno użyć tylko jednej opcji polecenia --to-command" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Błędna specyfikacja gęstości: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Nieznana gęstość: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Opcje `-[0-7][lmh]' nie są używane w *tym* tarze" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[PLIK]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Stara opcja `%c' wymaga argumentu." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence nie ma znaczenia bez listy plików" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence nie może być użyte w tym trybie" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Archiwum składające się z wielu plików wymaga opcji `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Nie można połączyć --listed-incremental z --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "opcja --level nic nie znaczy bez użycia --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2287,47 +2331,47 @@ msgstr[0] "%s: Za długa etykieta części (może mieć do %lu bajtu)" msgstr[1] "%s: Za długa etykieta części (może mieć do %lu bajtów)" msgstr[2] "%s: Za długa etykieta części (może mieć do %lu bajtów)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Nie można zweryfikować archiwum wieloczęściowego" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Nie można zweryfikować archiwum skompresowanego" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Nie można używać wieloczęściowego archiwum skompresowanego" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Nie można połączyć skompresowanych archiwów" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option może być użyta tylko przy archiwach POSIX-owych" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "Długość części nie może być mniejsza od wielkości rekordu" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "opcja --preserve-order nie może być używana z --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Tchórzliwie odmawiam utworzenia pustego archiwum" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Opcje `-Aru' są niekompatybilne z `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "Musisz podać jedną z opcji `-Acdtrux'" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "Musisz podać jedną z opcji `-Acdtrux' albo `--test-label'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Zakończenie w stanie błędu z powodu uprzednich błędów" @@ -2340,52 +2384,56 @@ msgstr[0] "%s: Plik skurczył się o %s bajt" msgstr[1] "%s: Plik skurczył się o %s bajty" msgstr[2] "%s: Plik skurczył się o %s bajtów" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Słowo kluczowe %s jest nieznane albo jeszcze nie zaimplementowane" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "Czas spoza dozwolonego zakresu" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Nie może być użyty wzorzec %s" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Słowo kluczowe %s nie może być zastąpione" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Błędny nagłówek rozszerzony: brakuje długości" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Długość nagłówka rozszerzonego jest poza dozwolonym zakresem" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Długośc nagłówka rozszerzonego %*s jest poza zakresem" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Błędny nagłówek rozszerzony: brakuje odstępu po długości" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Błędny nagłówek rozszerzony: brakuje znaku równości" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Błędny nagłówek rozszerzony: brakuje znaku mowej linii" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Zignorowane nieznane słowo kluczowe nagłówka rozszerzonego `%s'" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2394,27 +2442,27 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Nagłówek rozszerzony - %s=%s jest poza zakresem %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Błędny nagłówek rozszerzony: błędny %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Błędny nagłówek rozszerzony: nadmiarowe %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Błędny nagłówek rozszerzony: błędny %s: niespodziewany ogranicznik %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Błędny nagłówek rozszerzony: błędny %s: nieparzysta liczba wartości" @@ -2455,7 +2503,7 @@ msgstr "Punkt kontrolny zapisu %u" msgid "Read checkpoint %u" msgstr "Punkt kontrolny czytania %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2463,86 +2511,90 @@ msgstr "" "genfile służy do operacji na plikach w ramach zestawu testów GNU paxutils.\n" "OPCJE:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Opcje tworzenia plików:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "ROZMIAR" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Utworzenie pliku o podanym ROZMIARZE" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Pisanie na pliku NAZWA zamiast na standardowe wyjście" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Czytanie nazw plików z PLIKU" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T czyta nazwy zakończone zerem" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Wypełnienie pliku podanym WZORCEM. WZORZEC to 'default' albo 'zeros'" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Rozmiar bloku pliku rzadkiego" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Utworzenie pliku rzadkiego. Reszta argumentów określa mapę pliku." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "POZYCJA" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Ustawienie pozycji zapisu przez zapisem danych" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Opcje statystyki plików" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Wypisanie zawartości struct stat dla każdego podanego pliku. Domyślny " "FORMAT: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Opcje równoczesnego wykonywania:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "OPCJA" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"Wykonanie podanego POLECENIA. Przydatne z --checkpoint i jednym z --cut, --" -"append albo --touch" +"Wykonanie ARGUMENTÓW. Przydatne z --checkpoint i jednym z --cut, --append, --" +"touch albo --unlink" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Wykonanie podanej akcji (zobacz niżej) po napotkaniu punktu kontrolnego NUMER" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Ustaw datę następnej opcji --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Wypisanie wykonanych punktów kontrolnych i kodu wyjścia POLECENIA" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2550,7 +2602,7 @@ msgstr "" "Akcje równoczesnego wykonania. Są podejmowane po osiągnięciu punktu " "kontrolnego o numerze podanym przez opcję --checkpoint" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2558,139 +2610,146 @@ msgstr "" "Obcięcie PLIKU do rozmiaru podanego przez poprzednia opcję --length (albo 0, " "jeżeli nie został podany)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Dodanie ROZMIAR bajtów do PLIKU. ROZMIAR jak podany przez poprzednią opcję --" "length." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Uaktualnienie czasów dostepu i modyfikacji PLIKU" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Wykonanie POLECENIA" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "Usunięcie PLIKU" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Błędny rozmiar: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Liczba spoza dozwolonego zakresu: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Ujemny rozmiar: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "błąd stat(%s)" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "żądana długość pliku %lu, faktyczna %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "utworzony plik nie jest rzadki" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Błąd przetwarzania liczby blisko `%s'" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Nieznany format daty" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGUMENTY...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "nie można otworzyć `%s'" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "nie można ustawić pozycji" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "nazwa pliku zawiera znak NUL" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "nie można utworzyć pliku rzadkiego na standardowym wyjściu, użyj opcji --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "nieprawidłowa maska (koło `%s')" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr " Nieznane pole `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "nie można ustawić czasu na `%s'" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "nie można usunąć `%s'" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Polecenie zakończyło się poprawnie\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Polecenie zakończyło się niepoprawnie z kodem %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Polecenie zostało zakończone sygnałem %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Polecenie zostało zatrzymane sygnałem %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Został zapisany obraz pamięci (core dump) polecenia\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Polecenie zakończone\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat wymaga podania nazwy pliku" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "za dużo argumentów" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "Nieznany adres nazwy %s" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Uwaga: opcja -I nie jest używana, może chodzi o -j albo -T?" +#~ msgid "suppress this warning." +#~ msgstr "wyłączyć to ostrzeżenie" diff --git a/po/pt.gmo b/po/pt.gmo index 9fd5232f9f39fbf1981157f7e3f97297e94ab983..0a5f0f6d76a84419796bf1a77b28efb9c978ebb7 100644 Binary files a/po/pt.gmo and b/po/pt.gmo differ diff --git a/po/pt.po b/po/pt.po index 5212a156d94d8061c8adef29a6ec7d345385bf31..57516eae18853cce29d35efa375f1c887e8412c6 100644 --- a/po/pt.po +++ b/po/pt.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.11.9\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 1996-04-20 21:50\n" "Last-Translator: Ant�nio Jos� Coutinho <ajc@di.uminho.pt>\n" "Language-Team: Portuguese <pt@li.org>\n" @@ -14,47 +14,47 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, fuzzy, c-format msgid "invalid argument %s for %s" msgstr "Formato de data inv�lido \"%s\"" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 #, fuzzy msgid "" "Mandatory or optional arguments to long options are also mandatory or " @@ -63,247 +63,147 @@ msgstr "" "Os argumentos obrigat�rios ou opcionais para as op��es longas tamb�m\n" "s�o obrigat�rios ou opcionais para as correspondentes op��es curtas.\n" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Forma de usar: %s [OP��O]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Para mais informa��o, tente \"%s --help\".\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Erro desconhecido, do sistema" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 #, fuzzy msgid "write error" msgstr "Escreve-se registo\n" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, fuzzy, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +msgid "%s: option '%s' is ambiguous\n" msgstr "A antiga op��o `%c' exige um argumento." -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, fuzzy, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "A antiga op��o `%c' exige um argumento." -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, fuzzy, c-format -msgid "%s: option `%s' requires an argument\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "A antiga op��o `%c' exige um argumento." -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" +msgstr "A antiga op��o `%c' exige um argumento." -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `%c%s'\n" +msgid "%s: unrecognized option '--%s'\n" msgstr "" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: illegal option -- %c\n" +msgid "%s: unrecognized option '%c%s'\n" msgstr "" -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" +msgstr "Valor inv�lido para tamanho de registo (record_size)" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, fuzzy, c-format -msgid "%s: option requires an argument -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" msgstr "A antiga op��o `%c' exige um argumento." -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "A antiga op��o `%c' exige um argumento." -#: lib/getopt.c:932 lib/getopt.c:950 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, fuzzy, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "A antiga op��o `%c' exige um argumento." -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "N�o se conseguiu determinar a directoria corrente" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, fuzzy, c-format -msgid "%s: Cannot %s" -msgstr "N�o se consegue duplicar %s com \"dup\"" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "" - -#: lib/paxerror.c:93 -#, fuzzy, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: N�o se pode mudar para o modo para %0.4o" - -#: lib/paxerror.c:101 -#, fuzzy, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: N�o se pode mudar o dono (owner) para \"uid\" %d, \"gid\" %d" - -#: lib/paxerror.c:127 -#, fuzzy, c-format -msgid "%s: Cannot hard link to %s" -msgstr "N�o se consegue ler a liga��o (\"link\") %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" -msgstr[1] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" -msgstr[1] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" - -#: lib/paxerror.c:259 -#, fuzzy, c-format -msgid "%s: Cannot seek to %s" -msgstr "N�o se consegue escrever em %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "" - -#: lib/paxerror.c:284 -#, fuzzy, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: N�o se conseguiu criar uma liga��o simb�lica (link) para `%s'" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Apenas se conseguiu escrever %d de um total de %d bytes" -msgstr[1] "%s: Apenas se conseguiu escrever %d de um total de %d bytes" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -317,17 +217,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "" @@ -337,7 +237,7 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -347,38 +247,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Servi�o indispon�vel" - -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:76 #, c-format -msgid "stdin" +msgid "Packaged by %s (%s)\n" msgstr "" -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:79 #, c-format -msgid "stdout" +msgid "Packaged by %s\n" msgstr "" -#: lib/rtapelib.c:512 -#, c-format -msgid "Cannot execute remote shell" -msgstr "N�o se consegue executar uma \"shell\" remota" - #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -389,19 +279,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -409,7 +299,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -419,7 +309,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -429,7 +319,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -439,7 +329,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -449,7 +339,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -460,7 +350,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -471,7 +361,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -483,178 +373,336 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" +msgstr "Mudou-se o nome %s para %s" + +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, fuzzy, c-format +msgid "%s: Cannot %s" +msgstr "N�o se consegue duplicar %s com \"dup\"" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: N�o se consegue reservar espa�o tempor�rio (\"buffers\")\n" +#: lib/paxerror.c:93 +#, fuzzy, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: N�o se pode mudar para o modo para %0.4o" + +#: lib/paxerror.c:101 +#, fuzzy, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: N�o se pode mudar o dono (owner) para \"uid\" %d, \"gid\" %d" + +#: lib/paxerror.c:127 +#, fuzzy, c-format +msgid "%s: Cannot hard link to %s" +msgstr "N�o se consegue ler a liga��o (\"link\") %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, fuzzy, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " +"ficheiro %s" +msgstr[1] "" +"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " +"ficheiro %s" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " +"ficheiro %s" +msgstr[1] "" +"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " +"ficheiro %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "N�o se consegue reservar espa�o tempor�rio (\"buffer\")" +#: lib/paxerror.c:259 +#, fuzzy, c-format +msgid "%s: Cannot seek to %s" +msgstr "N�o se consegue escrever em %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:275 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Para mais informa��o, tente \"%s --help\".\n" +msgid "%s: Warning: Cannot seek to %s" +msgstr "" + +#: lib/paxerror.c:284 +#, fuzzy, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: N�o se conseguiu criar uma liga��o simb�lica (link) para `%s'" -#: rmt/rmt.c:308 +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Apenas se conseguiu escrever %d de um total de %d bytes" +msgstr[1] "%s: Apenas se conseguiu escrever %d de um total de %d bytes" + +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " + +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "" + +#: lib/rtapelib.c:299 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Servi�o indispon�vel" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" msgstr "" -#: rmt/rmt.c:397 -msgid "Seek offset error" +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" msgstr "" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 -msgid "Seek offset out of range" +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -#: rmt/rmt.c:428 +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "N�o se consegue executar uma \"shell\" remota" + +#: rmt/rmt.c:413 msgid "Seek direction out of range" msgstr "" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Formato de data inv�lido \"%s\"" + +#: rmt/rmt.c:433 +msgid "Seek offset out of range" +msgstr "" + +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Fim de ficheiro prematuro\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Fim-de-ficheiro prematuro" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Valor inv�lido para tamanho de registo (record_size)" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Fim de ficheiro inesperado nos nomes truncados" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "N�o se consegue abrir %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Comando desconhecido" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Isto n�o se parece a um arquivo \"tar\"" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "N�mero total de de \"bytes\" escritos: %d\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 #, fuzzy msgid "Total bytes read" msgstr "N�mero total de de \"bytes\" escritos: %d\n" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "N�mero total de de \"bytes\" escritos: %d\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Valor inv�lido para tamanho de registo (record_size)" -#: src/buffer.c:480 +#: src/buffer.c:511 #, fuzzy msgid "No archive name given" msgstr "N�o deram nome de arquivo, que fazer?" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "N�o se pode de verificar arquivos stdin ou stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 #, fuzzy msgid "Cannot update compressed archives" msgstr "N�o se pode actualizar o verificar um arquivo comprimido" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "No princ�pio da fita, p�ra-se imediatamente" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Erros de mais: termina-se" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Tamanho de bloco (blocksize) = blocos de %d" msgstr[1] "Tamanho de bloco (blocksize) = blocos de %d" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "" msgstr[1] "" -#: src/buffer.c:795 +#: src/buffer.c:842 #, fuzzy msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "N�o se conseguiu recuar o arquivo; pode ser ileg�vel sem -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "" -#: src/buffer.c:931 +#: src/buffer.c:978 #, fuzzy, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "\aPreparar o volume no. %d para %s e premir \"Return\": " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ATEN��O: O arquivo est� incompleto" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -666,133 +714,133 @@ msgstr "" " ! Criar uma \"sub-shell\" (interpretador de comandos)\n" " ? Escrever esta lista\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "N�o h� novo volume; termina-se. \n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s n�o tem continuidade neste volume" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s n�o tem continuidade neste volume" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, fuzzy, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s n�o � a dimens�o correcta (%ld != %ld + %ld)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Este volume est� fora da sequ�ncia" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, fuzzy, c-format msgid "Archive not labeled to match %s" msgstr "O arquivo n�o tem etiqueta e n�o condiz com %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, fuzzy, c-format msgid "Volume %s does not match %s" msgstr "O volume n�o condiz! %s!=%s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "" "O fim-de-ficheiro do arquivo %s n�o se encontra na fronteira de um bloco" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "%s: S� se p�de ler %d de um total de %ld \"bytes\"\n" msgstr[1] "%s: S� se p�de ler %d de um total de %ld \"bytes\"\n" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 #, fuzzy msgid "Contents differ" msgstr "Tempo de modifica��o" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Fim de ficheiro inesperado no arquivo" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 #, fuzzy msgid "File type differs" msgstr "%s: Liga��o (\"link\") simb�lica � diferente\n" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "" -#: src/compare.c:206 +#: src/compare.c:205 #, fuzzy msgid "Uid differs" msgstr "%s: %s diferente\n" -#: src/compare.c:208 +#: src/compare.c:207 #, fuzzy msgid "Gid differs" msgstr "%s: %s diferente\n" -#: src/compare.c:212 +#: src/compare.c:211 #, fuzzy msgid "Mod time differs" msgstr "Tempo de modifica��o" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 #, fuzzy msgid "Size differs" msgstr "%s: Liga��o (\"link\") simb�lica � diferente\n" -#: src/compare.c:270 +#: src/compare.c:269 #, fuzzy, c-format msgid "Not linked to %s" msgstr "%s: N�o est� ligado a %s\n" -#: src/compare.c:293 +#: src/compare.c:292 #, fuzzy msgid "Symlink differs" msgstr "%s: Liga��o (\"link\") simb�lica � diferente\n" -#: src/compare.c:322 +#: src/compare.c:321 #, fuzzy msgid "Device number differs" msgstr "%s: Os n�meros do perif�rico mudaram\n" @@ -817,34 +865,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "ERRO DE VERIFICA��O: Encontraram-se %d cabe�alhos inv�lidos" msgstr[1] "ERRO DE VERIFICA��O: Encontraram-se %d cabe�alhos inv�lidos" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "" @@ -863,448 +911,449 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "%s: n�o foi modificado; n�o ser� arquivado" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "O ficheiro %s diminuiu em %d \"bytes\", ser� completado com zeros" msgstr[1] "O ficheiro %s diminuiu em %d \"bytes\", ser� completado com zeros" -#: src/create.c:1177 +#: src/create.c:1175 #, fuzzy, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: Est� num outro sistema de ficheiros; n�o ser� arquivado" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 #, fuzzy msgid "contents not dumped" msgstr " (imagem da mem�ria despejada \"core dumped\")" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipo de ficheiro desconhecido; ficheiro ignorado" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " liga��o para %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, fuzzy, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: n�o foi modificado; n�o ser� arquivado" -#: src/create.c:1543 +#: src/create.c:1552 #, fuzzy, c-format msgid "%s: file is the archive; not dumped" msgstr "%s � o arquivo; n�o ser� arquivado" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Salta para pr�ximo cabe�alho" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Apaga-se do arquivo um n�o-cabe�alho" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Est�o-se a extrair ficheiros cont�guos como sendo ficheiros normais" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "" "Est�-se a tentar extrair liga��es simb�licas (sym. links) como liga��es " "f�sicas (hard links)" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Leitura de %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, fuzzy, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" "N�o se pode extra�r `%s' -- � a continua��o de um ficheiro de outro volume" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Fim de ficheiro inesperado no ficheiro de arquivo" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "" "Tipo \"%c\" do ficheiro \"%s\" desconhecido; extrai-se como um ficheiro " "normal" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "N�o se consegue mudar o nome de %s para %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "Mudou-se o nome do directoria %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, fuzzy, c-format msgid "%s: Directory has been renamed" msgstr "Mudou-se o nome do directoria %s" -#: src/incremen.c:505 +#: src/incremen.c:539 #, fuzzy, c-format msgid "%s: Directory is new" msgstr "O directoria %s � novo" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 #, fuzzy msgid "Read error in snapshot file" msgstr "Erro de leitura sobre %s" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Fim de ficheiro inesperado no ficheiro de arquivo" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 #, fuzzy msgid "Unexpected field value in snapshot file" msgstr "Fim de ficheiro inesperado no ficheiro de arquivo" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "N�o se pode mudar para a directoria %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Apaga-se %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, fuzzy, c-format msgid "%s: Cannot remove" msgstr "N�o se consegue apagar %s" -#: src/list.c:113 +#: src/list.c:115 #, fuzzy, c-format msgid "%s: Omitting" msgstr "Omite-se %s" -#: src/list.c:131 +#: src/list.c:133 #, fuzzy, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloco %10ld: ** Bloco de NULs **\n" -#: src/list.c:155 +#: src/list.c:159 #, fuzzy, c-format msgid "block %s: ** End of File **\n" msgstr "bloco %10ld: ** Fim-de-ficheiro **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, fuzzy, c-format msgid "block %s: " msgstr "bloco %10ld: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" -#: src/list.c:803 +#: src/list.c:821 #, fuzzy, c-format msgid "Archive base-256 value is out of %s range" msgstr "Este volume est� fora da sequ�ncia" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " liga��o para %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, fuzzy, c-format msgid " unknown file type %s\n" msgstr " tipo de ficheiro desconhecido \"%c\"\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Cabe�alho de volume--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, fuzzy, c-format msgid "--Continued at byte %s--\n" msgstr "--Continua no \"byte\" %ld--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Cria��o de directoria::" -#: src/misc.c:456 +#: src/misc.c:502 #, fuzzy, c-format msgid "Renaming %s to %s\n" msgstr "Mudou-se o nome %s para %s" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, fuzzy, c-format msgid "%s: Cannot rename to %s" msgstr "N�o se consegue mudar o nome de %s para %s" -#: src/misc.c:488 +#: src/misc.c:534 #, fuzzy, c-format msgid "Renaming %s back to %s\n" msgstr "Mudou-se o nome %s para %s" -#: src/misc.c:615 +#: src/misc.c:669 #, fuzzy msgid "Cannot save working directory" msgstr "N�o se pode mudar para a directoria %s" -#: src/misc.c:621 +#: src/misc.c:675 #, fuzzy msgid "Cannot change working directory" msgstr "N�o se pode mudar para a directoria %s" -#: src/misc.c:711 -msgid "child process" +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" msgstr "" -#: src/misc.c:720 -msgid "interprocess channel" +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "Mudou-se o nome do directoria %s" + +#: src/misc.c:795 +msgid "child process" msgstr "" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/misc.c:804 +msgid "interprocess channel" msgstr "" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: N�o foi encontrado no arquivo" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: N�o foi encontrado no arquivo" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Ambas as op��es `-%s' e `-%s' precisam do \"standard input\"" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "Formato de data inv�lido \"%s\"" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "" "Est�o-se a querer propriedades GNU num arquivo com formato incompat�vel" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1315,7 +1364,7 @@ msgid "" " tar -xf archive.tar # Extract all files from archive.tar.\n" msgstr "" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1327,87 +1376,80 @@ msgid "" " never, simple always make simple backups\n" msgstr "" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Fim de ficheiro inesperado no arquivo" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1415,575 +1457,566 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 #, fuzzy msgid "remove files after adding them to the archive" msgstr "Retira-se a especifica��o do \"drive\" aos nomes no arquivo" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "N�o se pode verificar arquivos multi-volume" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Arquivo para stdin" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "H� conflitos entre as op��es de compress�o" -#: src/tar.c:595 +#: src/tar.c:615 #, fuzzy msgid "use archive suffix to determine the compression program" msgstr "N�o se consegue escrever para o programa de compress�o" -#: src/tar.c:597 +#: src/tar.c:617 #, fuzzy msgid "do not use archive suffix to determine the compression program" msgstr "N�o se consegue escrever para o programa de compress�o" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s � o arquivo; n�o ser� arquivado" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s � o arquivo; n�o ser� arquivado" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "N�o se pode mudar para a directoria %s" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1991,275 +2024,291 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 #, fuzzy msgid "ask for confirmation for every action" msgstr "N�o se consegue obter confirma��o, do utilizador" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "N�o se pode especificar mais do que uma das op��es \"-Acdtrux\"" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "H� conflitos entre as op��es de compress�o" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr "Op��o \"%c\" desconhecida" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" +msgstr "Valor inv�lido para tamanho de registo (record_size)" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 #, fuzzy msgid "Invalid record size" msgstr "Valor inv�lido para tamanho de registo (record_size)" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "O tamanho dos registos tem que ser m�ltiplo de %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "" -#: src/tar.c:1892 +#: src/tar.c:2020 #, fuzzy msgid "Only one --to-command option allowed" msgstr "S� se permite uma op��o de compress�o" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, fuzzy, c-format msgid "Unknown density: `%c'" msgstr "Op��o \"%c\" desconhecida" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "As op��es \"-[0-7][lmh]\" n�o s�o suportadas por *este* tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "A antiga op��o `%c' exige um argumento." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Para usar v�rios arquivos � necess�ria a op��o \"-M\"" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "" msgstr[1] "" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "N�o se pode verificar arquivos multi-volume" -#: src/tar.c:2307 +#: src/tar.c:2419 #, fuzzy msgid "Cannot verify compressed archives" msgstr "N�o se pode actualizar o verificar um arquivo comprimido" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "N�o se pode de usar arquivos multi-volume comprimidos" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "N�o se pode actualizar o verificar um arquivo comprimido" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Recusa-se, covardemente, a criar um arquivo vazio" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "As op��es \"-Aru\" s�o imcompat�veis com \"-f -\"" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Tem que se especificar uma das op��es \"-Acdtrux\"" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2271,79 +2320,83 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: O ficheiro diminui em %d bytes, (desgra�a!)" msgstr[1] "%s: O ficheiro diminui em %d bytes, (desgra�a!)" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2384,231 +2437,257 @@ msgstr "Escreve-se o ponto de verifica msgid "Read checkpoint %u" msgstr "Leu-se o ponto de verifica��o %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "H� conflitos entre as op��es de compress�o" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Forma de usar: %s [OP��O]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "N�o se conseguiu modificar os tempos de acesso e modifica��o de %s" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Formato de data inv�lido \"%s\"" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Erro desconhecido, do sistema" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "N�o se consegue abrir %s" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "N�o se consegue executar %s" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "Op��o \"%c\" desconhecida" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "N�o se consegue executar \"stat\" para o ficheiro %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "N�o se consegue abrir %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Nomes de ficheiros truncados--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "Reading %s\n" +#~ msgstr "Leitura de %s\n" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: N�o se consegue reservar espa�o tempor�rio (\"buffers\")\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "N�o se consegue reservar espa�o tempor�rio (\"buffer\")" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Para mais informa��o, tente \"%s --help\".\n" + +#~ msgid "Premature end of file" +#~ msgstr "Fim-de-ficheiro prematuro" #~ msgid "Cannot close file #%d" #~ msgstr "N�o se consegue fechar o ficheiro #%d" @@ -2845,9 +2924,6 @@ msgstr "" #~ msgid "Visible longname error" #~ msgstr "Erro evidente num nome longo" -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "Fim de ficheiro inesperado nos nomes truncados" - #~ msgid "Cannot symlink %s to %s" #~ msgstr "N�o se pode criar uma liga��o (\"link\") simb�lica de %s para %s" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 58505cd07a5f19e1debec1904ee249f8b10ea594..0e52ec58c984082e7e6fd340fc21c37dcbe0f0cf 100644 Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ diff --git a/po/pt_BR.po b/po/pt_BR.po index 3e2b6c953a25f17d347a8246711beb4cbed512f0..03bea5c3d586708e6c15e08c90ca3fc92622b35f 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.13.25\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2002-11-27 20:30-0300\n" "Last-Translator: Alexandre Folle de Menezes <afmenez@terra.com.br>\n" "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n" @@ -19,73 +19,73 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argumento %s inv�lido para %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argumento %s amb�guo para %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Os argumentos v�lidos s�o:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Uso: %s [OP��O]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, fuzzy, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Tente `%s --help' para mais informa��es.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, fuzzy, c-format msgid "Report bugs to %s.\n" msgstr "" @@ -93,214 +93,121 @@ msgstr "" "Informar erros no programa para <bug-tar@gnu.org>.\n" "Informar erros na tradu��o para <afmenez@terra.com.br>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Erro de sistema desconhecido" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: a op��o `%s' exige um argumento\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: a op��o `%s' � amb�gua\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: a op��o `--%s' n�o admite um argumento\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: a op��o `%c%s' n�o admite um argumento\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: a op��o `%s' exige um argumento\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: op��o `--%s' n�o reconhecida\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: op��o `%c%s' n�o reconhecida\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: op��o ilegal -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: op��o inv�lida -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: a op��o exige um argumento -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: a op��o `-W %s' � amb�gua\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: a op��o `-W %s' n�o aceita um argumento\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "mem�ria esgotada" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Imposs�vel mudar o diret�rio de trabalho" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Imposs�vel salvar diret�rio de trabalho" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: N�o � poss�vel %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Aten��o: N�o � poss�vel %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Imposs�vel mudar modo para %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Imposs�vel alterar dono para uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Imposs�vel fazer link para %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Erro de leitura no byte %s, lendo %lu bytes" -msgstr[1] "%s: Erro de leitura no byte %s, lendo %lu bytes" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Aviso: Erro de leitura no byte %s, lendo %lu bytes" -msgstr[1] "%s: Aviso: Erro de leitura no byte %s, lendo %lu bytes" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Imposs�vel saltar para %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Aviso: N�o � poss�vel saltar para %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Imposs�vel criar link simb�lico para %s" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Gravados apenas %lu de um total de %lu bytes" -msgstr[1] "%s: Gravados apenas %lu de um total de %lu bytes" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Removendo `%.*s' inicial dos nomes dos membros" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Removendo `%.*s' inicial dos nomes dos membros" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Removendo `%.*s' inicial dos nomes dos membros" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -314,17 +221,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -334,7 +241,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -344,38 +251,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Servi�o n�o dispon�vel" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "entrada padr�o (stdin)" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "sa�da padr�o (stdout)" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Imposs�vel executar um shell remoto" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -386,19 +283,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Escrito por Fran�ois Pinard" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Escrito por Fran�ois Pinard" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Escrito por Fran�ois Pinard" @@ -406,7 +303,7 @@ msgstr "Escrito por Fran #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -416,7 +313,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -426,7 +323,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -436,7 +333,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -446,7 +343,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -457,7 +354,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -468,7 +365,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -480,184 +377,335 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" "Informar erros no programa para <bug-tar@gnu.org>.\n" "Informar erros na tradu��o para <afmenez@terra.com.br>.\n" -#: lib/version-etc.c:182 -#, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" +"\n" +"Informar erros no programa para <bug-tar@gnu.org>.\n" +"Informar erros na tradu��o para <afmenez@terra.com.br>.\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Imposs�vel alocar espa�o para buffer\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: N�o � poss�vel %s" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Aten��o: N�o � poss�vel %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Imposs�vel mudar modo para %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Imposs�vel alocar espa�o para buffer" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Imposs�vel alterar dono para uid %lu, gid %lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Tente `%s --help' para mais informa��es.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Imposs�vel fazer link para %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Erro de leitura no byte %s, lendo %lu bytes" +msgstr[1] "%s: Erro de leitura no byte %s, lendo %lu bytes" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Aviso: Erro de leitura no byte %s, lendo %lu bytes" +msgstr[1] "%s: Aviso: Erro de leitura no byte %s, lendo %lu bytes" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Imposs�vel saltar para %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Aviso: N�o � poss�vel saltar para %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Imposs�vel criar link simb�lico para %s" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Gravados apenas %lu de um total de %lu bytes" +msgstr[1] "%s: Gravados apenas %lu de um total de %lu bytes" + +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Removendo `%.*s' inicial dos nomes dos membros" + +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Removendo `%.*s' inicial dos nomes dos membros" + +#: lib/paxnames.c:169 +#, fuzzy +msgid "Substituting `.' for empty member name" +msgstr "Removendo `%.*s' inicial dos nomes dos membros" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" msgstr "" -"Uso: %s [OP��O]\n" -"Manipula uma unidade de fita, aceitando comandos de um processo remoto.\n" -"\n" -" --version Mostra informa��es de vers�o.\n" -" --help Mostra esta ajuda.\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Servi�o n�o dispon�vel" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "entrada padr�o (stdin)" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "sa�da padr�o (stdout)" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Imposs�vel executar um shell remoto" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Dire��o de procura fora de faixa" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Deslocamento de procura fora de faixa" +msgid "Invalid seek direction" +msgstr "Modo inv�lido informado na op��o" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Carimbo de hor�rio inv�lido" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Deslocamento de procura fora de faixa" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Dire��o de procura fora de faixa" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Tamanho da fita inv�lido" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Deslocamento de procura fora de faixa" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Fim de arquivo prematuro\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Fim de arquivo prematuro" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "%s: op��o inv�lida -- %c\n" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Final-de-arquivo inesperado no arquivo-tar" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s: Imposs�vel saltar para %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Comando sem sentido" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Este n�o parece ser um arquivo-tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Total de bytes escritos: %s (%sB, %sB/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Total de bytes escritos: %s (%sB, %sB/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Valor inv�lido para \"record_size\"" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Nome de arquivo-tar n�o informado" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "" "Imposs�vel verificar arquivos-tar de entrada/sa�da padr�o (stdin/stdout)" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Imposs�vel atualizar arquivos-tar compactados" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "No princ�pio da fita, encerrando agora" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Muitos erros, encerrando" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Tamanho de registro = %lu blocos" msgstr[1] "Tamanho de registro = %lu blocos" -#: src/buffer.c:718 +#: src/buffer.c:765 #, fuzzy, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Bloco desalinhado (%lu bytes) no arquivo-tar" msgstr[1] "Bloco desalinhado (%lu bytes) no arquivo-tar" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Imposs�vel recuar no arquivo-tar; pode estar ileg�vel sem -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: cont�m um n�mero de volume inv�lido" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Sobrecarga de n�mero de volumes" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepare o volume #%d para %s e tecle Enter: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Fim-de-arquivo onde era esperado resposta do usu�rio" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "AVISO: O arquivo-tar est� incompleto" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -669,124 +717,124 @@ msgstr "" " ! Criar um \"sub-shell\"\n" " ? Mostra esta lista\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Nenhum volume novo; encerrando.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "comando `%s' falhou" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s n�o continua neste volume" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s n�o continua neste volume" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s � o tamanho errado (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Este volume est� fora de sequ�ncia" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "O arquivo-tar n�o rotulado para casar com %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "O volume %s n�o casa com %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "S� foi poss�vel ler %lu de %lu bytes" msgstr[1] "S� foi poss�vel ler %lu de %lu bytes" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "O conte�do � diferente" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Final-de-arquivo inesperado no arquivo-tar" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "O tipo de arquivo � diferente" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Os modos s�o diferentes" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Os uid s�o diferentes" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "os gid s�o diferentes" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Os hor�rios de modifica��o s�o diferentes" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Os tamanhos s�o diferentes" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "N�o est� \"linkado\" a %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "O (\"Link\") simb�lico � diferente" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "O n�mero de dispositivo � diferente" @@ -809,34 +857,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "ERRO DE VERIFICA��O: detectados %d cabe�alhos inv�lidos" msgstr[1] "ERRO DE VERIFICA��O: detectados %d cabe�alhos inv�lidos" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "valor %s fora da faixa %s: %s..%s; substituindo %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "valor %s fora da faixa %s: %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Gerando cabe�alhos octais negativos" @@ -855,292 +903,278 @@ msgstr "%s: arquivo sem altera msgid "%s: link name is too long; not dumped" msgstr "%s: arquivo sem altera��es; n�o ser� arquivado" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: o arquivo diminuiu %s bytes; completando com zeros" msgstr[1] "%s: o arquivo diminuiu %s bytes; completando com zeros" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: arquivo est� em outro sistema de arquivos; n�o ser� arquivado" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipo de arquivo desconhecido; arquivo ignorado" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " link para %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: arquivo sem altera��es; n�o ser� arquivado" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: arquivo removido antes de ser lido" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: arquivo alterado enquanto estava sendo lido" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: \"socket\" ignorado" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: porta ignorada" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Pulando para o pr�ximo cabe�alho" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Removendo um n�o-cabe�alho do arquivo-tar" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: o carimbo de hor�rio %s est� %lu s no futuro" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsist�ncia inesperada ao criar diret�rio" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Diret�rio renomeado antes de se poder extrair seu estado" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Extraindo arquivos cont�guos como sendo arquivos normais" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" -msgstr "Tentativa de extrair \"links\" simb�licos como \"links\" f�sicos" - -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Lendo %s\n" +msgstr "Tentativa de extrair \"links\" simb�licos como \"links\" f�sicos" -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Imposs�vel extrair -- arquivo � a continua��o de outro volume" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Fim de arquivo inesperado nos nomes cifrados" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Tipo de arquivo '%c' desconhecido; extraindo como arquivo normal" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Imposs�vel fazer backup deste arquivo" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: Imposs�vel renomear para %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Erro n�o � recuper�vel: saindo agora" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Diret�rio foi renomeado" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Diret�rio foi renomeado" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: O diret�rio � novo" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Carimbo de hor�rio inv�lido" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Modo inv�lido informado na op��o" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "N�mero de dispositivo inv�lido" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "N�mero de inode inv�lido" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Final-de-arquivo inesperado no arquivo-tar" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "Imposs�vel alocar mem�ria para um fator de bloco %d" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, fuzzy, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: arquivo est� em outro sistema de arquivos; n�o ser� arquivado" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Removendo %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Imposs�vel remover" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Omitindo" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloco %s: ** Bloco de NULs **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloco %s: ** Fim-de-arquivo **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "bloco %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Espa�o em branco no cabe�alho onde valor num�rico `%s' era esperado" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1148,147 +1182,162 @@ msgstr "" "complemento de dois" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "O valor octal do arquivo-tar %.*s est� fora de faixa %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "o arquivo-tar cont�m cabe�alhos base-64 obsoletos" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "A string base-64 assinada do arquivo-tar %s est� fora de faixa %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "O valor base-256 de arquivo-tar est� fora da faixa %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "O arquivo-tar cont�m %.*s onde valor num�rico %s era esperado" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "o valor do arquivo-tar %s est� fora da faixa %s: %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " link para %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " tipo de arquivo \"%s\" desconhecido\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Cabe�alho de volume--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continua no byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Criando de diret�rio:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Renomeando %s para %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Imposs�vel renomear para %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Renomeando %s de volta para %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Imposs�vel salvar diret�rio de trabalho" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Imposs�vel mudar o diret�rio de trabalho" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: arquivo removido antes de ser lido" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: arquivo removido antes de ser lido" + +#: src/misc.c:795 msgid "child process" msgstr "processo filho" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "canal interprocesso" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: N�o foi encontrado no arquivo-tar" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: N�o foi encontrado no arquivo-tar" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Ambas as op��es `-%s' e `-%s' exigem a entrada padr�o" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Grupo inv�lido" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Desejadas caracter�sticas GNU num arquivo-tar com formato incompat�vel" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1308,7 +1357,7 @@ msgstr "" " %s -tvf arquivo.tar # Lista todos os arquivos em arquivo.tar.\n" " %s -xf arquivo.tar # Extrai todos os arquivos de arquivo.tar\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1330,87 +1379,80 @@ msgstr "" " nil, existing numera se existe backup numerado, se n�o faz simples\n" " never, simple sempre faz backups simples\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Final-de-arquivo inesperado no arquivo-tar" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1418,577 +1460,565 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 #, fuzzy msgid "extract files to standard output" msgstr "Erro ao escrever para sa�da padr�o" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "Imposs�vel verificar arquivos-tar multi-volume" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Op��es de formato do arquivo-tar conflitantes" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Op��es de compress�o conflitantes" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" - -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Imposs�vel mudar o diret�rio de trabalho" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Removendo `%.*s' inicial dos nomes dos membros" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "O volume %s n�o casa com %s" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1996,274 +2026,290 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "N�o � poss�vel especificar mais do que uma das op��es \"-Acdtrux\"" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Op��es de compress�o conflitantes" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " tipo de arquivo \"%s\" desconhecido\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Arquivo de datas n�o encontrado" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Substituindo %s pelo formato de data desconhecido %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Fator de blocagem inv�lido" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Tamanho da fita inv�lido" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Mais do que uma data limite" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Grupo inv�lido" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Modo inv�lido informado na op��o" -#: src/tar.c:1774 +#: src/tar.c:1894 #, fuzzy msgid "Invalid number" msgstr "N�mero de inode inv�lido" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Dono inv�lido" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Tamanho de registro inv�lido" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "O tamanho dos registros tem que ser m�ltiplo de %d." -#: src/tar.c:1872 +#: src/tar.c:2000 #, fuzzy msgid "Invalid number of elements" msgstr "Tamanho da fita inv�lido" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "As op��es \"-[0-7][lmh]\" n�o s�o suportadas por *este* tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "A op��o antiga `%c' exige um argumento." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "M�ltiplos arquivos-tar � exigem a op��o \"-M\"" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Impossivel combinar --listed-incremental com --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, fuzzy, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: O r�tulo do volume � longo demais (o limite � %lu bytes)" msgstr[1] "%s: O r�tulo do volume � longo demais (o limite � %lu bytes)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Imposs�vel verificar arquivos-tar multi-volume" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Imposs�vel verificar arquivos-tar compactados" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Imposs�vel usar arquivos-tar compactados multi-volume" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Imposs�vel atualizar arquivos-tar compactados" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Recusando a criar um arquivo-tar vazio" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "As op��es `-Aru' s�o incompat�veis com `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Deve ser especificada uma das op��es \"-Acdtrux\"" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2275,79 +2321,84 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: O arquivo encolheu %s bytes" msgstr[1] "%s: O arquivo encolheu %s bytes" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Carimbo de hor�rio fora da faixa" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "A string base-64 assinada do arquivo-tar %s est� fora de faixa %s" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "o valor do arquivo-tar %s est� fora da faixa %s: %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2388,236 +2439,303 @@ msgstr "Ponto de verifica msgid "Read checkpoint %u" msgstr "Ponto de verifica��o de leitura %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Gera arquivos de dados para pacote de testes GNU tar.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Op��es de compress�o conflitantes" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Erro ao escrever para sa�da padr�o" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Uso: %s [OP��O]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Carimbo de hor�rio inv�lido" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "N�mero do inode fora de faixa" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Erro de sistema desconhecido" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Imposs�vel fechar" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " tipo de arquivo \"%s\" desconhecido\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Imposs�vel saltar para %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s: Imposs�vel saltar para %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "O processo filho morreu com o sinal %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Nomes de arquivos truncados--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: op��o ilegal -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Aviso: a op��o -I n�o � suportada; talvez a inten��o fosse -j ou -T?" +#~ "\n" +#~ "Informar erros no programa para <bug-tar@gnu.org>.\n" +#~ "Informar erros na tradu��o para <afmenez@terra.com.br>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Lendo %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Erro n�o � recuper�vel: saindo agora" + +#, fuzzy +#~ msgid "filter the archive through compress" +#~ msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "%s: arquivo � o arquivo-tar; n�o ser� arquivado" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Imposs�vel alocar espa�o para buffer\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Imposs�vel alocar espa�o para buffer" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Tente `%s --help' para mais informa��es.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Uso: %s [OP��O]\n" +#~ "Manipula uma unidade de fita, aceitando comandos de um processo remoto.\n" +#~ "\n" +#~ " --version Mostra informa��es de vers�o.\n" +#~ " --help Mostra esta ajuda.\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Deslocamento de procura fora de faixa" + +#~ msgid "Premature end of file" +#~ msgstr "Fim de arquivo prematuro" #~ msgid "block size" #~ msgstr "tamanho de bloco" @@ -2649,9 +2767,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Erro evidente de nome longo" -#~ msgid "Time stamp out of range" -#~ msgstr "Carimbo de hor�rio fora da faixa" - #~ msgid "Device number out of range" #~ msgstr "N�mero do dispositivo fora de faixa" @@ -3048,6 +3163,10 @@ msgstr "" #~ msgid "Obsolete option name replaced by --read-full-records" #~ msgstr "Nome de op��o obsoleta substitu�do por --read-full-records" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Aviso: a op��o -I n�o � suportada; talvez a inten��o fosse -j ou -T?" + #~ msgid "Obsolete option name replaced by --touch" #~ msgstr "Nome de op��o obsoleta substitu�do por --touch" diff --git a/po/ro.gmo b/po/ro.gmo index d752f9750407e0bf36fb040be1fa83c2ad88713e..6ca8d607e390be8e38805bbe0a4a7f305d51b1e7 100644 Binary files a/po/ro.gmo and b/po/ro.gmo differ diff --git a/po/ro.po b/po/ro.po index 18a060e02d05a398e93a4eaf67a2204dbd29e8e9..b72ef8843974d83aac47a5eced20e40ec7a6979f 100644 --- a/po/ro.po +++ b/po/ro.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.15.1\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2005-07-15 12:00-0500\n" "Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n" "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" @@ -16,47 +16,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argument invalid %s pentru %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argument ambiguu %s pentru %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Argumente valide sunt:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: parametrul ARGP_HELP_FMT necesit� o valoare" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, fuzzy, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: parametrul ARGP_HELP_FMT necesit� o valoare" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: parametru ARGP_HELP_FMT necunoscut" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Gunoi �n ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -64,239 +64,147 @@ msgstr "" "Argumentele obligatorii sau op�ionale pentru op�iunile lungi sunt " "obligatorii sau op�ionale �i pentru op�iunile corespunz�toare scurte." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Folosire:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " sau: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [OP�IUNE...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "" "�ncerca�i `%s --help' sau `%s --usage' pentru informa�ii suplimentare.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Raporta�i bug-uri la %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Eroare sistem necunoscut�" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 #, fuzzy msgid "give this help list" msgstr "Afi�eaz� aceast� list� de ajutor" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 #, fuzzy msgid "give a short usage message" msgstr "Afi�eaz� un scurt mesaj despre folosire" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NUME" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 #, fuzzy msgid "print program version" msgstr "Afi�eaz� versiunea programului" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: op�iunea `%s' necesit� un argument\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: op�iunea `%s' este ambigu�\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: op�iunea `--%s' nu permite un argument\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: op�iunea `%c%s' nu permite un argument\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: op�iunea `%s' necesit� un argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: op�iunea `--%s' nu este recunoscut�\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: op�iunea `%c%s' bu este recunoscut�\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: op�iune ilegal� -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: op�iune invalid� -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: op�iunea necesit� un argument -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: op�iunea `-W %s' este ambigu�\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: op�iunea `-W %s' nu permite un argument\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "memorie epuizat�" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Nu pot schimba directorul �n care lucrez" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Nu pot salva directorul �n care lucrez" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Nu pot %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Avertisment: Nu pot %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Nu pot schimba modul ca %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Nu pot schimba proprietatea c�tre uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Nu pot crea hard link c�tre %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Eroare citire la octet %s, citind %lu octet" -msgstr[1] "%s: Eroare citire la octet %s, citind %lu octe�i" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Avertisment: Eroare citire la octet %s, citind %lu octet" -msgstr[1] "%s: Avertisment: Eroare citire la octet %s, citind %lu octe�i" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Nu pot c�uta (seek) c�tre %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Avertisment: Nu pot c�uta (seek) c�tre %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Nu pot crea symlink c�tre %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Am scris numai %lu din %lu octet" -msgstr[1] "%s: Am scris numai %lu din %lu octe�i" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Elimin�m primul `%s' din numele membrilor" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Elimin�m primul `%s' din destina�iile hard link" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "�nlocuiesc `.' pentru nume de membrii goale" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "�nlocuiesc `.' pentru destina�ii hard link goale" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -310,17 +218,17 @@ msgstr " #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -330,7 +238,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -340,38 +248,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Serviciu indisponibil" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Nu pot executa shell remote" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -382,19 +280,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -402,7 +300,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -412,7 +310,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -422,7 +320,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +330,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -442,7 +340,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -453,7 +351,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -464,7 +362,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -476,183 +374,330 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Raporta�i bug-uri la %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Raporta�i bug-uri la <%s>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Nu pot %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Nu pot aloca spa�iu memorie intermediar�\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Avertisment: Nu pot %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Nu pot schimba modul ca %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Nu pot aloca spa�iu memorie intermediar�" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Nu pot schimba proprietatea c�tre uid %lu, gid %lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "�ncerca�i `%s --help' pentru informa�ii suplimentare.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Nu pot crea hard link c�tre %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Eroare citire la octet %s, citind %lu octet" +msgstr[1] "%s: Eroare citire la octet %s, citind %lu octe�i" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Avertisment: Eroare citire la octet %s, citind %lu octet" +msgstr[1] "%s: Avertisment: Eroare citire la octet %s, citind %lu octe�i" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Nu pot c�uta (seek) c�tre %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Avertisment: Nu pot c�uta (seek) c�tre %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Nu pot crea symlink c�tre %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Am scris numai %lu din %lu octet" +msgstr[1] "%s: Am scris numai %lu din %lu octe�i" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Elimin�m primul `%s' din numele membrilor" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Elimin�m primul `%s' din destina�iile hard link" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "�nlocuiesc `.' pentru nume de membrii goale" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "�nlocuiesc `.' pentru destina�ii hard link goale" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Serviciu indisponibil" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Folosire: %s [OP�IUNE]\n" -"Manipuleaz� o unitate de band�, accept�nd comenzi de la un proces remote.\n" -"\n" -" --version Afi�eaz� informa�ii versiune.\n" -" --help Afi�eaz� acest mesaj.\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Nu pot executa shell remote" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Direc�ie c�utare (seek direction) �n afara domeniului" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Decalaj c�utare (seek offset) �n afara domeniului" +msgid "Invalid seek direction" +msgstr "Mod invalid furnizat ca op�iune" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "�nregistrare timp invalid�" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Decalaj c�utare (seek offset) �n afara domeniului" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Direc�ie c�utare (seek direction) �n afara domeniului" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Lungime de band� invalid�" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Decalaj c�utare (seek offset) �n afara domeniului" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: eof prematur\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Sf�r�it de fi�ier prematur" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Mod de operare principal:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "EOF nea�teptat �n arhiv�" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "NUM�R" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FI�IER" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s: Nu pot c�uta (seek) c�tre %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Comand� gunoi" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Aceasta nu pare a fi o arhiv� tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Num�r total octe�i scri�i: %s (%s, %s/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Num�r total octe�i scri�i: %s (%s, %s/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Valoare invalid� pentru record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Nume arhiv� nu a fost furnizat" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Nu pot verifica arhive atdin/stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arhiva este compresat�. Folosi�i op�iunea %s." -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Nu pot actualiza arhive comprimate" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "La �nceputul benzii, ie�im acum" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Prea multe erori, ie�im" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Dimensiune �nregistrare = %lu bloc" msgstr[1] "Dimensiune �nregistrare = %lu blocuri" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Bloc ne-aliniat (%lu octet) �n arhiv�" msgstr[1] "Bloc ne-aliniat (%lu octe�i) �n arhiv�" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Nu pot backspace fi�ierul arhiv�; acesta ar putea fi de necitit f�r� -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek nu s-a oprit la limita unei �nregistr�ri" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: con�ine num�r volum invalid" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Dep�ire domeniu num�r volum" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepar� volum #%d pentru %s �i apas� tasta return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "EOF unde era a�teptat r�spunsul utilizatorului" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "AVERTISMENT: Arhiva este incomplet�" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -664,126 +709,126 @@ msgstr "" " ! Lanseaz� un subshell\n" " ? Afi�eaz� aceast� list� de op�iuni\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Nici un volum nou; termin�m.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "`%s' comanda a e�uat" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s nu este continuat pe acest volum" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s nu este continuat pe acest volum" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s este de dimensiune gre�it� (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Acest volum este �n afara secven�ei" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arhiva nu este etichetat� s� se potriveasc� cu %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Volumul %s nu se potrive�te cu %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, fuzzy, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" "%s: nume fi�ier prea lung pentru a fi storat �ntr-un antet GNU multivolum" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "rmtlseek nu s-a oprit la limita unei �nregistr�ri" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Am putut citi doar %lu din %lu octet" msgstr[1] "Am putut citi doar %lu din %lu octe�i" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Con�inuturile difer�" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "EOF nea�teptat �n arhiv�" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Tipul fi�ierelor difer�" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Modurile difer�" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid difer�" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid difer�" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Timp modificare difer�" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Dimensiunea difer�" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Nu este link-at c�tre %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlink difer�" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Num�r dispozitiv difer�" @@ -806,34 +851,34 @@ msgstr "Arhiva con msgid "Verification may fail to locate original files." msgstr "Verificare ar putea e�ua s� g�seasc� fi�ierele originale." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "VERIFIC� E�EC: detectat %d antet invalid" msgstr[1] "VERIFIC� E�EC: detectat %d antete invalide" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Un bloc zero singuratic la %s" -#: src/create.c:67 +#: src/create.c:68 #, fuzzy, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: con�ine o etichet� de director cache; nimic generat" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "valoarea %s �n afara %s intervalului %s..%s; �nlocuiesc %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "valoarea %s �n afara %s intervalului %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Generez antete octale negative" @@ -852,295 +897,281 @@ msgstr "%s: numele fi msgid "%s: link name is too long; not dumped" msgstr "%s: numele link-ului este prea lung; nimic generat" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Fi�ier scurtat cu %s octet; completat cu zerouri" msgstr[1] "%s: Fi�ier scurtat cu %s octe�i; completat cu zerouri" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fi�ierul este pe un sistem de fi�iere diferit; nimic generat" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tip de fi�ier necunoscut; fi�ier ignorat" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr "Link lips� c�tre '%s'.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fi�ierul este neschimbat; nimic generat" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fi�ierul este �n arhiv�; nimic generat" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Fi�ier �ters �nainte de a-l putea citi" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 #, fuzzy msgid "directory not dumped" msgstr "%s: con�ine o etichet� de director cache; nimic generat" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fi�ier schimbat �n timp ce �l citeam" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: socket ignorat" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: u�� ignorat�" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "S�rim la urm�torul antet" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "�tergem non-antet din arhiv�" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: �nregistrare de timp neverosimil� %s" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: �nregistrare timp %s este %lu sec �n viitor" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsisten�� nea�teptat� c�nd cream directorul" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Director redenumit �nainte de a fi putut extrage starea sa" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Extragem fi�iere contigue ca fi�iere normale" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "�ncerc extragerea link-urilor simbolice ca link-uri hard" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Citesc %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Nu pot extrage -- fi�ierul este continuat din alt� arhiv�" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "EOF nea�teptat �n numele amestecate" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Tip de fi�ier necunoscut '%c', extras ca fi�ier normal" -#: src/extract.c:1181 +#: src/extract.c:1223 #, fuzzy, c-format msgid "Current %s is newer or same age" msgstr "`%s' curent este mai nou" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Nu am putut arhiva (backup) acest fi�ier" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" msgstr "%s: Nu pot redenumi ca %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Nu-mi pot reveni din eroare: termin acum" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Directorul a fost redenumit" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Directorul a fost redenumit" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Directorul este nou" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "�nregistrare timp invalid�" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Mod invalid furnizat ca op�iune" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Num�r dispozitiv invalid" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Num�r inode invalid" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "EOF nea�teptat �n arhiv�" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 #, fuzzy msgid "Malformed dumpdir: empty name in 'R'" msgstr "Argument densitate malformat: '%s'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 #, fuzzy msgid "Malformed dumpdir: empty name in 'T'" msgstr "Argument densitate malformat: '%s'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Nu cur�� director: nu pot determina statistici" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: directorul este pe un dispozitiv (device) diferit; necur��at" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: �tergem %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Nu pot �terge" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Omis" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloc %s: ** Bloc de NUL-uri **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloc %s: ** Sf�r�it de fi�ier **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "bloc %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Spa�ii libere �n antet unde valoare %s numeric� a�teptat�" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1148,147 +1179,163 @@ msgstr "" "lui doi" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Valoare octal� arhiv� %.*s este �n afara %s intervalului" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiva con�ine antete �n baza-64 dep�ite" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "�ir �n baza-64 (semn�tura arhivei) %s este �n afara %s intervalului" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Valoare baza-256 a arhivei este �n afara %s intervalului" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arhiva con�ine %.*s unde valoare %s numeric� a�teptat�" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, fuzzy, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Valoare arhiv� %s este �n afara %s intervalului %s.%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " link c�tre %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " tip fi�ier necunoscut %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Link Lung--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Nume Lung--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Antet Volum--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continuat la octet %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Creez director:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Redenumesc %s ca %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Nu pot redenumi ca %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Redenumesc %s �napoi ca %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Nu pot salva directorul �n care lucrez" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Nu pot schimba directorul �n care lucrez" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Fi�ier �ters �nainte de a-l putea citi" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Fi�ier �ters �nainte de a-l putea citi" + +#: src/misc.c:795 msgid "child process" msgstr "proces copil" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "canal �ntre-procese" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" -msgstr "" +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" +msgstr "pattern-urile de excludere potrivesc �nceputul numelor de fi�iere" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nu a fost g�sit �n arhiv�" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Lucrul cerut nu a fost g�sit �n arhiv�" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Op�iunile `-%s' �i `-%s' vor am�ndou� intrarea standard" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Format arhiv� invalid" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Capabilit��i GNU cerute pentru un format de arhiv� incompatibil" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1316,7 +1363,7 @@ msgstr "" " nil, existing numeroteaz� dac� exist� backup numerotat, altfel simplu\n" " never, simple �ntotdeauna creaz� backup simplu\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1345,86 +1392,79 @@ msgstr "" " nil, existing numeroteaz� dac� exist� backup numerotat, altfel simplu\n" " never, simple �ntotdeauna creaz� backup simplu\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Mod de operare principal:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "listeaz� con�inutul unei arhive" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "extrage fi�iere dintr-o arhiv�" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "creaz� o nou� arhiv�" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "g�se�te diferen�ele dintre arhive �i sistemul de fi�iere" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "adaug� fi�iere la sf�r�itul unei arhive" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "adaug� numai fi�ierele mai noi dec�t copia din arhiv�" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "adaug� fi�iere tar la o arhiv�" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "�terge din arhiv� (nu pe benzi magnetice!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Modificatori opera�ie:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "manipuleaz� eficient fi�ierele rerefiate (sparse)" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "folose�te vechiul format GNU pentru backup incremental" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FI�IER" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "folose�te noul format GNU pentru backup incremental" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "nu termina cu non-zero pentru fi�iere ce nu pot fi citite" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "NUM�R" - -#: src/tar.c:410 +#: src/tar.c:428 #, fuzzy msgid "" "process only the NUMBERth occurrence of each file in the archive; this " @@ -1437,306 +1477,314 @@ msgstr "" "--diff, --extract sau --list �i c�nd o list� de fi�iere este dat� fie �n " "linia de comand� sau folosind op�iunea -T. Implicit, NUMBER=1." -#: src/tar.c:416 +#: src/tar.c:434 #, fuzzy msgid "archive is seekable" msgstr "Arhiva este c�utabil�" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "Arhiva este c�utabil�" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "�ncearc� s� verifici arhiva dup� scrierea sa" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "�terge fi�ierele dup� ce acestea sunt ad�ugate la arhiv�" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "nu �nlocui fi�ierele existente la extragere" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "nu �nlocui fi�ierele existente care sunt mai noi dec�t copiile acestora din " "arhiv�" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "supra-scrie fi�ierele existente la extragere" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "�terge fiecare fi�ier �nainte de a extrage peste acesta" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "gole�te ierarhiile �nainte de a extrage un director" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "p�straz� metadata directoarelor existente" -#: src/tar.c:446 +#: src/tar.c:466 #, fuzzy msgid "overwrite metadata of existing directories when extracting (default)" msgstr "supra-scrie fi�ierele existente la extragere" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "extrage fi�ierele la ie�irea standard" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "COMAND�" -#: src/tar.c:457 +#: src/tar.c:477 #, fuzzy msgid "pipe extracted files to another program" msgstr "extrage fi�ierele la ie�irea standard" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Manipulare atribute fi�iere:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "for�eaz� NUME ca proprietar pentru fi�ierele ad�ugate" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "for�eaz� NUME ca grup pentru fi�ierele ad�ugate" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATA-FI�IERULUI" -#: src/tar.c:473 +#: src/tar.c:493 #, fuzzy msgid "set mtime for added files from DATE-OR-FILE" msgstr "stocheaz� numai fi�iere mai noi dec�t DATA-FI�IERULUI" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "SCHIMB�RI" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "for�eaz� mod (simbolic) SCHIMB�RI pentru fi�ierele ad�ugate" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "nu extrage timpul de modificare al fi�ierului" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "�ncearc� extragerea fi�ierelor cu acelea�i drepturi (ownership)" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "extrage fi�ierele ca dvs. �nsu�i" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "folose�te �ntotdeauna numere pentru numele utilizator/grup" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "sorteaz� numele de extras s� se potriveasc� cu arhiva" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "la fel ca -p �i -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Selectare �i schimbare unitate:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARHIV�" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "folose�te fi�ier arhiv� sau unitate ARHIV�" -#: src/tar.c:514 +#: src/tar.c:534 #, fuzzy msgid "archive file is local even if it has a colon" msgstr "fi�ier arhiv� este local chiar c�nd are un :" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "folose�te rmt COMAND� �n loc de rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "folose�te remote COMAND� �n loc de rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "specific� unitate �i densitate" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "creaz�/listeaz�/extrage arhiva pe volume multiple" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "schimb� banda dup� scriere a NUM�R x 1024 octe�i" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "ruleaz� script la terminarea fiec�rei benzi (implic� -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "folose�te/actualizeaz� num�rul de volum �n FI�IER" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Blocuri unitate:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOCURI" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOCURI x 512 octe�i pe �ntregistrare" -#: src/tar.c:553 +#: src/tar.c:573 #, fuzzy msgid "NUMBER of bytes per record, multiple of 512" msgstr "DIMENSIUNE octe�i pe �nregistrare, multiplu de 12" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "ignor� blocuri zero-uate �n arhiv� (�nseamn� EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "redimensioneaz� bloc �n timpul citirii (pentru pipe-uri BSD4.2" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Selec�ie format arhiv�:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 #, fuzzy msgid "create archive of the given format" msgstr "creaz� arhiva de formatul dat." -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT este unul din urm�toarele" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "vechiul format tar V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "oldgnu formatul GNU format ca pentru tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "formatul GNU tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "formatul POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "formatul POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 #, fuzzy msgid "same as pax" msgstr "ca �i pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "ca �i --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "ca �i --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 #, fuzzy msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "cuv�nt_cheie[[:]=valoare][,cuv�nt_cheie[[:]=valoare], ...]" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "controleaz� cuvintele cheie pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEXT" -#: src/tar.c:588 +#: src/tar.c:608 #, fuzzy msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " @@ -1745,196 +1793,173 @@ msgstr "" "creaz� arhiv� nu nume volum NUME. La listare/extragere, folose�te TEXT ca " "pattern de globbing" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Op�iunile de compresie sunt �n conflict" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "filtraz� arhiva prin bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "filtreaz� arhiva prin gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "filtreaz� arhiva prin compress" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "filtreaz� arhiva prin gzip" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "filtreaz� arhiva prin gzip" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "filtreaz� arhiva prin gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "filtreaz� prin PROG (trebuie s� accepte -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Selec�ie fi�ier local:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DIR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "schimb� �n directorul DIR" -#: src/tar.c:627 +#: src/tar.c:643 #, fuzzy msgid "get names to extract or create from FILE" msgstr "ob�ine numele de extras sau creat din fi�ierul NUME" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T cite�te nume terminate cu null, deactiveaz� cu -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "PATTERN" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "exclude fi�iere, date ca un PATTERN" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "pattern-urile de excludere sunt listate �n FI�IER" -#: src/tar.c:641 +#: src/tar.c:657 #, fuzzy msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/tar.c:644 +#: src/tar.c:660 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/tar.c:647 +#: src/tar.c:663 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/tar.c:649 +#: src/tar.c:665 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/tar.c:652 +#: src/tar.c:668 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/tar.c:654 +#: src/tar.c:670 #, fuzzy msgid "exclude directories containing FILE" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "evit� cobor�rea automat� �n directoare" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "stai �n sistemul de fi�ire local la creare arhivei" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "coboar� recursiv �n directoare (implicit)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "nu elimina primul `/' din numele fi�ierelor" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "NUME-MEMBRU" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "�ncepe la membrul NUME-MEMBRU �n arhiv�" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "stocheaz� numai fi�iere mai noi dec�t DATA-FI�IERULUI" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATA" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "compar� data �i timpul numai c�nd a fost schimbat� data" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "f� backup �nainte de �tergere, alege CONTROL pentru versiuni" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "�IR" -#: src/tar.c:679 +#: src/tar.c:697 #, fuzzy msgid "" "backup before removal, override usual suffix ('~' unless overridden by " @@ -1943,95 +1968,103 @@ msgstr "" "f� backup �nainte de �tergere, �nlocuie�te prefixul normal ('~' �n afar� de " "cazul c�nd este determinat de variabila de mediu SIMPLE_BACKUP_SUFFIX" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 #, fuzzy msgid "strip NUMBER leading components from file names on extraction" msgstr "elimin� NUM�R componente de la �nceputul numelor fi�ierelor" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 #, fuzzy msgid "ignore case" msgstr "�n excluderi ignor� cazul caracterelor (minuscule/majuscule)" -#: src/tar.c:700 +#: src/tar.c:718 #, fuzzy msgid "patterns match file name start" msgstr "pattern-urile de excludere potrivesc �nceputul numelor de fi�iere" -#: src/tar.c:702 +#: src/tar.c:720 #, fuzzy msgid "patterns match after any `/' (default for exclusion)" msgstr "pattern-urile de excludere potrivesc dup� orice / (implicit)" -#: src/tar.c:704 +#: src/tar.c:722 #, fuzzy msgid "case sensitive matching (default)" msgstr "excluderea depinde de caz (minuscule/majuscule) (implicit)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "wildcard-urile �n pattern-urile de excludere nu potrivesc '/'" -#: src/tar.c:712 +#: src/tar.c:730 #, fuzzy msgid "wildcards match `/' (default for exclusion)" msgstr "wildcard-urile din pattern-urile de excludere potrivesc '/' (implicit)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Ie�ire informativ�:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "listeaz� cu am�nunte fi�ierele procesate" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 #, fuzzy msgid "display progress messages every NUMBERth record (default 10)" msgstr "afi�eaz� mesaje despre progres la fiecare al 10-a �nregistrare" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "afi�eaz� un mesaj dac� nu toate link-urile sunt prelucrate" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2039,28 +2072,28 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "afi�eaz� datele de modificare a fi�ierelor �n UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "trimite ie�ire detaliat� �n FI�IER" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "arat� num�rul blocului din arhiv� pentru fiecare mesaj" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "cere confirmare pentru fiecare ac�iune" -#: src/tar.c:744 +#: src/tar.c:764 #, fuzzy msgid "show tar defaults" msgstr "Arat� valorire implicite folosite de tar" -#: src/tar.c:746 +#: src/tar.c:766 #, fuzzy msgid "" "when listing or extracting, list each directory that does not match search " @@ -2069,88 +2102,95 @@ msgstr "" "La listare sau extragere, listeaz� fiecare director care nu se potrive�te cu " "criteriile de c�utare" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Op�iuni compatibilitate:" -#: src/tar.c:764 +#: src/tar.c:784 #, fuzzy msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "la creare, ca �i --old-archive. La extragere, ca �i --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Alte op�iuni:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Nu pute�i specifica mai mult de una dintre op�iunile `-Acdtrux'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Op�iunile de compresie sunt �n conflict" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " tip fi�ier necunoscut %s\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "Fi�ier date nu a fost g�sit" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "�nlocuim %s pentru format de dat� necunoscut %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, fuzzy, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Tratez data `%s' ca %s + %ld nanosecund�" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: fi�ierul este �n arhiv�; nimic generat" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "filtreaz� arhiva prin gzip" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2158,159 +2198,169 @@ msgstr "" "\n" "*Acest* tar folose�te implicit:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Factor blocuri invalid" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Lungime de band� invalid�" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Mai mult de o singur� dat� limit�" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Grup invalid" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Mod invalid furnizat ca op�iune" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Num�r invalid" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Proprietar invalid" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Dimensiune �nregistrare invalid�" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Dimensiune �nregistrare trebuie s� fie un multiplu de %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Num�r invalid de elemente" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, fuzzy, c-format msgid "Malformed density argument: %s" msgstr "Argument densitate malformat: '%s'" -#: src/tar.c:1994 +#: src/tar.c:2126 #, fuzzy, c-format msgid "Unknown density: `%c'" msgstr "Densitate necunoscut�: '%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Op�iunile `-[0-7][lmh]' nu sunt suportate de *acest* tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FI�IER]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Vechea op�iune `%c' necesit� un argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence n-are sens f�r� o list� de fi�iere" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence nu poate fi folosit �n modul de operare cerut" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Fi�iere de arhiv� multiple necesit� op�iunea `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Nu pute�i combina --listed-incremental cu --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--occurrence n-are sens f�r� o list� de fi�iere" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Eticheta volumului este prea lung� (limita este %lu octet)" msgstr[1] "%s: Eticheta volumului este prea lung� (limita este %lu octe�i)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Nu pot verifica arhive pe volume multiple" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Nu pot verifica arhive comprimate" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Nu pot folosi arhive comprimate pe volume multiple" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Nu pot actualiza arhive comprimate" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option poate fi folosit numai pentru arhive POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Refuz categoric s� creez o arhiv� goal�" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Op�iunile `-Aru' sunt incompatibile cu `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Trebuie s� specifica�i una din op�iunile `-Acdtrux'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2322,82 +2372,87 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Fi�ier scurtat cu %s octet" msgstr[1] "%s: Fi�ier scurtat cu %s octe�i" -#: src/xheader.c:156 +#: src/xheader.c:163 #, fuzzy, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Cuv�nt_cheie %s necunoscut sau �nc� neimplementat" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "�nregistrare timp �n afara domeniului" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Pattern-ul %s nu poate fi folosit" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Cuv�nt_cheie %s nu poate fi �nlocuit (overridden)" -#: src/xheader.c:496 +#: src/xheader.c:541 #, fuzzy msgid "Malformed extended header: missing length" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "�ir �n baza-64 (semn�tura arhivei) %s este �n afara %s intervalului" -#: src/xheader.c:523 +#: src/xheader.c:568 #, fuzzy msgid "Malformed extended header: missing blank after length" msgstr "Antet extins malformat: lipse�te spa�iu liber dup� lungime" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:537 +#: src/xheader.c:582 #, fuzzy msgid "Malformed extended header: missing newline" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Valoare arhiv� %s este �n afara %s intervalului %s.%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, fuzzy, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, fuzzy, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Antet extins malformat: lipse�te semnul egal" @@ -2438,240 +2493,309 @@ msgstr "Scrie punct de verificare %d" msgid "Read checkpoint %u" msgstr "Cite�te punct de verificare %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Alte op�iuni:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 #, fuzzy msgid "Create file of the given SIZE" msgstr "creaz� arhiva de formatul dat." -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "extrage fi�ierele la ie�irea standard" -#: tests/genfile.c:132 +#: tests/genfile.c:134 #, fuzzy msgid "Read file names from FILE" msgstr "Am citit %s octe�i de la %s" -#: tests/genfile.c:134 +#: tests/genfile.c:136 #, fuzzy msgid "-T reads null-terminated names" msgstr "-T cite�te nume terminate cu null, deactiveaz� cu -C" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "�ncearc� s� verifici arhiva dup� scrierea sa" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [OP�IUNE...]" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 #, fuzzy msgid "Execute COMMAND" msgstr "COMAND�" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "�nregistrare timp invalid�" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Num�r inode �n afara intervalului" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Eroare sistem necunoscut�" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "%s: Nu pot c�uta (seek) c�tre %s" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " tip fi�ier necunoscut %s\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Nu pot c�uta (seek) c�tre %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s: Nu pot c�uta (seek) c�tre %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Amestecat numele fi�ierelor--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: op�iune ilegal� -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Avertisment: op�iunea -I nu este suportat�; a�i dorit cumva -j sau -T?" +#~ "\n" +#~ "Raporta�i bug-uri la <%s>.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Citesc %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Nu-mi pot reveni din eroare: termin acum" + +#~ msgid "filter the archive through bzip2" +#~ msgstr "filtraz� arhiva prin bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "filtreaz� arhiva prin gzip" + +#~ msgid "filter the archive through compress" +#~ msgstr "filtreaz� arhiva prin compress" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "filtreaz� arhiva prin gzip" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "filtreaz� arhiva prin gzip" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Nu pot aloca spa�iu memorie intermediar�\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Nu pot aloca spa�iu memorie intermediar�" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "�ncerca�i `%s --help' pentru informa�ii suplimentare.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Folosire: %s [OP�IUNE]\n" +#~ "Manipuleaz� o unitate de band�, accept�nd comenzi de la un proces " +#~ "remote.\n" +#~ "\n" +#~ " --version Afi�eaz� informa�ii versiune.\n" +#~ " --help Afi�eaz� acest mesaj.\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Decalaj c�utare (seek offset) �n afara domeniului" + +#~ msgid "Premature end of file" +#~ msgstr "Sf�r�it de fi�ier prematur" #~ msgid "block size" #~ msgstr "dimensiune bloc" @@ -2696,9 +2820,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Eroare nume lung evident�" -#~ msgid "Time stamp out of range" -#~ msgstr "�nregistrare timp �n afara domeniului" - #~ msgid "Device number out of range" #~ msgstr "Num�r dispozitiv �n afara intervalului" @@ -2792,6 +2913,10 @@ msgstr "" #~ " 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" #~ "\n" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Avertisment: op�iunea -I nu este suportat�; a�i dorit cumva -j sau -T?" + #~ msgid "Semantics of -l option will change in the future releases." #~ msgstr "Semantica op�iunii -l se va schimba �n versiunile viitoare." diff --git a/po/ru.gmo b/po/ru.gmo index feb394fd2eb799a6abe6ed97b57e798d4ba478ea..7a8b40fa54267ce6ebcd4dda55c76af4a5aedf0c 100644 Binary files a/po/ru.gmo and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po index 0f3807ae02f9ad768289a28bbf4095dd73dc3746..80c4a467deef95274717726cd397e380feed04ad 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1,62 +1,65 @@ # Translation of tar messages to Russian -# Copyright (C) 1998, 1999, 2004, 2006 Free Software Foundation, Inc. -# This file is distributed under the same license as the cpio package. +# Copyright (C) 1998, 1999, 2004, 2006, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the tar package. # Const Kaplinsky <const@ce.cctpu.edu.ru>, 1998, 1999. # Pavel Maryanov <acid_jack@ukr.net>, 2004, 2006, 2008. +# Yuri Kozlov <yuray@komyakino.ru>, 2009. +# msgid "" msgstr "" -"Project-Id-Version: tar 1.19\n" +"Project-Id-Version: tar 1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-01-18 01:00+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-10-11 16:43+0200\n" "Last-Translator: Pavel Maryanov <acid_jack@ukr.net>\n" "Language-Team: Russian <gnu@mx.ru>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\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" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" -msgstr "неверный аргумент %s для %s" +msgstr "недопустимый аргумент %s для %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "неоднозначный аргумент %s для %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Допустимые аргументы:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: Значение %s меньше или равно %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: Для параметра ARGP_HELP_FMT требуется значение" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: Параметра ARGP_HELP_FMT должен быть положительным" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Неизвестный параметр ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Мусор в ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -64,236 +67,144 @@ msgstr "" "Обязательные или необязательные аргументы для длинный опций также являются " "обязательными или необязательными для соответствующих коротких опций." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Использование:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " или: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [ОПЦИЯ...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "" "Попробуйте `%s --help' или `%s --usage' для получения дополнительной " "информации.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Отчеты об ошибках отправляйте на %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Неизвестная системная ошибка" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "вывод этой справки" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "вывод короткого сообщения об использовании" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "ИМЯ" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "определяет название программы" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "СЕК" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "ожидание в течение заданных СЕКУНД (по умолчанию 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "вывод версии программы" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(ОШИБКА ПРОГРАММЫ) Неизвестная версия?!" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Слишком много аргументов\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(ОШИБКА ПРОГРАММЫ) Опция должна была быть распознана?!" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" -msgstr "" +msgstr "ошибка записи" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: опция `%s' не однозначна\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: опция `--%s' не разрешает использовать аргумент\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: опция `%c%s' не разрешает использовать аргумент\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: для опции `%s' требуется аргумент\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: нераспознанная опция `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: нераспознанная опция `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: недопустимая опция -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: неверная опция -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: для опции требуется аргумент -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: опция `-W %s' не однозначна\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: опция `-W %s' не разрешает использовать аргумент\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "память исчерпана" -#: lib/openat-die.c:35 -#, fuzzy, c-format -msgid "unable to record current working directory" -msgstr "Невозможно изменить рабочий каталог" - -#: lib/openat-die.c:48 -#, fuzzy, c-format -msgid "failed to return to initial working directory" -msgstr "Невозможно сохранить рабочий каталог" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Невозможно %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Предупреждение: Невозможно %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Невозможно изменить права доступа на %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Невозможно изменить владельца на uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Невозможно создать жёсткую ссылку на %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Ошибка чтения с позиции %s при чтении %lu байт" -msgstr[1] "%s: Ошибка чтения с позиции %s при чтении %lu байт" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Предупреждение: Ошибка чтения с позиции %s при чтении %lu байт" -msgstr[1] "%s: Предупреждение: Ошибка чтения с позиции %s при чтении %lu байт" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Невозможно найти в %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Предупреждение: Невозможно найти в %s" - -#: lib/paxerror.c:284 +#: gnu/openat-die.c:36 #, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Невозможно создать символическую ссылку на %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Записан только %lu байт из %lu" -msgstr[1] "%s: Записано только %lu байт из %lu" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Удаляется начальный `%s' из имен объектов" +msgid "unable to record current working directory" +msgstr "невозможно зарегистрировать текущий рабочий каталог" -#: lib/paxnames.c:156 +#: gnu/openat-die.c:54 #, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Удаляются начальные `%s' из целей жестких ссылок" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "`.' заменяются пустыми именами объектов" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "`.' заменяются пустыми целями жестких ссылок" +msgid "failed to return to initial working directory" +msgstr "не удалось вернуться в первоначальный рабочий каталог" #. TRANSLATORS: #. Get translations for open and closing quotation marks. @@ -308,17 +219,17 @@ msgstr "`.' заменяются пустыми целями жестких сс #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -328,7 +239,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yY]" @@ -338,38 +249,28 @@ msgstr "^[yY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Служба недоступна" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Невозможно запустить удалённый командный процессор" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" -msgstr "" +msgstr "(C)" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -378,279 +279,453 @@ msgid "" "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" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" -msgstr "" +msgstr "Программа создана %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" -msgstr "" +msgstr "Программа создана %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" -msgstr "" +msgstr "Программа создана %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" +"Программа создана %s, %s, %s\n" +"и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Программа создана %s, %s, %s,\n" +"%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" +"Программа создана %s, %s, %s,\n" +"%s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" +"Программа создана %s, %s, %s,\n" +"%s, %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" +"Программа создана %s, %s, %s,\n" +"%s, %s, %s, %s\n" +"и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Программа создана %s, %s, %s,\n" +"%s, %s, %s, %s,\n" +"%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" +"Программа создана %s, %s, %s,\n" +"%s, %s, %s, %s,\n" +"%s, %s и другими.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" -msgstr "" -"\n" -"Отчёты об ошибках отправляйте на <%s>.\n" +"Report bugs to: %s\n" +msgstr "Отчеты об ошибках отправляйте на %s.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" +msgstr "Отчеты об ошибках отправляйте на %s.\n" + +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Домашняя страница %s: <http://www.gnu.org/software/%s/>.\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Слишком длинная входная строка" +#: gnu/version-etc.c:258 +#, fuzzy +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "Справка по работе с ПО GNU: <http://www.gnu.org/gethelp/>.\n" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Ошибка синтаксиса числа" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Функция %s завершилась с ошибкой" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Невозможно выделить буферное пространство\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Предупреждение: Функция %s завершилась с ошибкой" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Невозможно выделить буферное пространство" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Невозможно изменить права доступа на %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Попробуйте `%s --help' для получения дополнительной информации.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Невозможно изменить владельца на uid %lu, gid %lu" -#: rmt/rmt.c:308 +#: lib/paxerror.c:127 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Невозможно создать жёсткую ссылку на %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Ошибка чтения с позиции %s при чтении %lu байта" +msgstr[1] "%s: Ошибка чтения с позиции %s при чтении %lu байт" +msgstr[2] "%s: Ошибка чтения с позиции %s при чтении %lu байт" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Предупреждение: Ошибка чтения с позиции %s при чтении %lu байта" +msgstr[1] "%s: Предупреждение: Ошибка чтения с позиции %s при чтении %lu байт" +msgstr[2] "%s: Предупреждение: Ошибка чтения с позиции %s при чтении %lu байт" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Невозможно найти в %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Предупреждение: Невозможно найти в %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Невозможно создать символическую ссылку на %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Записан только %lu байт из %lu" +msgstr[1] "%s: Записано только %lu байта из %lu" +msgstr[2] "%s: Записано только %lu байт из %lu" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Удаляется начальный `%s' из имен объектов" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Удаляются начальные `%s' из целей жестких ссылок" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "`.' заменяются пустыми именами объектов" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "`.' заменяются пустыми целями жестких ссылок" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Служба недоступна" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Использование: %s [ОПЦИЯ]\n" -"Управляет накопителями на магнитной ленте, принимая команды из удалённого " -"процесса.\n" -"\n" -" --version Вывод информации о версии.\n" -" --help Вывод этой справки.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Ошибка смещения поиска" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Невозможно запустить удалённый командный процессор" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Направление поиска за пределами диапазона" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "В опции указан неверный режим доступа" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Недопустимый размер: %s" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Смещение поиска за пределами диапазона" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Направление поиска за пределами диапазона" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Неверная длина ленты" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Смещение поиска за пределами диапазона" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Преждевременный конец файла\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Преждевременный конец файла" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Основной режим работы:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Неожиданный конец файла в архиве" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "N" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "ФАЙЛ" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "невозможно открыть `%s'" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "слишком много аргументов" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Неверная команда" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Это не похоже на tar-архив" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Всего записано байт" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Всего прочитано байт" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Всего удалено байт: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Неверное значение для record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Не указано имя архива" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Невозможно проверить архив на stdin/stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архив сжат. Используйте опцию %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Невозможно обновить сжатые архивы" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Начало ленты, завершение работы" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Слишком много ошибок, завершение работы" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Размер записи = %lu блок" -msgstr[1] "Размер записи = %lu блоков" +msgstr[1] "Размер записи = %lu блока" +msgstr[2] "Размер записи = %lu блоков" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Невыровненный блок (%lu байт) в архиве" -msgstr[1] "Невыровненный блок (%lu байт) в архиве" +msgstr[1] "Невыровненный блок (%lu байта) в архиве" +msgstr[2] "Невыровненный блок (%lu байт) в архиве" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Невозможно вернуться назад на один архивный файл; он может быть нечитаемым " "без -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek не остановился на границе записи" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: содержит неверный номер тома" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Переполнение номера тома" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Приготовьте том Номер %d для %s и нажмите Enter: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Конец файла вместо ожидаемого ответа пользователя" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ПРЕДУПРЕЖДЕНИЕ: Архив не полный" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -660,68 +735,68 @@ msgstr "" " n [имя] Указание нового имени файла для следующего (и последующих) " "томов\n" " q Выход из tar\n" -" y или [нов.строка] Продолжение операциия\n" +" y или [нов.строка] Продолжение операции\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Порождение подпроцесса командного процессора\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Вывод этого списка\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Нет нового тома, завершение работы.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Не указано имя имя файла. Попробуйте ещё раз.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Неверные входные данные. Наберите ? для получения справки.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "Сбой команды %s" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s, возможно, продолжается на этом томе - в заголовке находится усечённое имя" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s не продолжается на этом томе" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s является неверным размером (%s != %s + %s)" -#: src/buffer.c:1253 -#, fuzzy, c-format +#: src/buffer.c:1326 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Этот том нарушает последовательность" +msgstr "Этот том вне последовательности (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Метка архива не соответствует %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Том %s не соответствует %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -729,61 +804,61 @@ msgstr "" "%s: слишком длинное имя файла для сохранения в многотомном заголовке GNU; " "обрезано" -#: src/buffer.c:1621 -#, fuzzy +#: src/buffer.c:1749 msgid "write did not end on a block boundary" -msgstr "rmtlseek не остановился на границе записи" +msgstr "запись не остановилась на границе блока" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Можно было прочитать только %lu байт из %lu" -msgstr[1] "Можно было прочитать только %lu байт из %lu" +msgstr[1] "Можно было прочитать только %lu байта из %lu" +msgstr[2] "Можно было прочитать только %lu байт из %lu" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" -msgstr "Содержимое отличается" +msgstr "Содержимое различно" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Неожиданный конец файла в архиве" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Типы файлов отличаются" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Права доступа отличаются" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid отличаются" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid отличаются" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Время изменения отличается" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Размеры отличаются" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Не ссылается на %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Символические ссылки отличаются" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Номера устройств отличаются" @@ -805,41 +880,42 @@ msgstr "Архив содержит файлы с именами, из кото msgid "Verification may fail to locate original files." msgstr "При проверке оригинальные файлы могут быть не найдены." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "СБОЙ ПРОВЕРКИ: обнаружен %d неверный заголовок" -msgstr[1] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовков" +msgstr[1] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовка" +msgstr[2] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовков" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Нулевой блок в %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: содержит каталог с кэшем тегов %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "значение %s за пределами %s диапазона %s..%s; заменяется на %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "значение %s за пределами %s диапазона %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Создаются отрицательные восьмеричные заголовки" #: src/create.c:624 src/create.c:687 #, c-format msgid "%s: file name is too long (max %d); not dumped" -msgstr "%s: имя файла слишком длинное (максисмум %d); не сброшено" +msgstr "%s: имя файла слишком длинное (максимум %d); не сброшено" #: src/create.c:634 #, c-format @@ -851,289 +927,276 @@ msgstr "%s: имя файла слишком длинное (не может б msgid "%s: link name is too long; not dumped" msgstr "%s: имя ссылки слишком длинное; не сброшено" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Файл урезан на %s байт; дополнен нулями" -msgstr[1] "%s: Файл урезан на %s байт; дополнен нулями" +msgstr[1] "%s: Файл урезан на %s байта; дополнен нулями" +msgstr[2] "%s: Файл урезан на %s байт; дополнен нулями" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: файл находится на другой файловой системе; не сброшен" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "содержимое не сброшено" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Неизвестный тип файла; файл проигнорирован" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Отсутствуют ссылки на %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: файл не изменён; не сброшен" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: файл является архивом; не сброшен" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Файла удален до его считывания" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "каталог не сброшен" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файл изменился во время чтения" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: сокет проигнорирован" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: door проигнорирован" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Пропускается до следующего заголовка" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Удаляется не-заголовок из архива" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: невероятно старая временная метка %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: временная метка %s - %s с в будущем " -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Неожиданная противоречивость при создании каталога" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Каталог переименован до того, как мог быть извлечен его статус" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Непрерывные файлы извлекаются как обычные" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Выполняется попытка извлечь символические ссылки как жесткие" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Считывается %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Невозможно извлечь -- файл продолжается с другого тома" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Непредвиденный длинный заголовок имени" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Неизвестный тип файла `%c', извлечён как обычный файл" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Текущий %s более новый или такого же возраста" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Невозможно было выполнить резервное копирование этот файла" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Невозможно переименовать %s в %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Неисправимая ошибка: завершение работы" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Каталог был переименован из %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Каталог был переименован" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Каталог новый" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Неверная временная метка" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Неверное время изменения (секунды) " -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Неверное время изменения (наносекунды)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Неверный номер устройства" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Неверный номер inode" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Слишком длинное поле при чтении из snapshot-файла" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Ошибка чтения snapshot-файла" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Неожиданный конец файла snapshot-файле" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Неожиданное значения поля в snapshot-файле" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Отсутствует указатель конца записи" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Неверный формат инкрементного файла" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Неподдерживаемая версия инкрементного формата: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Неверно сформирован dump-каталог: 'X' повторяется" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Неверно сформирован dump-каталог: пустое имя в 'R'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Неверно сформирован dump-каталог: перед 'T' не стоит 'R'" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Неверно сформирован dump-каталог: пустое имя в 'T'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден конец данных" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Неверно сформирован dump-каталог: 'X' ни разу не использован" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Невозможно создать временный каталог с помощью шаблона %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Каталог не удалён: невозможно выполнить stat" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: Каталог находится на другом устройстве: не удален" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Удаляется %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Невозможно удалить" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Пропускается" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** Блок нулей **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Конец файла **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "блок %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "В заголовке пустое поле вместо ожидаемого числового значения %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1141,142 +1204,161 @@ msgstr "" "дополнение до двух" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Восьмеричное значение архива %.*s за пределами диапазона %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Архив содержит устаревающие заголовки base-64" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Архив подписан строкой base-64 %s за пределами диапазона %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Значение base-256 архива за пределами диапазона %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Заголовок содержит %.*s вместо ожидаемого числового значения %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Значение архива %s за пределами %s диапазона %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " ссылка на %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " неизвестный тип файла %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Длинная ссылка--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Длинное имя--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Заголовок тома--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Продолжение с позиции %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Создание каталога:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "%s переименован в %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Невозможно переименовать в %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s переименовывается назад в %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Невозможно сохранить рабочий каталог" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Невозможно изменить рабочий каталог" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Файла удален до его считывания" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Файла удален до его считывания" + +#: src/misc.c:795 msgid "child process" msgstr "дочерний процесс" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "межпроцессорный канал" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "В именах файлов используются символы подстановки." -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" "Используйте --wildcards, чтобы задействовать эти символы, или --no-wildcards," -#: src/names.c:597 -msgid "suppress this warning." -msgstr "чтобы отключить вывод этого предупреждения." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Не найден в архиве" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Требуемое вхождение не найдено в архиве" -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "--preserve-order несовместим с --listed-incremental" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "--preserve-order несовместим с --listed-incremental" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Обе опции `-%s' и `-%s' используют стандартный ввод" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Неверный формат архива" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Запрошены расширения GNU для несовместимого формата архива" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1284,7 +1366,7 @@ msgstr "" "Неизвестный стиль цитирования `%s'. Воспользуйтесь `%s --quoting-style=help' " "для получения полного списка. " -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1303,7 +1385,7 @@ msgstr "" "архиве archive.tar.\n" " tar -xf archive.tar # Извлечение всех файлов из archive.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1324,87 +1406,80 @@ msgstr "" "простые\n" " never, simple всегда создавать простые резервные копии\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Основной режим работы:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "вывод списка содержимого архива" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "извлечение файлов из архива" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "создание нового архива" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "поиск различий между архивом и файловой системой" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "добавление файлов в конец архива" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "добавление в архив только более новых файлов" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" -msgstr "присоедининие tar-файлов к архиву" +msgstr "присоединение tar-файлов к архиву" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "удаление из архива (не на магнитных лентах!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "проверка метки тома архива и выход" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Модификаторы:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "эффективная обработка разрежённых файлов" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJOR[.MINOR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" "установить версию используемого формата разрежения (подразумевает --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" -msgstr "обработка добавочного резервирования старого формата GNU" - -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "ФАЙЛ" +msgstr "обработка добавочного резервирования старого формата GNU" -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "обработка добавочного резервирования нового формата GNU" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "не завершать работу при ненулевом статусе для нечитаемых файлов" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "N" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1416,121 +1491,126 @@ msgstr "" "list, и когда список файлов задан либо в командной строке, либо через опцию -" "T. По умолчанию N равен 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "доступен поиск по архиву" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "доступен поиск по архиву" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" -msgstr "" +msgstr "не проверять номера устройств при создании инкрементных архивов" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" +"проверять номера устройств при создании инкрементных архивов (по умолчанию)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Управление перезаписью:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "попытка проверить архив после его записи" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "удаление файлов после их добавления в архив" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "не перезаписывать существующие файлы при извлечении" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" "не перезаписывать существующие файлы, которые более новые, чем их копии в " "архиве" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "перезапись существующих файлов при извлечении" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "удаление каждого файла до извлечения поверх него" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "очистка всей иерархии до извлечения каталога" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "сохранение метаданных существующих каталогов" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "перезапись существующих файлов при извлечении (по умолчанию)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Выбор выходного потока:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "извлекать файлы на стандартный вывод" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "КОМАНДА" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "перенаправлять извлечённые файлы в другую программу" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "игнорировать коды завершения дочерних процессов" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "считать ненулевые коды завершения дочерних процессов как ошибку" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Обработка атрибутов файлов:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -"принудительно устанаваливать ИМЯ в качестве владельца для добавленных файлов" +"принудительно устанавливать ИМЯ в качестве владельца для добавленных файлов" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -"принудительно устанаваливать ИМЯ в качестве группы для добавленных файлов" +"принудительно устанавливать ИМЯ в качестве группы для добавленных файлов" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "ДАТА-ИЛИ-ФАЙЛ" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" -msgstr "устанаваливать для добавленных файлов mtime из ДАТЫ-ИЛИ-ФАЙЛА" +msgstr "устанавливать для добавленных файлов mtime из ДАТЫ-ИЛИ-ФАЙЛА" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "РЕЖИМ" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" "принудительно устанавливать (символьный) РЕЖИМ доступа для добавляемых файлов" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "СПОСОБ" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1540,29 +1620,33 @@ msgstr "" "после чтения (СПОСОБ='replace'; используется по умолчанию) или не установки " "времени в первую очередь (СПОСОБ='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "не извлекать время изменения файла" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "попытаться извлечь файлы с тем же владельцем" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "извлекать файлы как свои собственные" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "использовать числа вместо имён владельца/группы" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "извлекать информацию о правах доступа к файлу (по умолчанию для " "суперпользователя)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1570,15 +1654,15 @@ msgstr "" "применять umask пользователя при извлечении прав доступа из архива (по " "умолчанию для обычных пользователей)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "сортировать извлекаемые имена в том же порядке, что и в архиве" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "эквивалент -p и -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1586,140 +1670,140 @@ msgstr "" "не устанавливать время изменения и права доступа извлечённых каталогов до " "завершения процесса извлечения" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "отменить действие опции --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Выбор и переключение устройств:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "АРХИВ" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "использовать файл или устройство АРХИВ" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "файл архива является локальным, даже если содержит двоеточие" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "использовать указанную КОМАНДУ rmt вместо rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "использовать удалённую КОМАНДУ вместо rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "указать устройство и плотность" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "создание/листинг/извлечение многотомных архивов" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "сменить ленту после записи ЧИСЛО x 1024 байт" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" "запустить скрипт по окончании каждой ленты (подразумевается использование -М)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "использовать/обновлять номера тома в ФАЙЛЕ" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Разбиение на блоки:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "БЛОКИ" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "число БЛОКОВ x 512 байт на запись" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "ЧИСЛО байт на запись, кратное 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "игнорировать нулевые блоки в архиве (т.е. EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "заново разбивать на блоки при чтении (для каналов 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Формата архива:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "ФОРМАТ" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "создать архив в указанном формате" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "ФОРМАТОМ может быть:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "старый формат tar V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "формат GNU как в tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "формат GNU tar 1.13.х" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "формат POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "формат POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "эквивалент pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "эквивалент --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "эквивалент --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "keyword[[:]=значение][,keyword[[:]=значение]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "управляющие ключевые слова pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "ТЕКСТ" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1727,103 +1811,76 @@ msgstr "" "создать архив с именем тома ТЕКСТ; при листинге/извлечении использовать " "ТЕКСТ в качестве шаблона подстановки" -#: src/tar.c:593 -#, fuzzy +#: src/tar.c:613 msgid "Compression options:" -msgstr "Конфликт опций сжатия" +msgstr "Опции сжатия:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" -msgstr "" +msgstr "использовать суффикс архива для определения программы сжатия" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" -msgstr "" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "пропустить архив через bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "пропустить архив через gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "пропустить архив через compress" +msgstr "не использовать суффикс архива для определения программы сжатия" -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "пропустить архив через gzip" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "пропустить архив через gzip" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "пропустить архив через gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "ПРОГ" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "пропустить архив через ПРОГ (должна поддерживать -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Выбор локальных файлов:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" -msgstr "добавить указаный ФАЙЛ в архив (полезно, если имя начинается с дефиса)" +msgstr "" +"добавить указанный ФАЙЛ в архив (полезно, если имя начинается с дефиса)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "КАТАЛОГ" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "перейти в КАТАЛОГ" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "загрузить из ФАЙЛА имена для извлечения или создания" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T читает строки, оканчивающиеся нулём, отключает опцию -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "выключить воздействие предыдущей опции --null" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "убрать кавычки с имён файлов, прочитанных с опцией -T (по умолчанию)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "не убирать кавычки с имён файлов, прочитанных с опцией -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "ШАБЛОН" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "исключать файлы, определённые ШАБЛОНОМ" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "исключать шаблоны, перечисленных в ФАЙЛЕ" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1831,90 +1888,93 @@ msgstr "" "исключать содержимое каталогов с файлом CACHEDIR.TAG за исключением самого " "файла с тегами" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "исключать всё содержимое каталогов, содержащих файл CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "исключать каталоги, содержащие файл CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "исключать каталоги, содержащие ФАЙЛ, за исключением самого ФАЙЛА" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "исключать всё содержимое каталогов, содержащих ФАЙЛ" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "исключать каталоги с ФАЙЛОМ" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "исключать каталоги CVS" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "отключить автоматический спуск в каталоги" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "оставаться в локальной файловой системе при создании архива" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "рекурсивный спуск по каталогам (по умолчанию)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "не удалять начальные `/' из имен файлов" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "следовать по символьным ссылкам и сохранять файлы, на которые они указывают" -#: src/tar.c:668 -#, fuzzy +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -"следовать по символьным ссылкам и сохранять файлы, на которые они указывают" +"следовать по жёстким ссылкам и сохранять файлы, на которые они указывают" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "ИМЯ-ЧЛЕНА" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "начинать с члена ИМЯ-ЧЛЕНА в архиве" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "сохранять только те файлы, которые новее ДАТЫ-ИЛИ-ФАЙЛА" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "сравнивать дату и время, только если изменены данные" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "УПРАВЛЕНИЕ" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "делать копию перед удалением, УПРАВЛЕНИЕ выбора версий" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "СТРОКА" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1922,93 +1982,102 @@ msgstr "" "делать копию перед удалением, переопределяет обычный суффикс ('~', если " "только он не переопределён переменной окружения SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" -msgstr "Преобразвание имён файлов:" +msgstr "Преобразование имён файлов:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "удалять указанное ЧИСЛО начальных компонентов из имён файлов перед " "извлечением" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "РАСШИРЕНИЕ" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "использовать замену РАСШИРЕНИЯ sed'ом для преобразования имён файлов" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -"Параметры шаблонов подстановки для имён файлов (вляют на шаблюны включения и " +"Опции шаблонов подстановки для имён файлов (влияют на шаблоны включения и " "исключения):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" -msgstr "игноририровать регистр" +msgstr "игнорировать регистр" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "шаблоны начала имени файла" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "шаблоны после любого '/' (по умолчанию для исключаемых)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "с учётом регистра (по умолчанию)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "использовать маски (по умолчанию для исключаемых)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "точное соответствие строке" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "маски не соответствуют '/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" -msgstr "маски соответствут '/' (по умолчанию для исключаемых)" +msgstr "маски соответствуют '/' (по умолчанию для исключаемых)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Вывод информации:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "подробный листинг обрабатываемых файлов" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Управление перезаписью:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "вывод сообщений о ходе выполнения через каждые ЧИСЛО записей (по умолчанию " "10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" -msgstr "" +msgstr "ДЕЙСТВИЕ" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" -msgstr "" +msgstr "выполнять ДЕЙСТВИЕ на каждой контрольной точке" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "вывод сообщений, если сохранены не все ссылки" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2020,27 +2089,27 @@ msgstr "" "SIGQUIT, SIGINT, SIGUSR1 и SIGUSR2. Также разрешается использовать имена без " "префикса SIG" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "вывод даты изменения файла в формате UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "отправить подробный вывод данных в FILE" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "выводить номера блоков архива в каждом сообщении" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "запрашивать подтверждение для каждого действия" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "показать значения tar по умолчанию" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2048,31 +2117,31 @@ msgstr "" "при выводе листинга или извлечении показывать все каталоги, не " "соответствующем условию поиска" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "показывать имена файлов или архивов после преобразования" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "СТИЛЬ" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "установить стиль цитирования имён. Значения для СТИЛЯ см. ниже" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "дополнительно цитировать символы из СТРОКИ" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "отключить цитирование символов из СТРОКИ" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Опции совместимости:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2080,56 +2149,64 @@ msgstr "" "при создании, эквивалент --old-archive; при извлечении, эквивалент --no-same-" "owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Другие опции:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "отключить использование некоторых потенциально опасных опций" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Указать можно не более одной опции `-Acdtrux'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Конфликт опций сжатия" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Неизвестное название сигнала: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Файл с образцом даты не найден" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "%s заменяется на неизвестный формат даты %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Опция `%s': дата '%s' рассматривается как %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: список файлов уже прочитан" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: в прочитанном имени файла присутствует пустой символ" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "Допустимые агрументы для опций --quoting-style:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "пропустить архив через xz" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" +msgstr "Допустимые аргументы для опций --quoting-style:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2137,217 +2214,237 @@ msgstr "" "\n" "Значения по умолчанию *этого* tar:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Неверный размер ёмкости блока" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Неверная длина ленты" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Неверный формат инкрементного файла" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Больше одной пороговой даты" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Неверное значение версии разрежения" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' не поддерживается на этой платформе" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" -msgstr "значение --checkpoint не явлется целым числом" +msgstr "значение --checkpoint не является целым числом" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Неверная группа" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "В опции указан неверный режим доступа" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Неверное число" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Неверный владелец" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" +"Опция --preserve устарела, используйте --preserve-permissions --preserve-" +"order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Неверный размер записи" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Размер записи должен быть кратен %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Неверное число элементов" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Разрешается использовать только одну опцию --to-command" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Неверно сформирован аргумент плотности: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Неизвестная плотность: '%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Опции `-[0-7][lmh]' не поддерживаются *этим* tar'ом" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[ФАЙЛ]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Для старой опции `%c' нужно указать аргумент." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence бесполезна без списка файлов" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" -msgstr "--occurrence не может быть использована запрошеном режиме работы" +msgstr "--occurrence не может быть использована запрошенном режиме работы" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Для нескольких файлов архивов требуется опция `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Нельзя комбинировать --listed-incremental с --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--preserve-order несовместим с --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Метка тома слишком длинная (максимум %lu байт)" -msgstr[1] "%s: Метка тома слишком длинная (максимум %lu байт)" +msgstr[1] "%s: Метка тома слишком длинная (максимум %lu байта)" +msgstr[2] "%s: Метка тома слишком длинная (максимум %lu байт)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Невозможно проверить многотомные архивы" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Невозможно проверить сжатые архивы" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Невозможно использовать многотомные сжатые архивы" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Невозможно объединить сжатые архивы" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option может быть использована только с архивами POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "Размер тома не может быть меньше размера записи" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" -msgstr "" +msgstr "--preserve-order несовместим с --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Робкий отказ от создания пустого архива" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Опции `-Aru' не совместимы с `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Вы должны указать одну из опций `-Acdtrux'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "Завершение работы с состоянием неисправности с из-за возникших ошибок" #: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Файл урезан на %s байт" -msgstr[1] "%s: Файл урезан на %s байт" +msgstr[1] "%s: Файл урезан на %s байта" +msgstr[2] "%s: Файл урезан на %s байт" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Неизвестное или ещё не реализованное ключевое слово %s" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Число за пределами допустимого диапазона: %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Шаблон %s не может быть использован" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ключевое слово %s не может быть перекрыто" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Неверно сформирован расширенный заголовок: отсутствует длина" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Длина расширенного заголовка за пределами допустимого диапазона" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Длина расширенного заголовка %*s за пределами допустимого диапазона" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" "Неверно сформирован расширенный заголовок: после длины отсутствует пробел" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Неверно сформирован расширенный заголовок: отсутствует знак равенства " -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" "Неверно сформирован расширенный заголовок: отсутствует знак новой строки" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" -msgstr "Игнорируется неизвестное клоючевое слово расширенного заголовка `%s'" +msgstr "Игнорируется неизвестное ключевое слово расширенного заголовка `%s'" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2356,29 +2453,29 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Расширенный заголовок %s=%s за пределами диапазона %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Неверно сформирован расширенный заголовок: неверный %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Неверно сформирован расширенный заголовок: превышен %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Неверно сформирован расширенный заголовок: неверный %s: непредвиденный " "разделитель %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2386,22 +2483,22 @@ msgstr "" "значений" #: src/checkpoint.c:107 -#, fuzzy, c-format +#, c-format msgid "%s: not a valid timeout" -msgstr "%s: Неверная группа" +msgstr "%s: недопустимое время ожидания" #: src/checkpoint.c:112 #, c-format msgid "%s: unknown checkpoint action" -msgstr "" +msgstr "%s: неизвестное действие контрольной точки" #: src/checkpoint.c:132 msgid "write" -msgstr "" +msgstr "запись" #: src/checkpoint.c:132 msgid "read" -msgstr "" +msgstr "чтение" #. TRANSLATORS: This is a ``checkpoint of write operation'', #. *not* ``Writing a checkpoint''. @@ -2421,7 +2518,7 @@ msgstr "Контрольная точка записи %u" msgid "Read checkpoint %u" msgstr "Контрольная точка чтения %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2430,88 +2527,94 @@ msgstr "" "от GNU.\n" "ОПЦИИ:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Опции создания файла:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "РАЗМЕР" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Создание файла указанного РАЗМЕРА" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Запись в файл с ИМЕНЕМ, а не на стандартный вывод" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Чтение имён файла из ФАЙЛА" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T читает строки, оканчивающиеся нулём" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Заполнение файла заданным ШАБЛОНОМ. ШАБЛОН - это 'default' или 'zeros'" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Размер блока для разрежённого файла" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Создание разрежённого файла. Остальная часть команды определяет карту файла." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "СМЕЩЕНИЕ" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Искать до указанного смещения перед записью данных" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Опции статистики по файлам:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Вывод содержимого структуры stat для всех указанных файлов. ФОРМАТ по " "умолчанию:" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Опции синхронного выполнения:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [ОПЦИЯ...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"Выполнение указанной КОМАНДЫ. Полезно вместе с параметром --checkpoint и " -"одним из --cut, --append, --touch" +"Выполнение указанной КОМАНДЫ. Полезно вместе с опцией --checkpoint и одной " +"из --cut, --append, --touch" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Выполнение указанного действия (см. ниже) до достижения контрольной точки с " "заданным НОМЕРОМ" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" -msgstr "Указание даты для следующего параметра --touch" +msgstr "Указание даты для следующей опции --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Показать выполненные контрольные точки и статус выхода КОМАНДЫ" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2519,7 +2622,7 @@ msgstr "" "Синхронное выполнение действий. Они выполняются при достижении контрольной " "точки с номером, определённым опцией --checkpoint." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2527,297 +2630,209 @@ msgstr "" "Усечь ФАЙЛ до размера, определённого предыдущей опцией --length (или 0, если " "не указан)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Добавить РАЗМЕР байт к ФАЙЛУ. РАЗМЕР определяется предыдущей опцией --length." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Обновить время последнего доступа и изменения ФАЙЛА." -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Выполнить КОМАНДУ" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Недопустимый размер: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Число за пределами допустимого диапазона: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Отрицательный размер: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "Сбой stat(%s)" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "запрошенная длина файла %lu, реальная %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "созданный файл не является разреженным" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Ошибка разбора числа возле `%s'" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Неизвестный формат даты" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[АРГУМЕНТЫ...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "невозможно открыть `%s'" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "невозможно найти" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "в имени файла присутствует пустой символ" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "невозможно вывести разрежённые файлы на стандартный вывод; используйте опцию " "--file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "неверная маска (возле `%s')" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Неизвестное поле `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "невозможно установить время в `%s'" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "невозможно открыть `%s'" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Команда успешно выполнена\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Сбой команды; состояние: %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Команда завершена по сигналу %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Команда остановлена по сигналу %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Команда сбросила дамп памяти\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Команда завершена\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "для опции --stat нужны имена файлов" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "слишком много аргументов" - -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "" -#~ "Предупреждение: опция -I не поддерживается; может имелась в виду -j или -" -#~ "T?" - -#, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "отменить действие опции --delay-directory-restore" - -#~ msgid "[.]NUMBER" -#~ msgstr "[.]ЧИСЛО" - -#~ msgid "Error exit delayed from previous errors" -#~ msgstr "Выход, отложенный по результатам предыдущих ошибок" - -#~ msgid "block size" -#~ msgstr "размер блока" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: недопустимая опция -- %c\n" #~ msgid "" -#~ "This program comes with NO WARRANTY, to the extent permitted by law.\n" -#~ "You may redistribute it under the terms of the GNU General Public " -#~ "License;\n" -#~ "see the file named COPYING for details." -#~ msgstr "" -#~ "Эта программа поставляется БЕЗ ГАРАНТИИ в маскимальной степени,\n" -#~ "допускаемой применимым законодательством. Вы можете распространять\n" -#~ "ее далее согласно условиям GNU General Public License; дополнительную\n" -#~ "информацию смотрите в файле COPYING." - -#~ msgid "rmtd: Garbage command %c\n" -#~ msgstr "rmtd: Неверная команда %c\n" - -#~ msgid "WARNING: No volume header" -#~ msgstr "ПРЕДУПРЕЖДЕНИЕ: Нет метки тома" - -#~ msgid "Visible long name error" -#~ msgstr "По-видимому, ошибка за длинного имени" - -#~ msgid "Time stamp out of range" -#~ msgstr "Временная метка за пределами диапазона" - -#~ msgid "Device number out of range" -#~ msgstr "Номер устройства за пределами диапазона" - -#~ msgid "Visible longname error" -#~ msgstr "По-видимому, ошибка длинного имени" - -#~ msgid "Renamed %s to %s" -#~ msgstr "%s переименован в %s" - -#~ msgid "%s: Cannot symlink to %s" -#~ msgstr "%s: Невозможно создать символическую ссылку на %s" - -#~ msgid "Symlinked %s to %s" -#~ msgstr "Создана символьная ссылка %s на %s" - -#~ msgid "Unknown demangling command %s" -#~ msgstr "Неизвестная команда %s для восстановления рубленых имен" - -#~ msgid "Missing file name after -C" -#~ msgstr "Отсутствует имя файла после -C" - -#~ msgid "don't change access times on dumped files" -#~ msgstr "не изменять время доступа для сброшенных файлов" - -#~ msgid "extract permissions information" -#~ msgstr "извлечение информации о разрешениях" - -#~ msgid "do not extract permissions information" -#~ msgstr "не извлекать информацию о разрешениях" - -#~ msgid "FILE-OF-NAMES" -#~ msgstr "ФАЙЛ-С-ИМЕНАМИ" - -#~ msgid "exclude patterns are plain strings" -#~ msgstr "исключение шаблонов, являющихся обычными строками" - -#~ msgid "dump instead the files symlinks point to" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "сохранение символических ссылок вместо файлов, на которые они указывают" +#~ "\n" +#~ "Отчёты об ошибках отправляйте на <%s>.\n" -#~ msgid "same as -N" -#~ msgstr "эквивалент -N" +#~ msgid "Input string too long" +#~ msgstr "Слишком длинная входная строка" -#~ msgid "exclude patterns use wildcards (default)" -#~ msgstr "" -#~ "переменной окружения SIMPLE_BACKUP_SUFFIX, за исключением шаблонов, " -#~ "использующих маски (по умолчанию)" +#~ msgid "Number syntax error" +#~ msgstr "Ошибка синтаксиса числа" -#~ msgid "print total bytes written while creating archive" -#~ msgstr "вывод общего объема записанных байт при создании архива" +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Невозможно выделить буферное пространство\n" -#~ msgid "Print license and exit" -#~ msgstr "Вывод лицензии и выход" +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Невозможно выделить буферное пространство" -#~ msgid "" -#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n" -#~ "for complete list of authors.\n" -#~ msgstr "" -#~ "Основан на результатах работы Джона Гилмора (John Gilmore) и Джея " -#~ "Фенлансона\n" -#~ "(Jay Fenlason). Полный список авторов смотрите в файле AUTHORS.\n" +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Попробуйте `%s --help' для получения дополнительной информации.\n" #~ msgid "" -#~ " GNU tar is free software; you can redistribute it and/or modify\n" -#~ " it under the terms of the GNU General Public License as published by\n" -#~ " the Free Software Foundation; either version 2 of the License, or\n" -#~ " (at your option) any later version.\n" -#~ "\n" -#~ " GNU tar is distributed in the hope that it will be useful,\n" -#~ " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -#~ " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -#~ " GNU General Public License for more details.\n" -#~ "\n" -#~ " You should have received a copy of the GNU General Public License\n" -#~ " along with GNU tar; if not, write to the Free Software\n" -#~ " Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 " -#~ "USA\n" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" #~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" #~ msgstr "" -#~ " GNU tar является открытым программным обеспечением; вы можете\n" -#~ " распространять ее далее и/или изменять ее согласно условиями GNU\n" -#~ " General Public License, опубликованной Free Software Foundation 2-й\n" -#~ " версии или (на ваше усмотрение) любой другой более поздней версии.\n" -#~ "\n" -#~ " GNU tar распространяется в надежде, что она будет полезна,\n" -#~ " но БЕЗ ВСЯКОЙ ГАРАНТИИ; даже без подразумеваемой гарантии\n" -#~ " ПРИГОДНОСТИ ДЛЯ ПРОДАЖИ или ПРИМЕНИМОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. За " -#~ "более\n" -#~ " подробной информацией обращайтесь к GNU General Public License.\n" +#~ "Использование: %s [ОПЦИЯ]\n" +#~ "Управляет накопителями на магнитной ленте, принимая команды из удалённого " +#~ "процесса.\n" #~ "\n" -#~ " Вы должны были получить копию GNU General Public License вместе с " -#~ "этой\n" -#~ " программой; если это не так, сообщите об этом Free Software " -#~ "Foundation,\n" -#~ " Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. \n" +#~ " --version Вывод информации о версии.\n" +#~ " --help Вывод этой справки.\n" -#~ msgid "Semantics of -l option will change in the future releases." -#~ msgstr "Семантика опции -l изменится в будущих версиях." +#~ msgid "Seek offset error" +#~ msgstr "Ошибка смещения поиска" -#~ msgid "Please use --one-file-system option instead." -#~ msgstr "Пожалуйста, используйте вместо неё опцию --one-file-system." +#~ msgid "Premature end of file" +#~ msgstr "Преждевременный конец файла" -#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?" -#~ msgstr "" -#~ "Предупреждение: опция -y не поддерживается; возможно вы имели в виду -j?" +#~ msgid "Reading %s\n" +#~ msgstr "Считывается %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Неисправимая ошибка: завершение работы" + +#~ msgid "suppress this warning." +#~ msgstr "чтобы отключить вывод этого предупреждения." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "пропустить архив через bzip2" -#~ msgid "Error in writing to standard output" -#~ msgstr "Ошибка при записи на стандартный вывод" +#~ msgid "filter the archive through gzip" +#~ msgstr "пропустить архив через gzip" -#~ msgid "%s: Read error at byte %s, reading %lu byte" -#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes" -#~ msgstr[0] "%s: Ошибка чтения с позиции %s, считывается %lu байт" -#~ msgstr[1] "%s: Ошибка чтения с позиции %s, считываются %lu байт" +#~ msgid "filter the archive through compress" +#~ msgstr "пропустить архив через compress" -#~ msgid "--Mangled file names--\n" -#~ msgstr "--Рубленые имена файлов--\n" +#~ msgid "filter the archive through lzma" +#~ msgstr "пропустить архив через lzma" -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "Неожиданный конец файла в рубленых именах" +#~ msgid "filter the archive through lzop" +#~ msgstr "пропустить архив через lzop" diff --git a/po/sk.gmo b/po/sk.gmo index 1510e0e8a87dd96a38b72d4ce34c70ab8f48f19e..be06d16b0ab8b0c8bb98f03972a7d85a2ec89b7f 100644 Binary files a/po/sk.gmo and b/po/sk.gmo differ diff --git a/po/sk.po b/po/sk.po index d1bc869a89aba67ade4a0dcc1df2822dd0fe4cb3..5fa77b1ceff89cbaf16f00a4d6cd42187ea9b5d0 100644 --- a/po/sk.po +++ b/po/sk.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: tar- \n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2002-02-10 12:00CEST\n" "Last-Translator: Martin Lacko <lacko@host.sk>\n" "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n" @@ -15,73 +15,73 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "argument %s je pre %s neplatn�" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "argument %s nie je pre %s jednozna�n�" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Platn� argumenty s�:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 #, fuzzy msgid " [OPTION...]" msgstr "" "\n" "Pou�itie: %s [PREP�NA�]...\n" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, 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" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, fuzzy, c-format msgid "Report bugs to %s.\n" msgstr "" @@ -90,214 +90,121 @@ msgstr "" "pripomienky k pkekladu zasielajte na adresu <sk-i18n@lists.linux.sk> " "(slovensky).\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Nezn�ma syst�mov� chyba" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, fuzzy, c-format msgid "%s: Too many arguments\n" msgstr "%s: prep�na� `%s' vy�aduje argument\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: prep�na� %s nie je jednozna�n�\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: prep�na� `--%s' mus� by� zadan� bez argumentov\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: prep�na� `%c%s' mus� by� zadan� bez argumentu\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: prep�na� `%s' vy�aduje argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: nezn�my prep�na� `--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: nezn�my prep�na� `%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: nezn�my prep�na� -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: nezn�my prep�na� -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: prep�na� vy�aduje argument -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: prep�na� `-W %s' nie je jednozna�n�\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: prep�na� `-W %s' mus� by� zadan� bez argumentu\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "Pam� vy�erpan�" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Pracovn� adres�r nie je mo�n� zmeni�" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Pracovn� adres�r nie je mo�n� uchova�" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Ned� sa %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Varovanie: Ned� sa %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Pr�va nie je mo�n� zmeni� na %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Vlastn�ctvo nie je mo�n� zmeni� na uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Odkaz na %s nie je mo�n� vytvori�" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" -msgstr[1] "%s: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" - -#: lib/paxerror.c:192 -#, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Varovanie: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" -msgstr[1] "%s: Varovanie: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Ned� sa zmeni� poz�cia v s�bore na %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Varovanie: Ukazovate� v s�bore nie je mo�n� premiestni� na %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Symbolick� odkaz na `%s' nie je mo�n� vytvori�" - -#: lib/paxerror.c:349 -#, fuzzy, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Zap�san� iba %lu z %lu bajtov" -msgstr[1] "%s: Zap�san� iba %lu z %lu bajtov" - -#: lib/paxnames.c:155 -#, fuzzy, c-format -msgid "Removing leading `%s' from member names" -msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" - -#: lib/paxnames.c:156 -#, fuzzy, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" - -#: lib/paxnames.c:169 -#, fuzzy -msgid "Substituting `.' for empty member name" -msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -311,17 +218,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -331,7 +238,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -341,38 +248,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Slu�ba nie je k dispoz�cii" - -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:76 #, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Vzdialen� shell nie je mo�n� spusti�" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -383,19 +280,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Written by F. Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, fuzzy, c-format msgid "Written by %s and %s.\n" msgstr "Written by F. Pinard." #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, fuzzy, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Written by F. Pinard." @@ -403,7 +300,7 @@ msgstr "Written by F. Pinard." #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -413,7 +310,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -423,7 +320,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -433,7 +330,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -443,7 +340,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -454,7 +351,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -465,7 +362,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -477,184 +374,336 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" " Chyby v programe oznamujte na adresa <bug-tar@gnu.org> (iba anglicky),\n" "pripomienky k pkekladu zasielajte na adresu <sk-i18n@lists.linux.sk> " "(slovensky).\n" -#: lib/version-etc.c:182 -#, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" +"\n" +" Chyby v programe oznamujte na adresa <bug-tar@gnu.org> (iba anglicky),\n" +"pripomienky k pkekladu zasielajte na adresu <sk-i18n@lists.linux.sk> " +"(slovensky).\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Miesto pre buffer nie je mo�n� alokova�\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Ned� sa %s" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Varovanie: Ned� sa %s" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Pr�va nie je mo�n� zmeni� na %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Miesto pre buffer nie je mo�n� alokova�" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Vlastn�ctvo nie je mo�n� zmeni� na uid %lu, gid %lu" -#: rmt/rmt.c:304 +#: lib/paxerror.c:127 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Viac inform�ci� z�skate pr�kazom `%s --help'.\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Odkaz na %s nie je mo�n� vytvori�" -#: rmt/rmt.c:308 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" +msgstr[1] "%s: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" + +#: lib/paxerror.c:192 +#, fuzzy, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Varovanie: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" +msgstr[1] "%s: Varovanie: Chyba pri ��tan� na bajte %s, ��tanie %lu bajtov" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Ned� sa zmeni� poz�cia v s�bore na %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Varovanie: Ukazovate� v s�bore nie je mo�n� premiestni� na %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Symbolick� odkaz na `%s' nie je mo�n� vytvori�" + +#: lib/paxerror.c:349 +#, fuzzy, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Zap�san� iba %lu z %lu bajtov" +msgstr[1] "%s: Zap�san� iba %lu z %lu bajtov" + +#: lib/paxnames.c:155 +#, fuzzy, c-format +msgid "Removing leading `%s' from member names" +msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" + +#: lib/paxnames.c:156 +#, fuzzy, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" + +#: lib/paxnames.c:169 +#, fuzzy +msgid "Substituting `.' for empty member name" +msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" msgstr "" -"Pou�itie: %s [PREP�NA�]\n" -"Manipuluje s arch�vom, prj�ma pr�kazy vzdialen�ho procesu.\n" -"\n" -" --version Vyp��e ozna�enie verzie\n" -" --help Vyp��e t�to n�povedu\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Slu�ba nie je k dispoz�cii" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Vzdialen� shell nie je mo�n� spusti�" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Smer posunu v s�bore je mimo rozsah" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "Ve�kos� poz�cie v s�bore je mimo rozsah" +msgid "Invalid seek direction" +msgstr "Zad�n� chybn� pr�va" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Neplatn� �as s�boru" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Ve�kos� poz�cie v s�bore je mimo rozsah" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Smer posunu v s�bore je mimo rozsah" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Neplatn� d�ka p�sky" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Ve�kos� poz�cie v s�bore je mimo rozsah" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Pred�asn� koniec s�boru\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Pred�asn� koniec s�boru" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "%s: nezn�my prep�na� -- %c\n" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Neo�ek�van� koniec arch�vu" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "%s: Ned� sa zmeni� poz�cia v s�bore na %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Nezn�my pr�kaz" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Toto pravdepodobne nie je tar archiv" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 #, fuzzy msgid "Total bytes written" msgstr "Celkom zap�san� bajtov: %s (%sB, %sB/s)\n" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, fuzzy, c-format msgid "Total bytes deleted: %s\n" msgstr "Celkom zap�san� bajtov: %s (%sB, %sB/s)\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(r�ra)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Chybn� hodnota pre ve�kos� z�znamu" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Meno arch�vu nebolo zadan�" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Stdin/Stdout arch�v nie je mo�n� otvori�" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Komprimovan� arch�v nie je mo�n� aktualizova�" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "P�ska na za�iatku, kon��m" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Pr�li� mnoho ch�b, kon��m" -#: src/buffer.c:697 +#: src/buffer.c:744 #, fuzzy, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Ve�kos� z�znamu = %lu blokov" msgstr[1] "Ve�kos� z�znamu = %lu blokov" -#: src/buffer.c:718 +#: src/buffer.c:765 #, fuzzy, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Nezarovnan� blok (%lu bajtov) v arch�ve" msgstr[1] "Nezarovnan� blok (%lu bajtov) v arch�ve" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "V arch�ve sa nie je mo�n� vr�ti�, bez -i m��e by� ne�itate�n�" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: vracia chybn� ��slo zv�zku" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "��slo zv�zku prete�en�" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Pripravte zv�zok #%d pre arch�v %s a stla�te return:" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Namiesto u��vate�skej odpovede bol zadan� koniec s�boru" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "VAROVANIE: Archiv je nekompletn�" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -666,124 +715,124 @@ msgstr "" " ! Vytvorenie podshellu\n" " ? Vyp�sanie tejto n�povedy\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Nie je nov� zv�zok; kon��m.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, fuzzy, c-format msgid "%s command failed" msgstr "'%s' pr�kaz zlyhal" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s nepokra�uje na tomto zv�zku" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s nepokra�uje na tomto zv�zku" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s je chybnej d�ky (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Tento zv�zok nie je n�sledn�kem predch�dzaj�ceho" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Pre vyhodnotenie vzorky `%s' mus� by� arch�v pomenovan�" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Zv�zok %s nezodpoved� vzorke %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, fuzzy, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "D� sa ��ta� iba %lu z %lu bajtov" msgstr[1] "D� sa ��ta� iba %lu z %lu bajtov" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Obsah sa l��i" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Neo�ek�van� koniec arch�vu" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Typ s�boru sa l��i" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Pr�va sa l��ia" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid sa l��i" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid sa l��i" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "�as poslednej �pravy sa l��i" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Ve�kos� sa l��i" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Nie je odkazom na %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolick� odkaz sa l��i" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "��slo zariadenia sa l��i" @@ -805,34 +854,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, fuzzy, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "CHYBN� OVERENIE: n�jden�ch chybn�ch hlavi�iek: %d" msgstr[1] "CHYBN� OVERENIE: n�jden�ch chybn�ch hlavi�iek: %d" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "hodnota %s typu %s je mimo rozsah %s..%s; nahradzujem za %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "hodnota %s typu %s je mimo rozsah %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Generujem z�porn� osmi�kov� hlavi�ky" @@ -851,293 +900,279 @@ msgstr "%s: s msgid "%s: link name is too long; not dumped" msgstr "%s: s�bor nie je zmenen�; neaktualizovan�" -#: src/create.c:1076 +#: src/create.c:1078 #, fuzzy, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: S�bor je krat�� o : %s bajtov; Dopl�ujem nulami." msgstr[1] "%s: S�bor je krat�� o : %s bajtov; Dopl�ujem nulami." -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: s�bor je na inom s�borovom syst�me; nearchivovan�" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Nezn�my typ s�boru; s�bor ignorovan�" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr " odkaz na %s\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: s�bor nie je zmenen�; neaktualizovan�" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: s�bor je archiv; nearchivovan�" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: S�bor zmazan� sk�r ako mohl by� ��tan�" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: s�bor bol po�as ��tania zmenen�" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: soket ignorovan�" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: dvere ignorovan�" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Preskakujem na �al�iu hlavi�ku" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Z arch�vu je mazan� to, �o nie je hlavi�ka" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: �asov� n�lepka %s je %lu z d�tumu bud�cnosti" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Neo�ak�van� nekonzistencia, pri vytv�ren� adres�ra" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" "%s: Prie�inok bol premenovan� predt�m, ako mohol by� extrahovan� jeho stav" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "S�visle ulo�en� s�bory rozba�ujem ako oby�ajn� s�bory" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Sk��am rozbali� symbolick� odkazy ako pevn� odkazy" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "��tanie z %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ned� sa rozbali� -- s�bor je pokra�ovan�m in�ho zv�zku" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 #, fuzzy msgid "Unexpected long name header" msgstr "Neo�ak�van� koniec v rozsekanom mene" -#: src/extract.c:1156 +#: src/extract.c:1197 #, fuzzy, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Nezn�my typ s�boru `%c', rozbalen� ako norm�lny s�bor" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Tento s�bor nebolo mo�n� z�lohova�" -#: src/extract.c:1355 +#: src/extract.c:1402 #, fuzzy, c-format msgid "Cannot rename %s to %s" -msgstr "%s: nie je mo�n� premenova� na %s" - -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Z chyby sa nie je mo�n� zotavi�: ukon�uje sa" +msgstr "%s: nie je mo�n� premenova� na %s" -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Adres�r bol premenovan�" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Adres�r bol premenovan�" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Adres�r je nov�" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Neplatn� �as s�boru" -#: src/incremen.c:959 +#: src/incremen.c:1012 #, fuzzy msgid "Invalid modification time (seconds)" msgstr "Zad�n� chybn� pr�va" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Neplatn� ��slo zariadenia" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Neplatn� ��slo i-uzlu" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 #, fuzzy msgid "Unexpected EOF in snapshot file" msgstr "Neo�ek�van� koniec arch�vu" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, fuzzy, c-format msgid "Cannot create temporary directory using template %s" msgstr "Pre blokov� faktor (blokov na z�znam) %d nie je mo�n� alokovat pam�" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, fuzzy, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: s�bor je na inom s�borovom syst�me; nearchivovan�" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Ma�em %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Ned� sa zmaza�" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Vynech�vam" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok NUL **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Konec s�boru **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Medzery v hlavi�ke na mieste, kde je o�ak�van� ��seln� hodnota typu %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1145,147 +1180,162 @@ msgstr "" "complement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Osmi�kov� hodnota %.*s typu %s je mimo rozsah" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arch�v obsahuje zastaral� base-64 hlavi�ky" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Hodnota base-64 typu %s je mimo %s rozsah" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Hodnota base-256 typu %s je mimo rozsah" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arch�v obsahuje %.*s tam, kde je o�akav�n� ��saln� hodnota typu %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Hodnota %s typu %s je mimo rozsah %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " odkaz na %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " nezn�my typ s�boru %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Hlavi�ka zv�zku--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Pokra�ovan� od %s bajtu--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Vytv�ram adres�r:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Premenov�vam %s na %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: nie je mo�n� premenova� na %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Premenov�v�m %s sp� na %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Pracovn� adres�r nie je mo�n� uchova�" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Pracovn� adres�r nie je mo�n� zmeni�" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: S�bor zmazan� sk�r ako mohl by� ��tan�" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: S�bor zmazan� sk�r ako mohl by� ��tan�" + +#: src/misc.c:795 msgid "child process" msgstr "potomok" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "meziprocesov� kan�l" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: V arch�ve nen�jden�" -#: src/names.c:615 +#: src/names.c:622 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: V arch�ve nen�jden�" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Prep�na�e `-%s' a `-%s' vy�aduj� �tandardn� vstup" -#: src/tar.c:156 +#: src/tar.c:158 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Chybn� skupina" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU roz��renia po�adovan� na nekompatibilnom form�te arch�vu" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 #, fuzzy msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " @@ -1304,7 +1354,7 @@ msgstr "" " %s -tvf arch�v.tar # Podrobne vyp��e v�etky s�bory v arch�v.tar.\n" " %s -xf arch�v.tar # Rozbal� v�etky s�bory z arch�v.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 #, fuzzy msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" @@ -1330,87 +1380,80 @@ msgstr "" " existuj�, inak tvor� jednoduch�\n" " never, simple tvor� v�dy jednoduch� z�lo�n� k�pie s�borov\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 #, fuzzy msgid "create a new archive" msgstr "Neo�ek�van� koniec arch�vu" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1418,577 +1461,565 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 #, fuzzy msgid "extract files to standard output" msgstr "Chyba pri z�pise na �tandardn� v�stup" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 #, fuzzy msgid "create/list/extract multi-volume archive" msgstr "V�czv�zkov� arch�v nie je mo�n� otvori�" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 #, fuzzy msgid "Archive format selection:" msgstr "Odporuj�ce si arch�vne form�ty" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Odporuj�ce si kompresn� prep�na�e" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -#, fuzzy -msgid "filter the archive through gzip" -msgstr "%s: s�bor je archiv; nearchivovan�" - -#: src/tar.c:606 -#, fuzzy -msgid "filter the archive through compress" -msgstr "%s: s�bor je archiv; nearchivovan�" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "%s: s�bor je archiv; nearchivovan�" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "%s: s�bor je archiv; nearchivovan�" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "%s: s�bor je archiv; nearchivovan�" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 #, fuzzy msgid "change to directory DIR" msgstr "Pracovn� adres�r nie je mo�n� zmeni�" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 #, fuzzy msgid "don't strip leading `/'s from file names" msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 #, fuzzy msgid "wildcards do not match `/'" msgstr "Zv�zok %s nezodpoved� vzorke %s" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1996,274 +2027,290 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Viac ako jeden prep�na� `-Acdtrux' nem��e by� zadan�ch" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Odporuj�ce si kompresn� prep�na�e" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " nezn�my typ s�boru %s\n" -#: src/tar.c:1010 +#: src/tar.c:1017 #, fuzzy msgid "Date sample file not found" msgstr "D�tumov� s�bor nebol n�jden�" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Zamie�am %s za nezn�my d�tumov� form�t %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, fuzzy, c-format msgid "%s: file list already read" msgstr "%s: s�bor je archiv; nearchivovan�" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "%s: s�bor je archiv; nearchivovan�" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Neplatn� po�et bajtov na z�znam" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Neplatn� d�ka p�sky" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Viac ako jeden po�iato�n� d�tum" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Chybn� skupina" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Zad�n� chybn� pr�va" -#: src/tar.c:1774 +#: src/tar.c:1894 #, fuzzy msgid "Invalid number" msgstr "Neplatn� ��slo i-uzlu" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Neplatn� vlastn�k" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Chybn� ve�kos� z�znamu" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Ve�kos� z�znamu mus� by� n�sobok %d." -#: src/tar.c:1872 +#: src/tar.c:2000 #, fuzzy msgid "Invalid number of elements" msgstr "Neplatn� d�ka p�sky" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Prep�na� `-[0-7][lmh]' nie je podporovan� t�mto tarom" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Prep�na� `%c' vy�aduje argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 #, fuzzy msgid "Multiple archive files require `-M' option" msgstr "Viac archiva�n�ch s�borov vy�aduje prep�na� `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "--listed-incremental a --newer nie je mo�n� kombinova�" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, fuzzy, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Meno zv�zku je pr�li� dlh� (limit je %lu bajtov)" msgstr[1] "%s: Meno zv�zku je pr�li� dlh� (limit je %lu bajtov)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "V�czv�zkov� arch�v nie je mo�n� otvori�" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Komprimovan� arch�v nie je mo�n� otvori�" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Viaczv�zkov� komprimovan� arch�v nie je mo�n� vytvori�" -#: src/tar.c:2319 +#: src/tar.c:2431 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Komprimovan� arch�v nie je mo�n� aktualizova�" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Vytvorenie pr�zdneho arch�vu odmietnut�." -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Prep�na�e `-Aru' a `--delete' s� nezl��ite�n� s prep�na�om `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Mus�te zada� jeden z prep�na�ov `-Acdtrux'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2275,79 +2322,84 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: S�bor skr�ten� o bajtov: %s" msgstr[1] "%s: S�bor skr�ten� o bajtov: %s" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "�as s�boru mimo rozsah" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "Hodnota base-64 typu %s je mimo %s rozsah" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Hodnota %s typu %s je mimo rozsah %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2388,237 +2440,304 @@ msgstr "Zapisujem testovac msgid "Read checkpoint %u" msgstr "��tanie testovacieho bodu %d" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Generujem datov� s�bory pre testovanie GNU taru.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Odporuj�ce si kompresn� prep�na�e" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Chyba pri z�pise na �tandardn� v�stup" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr "" +"\n" +"Pou�itie: %s [PREP�NA�]...\n" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Neplatn� �as s�boru" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "��slo i-uzlu mimo rozsah" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Nezn�ma syst�mov� chyba" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Ned� sa zatvori�" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " nezn�my typ s�boru %s\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Ned� sa zmeni� poz�cia v s�bore na %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "%s: Ned� sa zmeni� poz�cia v s�bore na %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "Potomok bol ukon�en� sign�lom %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Rozdelen� meno s�boru--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: nezn�my prep�na� -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Varovanie: prep�na� -I nie je podporovan�; pravdepodobne budete chcie� " -#~ "pou�i� -j alebo -T!" +#~ "\n" +#~ " Chyby v programe oznamujte na adresa <bug-tar@gnu.org> (iba anglicky),\n" +#~ "pripomienky k pkekladu zasielajte na adresu <sk-i18n@lists.linux.sk> " +#~ "(slovensky).\n" + +#~ msgid "Reading %s\n" +#~ msgstr "��tanie z %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Z chyby sa nie je mo�n� zotavi�: ukon�uje sa" + +#, fuzzy +#~ msgid "filter the archive through compress" +#~ msgstr "%s: s�bor je archiv; nearchivovan�" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "%s: s�bor je archiv; nearchivovan�" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "%s: s�bor je archiv; nearchivovan�" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Miesto pre buffer nie je mo�n� alokova�\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Miesto pre buffer nie je mo�n� alokova�" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Viac inform�ci� z�skate pr�kazom `%s --help'.\n" + +#, fuzzy +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Pou�itie: %s [PREP�NA�]\n" +#~ "Manipuluje s arch�vom, prj�ma pr�kazy vzdialen�ho procesu.\n" +#~ "\n" +#~ " --version Vyp��e ozna�enie verzie\n" +#~ " --help Vyp��e t�to n�povedu\n" + +#, fuzzy +#~ msgid "Seek offset error" +#~ msgstr "Ve�kos� poz�cie v s�bore je mimo rozsah" + +#~ msgid "Premature end of file" +#~ msgstr "Pred�asn� koniec s�boru" #~ msgid "block size" #~ msgstr "ve�kos� bloku" @@ -2650,9 +2769,6 @@ msgstr "" #~ msgid "Visible long name error" #~ msgstr "Vidite�n� chyba dlh�ho mena" -#~ msgid "Time stamp out of range" -#~ msgstr "�as s�boru mimo rozsah" - #~ msgid "Device number out of range" #~ msgstr "��slo zariadenia je mimo rozsah" @@ -3060,6 +3176,11 @@ msgstr "" #~ msgid "Obsolete option name replaced by --read-full-records" #~ msgstr "Zastaral� prep�na�, nahraden� prep�na�om --read-full-records" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Varovanie: prep�na� -I nie je podporovan�; pravdepodobne budete chcie� " +#~ "pou�i� -j alebo -T!" + #~ msgid "Obsolete option name replaced by --touch" #~ msgstr "Zastaral� prep�na�, nahraden� prep�na�om --touch" diff --git a/po/sl.gmo b/po/sl.gmo index 8fb7184c1c12cc079a4befe68491cd4b9be71d57..ca7f52f88cdb10593104c805e2041a96410c9031 100644 Binary files a/po/sl.gmo and b/po/sl.gmo differ diff --git a/po/sl.po b/po/sl.po index 33da6ba4f02c40507a950390e02e3c2c42d57ec4..d6f5a479bcd2c9f719c18a31d7128953afa1fe45 100644 --- a/po/sl.po +++ b/po/sl.po @@ -1,16 +1,16 @@ # -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU Tar -# Copyright (C) 1996, 1999, 2000, 2001, 2005, 2006, 2007 Free Software Foundation, Inc. -# Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>, 1996, 1999, 2000, 2001, 2005, 2006, 2007. -# -# $Id: tar-1.19.sl.po,v 1.1 2007/10/17 08:26:36 peterlin Exp $ +# Copyright (C) 1996, 1999, 2000, 2001, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the tar package. +# Primož Peterlin <primozz.peterlin@gmail.com>, 1996, 1999, 2000, 2001, 2005, 2006, 2007, 2009. # +# $Id: tar-1.22.sl.po 1.2 2009/05/09 09:09:31 Primoz Exp $ msgid "" msgstr "" -"Project-Id-Version: tar 1.19\n" +"Project-Id-Version: tar 1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2007-10-17 10:26+0200\n" -"Last-Translator: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-05-09 11:09+0200\n" +"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,47 +18,47 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "neveljaven argument %s za %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "dvoumen argument %s za %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Veljavni argumenti so:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: vrednost %s je manj ali enako od %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: parameter ARGP_HELP_FMT zahteva podano vrednost" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: vrednost parametra ARGP_HELP_FMT mora biti pozitivna" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: neznan parameter ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Smetje v ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -66,242 +66,142 @@ msgstr "" "Argumenti, ki so bodisi obvezni bodisi neobvezni za dolge oblike izbir, so " "obvezni/neobvezni tudi za kratke oblike." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Uporaba:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " ali: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [IZBIRA...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, 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" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Poročila o napakah javite na %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Neznana sistemska napaka" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "poda ta seznam pomoči" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "poda kratka navodila za uporabo" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "IME" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "nastavi ime programa" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SEK" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "premor SEK sekund (privzeto 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "izpis izdaje programa" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(PROGRAMSKA NAPAKA) Različica ni poznana?!" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Preveč argumentov\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(PROGRAMSKA NAPAKA) Izbira bi morala biti prepoznana?!" -#: lib/closeout.c:112 -#, fuzzy +#: gnu/closeout.c:114 msgid "write error" -msgstr "Pisanje zapisa\n" +msgstr "napaka pri pisanju" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: izbira »%s« ni enoznačna\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: izbira »%s« zahteva argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: neprepoznana izbira »--%s«\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: neprepoznana izbira »%c%s«\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: nedovoljena izbira -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: neveljavna izbira -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: izbira zahteva argument -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: izbira »-W %s« je dvoumna\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "zmanjkalo pomnilnika" -#: lib/openat-die.c:35 -#, fuzzy, c-format -msgid "unable to record current working directory" -msgstr "Ni mogoče izvedeti trenutnega imenika" - -#: lib/openat-die.c:48 -#, fuzzy, c-format -msgid "failed to return to initial working directory" -msgstr "Delovnega imenika ni mogoče shraniti" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Ni mogoče %s" - -# POZOR -- oblike "to stat a file" slovenscina ne pozna -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Opozorilo: Ni mogoče %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Zaščite ni mogoče spremeniti na %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Ni mogoče spremeniti lastnika in skupina na UID %lu GID %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Trda povezava na %s ni mogoča" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajtov" -msgstr[1] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajta" -msgstr[2] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajtov" -msgstr[3] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajtov" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebrano %lu bajtov" -msgstr[1] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebran %lu bajt" -msgstr[2] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebrana %lu bajta" -msgstr[3] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebrani %lu bajti" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Pozicioniranje na %s ni mogoče" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Opozorilo: Pozicioniranje na %s ni mogoče" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Ni mogoče ustvariti simbolne povezave na %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Zapisanih samo %lu od skupno %lu bajtov" -msgstr[1] "%s: Zapisan samo %lu od skupno %lu bajtov" -msgstr[2] "%s: Zapisana samo %lu od skupno %lu bajtov" -msgstr[3] "%s: Zapisani samo %lu od skupno %lu bajtov" - -#: lib/paxnames.c:155 +#: gnu/openat-die.c:36 #, c-format -msgid "Removing leading `%s' from member names" -msgstr "Odstranjujemo vodilne »%s« iz imen elementov" +msgid "unable to record current working directory" +msgstr "ni mogoče zabeležiti trenutnega imenika" -#: lib/paxnames.c:156 +#: gnu/openat-die.c:54 #, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Odstranjujemo vodilne »%s« iz imen trdih povezav" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Nadomeščamo manjkajoča imena elementov s ».«" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Nadomeščamo manjkajoča imena trdih povezav s ».«<" +msgid "failed to return to initial working directory" +msgstr "vrnitev v začetni delovni imenik ni mogoča" #. TRANSLATORS: #. Get translations for open and closing quotation marks. @@ -316,17 +216,17 @@ msgstr "Nadomeščamo manjkajoča imena trdih povezav s ».«<" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "»" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "«" @@ -336,7 +236,7 @@ msgstr "«" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[dDjJ]" @@ -346,38 +246,28 @@ msgstr "^[dDjJ]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Storitev ni dosegljiva" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "standardni vhod" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "standardni izhod" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Ni mogoče pognati nelokalne ukazne lupine" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" -msgstr "" +msgstr "©" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -386,232 +276,412 @@ msgid "" "There is NO WARRANTY, to the extent permitted by law.\n" "\n" msgstr "" +"\n" +"GPLv3+: GNU GPL, 3. izdaja ali poznejša <http://www.gnu.org/licenses/gpl." +"html>\n" +"To je prosto programje; lahko ga redistribuirate in/ali spreminjate.\n" +"Za izdelek ni NOBENEGA JAMSTVA, do z zakonom dovoljene meje.\n" +"\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 -#, fuzzy, c-format +#: gnu/version-etc.c:104 +#, c-format msgid "Written by %s.\n" -msgstr "Avtor François Pinard." +msgstr "Avtor(ica): %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 -#, fuzzy, c-format +#: gnu/version-etc.c:108 +#, c-format msgid "Written by %s and %s.\n" -msgstr "Avtor François Pinard." +msgstr "Avtorja %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 -#, fuzzy, c-format +#: gnu/version-etc.c:112 +#, c-format msgid "Written by %s, %s, and %s.\n" -msgstr "Avtor François Pinard." +msgstr "Avtorji %s, %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" +"Avtorji: %s, %s, %s\n" +"in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Avtorji: %s, %s, %s,\n" +"%s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" +"Avtorji: %s, %s, %s,\n" +"%s, %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" +"Avtorji: %s, %s, %s,\n" +"%s, %s, %s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" +"Avtorji: %s, %s, %s,\n" +"%s, %s, %s, %s\n" +"in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Avtorji: %s, %s, %s,\n" +"%s, %s, %s, %s,\n" +"%s in %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" +"Avtorji: %s, %s, %s,\n" +"%s, %s, %s, %s,\n" +"%s, %s in drugi.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "Poročila o napakah javite na %s.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" -"Poročila o napakah javite na <%s>.\n" +"Napake v programu sporočite na <%s>.\n" +"Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Spletna stran %s: <http://www.gnu.org/software/%s/>.\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "" +#: gnu/version-etc.c:258 +#, fuzzy +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "Splošna pomoč za rabo programja GNU: <http://www.gnu.org/gethelp/>.\n" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Napaka v skladnji števila" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Ni mogoče %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Ni mogoče rezervirati prostora za medpomnilnik\n" +# POZOR -- oblike "to stat a file" slovenscina ne pozna +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Opozorilo: Ni mogoče %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Ni mogoče rezervirati prostora za medpomnilnik" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Zaščite ni mogoče spremeniti na %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Poskusite »%s --help« za izčrpnejša navodila.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Ni mogoče spremeniti lastnika in skupina na UID %lu GID %lu" -#: rmt/rmt.c:308 +#: lib/paxerror.c:127 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" -msgstr "" -"Uporaba: %s [IZBIRA]\n" -"Rokovanje s tračno enoto, ob sprejemu ukazov oddaljenega procesa.\n" -"\n" -" --version različica programa\n" -" --help ta navodila\n" +msgid "%s: Cannot hard link to %s" +msgstr "%s: Trda povezava na %s ni mogoča" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Napaka pri odmiku pri seek" +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajtov" +msgstr[1] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajta" +msgstr[2] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajtov" +msgstr[3] "%s: Napaka pri branju pri bajtu %s, med branjem %lu bajtov" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 -msgid "Seek offset out of range" -msgstr "Odmik pri seek izven obsega" +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebrano %lu bajtov" +msgstr[1] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebran %lu bajt" +msgstr[2] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebrana %lu bajta" +msgstr[3] "%s: Opozorilo: Napaka pri branju pri bajtu %s, prebrani %lu bajti" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Pozicioniranje na %s ni mogoče" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Opozorilo: Pozicioniranje na %s ni mogoče" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Ni mogoče ustvariti simbolne povezave na %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Zapisanih samo %lu od skupno %lu bajtov" +msgstr[1] "%s: Zapisan samo %lu od skupno %lu bajtov" +msgstr[2] "%s: Zapisana samo %lu od skupno %lu bajtov" +msgstr[3] "%s: Zapisani samo %lu od skupno %lu bajtov" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Odstranjujemo vodilne »%s« iz imen elementov" -#: rmt/rmt.c:428 +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Odstranjujemo vodilne »%s« iz imen trdih povezav" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Nadomeščamo manjkajoča imena elementov s ».«" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Nadomeščamo manjkajoča imena trdih povezav s ».«<" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Storitev ni dosegljiva" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "standardni vhod" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "standardni izhod" + +#: lib/rtapelib.c:429 +#, fuzzy, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "Pozicija %s v datoteki %s ni dostopna" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Ni mogoče pognati nelokalne ukazne lupine" + +#: rmt/rmt.c:413 msgid "Seek direction out of range" msgstr "Smer pri seek izven obsega" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Podana zaščita ni veljavna" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Neveljavna oznaka časa" + +#: rmt/rmt.c:433 +msgid "Seek offset out of range" +msgstr "Odmik pri seek izven obsega" + +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Neveljavna dolžina traku" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Odmik pri seek izven obsega" + +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Predčasen znak za konec datoteke\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Predčasen znak za konec datoteke" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Glavni načini delovanja:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Nepričakovan znak za konec datoteke med predelanimi imeni" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "N" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "DATOTEKA" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "Ni mogoče odpreti %s" -#: rmt/rmt.c:672 +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Neveljaven ukaz" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "To ne deluje kot arhiv ,tar'" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Skupno zapisanih bajtov" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Skupno prebranih bajtov" -#: src/buffer.c:365 -#, fuzzy, c-format +#: src/buffer.c:396 +#, c-format msgid "Total bytes deleted: %s\n" msgstr "Skupno izbrisanih bajtov: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(cev)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Neveljavna vrednost za dolžino zapisa (record_size)" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Ime arhiva ni podano" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Arhivov na stdin/stdout ni mogoče preveriti" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arhiv je stisnjen. Uporabite izbiro %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Stisnjenega arhiva ni mogoče ažurirati" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Na začetku traku, končujem" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Preveč napak, končujem" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -620,7 +690,7 @@ msgstr[1] "Dolžina zapisa = %lu blok" msgstr[2] "Dolžina zapisa = %lu bloka" msgstr[3] "Dolžina zapisa = %lu bloki" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -629,37 +699,37 @@ msgstr[1] "Neporavnan blok (%lu bajt) v arhivu" msgstr[2] "Neporavnan blok (%lu bajta) v arhivu" msgstr[3] "Neporavnan blok (%lu bajti) v arhivu" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Nazaj po arhivu ne gre, morda ni berljiv brez izbire -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek se ni ustavil na meji zapisa" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: vsebuje neveljavno številko dela" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Prekoračitev številke dela" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Pripravite del #%d za %s in pritisnite Return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Znak EOF na mestu, kjer se pričakuje odgovor uporabnika" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "POZOR: Arhiv nepopoln" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -670,65 +740,65 @@ msgstr "" " q Končamo tar\n" " y, newline Nadaljujemo z delovanjem\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Poženemo ukazno podlupino\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Ta seznam uzazov\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Novega dela ni, konec.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" -msgstr "" +msgstr "Ime datoteke ni določeno. Poskusite znova.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Neveljaven vnos. Vtipkajte ? za pomoč.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "ukaz %s neuspešen" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s se morda nadaljuje v tem delu: zaglavje vsebuje porezano ime" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s se ne nadaljuje v tem delu" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s je napačne velikosti (%s != %s + %s)" -#: src/buffer.c:1253 -#, fuzzy, c-format +#: src/buffer.c:1326 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Ta del ne sodi v zaporedje" +msgstr "Ta del ne sodi v zaporedje (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arhiv ni označen skladno z %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Del %s ne ustreza %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -736,12 +806,11 @@ msgstr "" "%s: ime datoteke je predolgo za zapis v zaglavje GNU večdelnega arhiva; " "porezano" -#: src/buffer.c:1621 -#, fuzzy +#: src/buffer.c:1749 msgid "write did not end on a block boundary" -msgstr "Arhiv %s se ne konča s koncem bloka" +msgstr "pisanje se ni končalo s koncem bloka" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -750,49 +819,49 @@ msgstr[1] "Prebrati je bilo moč samo %lu od %lu bajta" msgstr[2] "Prebrati je bilo moč samo %lu od %lu bajtov" msgstr[3] "Prebrati je bilo moč samo %lu od %lu bajtov" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Vsebina se razlikuje" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Nepričakovan znak za konec datoteke v arhivu" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Zvrst datoteke se razlikuje" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Način se razlikuje" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Številka uporabnika (UID) se razlikuje" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Številka skupine (GID) se razlikuje" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Čas zadnje spremembe se razlikuje" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Velikost se razlikuje" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Ni povezana z %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Simbolna povezava se razlikuje" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Številka enote se razlikuje" @@ -814,7 +883,7 @@ msgstr "Arhiv vsebuje imena datotek z odstranjenimi vodilnimi predponami." msgid "Verification may fail to locate original files." msgstr "Verifikacija morda ne bo uspela locirati izvornih datotek." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -823,27 +892,27 @@ msgstr[1] "NAPAKA PRI PREVERJANJU: najdena %d neveljavna glava" msgstr[2] "NAPAKA PRI PREVERJANJU: najdeni %d neveljavni glavi" msgstr[3] "NAPAKA PRI PREVERJANJU: najdene %d neveljavne glave" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Osamljeni ničelni blok pri %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: vsebuje značko medpomnilniškega imenika %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "vrednost %s od %s obseg %s..%s; zamenjano %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "vrednost %s od %s obseg %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Ustvarjanje negativnih osmiških glav" @@ -862,7 +931,7 @@ msgstr "%s: ime datoteke je predolgo (ni mogoče deliti); brez iznosa" msgid "%s: link name is too long; not dumped" msgstr "%s: ime povezave je predolgo; brez iznosa" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -871,436 +940,440 @@ msgstr[1] "%s: Datoteka skrčena za %s bajt; dopolnjeno z ničlami" msgstr[2] "%s: Datoteka skrčena za %s bajta; dopolnjeno z ničlami" msgstr[3] "%s: Datoteka skrčena za %s bajte; dopolnjeno z ničlami" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: datoteka je na drugem datotečnem sistemu; brez iznosa" # POZOR Imamo za to kak izraz? -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "vsebina ni iznešena" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Neznan tip datoteke; datoteka ignorirana" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "Manjkajo povezave na %s.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: datoteka je nespremenjena; brez iznosa" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: datoteka je arhiv; brez iznosa" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Datoteka je bila odstranjena, preden smo jo prebrali" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "imenik ni iznašen" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: Datoteka je bila spremenjena med branjem" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: vtičnica ignorirana" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: vrata ignorirana" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Preskok na naslednjo glavo" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Brisanje ne-glave iz arhiva" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: neverjetno stara časovna oznaka %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: oznaka časa %s je %s s v prihodnosti" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Nepričakovana neskladnost pri ustvarjanju imenika" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Imenik preimenovan, preden je bilo moč izvleči njegov status" # POZOR! "contiguous files" so datoteke, ki so zapisane na disku # na zaporednih sektorjih (na tistih OS, ki jih podpirajo). -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Neprekinjene datoteke izvlečemo kot navadne" # POZOR! Grdo! -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Simbolne povezave poskusimo dearhivirati kot trde" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Branje %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Dearhivacija ni mogoča - datoteka se nadaljuje iz prejšnjega dela" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Nepričakovano zaglavje z dolgim imenom" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Neznana vrsta datoteke »%c«, dearhiviramo kot navadno datoteko" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Obstoječa »%s« je novejša ali enako stara" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Varnostne kopije te datoteke ni moč napraviti" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Preimenovanje %s v %s ni mogoče" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Napake ni moč popraviti: zapuščamo" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Imenik je bil preimenovan z %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Imenik je bil preimenovan" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Imenik je nov" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Neveljavna oznaka časa" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Neveljaven čas spremembe (sekunde)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Neveljaven čas spremembe (nanosekunde)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Neveljavna številka enote" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Neveljavna številka inoda" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Predolgo polje pri branju trenutnega posnetka" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Napaka pri branju trenutnega posnetka" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Nepričakovan znak za konec datoteke v trenutnem posnetku" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Nepričakovana vrednost polja v trenutnem posnetku" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Manjkajoč zaključek zapisa" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Okvarjen inkrementalni zapis datoteke" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Nepodprta različica inkrementalnega zapisa: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 #, fuzzy msgid "Malformed dumpdir: empty name in 'R'" msgstr "Okvarjen argument gostote: »%s«" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 #, fuzzy msgid "Malformed dumpdir: empty name in 'T'" msgstr "Okvarjen argument gostote: »%s«" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 -#, fuzzy, c-format +#: src/incremen.c:1615 +#, c-format msgid "Cannot create temporary directory using template %s" -msgstr "Ni mogoče rezervirati pomnilnika za bločni faktor %d" +msgstr "Ni mogoče ustvariti začasnega imenika po šabloni %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Imenika ne čistimo: statistika zanj ni dosegljiva" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: imenik je na drugi napravi; brez čiščenja" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Brišemo %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Odstranitev ni mogoča" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Izpuščeno" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok znakov NUL **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Konec datoteke **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Na mestu v glavi, kjer pričakujemo številčno vrednost %s, so presledki" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" "Osmiška vrednost arhiva %.*s izven obsega %s; privzemamo dvojiški komplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Osmiška vrednost arhiva %.*s izven obsega %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiv vsebuje zastarele glave oblike base-64" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Podpis %s oblike base-64 v arhivu je izven obsega %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Vrednost base-256 v arhivu izven obsega %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arhiv vsebuje %.*s na mestu, kjer pričakujemo številčno vrednost %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Vrednost arhiva %s je izven obsega %s: %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " povezava na %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " neznan tip datoteke %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Dolga povezava--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Dolgo ime--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Glava dela--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Nadaljevanje pri bajtu %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Ustvarjamo imenik:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Preimenujemo %s v %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Preimenovanje v %s ni mogoče" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Preimenujemo %s nazaj v %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Delovnega imenika ni mogoče shraniti" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Delovnega imenika ni mogoče spremeniti" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Datoteka je bila odstranjena, preden smo jo prebrali" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Datoteka je bila odstranjena, preden smo jo prebrali" + +#: src/misc.c:795 msgid "child process" msgstr "proces naslednik" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "medprocesni kanal" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" -msgstr "" +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" +msgstr "vzorci se ujemajo z začetkom imena datoteke" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ni najdeno v arhivu" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Zahtevane pojavitve ni moč najti v arhivu" -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "Izbiri --preserve-order in --listed-incremential sta nezdružljivi" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Izbiri --preserve-order in --listed-incremential sta nezdružljivi" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Izbiri »-%s« in »-%s« obe zahtevata standardni vhod" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Neveljavna oblika arhiva" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Razširitve GNU izbrane na nezdružljivem formatu arhiva" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" "Neznan slog narekovajev »%s«. Poskusite »%s --quoting-style=help« za seznam." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1321,7 +1394,7 @@ msgstr "" " tar -xf arhiv.tar # Izvlečemo vse datoteke iz arhiva arhiv." "tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1344,87 +1417,79 @@ msgstr "" " sicer enostavne\n" " never, simple vedno enostavne varnostne kopije\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Glavni načini delovanja:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "izpis vsebine arhiva" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "izvlečenje datoteke iz arhiva" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "ustvarjanje novega arhiva" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "iskanje razlik med arhivom in datotečnim sistemom" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "dodajanje datotek na konec arhiva" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "dodajanje novih datotek, če so novejše od že arhiviranih" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "zlivanje arhivov" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "brisanje datotek iz arhiva (ne deluje na traku!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Določila delovanja:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "ekonomično ravnanje z razpršenimi datotekami" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "stari zapis GNU za inkrementalne arhive" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "DATOTEKA" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "novi zapis GNU za inkrementalne arhive" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "nadaljuj z branjem, tudi če datoteke ni moč prebrati" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "N" - -#: src/tar.c:410 -#, fuzzy +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1436,118 +1501,123 @@ msgstr "" "list, pri čemer je seznam datotek podan bodisi v ukazni vrstici, bodisi z " "izbiro -T. Privzeta vrednost N je 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "po arhivu je mogoče iskati" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "po arhivu je mogoče iskati" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" -msgstr "" +msgstr "pri izdelavi inkrementalnega arhiva ne preverjaj številke naprav" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" +"pri izdelavi inkrementalnega arhiva preverjaj številke naprav (privzeto)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Nadzor nad pisanjem prek:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "s poskusom preverjanja zapisanega arhiva" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "pobriši datoteke, potem ko so arhivirane" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "pri izvlačenju ne piši prek obstoječih datotek" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "ne piši prek obstoječih datotek, novejših od arhiviranih" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "pri izvlačenju piši prek obstoječih datotek" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" "s poprejšnjim brisanjem obstoječih datotek pri izvlačenju istoimenskih novih" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "izprazni hierarhije pred izvlačenjem imenikov" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "ohrani metainformacije o obstoječih imenikih" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "pri izvlačenju piši prek metapodatkov obstoječih imenikov (privzeto)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Izbira izhodnega toka:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "datoteke izvleci na standardni izhod" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "UKAZ" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "datoteke napelji na vhod drugega programa" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "prezri izhodne kode hčerinskih procesov" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "obravnavaj neničelne izhodne kode hčerinskih procesov kot napako" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Ravnanje z atributi datotek:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "pri dodajanju datotek spremenimo lastnika v IME" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "pri dodajanju datotek spremenimo skupino v IME" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATUM-ČAS" -#: src/tar.c:473 +#: src/tar.c:493 #, fuzzy msgid "set mtime for added files from DATE-OR-FILE" msgstr "shrani le datoteke, novejše od DATUM-ČAS" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "SPREMEMBE" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "zahtevaj (simbolne) SPREMEMBE zaščite za dodane datoteke" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METODA" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1557,29 +1627,33 @@ msgstr "" "branju (METODA=replace, privzeto) ali tako, da se časa sploh ne nastavi " "(METODA=system)" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "brez izvlačenja časa spremembe" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "z ohranitvijo lastništva, če je mogoče" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "pri izvlačenju prepišemo lastništvo nase" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "s številčnimi vrednostmi UID/GID namesto imen" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "izvleci podatke o dovoljenjih za dostop do datotek (privzeto za " "administratorja)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1587,15 +1661,15 @@ msgstr "" "uporabi uporabnikovo masko umask pri izvlačenju dovoljenj za dostop do " "datotek (privzeto za uporabnike)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "imena razvrstimo tako, da se ujemajo z arhivom" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "isto kot -p in -s skupaj" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1603,140 +1677,140 @@ msgstr "" "počakaj do končanega izvlačenja, preden nastavimo čase sprememb in " "dovoljenja za dostop za izvlečene imenike" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "prekliči učinek izbire --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Izbira enote in preklapljanje:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARHIV" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "uporabi datoteko ali enoto ARHIV" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "arhiv je lokalen kljub dvopičju v imenu datoteke" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "uporabi navedeni UKAZ rmt namesto rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "uporabi nelokalen UKAZ namesto rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "določi enoto in gostoto zapisa" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "ustvari/pregledaj/izvleci arhiva v več delih" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "menjava traku po ŠT x 1024 zapisanih bajtih" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "poženi SKRIPT po koncu traku (privzema -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "uporabimo/ažuriramo število dela v DATOTEKI" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Bločna razdelitev enote:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOKI" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "dolžina zapisa BLOKI × 512 bajtov" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "ŠTEVILO bajtov v zapisu (večkratnik 512)" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "ne meni se za bloke ničel (EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "razdeli na bloke ob branju (cevovodi 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Izbira oblike arhiva:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "OBLIKA" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "ustvari arhiv v navedeni obliki" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "OBLIKA je nekaj od naštetega:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "oblika starega V7 tar" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "stara oblika GNU tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "oblika GNU tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "oblika POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "oblika POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "isto kot pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "isto kot --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "isto kot --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 #, fuzzy msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "ključna-beseda[[:]=vrednost][,ključna-beseda[[:]=vrednost],...]" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "krmilne ključne besede pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "VZOREC" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1744,200 +1818,171 @@ msgstr "" "ustvari arhiv z imenom dela IME; pri izpisu seznama/izvlečku je lahko IME " "regularni izraz za ime dela" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Nasprotujoče si izbire glede stiskanja arhiva" -#: src/tar.c:595 +#: src/tar.c:615 #, fuzzy msgid "use archive suffix to determine the compression program" msgstr "Pisanje na vhod programa za stiskanje ne gre" -#: src/tar.c:597 +#: src/tar.c:617 #, fuzzy msgid "do not use archive suffix to determine the compression program" msgstr "Pisanje na vhod programa za stiskanje ne gre" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "filtriraj arhiv skozi bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "filtriraj arhiv skozi gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "filtriraj arhiv skozi compress" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "filtriraj arhiv skozi gzip" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "filtriraj arhiv skozi gzip" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "filtriraj arhiv skozi gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROGRAM" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "filtriraj skozi PROGRAM (sprejemati mora izbiro -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Izbira lokalne datoteke:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "dodaj navedeno DATOTEKO v arhiv (za imena datotek, ki se začnejo z »-«)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "IMENIK" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "pomik v navedeni IMENIK" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "preberi seznam datotek z navedene DATOTEKE" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T prebere z \\000 terminirana imena; onemogoči -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "prekliči učinek prejšnje izbire --null" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "odstrani narekovaje iz imen datotek, prebranih s -T (privzeto)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "ne odstrani narekovajev iz imen datotek, prebranih s -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "VZOREC" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "brez datotek, ki jih opisuje VZOREC" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "brez datotek, ustrezajočim vzorcem, prebranih z DATOTEKE" -#: src/tar.c:641 -#, fuzzy +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" -msgstr "brez imenikov, ki vsebujejo značko medpomnilnika" +msgstr "" +"brez vsebine imenikov, ki vsebujejo značko CACHEDIR.TAG, razen značke same" -#: src/tar.c:644 -#, fuzzy +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" -msgstr "brez imenikov, ki vsebujejo značko medpomnilnika" +msgstr "" +"brez imenikov, ki vsebujejo značko CACHEDIR.TAG, in vseh njihovih podimenikov" -#: src/tar.c:647 -#, fuzzy +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" -msgstr "brez imenikov, ki vsebujejo značko medpomnilnika" +msgstr "brez imenikov, ki vsebujejo značko CACHEDIR.TAG" -#: src/tar.c:649 -#, fuzzy +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" -msgstr "brez imenikov, ki vsebujejo značko medpomnilnika" +msgstr "brez vsebine imenikov, ki vsebujejo DATOTEKO, razen DATOTEKE same" -#: src/tar.c:652 -#, fuzzy +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" -msgstr "brez imenikov, ki vsebujejo značko medpomnilnika" +msgstr "brez imenikov, ki vsebujejo DATOTEKO, in vseh njihovih podimenikov" -#: src/tar.c:654 -#, fuzzy +#: src/tar.c:670 msgid "exclude directories containing FILE" -msgstr "brez imenikov, ki vsebujejo značko medpomnilnika" +msgstr "brez imenikov, ki vsebujejo DATOTEKO" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" +msgstr "brez imenikov sistema za nadzor različic" + +#: src/tar.c:674 +msgid "exclude backup and lock files" msgstr "" -#: src/tar.c:658 +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "podimenikov ne vključujemo avtomatično" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "pri arhiviranju izpusti datoteke na nelokalnih datotečnih sistemih" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "rekurzivno vključi vse podimenike" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "ne odstrani vodilnih »/« iz imen datotek" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "sledi simbolnim povezavam; arhiviraj/iznesi ciljne datoteke" -#: src/tar.c:668 -#, fuzzy +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" -msgstr "sledi simbolnim povezavam; arhiviraj/iznesi ciljne datoteke" +msgstr "sledi trdim povezavam; arhiviraj/iznesi ciljne datoteke" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "IME" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "začenši z navedenim IMENOM v arhivu" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "shrani le datoteke, novejše od DATUM-ČAS" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATUM" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "primerjaj datum in uro le, kadar se podatki spremenijo" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "TIP" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" "varnostna kopija pred brisanjem, z možnostjo izbire TIPA varnostne kopije" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "NIZ" -#: src/tar.c:679 -#, fuzzy +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1945,97 +1990,98 @@ msgstr "" "varnostna kopija pred brisanjem; prekličemo običajno PRIPONO (»~«, razen če " "lupinska spremenljivka SIMPLE_BACKUP_SUFFIX določa drugače)" -#: src/tar.c:684 -#, fuzzy +#: src/tar.c:702 msgid "File name transformations:" -msgstr "Druge izbire:" +msgstr "Pretvorbe imen datotek:" -#: src/tar.c:686 +#: src/tar.c:704 #, fuzzy msgid "strip NUMBER leading components from file names on extraction" msgstr "izpusti ŠTEVILO vodilnih komponent iz imen datotek" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "IZRAZ" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 -#, fuzzy +#: src/tar.c:716 msgid "ignore case" -msgstr "izključitveni vzorci ne razlikujejo med malimi in velikimi črkami" +msgstr "brez razlike med malimi in velikimi črkami" -#: src/tar.c:700 -#, fuzzy +#: src/tar.c:718 msgid "patterns match file name start" -msgstr "izključitveni vzorci opisujejo celotno ime datoteke" +msgstr "vzorci se ujemajo z začetkom imena datoteke" -#: src/tar.c:702 -#, fuzzy +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -"izključitveni vzorci opisujejo ime datoteke od znaka »/« dalje (privzeto)" +"vzorci se ujemajo od kateregakoli znaka »/« dalje (privzeto pri izključitvi)" -#: src/tar.c:704 -#, fuzzy +#: src/tar.c:722 msgid "case sensitive matching (default)" -msgstr "" -"izključitveni vzorci razlikujejo med malimi in velikimi črkami (privzeto)" +msgstr "pri ujemanje se razlikuje med malimi in velikimi črkami (privzeto)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" -msgstr "uporabi nadomestne znake (privzeto za izločanje)" +msgstr "uporabi nadomestne znake (privzeto za izključitvi)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "dobesedno ujemanje nizov" -#: src/tar.c:710 -#, fuzzy +#: src/tar.c:728 msgid "wildcards do not match `/'" -msgstr "izključitveni vzorci ne opisujejo »/«" +msgstr "nadomestni znaki se ne ujemajo z »/«" -#: src/tar.c:712 -#, fuzzy +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" -msgstr "izključitveni vzorci opisujejo tudi »/« (privzeto)" +msgstr "nadomestni znaki se ujemajo z »/« (privzeto pri izključitvi)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Informativni izpisi:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "z izčrpnim izpisom obdelanih datotek" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Nadzor nad pisanjem prek:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "izpiši poročilo o napredku pri vsakem N-tem zapisu (privzeto 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" -msgstr "" +msgstr "DEJANJE" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" -msgstr "" +msgstr "na vsaki kontrolni točki izvedi DEJANJE" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "izpiši sporočilo, če niso zapisane vse povezave" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2043,119 +2089,124 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "z izpisom časov sprememb datotek v UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "zapiši izčrpno poročilo v DATOTEKO" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "z izpisom zaporednega bloka v arhivu ob vsakem sporočilu" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "vprašaj za potrditev pri vsakem koraku" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "prikaži privzete nastavitve" -#: src/tar.c:746 -#, fuzzy +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -"Pri izpisu seznama ali izvlačenju izpiši vsak imenik, ki ne ustreza iskalnim " +"pri izpisu seznama ali izvlačenju izpiši vsak imenik, ki ne ustreza iskalnim " "pogojem" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" -msgstr "" +msgstr "prikaži imena datotek ali arhivov po pretvorbi" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "SLOG" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "nastavi slog navajanja imen; glej spodaj za veljavne SLOGE" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Združljivostne izbire:" -#: src/tar.c:764 -#, fuzzy +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -"pri ustvarjanju arhiva isto kot --old-archive; pri izvlačenju isto kot --no-" +"ob ustvarjanju arhiva isto kot --old-archive; ob izvlačenju isto kot --no-" "same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Druge izbire:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" -msgstr "" +msgstr "onemogoči rabo nekaterih potencialno škodljivih izbir" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "Naenkrat je dovoljena največ ena od izbir »-Acdtrux«" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Nasprotujoče si izbire glede stiskanja arhiva" -#: src/tar.c:986 +#: src/tar.c:993 #, fuzzy, c-format msgid "Unknown signal name: %s" -msgstr " neznan tip datoteke %s\n" +msgstr "Neznano ime signala: %s" -#: src/tar.c:1010 -#, fuzzy +#: src/tar.c:1017 msgid "Date sample file not found" -msgstr "Datoteke z datumom ni najti" +msgstr "Datoteke z vzorcem datuma ni najti" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Nadomeščamo %s za neznan format datuma %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 -#, fuzzy, c-format +#: src/tar.c:1132 +#, c-format msgid "%s: file list already read" -msgstr "%s: datoteka je arhiv; brez iznosa" +msgstr "%s: seznam datotek je že prebran" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" -msgstr "" +msgstr "%s: prebrano ime datoteke vsebuje znak \\0" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "filtriraj arhiv skozi gzip" -#: src/tar.c:1253 +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" +msgstr "Veljavni argumenti pri izbirah --quoting-style so:" + +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2163,111 +2214,121 @@ msgstr "" "\n" "Privzete vrednosti *tega* programa tar:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Neveljaven faktor blokiranja" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Neveljavna dolžina traku" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Okvarjen inkrementalni zapis datoteke" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Več kot en pražni podatek" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: Neveljavna skupina" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Podana zaščita ni veljavna" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Neveljavno število" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Neveljaven lastnik" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Neveljavna dolžina zapisa" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Dolžina zapisa mora biti večkratnik %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Neveljavno število elementov" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" -msgstr "" +msgstr "Dovoljena je le ena izbira --to-command" -#: src/tar.c:1968 -#, fuzzy, c-format +#: src/tar.c:2100 +#, c-format msgid "Malformed density argument: %s" -msgstr "Okvarjen argument gostote: »%s«" +msgstr "Okvarjen argument gostote: %s" -#: src/tar.c:1994 -#, fuzzy, c-format +#: src/tar.c:2126 +#, c-format msgid "Unknown density: `%c'" msgstr "Neznana gostota: »%c«" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "*Ta* izvedba tar ne podpira izbir »-[0-7][lmh]«" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[DATOTEKA]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Stara izbira »%c« zahteva argument." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence nima pomena brez seznama datotek" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence ni mogoče uporabiti v zahtevanem načinu delovanja" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Več arhivskih datotek zahteva izbiro »-M«" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Izbire --listed-incremental ni mogoče kombinirati z --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "Izbiri --preserve-order in --listed-incremential sta nezdružljivi" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2276,48 +2337,48 @@ msgstr[1] "%s: Oznaka dela je predolga (omejitev je %lu bajt)" msgstr[2] "%s: Oznaka dela je predolga (omejitev je %lu bajta)" msgstr[3] "%s: Oznaka dela je predolga (omejitev je %lu bajti)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Arhivov v več delih ni mogoče preveriti" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Stisnjenega arhiva ni mogoče preveriti" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Stisnjeni arhivi v več delih niso mogoči" -#: src/tar.c:2319 -#, fuzzy +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" -msgstr "Stisnjenega arhiva ni mogoče ažurirati" +msgstr "Stisnjenega arhiva ni mogoče združevati" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "izbira --pax-option je mogoča le na arhivih POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "Dolžina dela ne more biti manjša od velikosti zapisa" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" -msgstr "" +msgstr "Izbiri --preserve-order in --listed-incremential sta nezdružljivi" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Zahteva po odprtju praznega arhiva bojazljivo zavrnjena" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Izbire »-Aru« so nezdružljive z »-f -«" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "Ena od izbir »-Acdtrux« je obvezna" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2331,83 +2392,88 @@ msgstr[1] "%s: Datoteka skrčena za %s bajt" msgstr[2] "%s: Datoteka skrčena za %s bajta" msgstr[3] "%s: Datoteka skrčena za %s bajte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, fuzzy, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Ključna beseda %s je bodisi neznana, bodisi še ni izvedena" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Oznaka časa izven obsega" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Vzorca %s ni mogoče uporabiti" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ključne besede %s ni mogoče preklicati" -#: src/xheader.c:496 +#: src/xheader.c:541 #, fuzzy msgid "Malformed extended header: missing length" msgstr "Poškodovana razširjena glava: manjka enačaj" -#: src/xheader.c:504 +#: src/xheader.c:549 #, fuzzy msgid "Extended header length is out of allowed range" msgstr "Podpis %s oblike base-64 v arhivu je izven obsega %s" -#: src/xheader.c:511 +#: src/xheader.c:556 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "Podpis %s oblike base-64 v arhivu je izven obsega %s" -#: src/xheader.c:523 +#: src/xheader.c:568 #, fuzzy msgid "Malformed extended header: missing blank after length" msgstr "Poškodovana razširjena glava: za dolžino manjka presledek" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Poškodovana razširjena glava: manjka enačaj" -#: src/xheader.c:537 +#: src/xheader.c:582 #, fuzzy msgid "Malformed extended header: missing newline" msgstr "Poškodovana razširjena glava: manjka enačaj" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Vrednost arhiva %s je izven obsega %s: %s.%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, fuzzy, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Poškodovana razširjena glava: manjka enačaj" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, fuzzy, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Poškodovana razširjena glava: manjka enačaj" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Poškodovana razširjena glava: manjka enačaj" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Poškodovana razširjena glava: manjka enačaj" @@ -2450,250 +2516,324 @@ msgstr "Oznaka pisanja %u" msgid "Read checkpoint %u" msgstr "Oznaka branja %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Ustvarimo podatkovne datoteke za testno zbirko GNU tar.\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 #, fuzzy msgid "File creation options:" msgstr "Druge izbire:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 #, fuzzy msgid "Create file of the given SIZE" msgstr "ustvari arhiv v navedeni obliki." -#: tests/genfile.c:130 +#: tests/genfile.c:132 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "datoteke izvleci na standardni izhod" -#: tests/genfile.c:132 +#: tests/genfile.c:134 #, fuzzy msgid "Read file names from FILE" msgstr "Prebranih %s bajtov iz %s" -#: tests/genfile.c:134 +#: tests/genfile.c:136 #, fuzzy msgid "-T reads null-terminated names" msgstr "-T prebere z \\000 terminirana imena; onemogoči -C" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "s poskusom preverjanja zapisanega arhiva" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [IZBIRA...]" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "%s: Časa zadnje spremembe in dostopa ni možno spremeniti" -#: tests/genfile.c:190 +#: tests/genfile.c:192 #, fuzzy msgid "Execute COMMAND" msgstr "UKAZ" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Neveljavna oznaka časa" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Številka inoda izven obsega" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, fuzzy, c-format msgid "Negative size: %s" msgstr "Neveljavna oznaka časa" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, fuzzy, c-format msgid "Unknown date format" msgstr "Neznana sistemska napaka" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "Ni mogoče odpreti %s" -#: tests/genfile.c:425 +#: tests/genfile.c:435 #, fuzzy msgid "cannot seek" msgstr "Ni mogoče zapreti" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " neznan tip datoteke %s\n" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "Ni mogoče do statistike za datoteko %s" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "Ni mogoče odpreti %s" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, fuzzy, c-format msgid "Command failed with status %d\n" msgstr "Naslednik umrl s signalom %d" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" # POZOR Je to res to? -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, fuzzy, c-format msgid "--stat requires file names" msgstr "--Predelana imena datotek--\n" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: nedovoljena izbira -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Opozorilo: izbira -I ni podprta; ste želeli -j ali -T?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "Napake v programu sporočite na <%s>.\n" +#~ "Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge." +#~ "net>\n" + +#~ msgid "Reading %s\n" +#~ msgstr "Branje %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Napake ni moč popraviti: zapuščamo" + +#~ msgid "filter the archive through bzip2" +#~ msgstr "filtriraj arhiv skozi bzip2" + +#~ msgid "filter the archive through gzip" +#~ msgstr "filtriraj arhiv skozi gzip" + +#~ msgid "filter the archive through compress" +#~ msgstr "filtriraj arhiv skozi compress" #, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "prekliči učinek izbire --delay-directory-restore" +#~ msgid "filter the archive through lzma" +#~ msgstr "filtriraj arhiv skozi gzip" + +#, fuzzy +#~ msgid "filter the archive through lzop" +#~ msgstr "filtriraj arhiv skozi gzip" + +#~ msgid "Input string too long" +#~ msgstr "Vhodni niz je predolg" + +#~ msgid "Number syntax error" +#~ msgstr "Napaka v skladnji števila" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Ni mogoče rezervirati prostora za medpomnilnik\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Ni mogoče rezervirati prostora za medpomnilnik" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Poskusite »%s --help« za izčrpnejša navodila.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Uporaba: %s [IZBIRA]\n" +#~ "Rokovanje s tračno enoto, ob sprejemu ukazov oddaljenega procesa.\n" +#~ "\n" +#~ " --version različica programa\n" +#~ " --help ta navodila\n" + +#~ msgid "Seek offset error" +#~ msgstr "Napaka pri odmiku pri seek" + +#~ msgid "Premature end of file" +#~ msgstr "Predčasen znak za konec datoteke" #~ msgid "[.]NUMBER" #~ msgstr "[.]N" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "Opozorilo: izbira -I ni podprta; ste želeli -j ali -T?" + #~ msgid "Error exit delayed from previous errors" #~ msgstr "Izhod ob napaki zakasnjen zaradi prejšnjih napak" @@ -2710,9 +2850,6 @@ msgstr "" #~ msgid "rmtd: Garbage command %c\n" #~ msgstr "rmtd: Neveljaven ukaz %c\n" -#~ msgid "Time stamp out of range" -#~ msgstr "Oznaka časa izven obsega" - #~ msgid "Modification time (seconds) out of range" #~ msgstr "Čas spremembe (sekunde) izven obsega" @@ -2726,9 +2863,6 @@ msgstr "" #~ msgid "--Mangled file names--\n" #~ msgstr "--Predelana imena datotek--\n" -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "Nepričakovan znak za konec datoteke med predelanimi imeni" - #~ msgid "Renamed %s to %s" #~ msgstr "Datoteka %s preimenovana v %s" @@ -3349,9 +3483,6 @@ msgstr "" #~ msgid "Cannot allocate memory for diff buffer of %lu bytes" #~ msgstr "Ni možno rezervirati pomnilnika za %lu bajtov medpomnilnika za diff" -#~ msgid "Cannot seek to %s in file %s" -#~ msgstr "Pozicija %s v datoteki %s ni dostopna" - #~ msgid "Wrote %s of %s bytes to file %s" #~ msgstr "Zapisano %s od %s bajtov na datoteko %s" diff --git a/po/sv.gmo b/po/sv.gmo index 22c997c4cf83878593ce3dd2c64ff7dcc5aee2b9..4da97eac4530ba6faeb714606f0caf7c3dc50e10 100644 Binary files a/po/sv.gmo and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po index 82299524ca11dd46e6d6dcfee57d58a530c412bb..d41e5863600f3adc151696a695040ac0209530ad 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,15 +1,15 @@ # Swedish messages for tar -# Copyright © 1996, 2001, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright © 1996, 2001, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. -# Jan Djärv <jan.h.d@swipnet.se>, 2000, 2001, 2004, 2006, 2007, 2008 -# Revision: 1.91 +# Jan Djärv <jan.h.d@swipnet.se>, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010 +# Revision: 1.98 # msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-12-29 11:37+0100\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-18 12:48+0100\n" "Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "MIME-Version: 1.0\n" @@ -17,47 +17,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "ogiltigt argument %s för %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "tvetydigt argument %s för %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Giltiga argument är:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s värde är mindre eller lika med %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: Parameter från ARGP_HELP_FMT kräver ett värde." -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: Parameter från ARGP_HELP_FMT måste vara positiv." -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Okänd ARGP_HELP_FMT-parameter" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Skräp i ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -65,24 +65,24 @@ msgstr "" "Obligatoriska respektive valfria argument för långa flaggor är obligatoriska " "repektive valfria även för motsvarande korta." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Användning:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " eller: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [FLAGGA...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, 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" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "" @@ -90,213 +90,121 @@ msgstr "" "Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv." "se>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Okänt systemfel" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "visa denna hjälptext" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "ge ett kort hjälpmeddelande" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "NAMN" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "ange programnamnet" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SEK" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "vänta i SEK sekunder (standardvärde 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "visa programversion" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(PROGRAMFEL) Ingen version känd!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: För många argument\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(PROGRAMFEL) Flagga borde ha känts igen!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "skrivfel" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: flaggan \"%s\" är tvetydig\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: flagga \"--%s\" tar inget argument\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: flaggan \"--%s\" tar inget argument\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: flagga \"%c%s\" tar inget argument\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: flaggan \"%c%s\" tar inget argument\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: flagga \"%s\" kräver ett argument\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: flaggan \"%s\" kräver ett argument\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: okänd flagga \"--%s\"\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: okänd flagga \"%c%s\"\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: otillåten flagga -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: ogiltig flagga -- \"%c\"\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ogiltig flagga -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: flaggan kräver ett argument -- \"%c\"\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: flaggan kräver ett argument -- %c\n" - -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: flaggan \"-W %s\" är tvetydig\n" -#: lib/getopt.c:932 lib/getopt.c:950 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: flagga \"-W %s\" tar inget argument\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: flaggan \"-W %s\" tar inget argument\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "minnet slut" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "kan inte lagra nuvarande arbetskatalog" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "kan inte gå tillbaka till initial arbetskatalog" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Funktion \"%s\" misslyckades" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Varning: Funktion \"%s\" misslyckades" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Kan inte ändra rättigheter till %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Kan inte byta ägare (chown) till uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Kan inte skapa hård länk till %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Läsfel vid byte %s, när %lu byte lästes" -msgstr[1] "%s: Läsfel vid byte %s, när %lu bytes lästes" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Varning: Läsfel vid byte %s, när %lu byte lästes" -msgstr[1] "%s: Varning: Läsfel vid byte %s, när %lu bytes lästes" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Kunde inte flytta (seek) till %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Varning: Kunde inte flytta (seek) till %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Kan inte skapa symbolisk länk till %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Skrev bara %lu av %lu byte" -msgstr[1] "%s: Skrev bara %lu av %lu byte" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Tar bort inledande \"%s\" från namnen i arkivet" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Tar bort inledande \"%s\" från mål för hårda länkar" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Ersätter tomma namn i arkivet med \".\"" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Ersätter tomt mål för hård länk med \".\"" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -310,17 +218,17 @@ msgstr "Ersätter tomt mål för hård länk med \".\"" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "\"" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "\"" @@ -330,7 +238,7 @@ msgstr "\"" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yYjJ]" @@ -340,39 +248,28 @@ msgstr "^[yYjJ]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Tjänsten är inte tillgänglig" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "standard in" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "standard ut" +msgid "Packaged by %s (%s)\n" +msgstr "Paketerad av %s (%s)\n" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Kan inte exekvera fjärrskal" +msgid "Packaged by %s\n" +msgstr "Paketerad av %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -383,24 +280,24 @@ msgid "" msgstr "" "\n" "Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl." -"html>\n" +"html>.\n" "Detta program är fri programvara. Du kan modifiera och distribuera den.\n" "Det finns inte NÅGON SOM HELST GARANTI, till den grad som lagen tillåter.\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Skrivet av %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Skrivet av %s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Skrivet av %s, %s och %s.\n" @@ -408,7 +305,7 @@ msgstr "Skrivet av %s, %s och %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +317,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +329,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -444,7 +341,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -456,7 +353,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -470,7 +367,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -484,7 +381,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -499,182 +396,327 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"Rapportera fel till <%s>.\n" -"Rapportera fel eller synpunkter på översättningen till <sv@li.org>.\n" +"Rapportera fel till %s.\n" +"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv." +"se>.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "Report %s bugs to: %s\n" msgstr "" +"Rapportera fel på %s till %s.\n" +"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv." +"se>.\n" + +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "%s hemsida: <%s>\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "%s hemsida: <http://www.gnu.org/software/%s/>.\n" + +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Allmän användarhjälp för GNU-mjukvara: <http://www.gnu.org/gethelp/>.\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Funktion \"%s\" misslyckades" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Varning: Funktion \"%s\" misslyckades" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Kan inte ändra rättigheter till %s" + +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Kan inte byta ägare (chown) till uid %lu, gid %lu" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Indatasträng är för lång" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Kan inte skapa hård länk till %s" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Syntaxfel för tal" +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Läsfel vid byte %s, när %lu byte lästes" +msgstr[1] "%s: Läsfel vid byte %s, när %lu bytes lästes" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Kan inte allokera buffert\n" +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Varning: Läsfel vid byte %s, när %lu byte lästes" +msgstr[1] "%s: Varning: Läsfel vid byte %s, när %lu bytes lästes" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Kan inte allokera buffert" +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Kunde inte flytta (seek) till %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:275 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Försök med \"%s --help\" för mer information.\n" +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Varning: Kunde inte flytta (seek) till %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:284 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Kan inte skapa symbolisk länk till %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Skrev bara %lu av %lu byte" +msgstr[1] "%s: Skrev bara %lu av %lu byte" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Tar bort inledande \"%s\" från namnen i arkivet" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Tar bort inledande \"%s\" från mål för hårda länkar" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Ersätter tomma namn i arkivet med \".\"" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Ersätter tomt mål för hård länk med \".\"" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Tjänsten är inte tillgänglig" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "standard in" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "standard ut" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Användning: %s [FLAGGA]\n" -"Manipulera en bandstation genom att ta emot kommandon från en annan " -"process.\n" -"\n" -" --version Visa versionsinformation.\n" -" --help Visa denna hjälptext.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Kan inte exekvera fjärrskal" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Positioneringsriktning har ogiltigt värde" + +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "Ogiltig sökriktning" + +#: rmt/rmt.c:427 +msgid "Invalid seek offset" msgstr "Ogiltigt positioneringsvärde" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Positioneringsvärde är utanför giltigt intervall" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Positioneringsriktning har ogiltigt värde" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "Ogiltigt byte-antal" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: För tidigt filslut\n" +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "Byte-antal är utanför giltigt intervall" -#: rmt/rmt.c:474 -msgid "Premature end of file" +#: rmt/rmt.c:539 +msgid "Premature eof" msgstr "För tidigt filslut" -#: rmt/rmt.c:672 +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "Felaktig operationskod" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "Operationsläge stöds inte" + +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "Oväntade argument" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "Styr en bandstation, acceptera kommandon från en fjärrptocess" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "NUMMER" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "sätt felsökningsnivå" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FIL" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "sätt felsökningsfilnamn" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "kan inte öppna \"%s\"" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "för många argument" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Okänt kommando" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Det här ser inte ut som ett tar-arkiv" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Summa skrivna byte" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Summa lästa byte" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Summa borttagna byte: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(rör)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Ogiltigt värde på record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Arkivnamn saknas" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Kan inte verifiera standard in/ut-arkiv" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arkivet är komprimerat. Använd flaggan %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Komprimerade arkiv kan inte uppdateras" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Vid bandets början, avslutar nu" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "För många fel, avslutar" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Poststorlek = %lu block" msgstr[1] "Poststorlek = %lu block" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Block ej vid blockgräns (%lu byte) i arkivet" msgstr[1] "Block ej vid blockgräns (%lu byte) i arkivet" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Kunde inte söka bakåt i arkivfilen, den kan vara oläsbar utan -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek stannade inte på en postgräns" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: innehåller ogiltigt volymnummer" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Volymnummer flödade över" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Gör iordning volym nummer %d för %s och tryck vagnretur:" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Filslut vid förväntat användarsvar" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "VARNING: Arkivet är ofullständigt" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -685,66 +727,66 @@ msgstr "" " q Avsluta programmet\n" " y eller nyrad Fortsätt\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Starta ett underskal\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Skriv denna lista\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Ingen ny volym; avslutar.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Filnamn inte angivet, försök igen.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ogiltig indata. Skriv ? för hjälp.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "kommandot \"%s\" misslyckades" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s fortsätter möjligen i denna volym: huvudet innehåller ett trunkerat namn" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s fortsätter inte i denna volym" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s har fel storlek (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Denna volym kommer inte i rätt ordning (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkivet är inte märkt för att stämma med %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Volym %s överensstämmer inte med %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -752,60 +794,60 @@ msgstr "" "%s: filnamnet är för långt för att lagras i huvudet för ett GNU " "multivolymsarkiv, trunkerat" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "skrivning stannade inte på en blockgräns" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Kunde bara läsa %lu av %lu byte" msgstr[1] "Kunde bara läsa %lu av %lu byte" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Innehållet är olika" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Oväntat filslut i arkivet" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Filtyper är olika" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Rättigheterna är olika" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid är olika" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid är olika" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Modifieringstiderna är olika" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Storlekarna är olika" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Inte länkad till %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symboliska länkar är olika" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Enhetsnummer är olika" @@ -827,34 +869,34 @@ msgstr "Arkivet innehåller filnamn med inledande prefix borttaget." msgid "Verification may fail to locate original files." msgstr "Verifiering kan misslyckas med att hitta originalfiler." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "VERIFIKATIONSFEL: %d felaktigt arkivhuvud upptäckt" msgstr[1] "VERIFIKATIONSFEL: %d felaktiga arkivhuvuden upptäckta" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Ett ensamt nollblock vid %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: innehåller en cachekatalog-tagg %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "%s är utanför intervallet för %s: %s..%s, byter till %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "%s är utanför intervallet för %s: %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Genererar negativa oktala värden i arkivhuvudet" @@ -873,290 +915,276 @@ msgstr "%s: filnamnet är för långt (kan ej delas); inte arkiverad" msgid "%s: link name is too long; not dumped" msgstr "%s: länknamn är för långt; inte arkiverad" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Fil krympte med %s byte, fyller ut med nolltecken" msgstr[1] "%s: Fil krympte med %s byte, fyller ut med nolltecken" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: filen finns på ett annat filsystem; inte arkiverad" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "innehållet inte arkiverat" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Okänd filtyp; filen ignorerad" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "Det fattas länkar till \"%s\".\n" +msgid "Missing links to %s." +msgstr "Det fattas länkar till \"%s\"." -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: filen är oförändrad; inte arkiverad" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: filen är själva arkivet; inte arkiverad" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Fil borttagen innan vi läste den" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "katalog inte arkiverad" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: Fil ändrades under tiden vi läste den" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: socketfil ignorerad" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: door-fil ignorerad" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Hoppar till nästa filhuvud" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Tar bort icke-huvuddata från arkivet" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: orimligt gammal tidsstämpel %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: tidsvärde %s är %s sekunder i framtiden" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Oväntad inkonsistens när katalog skapades" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Katalog bytte namn innan dess status kunde extraheras" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Extraherar sammanhängande filer som vanliga filer" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Försöker extrahera symboliska länkar som hårda länkar" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Läser %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Kan inte extrahera -- filen fortsätter från en annan volym" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Oväntat huvud för långt filnamn" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Okänd filtyp \"%c\", extraherad som en normal fil" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Nuvarade \"%s\" är nyare eller lika gammal" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s kunde inte säkerhetskopieras" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Kan inte byta namn på %s till %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Felet kan inte åtgärdas, avslutar nu" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Katalogen har bytt namn från %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Katalogen har bytt namn" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Katalogen är ny" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Ogiltigt värde på tidsvärde" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Ogiltig modifikationstid (sekunder)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Ogiltig modifikationstid (nanosekunder)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Ogiltigt enhetsnummer" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Ogiltigt inodnummer" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Fält för långt när ögonblicksfil lästes" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Läsfel i ögonblicksfil" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Oväntat filslut i ögonblicksfil" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Oväntat fältvärde i ögonblicksfil" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Postavslutare fattas" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Felaktigt filformat för inkrementell säkerhetskopiering" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" "Formatversion för inkrementell säkerhetskopiering stöds inte: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Felaktig dumpkatalog: förväntade \"%c\" men hittade %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Felaktig dumpkatalog: \"X\" duplicerad" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Felaktig dumpkatalog: tomt namn i \"R\"" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Felaktig dumpkatalog: \"T\" föregås inte av \"R\"" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Felaktig dumpkatalog: tomt namn i \"T\"" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Felaktig dumpkatalog: förväntade \"%c\" men hittade dataslut" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Felaktig dumpkatalog: \"X\" används inte" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Kan inte skapa temporärkatalog med mall %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Rensar inte katalog: kunde inte ta status" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: katalogen finns på ett annat filsystem; inte rensad" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Tar bort %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Kan inte ta bort" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Utelämnad" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "block %s: ** Block av nolltecken **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "block %s: ** Filslut **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "block %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Blanka i huvud där numeriskt värde av typ %s förväntades" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1164,142 +1192,159 @@ msgstr "" "komplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Arkivets oktala värde %.*s är utanför intervallet för %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arkivet innehåller föråldrade \"base-64\"-huvuden" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Arkivets \"base-64\"-sträng \"%s\" är utanför intervallet för %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Arkivets \"base-256\"-värde är utanför intervallet för %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arkivet innehåller %.*s där ett numeriskt värde av typ %s förväntades" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Arkivets värde %s är utanför intervallet för %s: %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " länk till %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " okänd filtyp \"%s\"\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Lång länk--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Långt namn--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Volymhuvud--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Fortsätter vid byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Skapar katalog:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Byter namn på %s till %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Kan inte byta namn till %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Byter namn på %s tillbaka till %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Kan inte spara arbetskatalog" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Kan inte byta arbetskatalog" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Fil borttagen innan vi läste den" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Katalog borttagen innan vi läste den" + +#: src/misc.c:795 msgid "child process" msgstr "barnprocess" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "interprocesskanal" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Mönstermatchningstecken används i filnamn." -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" "Använd --wildcards för att slå på mönstermatchning, eller --no-wildcards för" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "att undertrycka denna varning." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Fanns inte i arkivet" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Nödvändig förekomst hittades inte i arkivet" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "Att används -C i en fillista är inte tillåtet med --listed-incremental" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Bara en -C-flagga är tillåtet med --listed-incremental" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Flaggorna \"-%s\" och \"-%s\" vill båda läsa från standard in" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Ogiltigt arkivformat" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-tillägg önskade i ett inkompatibelt arkivformat" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1307,7 +1352,7 @@ msgstr "" "Okänd citeringsstil \"%s\". Gör \"%s --quoting-style=help för att få en " "lista." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1325,7 +1370,7 @@ msgstr "" " tar -tvf arkiv.tar # Visa filer i arkiv.tar, all information.\n" " tar -xf arkiv.tar # Extrahera alla filer i arkiv.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1347,87 +1392,80 @@ msgstr "" "annars\n" " never, simple gör alltid enkla säkerhetskopior\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Operationsläge:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "visa innehållet i arkivet" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "extrahera filer från arkivet" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "skapa ett nytt arkiv" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "visa skillnader mellan filsystemet och arkivet" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "lägg till filer på slutet av arkivet" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "lägg till filer som är nyare än de i arkivet" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "lägg till innehållet i en arkivfil till arkivet" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "ta bort från arkivet (inte för arkiv på magnetband!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "verifiera arkivets volymnamn och avsluta." -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Modifiera operationslägen:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "hantera filer med hål mer effektivt" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "ÖVRE[.UNDRE]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" "ange vilken formatversion som ska hantera filer med hål (implicerar --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "hantera gamla GNU-formatet för inkrementell säkerhetskopiering" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "FIL" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "hantera nya GNU-formatet för inkrementell säkerhetskopiering" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "dumpa nivå för \"listed-incremental\" arkiv" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "avsluta inte med felslutstatus p.g.a. oläsbara filer" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "NUMMER" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1439,118 +1477,121 @@ msgstr "" "list och när en lista av filer anges antingen på kommandoraden eller med " "flaggan -T. Standardvärde för NUMMER är 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "arkivet är sökbart" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "arkivet är inte sökbart" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "kontrollera inte enhetsnummer när inkrementella arkiv skapas" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "kontrollera enhetsnummer när inkrementella arkiv skapas (standardvärde)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Kontrollera överskrivning:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "försök verifiera arkivet efter det skapats" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "ta bort filer efter de sparats i arkivet" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "ersätt inte befintliga filer vid extrahering" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "ersätt inte befintliga filer som är nyare än de som finns i arkivet" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "skriv över befintliga filer vid extrahering" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "ta bort befintliga filer innan de nya extraheras" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "töm kataloghierarkier före extrahering av katalog" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "bevara befintliga katalogers metadata" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "skriv över metadata för befintliga kataloger vid extrahering (standardvärde)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Välj utdataström:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "extrahera filer till standard ut" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "KOMMANDO" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "extrahera filer till standard in för ett annat program" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "ignorera barnprocessers slutstatus" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "behandla slutstats från barnprocesser skiljt ifrån noll som fel" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Hantering av filattribut:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "sätt NAMN som ägare för adderade filer" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "sätt NAMN som grupp för adderade filer" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATUM-ELLER-FIL" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "sätt modifieringstid på adderade filer från DATUM-ELLER-FIL" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "RÄTTIGHET" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "sätt (symbolisk) RÄTTIGHET för adderade filer" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METOD" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1560,28 +1601,33 @@ msgstr "" "tiderna efter läsning (METOD=\"replace\", standardvärde) eller genom att " "inte sätta tiderna alls (METOD=\"system\")" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "extrahera inte filers modifieringstid" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "försök extrahera filer med samma ägare som i arkivet" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "" +"försök extrahera filer med samma ägare som i arkivet (standardvärde för " +"superanvändaren)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "extrahera filer med dig själv som ägare" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "" +"extrahera filer med dig själv som ägare (standardvärde för vanliga användare)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "använd alltid tal för användar- och gruppnamn" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "extrahera information om filrättigheter (standardvärde för superanvändare)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1589,15 +1635,15 @@ msgstr "" "applicera användarens umask när rättigheter extraheras från arkivet " "(standardvärde för vanliga användare)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "sortera namn som ska extraheras så de passar ihop med arkivet" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "samma som både -p och -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1605,139 +1651,139 @@ msgstr "" "fördröj sättandet av modifikationstider och rättigheter på extraherade " "kataloger till slutet på arkivextraheringen." -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "ta bort effekten av flaggan --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Enhetsval och enhetsbyte:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARKIV" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "använd arkivfil eller enhet ARKIV" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "arkivfilen är lokal även om namnet har kolon" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "använd KOMMANDO istället för rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "använd KOMMANDO istället för rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "ange enhet och densitet" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "skapa/visa/extrahera ett flervolymsarkiv" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "byt band efter det att NUMMER x 1024 byte skrivits" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "kör kommandofil vid slutet av varje band (flaggan -M sätts också)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "använd/uppdatera volymnummer i FIL" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Blockhantering:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOCK" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "BLOCK x 512 byte per post" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "NUMMER byte per post, multipel av 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "ignorera block med enbart nolltecken (betyder filslut)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "omblocka vid läsning (för 4.2BSD-rör)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Val av arkivformat:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "skapa ett arkiv med givet format" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT är ett av följande:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "gammalt V7 format" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU-format enligt tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU-format från tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) format" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) format" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "samma som pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "samma som --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "samma som --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "nyckelord[[:]=värde][,nyckelord[[:]=värde], ...]" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "ange nyckelord för pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "NAMN" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1745,102 +1791,76 @@ msgstr "" "skapa ett arkiv med volymnamnet NAMN. Vid visning/extrahering är NAMN ett " "skalmönster (\"globbing\")" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Komprimeringsflaggor:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "använd arkivsuffix för att bestämma komprimeringsprogram" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "använd inte arkivsuffix för att bestämma komprimeringsprogram" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "filtrera arkivet genom bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "filtrera arkivet genom gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "filtrera arkivet genom compress" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "filtrera arkivet genom lzma" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "filtrera arkivet genom lzop" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "filtrera arkivet genom gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "filtrera genom PROG (måste förstå -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Filval:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "lägg till angiven FIL till arkivet (användbart om FIL börjar med \"-\")" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "KATALOG" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "byt katalog till KATALOG" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "hämta namn att extrahera från FIL" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T läser namn åtskilda med nolltecken, -C obrukbar" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "ta bort effekten av föregående --null-flagga" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "avcitera filnamn som lästs med -T (standardvärde)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "avcitera inte filnamn som lästs med -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "MÖNSTER" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "utelämna filer som matchar MÖNSTER" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "utelämna filer som matchar mönster i FIL" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1848,87 +1868,91 @@ msgstr "" "utelämna innehållet i kataloger som innehåller CACHEDIR.TAG, förutom " "CACHEDIR.TAG själv" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "utelämna allt i kataloger som innehåller CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "utelämna kataloger som innehåller CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "utelämna innehållet i kataloger som innehåller FIL, förutom FIL själv" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "utelämna allting i kataloger som innehåller FIL" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "utelämna kataloger som innehåller FIL" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "uteslut kataloger från versionshanteringssystem" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "exkludera säkerhetskopior och låsfiler" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "gå inte automatiskt ned i kataloger" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "byt inte filsystem när arkivet skapas" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "gå rekursivt ned i kataloger (standardvärde)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "tag inte bort inledande \"/\" från namn" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "följ symboliska länkar, arkivera filerna de pekar på" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "följ hårda länkar, arkivera filerna de pekar på" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "NAMN" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "börja med fil NAMN i arkivet" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "arkivera bara filer nyare än DATUM-ELLER-FIL" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATUM" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "jämför datum och tid endast för dataändringar" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "KONTROLL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "gör säkerhetskopior före borttagning, välj typ av versionshantering" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "STRÄNG" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1937,91 +1961,99 @@ msgstr "" "säkerhetskopieändelsen (\"~\" om inte ändrad med miljövariabeln " "SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Filnamnstransformationer:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "ta bort NUMMER stycken inledande komponenter från filnamn före extrahering" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "UTTRYCK" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "använd seds ersättnings-UTTRYCK för att transformera filnamn" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Flaggor för filnamnsmatchning (påverkar både uteslutnings- och " "inkluderingsmönster):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "matcha gemener och versaler lika" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "mönster måste matcha i början på filnamn" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "mönster matchas efter \"/\" i filnamn (standardvärde vid uteslutning)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "matcha gemener och versaler olika (standardvärde)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "använd jokertecken (standardvärde för uteslutning)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "ordagrann strängjämförelse" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "jokertecken matchar inte \"/\"" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "jokertecken matchar \"/\" (standardvärde för uteslutning)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Informativ utskrift:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "visa namn på alla filer som behandlas" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "NYCKELORD" + +#: src/tar.c:740 +msgid "warning control" +msgstr "varningskontroll" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "visa förloppsmeddelande efter varje grupp om NUMMER poster (standardvärde 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "ÅTGÄRD" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "utför ÅTGÄRD vid vare kontrollpunkt" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "visa ett meddelande om inte alla länkar arkiverats" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2032,27 +2064,27 @@ msgstr "" "totalt antal byte när SIGNAL levereras. Tillåta signaler är: SIGHUP, " "SIGQUIT, SIGINT, SIGUSR1 coh SIGUSR2. Namn utan SIG-prefix accepteras också." -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "visa filers modifieringstid i UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "skicka informativa meddelanden till FIL" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "visa blocknummer inom arkivet för varje meddelande" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "fråga efter bekräftelse för varje steg" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "visa standardvärden för \"tar\"" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2060,31 +2092,31 @@ msgstr "" "vid visning eller extrahering, visa varje katalog som inte matchar " "sökkriterium" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "visa fil- eller arkivnamn efter transformering" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STIL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "sätt citatstil för namn. Se nedan för giltiga vären på STIL." -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "citera även tecken i STRÄNG" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "citera inte tecken i STRÄNG" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Kompatibilitetsflaggor:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2092,56 +2124,62 @@ msgstr "" "vid skapande, samma som --old-archive. Vid extrahering, samma som --no-same-" "owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Andra flaggor:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "begränsa användningen av eventuellt farliga flaggor" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "Du kan endast ange en av flaggorna \"-Acdtrux\"" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "Du kan endast ange en av flaggorna \"-Acdtrux eller \"--test-label\"" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Motstridiga komprimeringsflaggor" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Okänt signalnamn: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Tidsfil hittades inte" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Använder %s istället för okänt datumformat %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Flagga %s: Tolkar tidsangivelse \"%s\" som %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: fillistan redan läst" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: filnamnet som lästes innehåller nolltecken" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "filtrera arkivet genom %s" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "Giltiga argument till flaggan --quoting-style är:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2149,48 +2187,51 @@ msgstr "" "\n" "*Denna* tar har standardvärdena:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Ogiltig blockfaktor" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Ogiltig bandlängd" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "Felaktigt värde fär inkrementell nivå" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Mer än en datumgräns" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Ogiltig version för filer med hål" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' stöds inte på denna plattform" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "--checkpoint-värdet är inte ett heltal" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: Ogiltig grupp" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "Ogiltig grupp" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Ogiltiga rättigheter givna för flagga" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Ogiltigt nummer" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Ogiltig ägare" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2198,111 +2239,115 @@ msgstr "" "Flaggan --preserve är föråldrad, använd --preserve-permissions --preserve-" "order istället" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Ogiltig poststorlek" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Poststorlek måste vara en multipel av %d" -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Ogiltig antal element" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Endast en --to-command flagga tillåten" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Ogiltig densitetsangivelse: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Okänd densitet: \"%c\"" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Flaggorna \"-[0-7][lmh]\" stöds inte av *detta* tar-program" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FIL]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Gammal flagga \"%c\" kräver ett argument" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence är meningslöst utan en fillista" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence kan inte användas i det begärda operationsläget." -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Multipla arkivfiler kräver \"-M\" flaggan" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Kan inte kombinera --listed-incremental med --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "-level är meningslös utan --listed-incremental" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Volymnamn är för långt (maxlängd är %lu byte)" msgstr[1] "%s: Volymnamn är för långt (maxlängd är %lu byte)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Flervolymsarkiv kan inte verifieras" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Komprimerade arkiv kan inte verifieras" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Kan inte använda komprimerade flervolymsarkiv" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Komprimerade arkiv kan inte slås samman" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option kan bara användas på POSIX-arkiv" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "Volymlängden kan inte vara mindre än poststorleken" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "--preserve-order är inte kompatibel med --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Vägrar fegt att skapa ett tomt arkiv" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Flaggorna \"-Aru\" är inkompatibla med \"-f -\"" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "Du måste ange en av flaggorna \"-Acdtrux\"" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "Du måste ange en av flaggorna \"-Acdtrux\" eller --test-label" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Avslutar med felstatus på grund av tidigare fel" @@ -2314,79 +2359,83 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Filen krympte med %s byte" msgstr[1] "%s: Filen krympte med %s byte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Nyckelordet %s är okänt eller inte ännu implementerat" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "Tidsstämpel är utanför giltigt intervall" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Mönster %s kan inte användas" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Nyckelord %s kan inte ersättas" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Felaktigt utökat huvud: längd saknas" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Längd på utökat huvud är utanför giltigt intervall" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Längd %.*s på utökat huvud är utanför giltigt intervall" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Felaktigt utökat huvud: blanktecken efter längdangivelse saknas" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Felaktigt utökat huvud: likamedtecken saknas" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Felaktigt utökat huvud: nyrad saknas" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Ignorerar nykelord \"%s\" i utökat huvud" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Genererat nyckel/värde-par är för långt (nyckel=%s, längd=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Utökat huvud %s=%s är utanför intervallet %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Felaktigt utökat huvud: ogiltig %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Felaktigt utökat huvud: för många %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Felaktigt utökat huvud: ogiltigt %s: oväntad avskiljare %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Felaktigt utökat huvud: ogiltigt %s: udda antal värden" @@ -2427,7 +2476,7 @@ msgstr "Kontrollpunkt för skrivning %u" msgid "Read checkpoint %u" msgstr "Kontrollpunkt för läsning %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2435,85 +2484,89 @@ msgstr "" "genfile bearbetar datafiler i testsviten för GNU paxutils.\n" "FLAGGOR är:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Flaggor för filskapande:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "STORLEK" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Skapa ett arkiv med given STORLEK" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Skriv till NAMN istället för till standard ut" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Läs filnamn från FIL" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T läser namn åtskilda med nolltecken" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Fyll filen med givet MÖNSTER. MÖNSTER är \"default\" eller \"zeros\"" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Storlek för ett block för filer med hål" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Generera fil med hål. Resten av kommandoraden ger filmappningen." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "POSITION" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Flytta till given position innan data skrivs" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Flaggor för filstatistik:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Skriv innehållet i \"struct stat\" för varje given fil. Standardvärde på " "FORMAT är:" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Flaggor för synkron exekvering:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "FLAGGA" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"Kör givet KOMMANDO. Användbart med --checkpoint och en av --cut, --append, --" -"touch" +"Kör ARGUMENT. Användbart med --checkpoint och en av --cut, --append, --" +"touch, --unlink" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Utför angiven åtgärd (se nedan) när kontrollpunkt NUMMER nås" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Sätt datum för nästa --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Visa exekverade kontrollpunkter och slutstatus på KOMMANDO" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2521,7 +2574,7 @@ msgstr "" "Synkront exekverade åtgärder. Dessa exekveras när kontrollpunktnumret givet " "av flaggan --checkpoint nås." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2529,138 +2582,145 @@ msgstr "" "Trunkera FIL till storleken given av föregående flaggan --length (eller 0 om " "den inte är given)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Lägg till STORLEK byte till FIL. STORLEK är given av föregående flagga --" "length." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Uppdatera access- och modifikationstider för FIL" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Exekvera KOMMANDO" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "Ta bort (unlink) FIL" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ogiltigt storlek: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Nummer utanför giltigt intervall: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negativ storlek: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "status (stat) kunde ej tas på %s" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "begärd fillängd %lu, verklig %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "skapad fil har inte hål" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Fel vid parsning av tal nära \"%s\"" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Okänt datumformat" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGUMENT...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "kan inte öppna \"%s\"" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "kan inte flytta (seek)" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "filnamnet innehåller nolltecken" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "kan inte skapa filer med hål till standard ut, använd flaggan --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "felaktig mask (nära \"%s\")" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Okänt fält \"%s\"" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "kan inte sätta tid på \"%s\"" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "kan inte ta bort \"%s\"" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Kommandot avslutades utan fel\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Kommandot misslyckades med slutstatus %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Kommandot terminerades av signal %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Kommandot stoppades av signal %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Kommandot dumpade minnet\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Kommandot avslutade\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat kräver filnamn" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "för många argument" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "Kan inte slå upp värdnamn %s" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Varning: flaggan -I stöds inte, du kanske menade -j eller -T?" +#~ msgid "suppress this warning." +#~ msgstr "att undertrycka denna varning." diff --git a/po/tar.pot b/po/tar.pot index 0e60492bb03dd8fa3b7656fa01d7ddfa2eafb0d2..64ca8194801b13fc7e7f1c66a53173fc32185ed6 100644 --- a/po/tar.pot +++ b/po/tar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\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" @@ -17,281 +17,189 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr "" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr "" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" +msgid "%s: option '%s' is ambiguous\n" msgstr "" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" +msgid "%s: option '%s' requires an argument\n" msgstr "" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" msgstr "" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" msgstr "" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" +msgid "%s: invalid option -- '%c'\n" msgstr "" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" msgstr "" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" msgstr "" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -msgid "%s: option `-W %s' is ambiguous\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -msgstr[1] "" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "" -msgstr[1] "" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "" -msgstr[1] "" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -305,17 +213,17 @@ msgstr "" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "" @@ -325,7 +233,7 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "" @@ -335,38 +243,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "" -#: lib/rtapelib.c:299 +#: gnu/version-etc.c:76 #, c-format -msgid "exec/tcp: Service not available" +msgid "Packaged by %s (%s)\n" msgstr "" -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:79 #, c-format -msgid "stdin" -msgstr "" - -#: lib/rtapelib.c:306 -#, c-format -msgid "stdout" -msgstr "" - -#: lib/rtapelib.c:512 -#, c-format -msgid "Cannot execute remote shell" +msgid "Packaged by %s\n" msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -377,19 +275,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -397,7 +295,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -407,7 +305,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -417,7 +315,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -427,7 +325,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -437,7 +335,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -448,7 +346,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -459,7 +357,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -471,173 +369,319 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "Report %s bugs to: %s\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" msgstr "" -#: rmt/rmt.c:142 -msgid "Input string too long" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: rmt/rmt.c:161 -msgid "Number syntax error" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" msgstr "" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" msgstr "" -#: rmt/rmt.c:304 +#: lib/paxerror.c:93 #, c-format -msgid "Try `%s --help' for more information.\n" +msgid "%s: Cannot change mode to %s" msgstr "" -#: rmt/rmt.c:308 +#: lib/paxerror.c:101 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" msgstr "" -#: rmt/rmt.c:397 -msgid "Seek offset error" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" msgstr "" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 -msgid "Seek offset out of range" +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +msgstr[1] "" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "" +msgstr[1] "" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" msgstr "" -#: rmt/rmt.c:428 +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "" +msgstr[1] "" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "" + +#: rmt/rmt.c:413 msgid "Seek direction out of range" msgstr "" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:419 +msgid "Invalid seek direction" msgstr "" -#: rmt/rmt.c:474 -msgid "Premature end of file" +#: rmt/rmt.c:427 +msgid "Invalid seek offset" msgstr "" -#: rmt/rmt.c:672 +#: rmt/rmt.c:433 +msgid "Seek offset out of range" +msgstr "" + +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "" + +#: rmt/rmt.c:539 +msgid "Premature eof" +msgstr "" + +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "" msgstr[1] "" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "" msgstr[1] "" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -645,124 +689,124 @@ msgid "" " y or newline Continue operation\n" msgstr "" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "" msgstr[1] "" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "" @@ -784,34 +828,34 @@ msgstr "" msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "" msgstr[1] "" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "" @@ -830,435 +874,436 @@ msgstr "" msgid "%s: link name is too long; not dumped" msgstr "" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "" msgstr[1] "" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr "" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "" -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr "" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr "" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "" -#: src/misc.c:711 -msgid "child process" +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" msgstr "" -#: src/misc.c:720 -msgid "interprocess channel" +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" msgstr "" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/misc.c:795 +msgid "child process" msgstr "" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/misc.c:804 +msgid "interprocess channel" msgstr "" -#: src/names.c:597 -msgid "suppress this warning." +#: src/names.c:601 +msgid "Pattern matching characters used in file names" +msgstr "" + +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "" -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1269,7 +1314,7 @@ msgid "" " tar -xf archive.tar # Extract all files from archive.tar.\n" msgstr "" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1281,86 +1326,79 @@ msgid "" " never, simple always make simple backups\n" msgstr "" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "" -#: src/tar.c:408 -msgid "do not exit with nonzero on unreadable files" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" msgstr "" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" +#: src/tar.c:426 +msgid "do not exit with nonzero on unreadable files" msgstr "" -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1368,565 +1406,558 @@ msgid "" "command line or via the -T option; NUMBER defaults to 1" msgstr "" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" msgstr "" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "" - -#: src/tar.c:613 -msgid "filter the archive through xz" -msgstr "" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +msgid "warning control" +msgstr "" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1934,269 +1965,282 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +msgid "Invalid group" msgstr "" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "" -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "" msgstr[1] "" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2208,79 +2252,83 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "" msgstr[1] "" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" @@ -2321,225 +2369,233 @@ msgstr "" msgid "Read checkpoint %u" msgstr "" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "" - -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "" diff --git a/po/tr.gmo b/po/tr.gmo index d19ac165eb734ea31bf95f26c58fdfe3e7bf58fc..278eeef00f2f5898420aff881793403449b02a08 100644 Binary files a/po/tr.gmo and b/po/tr.gmo differ diff --git a/po/tr.po b/po/tr.po index 0abdde883c073c2f729e344d217a432ad9ca10da..d9af5cd7b1d16a0f329b63a06963d0d9d4066cd1 100644 --- a/po/tr.po +++ b/po/tr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: tar 1.18\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" "PO-Revision-Date: 2007-07-09 11:30+0300\n" "Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n" "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n" @@ -16,47 +16,47 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "`%2$s' için %1$s argümanı geçersiz" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "`%2$s' için %1$s argümanı belirsiz" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Geçerli argümanlar:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s değeri %s değerinden küçük ya da ona eşit" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT parametresi bir değer gerektirir" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT parametresi pozitif olmalı" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: ARGP_HELP_FMT ile belirtilen parametre bilinmiyor" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "ARGP_HELP_FMT bozuk: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -64,239 +64,145 @@ msgstr "" "Uzun seçenekler için zorunlu veya isteğe bağlı olan argümanlar kısa " "seçenekler için de geçerlidir." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Kullanımı:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " veya: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [SEÇENEK...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Daha fazla bilgi için `%s --help' veya `%s --usage' yazın.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "" "Yazılım hatalarını <%s> adresine,\n" "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Bilinmeyen sistem hatası" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "bu yardım iletisi gösterilir" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "kısa bir kullanım iletisi gösterilir" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "İSİM" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "uygulama ismi" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "SAN" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "SANİYE saniye bekler (öntanımlı 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "sürüm bilgisi gösterilir" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(YAZILIM HATASI) Sürümünü bilmiyor!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: argüman sayısı fazla\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(YAZILIM HATASI) Seçenek tanınmak zorunda!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "" -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" +#: gnu/getopt.c:531 gnu/getopt.c:547 +#, fuzzy, c-format +msgid "%s: option '%s' is ambiguous\n" msgstr "%s: `%s' seçeneği belirsiz\n" -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" +#: gnu/getopt.c:580 gnu/getopt.c:584 +#, fuzzy, c-format +msgid "%s: option '--%s' doesn't allow an argument\n" msgstr "%s: `--%s' seçeneği argümansız kullanılır\n" -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" msgstr "%s: seçenek `%c%s' argümansız kullanılır\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n" -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" msgstr "%s: `--%s' seçeneği bilinmiyor\n" -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" +#: gnu/getopt.c:709 gnu/getopt.c:712 +#, fuzzy, c-format +msgid "%s: unrecognized option '%c%s'\n" msgstr "%s: `%c%s' seçeneği bilinmiyor\n" -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: kuraldışı seçenek -- %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" +#: gnu/getopt.c:761 gnu/getopt.c:764 +#, fuzzy, c-format +msgid "%s: invalid option -- '%c'\n" msgstr "%s: geçersiz seçenek -- %c\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" msgstr "%s: seçenek bir argümanla kullanılır -- %c\n" -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" msgstr "%s: `-W %s' seçeneği belirsiz\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' seçeneği argümansız kullanılır\n" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "bellek tükendi" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, fuzzy, c-format msgid "unable to record current working directory" msgstr "Çalışma dizini değiştirilemez" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, fuzzy, c-format msgid "failed to return to initial working directory" msgstr "Çalışılan dizin kaydedilemez" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: %s olanaksız" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Uyarı: %s olanaksız" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Kip %s olarak değiştirilemez" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "" -"%s: Dosya sahipliği, Kullanıcı-kimlik %lu ve Grup-kimlik %lu olarak " -"değiştirilemez." - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: %s'e sabit bağ kurulamıyor" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%1$s: %3$lu bayt okunurken %2$s. baytta okuma hatası" -msgstr[1] "%1$s: %3$lu bayt okunurken %2$s. baytta okuma hatası" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%1$s: Uyarı: %3$lu bayt okunurken %2$s. baytta okuma hatası" -msgstr[1] "%1$s: Uyarı: %3$lu bayt okunurken %2$s. baytta okuma hatası" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: %s e gidilemiyor" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Uyarı: %s e gidilemiyor" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: %s'e sembolik bağ oluşturulamıyor" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%1$s: %3$lu baytın sadece %2$lu baytı yazıldı" -msgstr[1] "%1$s: %3$lu baytın sadece %2$lu baytı yazıldı" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Üye isimlerinden `%s' kaldırılıyor" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Sabit bağ hedeflerinden `%s' kaldırılıyor" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Boş üye ismi için `.' ikamesi" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Boş sabit bağ hedefi için `.' ikamesi" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -310,17 +216,17 @@ msgstr "Boş sabit bağ hedefi için `.' ikamesi" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -330,7 +236,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[eEyY]" @@ -340,38 +246,28 @@ msgstr "^[eEyY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[hHnN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Servis yok" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdG" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdÇ" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Uzak kabuk çalıştırılamıyor" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -382,19 +278,19 @@ msgid "" msgstr "" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "" @@ -402,7 +298,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -412,7 +308,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -422,7 +318,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +328,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -442,7 +338,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -453,7 +349,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -464,7 +360,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -476,181 +372,333 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "" +"Yazılım hatalarını <%s> adresine,\n" +"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" "Yazılım hatalarını <%s> adresine,\n" "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "" + +#: gnu/version-etc.c:255 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: %s olanaksız" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Uyarı: %s olanaksız" + +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Kip %s olarak değiştirilemez" + +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" msgstr "" +"%s: Dosya sahipliği, Kullanıcı-kimlik %lu ve Grup-kimlik %lu olarak " +"değiştirilemez." + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: %s'e sabit bağ kurulamıyor" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%1$s: %3$lu bayt okunurken %2$s. baytta okuma hatası" +msgstr[1] "%1$s: %3$lu bayt okunurken %2$s. baytta okuma hatası" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%1$s: Uyarı: %3$lu bayt okunurken %2$s. baytta okuma hatası" +msgstr[1] "%1$s: Uyarı: %3$lu bayt okunurken %2$s. baytta okuma hatası" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Girdi dizgesi çok uzun" +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: %s e gidilemiyor" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Sayısal sözdizimi hatası" +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Uyarı: %s e gidilemiyor" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Tampon alanı ayrılamıyor\n" +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: %s'e sembolik bağ oluşturulamıyor" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Tampon alanı ayrılamıyor" +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%1$s: %3$lu baytın sadece %2$lu baytı yazıldı" +msgstr[1] "%1$s: %3$lu baytın sadece %2$lu baytı yazıldı" -#: rmt/rmt.c:304 +#: lib/paxnames.c:155 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Daha fazla bilgi için `%s --help' yazın.\n" +msgid "Removing leading `%s' from member names" +msgstr "Üye isimlerinden `%s' kaldırılıyor" -#: rmt/rmt.c:308 +#: lib/paxnames.c:156 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "Removing leading `%s' from hard link targets" +msgstr "Sabit bağ hedeflerinden `%s' kaldırılıyor" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Boş üye ismi için `.' ikamesi" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Boş sabit bağ hedefi için `.' ikamesi" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Servis yok" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdG" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdÇ" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Kullanımı: %s [SEÇENEK]\n" -"Bir teybi uzak bağlantı üzerinden komut kabul ederek çalıştırır.\n" -"\n" -" --version Sürümü basar.\n" -" --help Bu iletiyi basar.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Arama başlangıcı hatası" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Uzak kabuk çalıştırılamıyor" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Arama yönü kapsamdışı" + +#: rmt/rmt.c:419 +#, fuzzy +msgid "Invalid seek direction" +msgstr "Seçenekte verilen kip geçersiz" + +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "Geçersiz boyut: %s" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Arama başlangıcı kapsamdışı" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Arama yönü kapsamdışı" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "Kayıt ortamının uzunluğu geçersiz" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "Arama başlangıcı kapsamdışı" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd: Dosya sonu belirsiz\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Dosya sonu belirsiz" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "Ana işlem kipi:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "Arşivde beklenmeyen dosya sonu" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "SAYI" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "DOSYA" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "`%s' açılamıyor" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "argüman sayısı çok fazla" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Bozuk komut" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Bu bir tar arşivi gibi görünmüyor" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Yazılan toplam bayt" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Okunan toplam bayt" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Silinen toplam bayt: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(boru)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "record_size için geçersiz değer" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Arşiv ismi verilmemiş" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "stdG/stdÇ arşivi doğrulanamaz" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Aeşiv sıkıştırılmış. %s seçeneğini kullanın" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Sıkıştırılmış arşivler güncellenemez" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Bandın başlangıcında, şimdilik çıkıyor" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Çok hata var, çıkıyor" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Kayıt uzunluğu = %lu blok" msgstr[1] "Kayıt uzunluğu = %lu blok" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Arşivde hizalanmamış blok (%lu bayt)" msgstr[1] "Arşivde hizalanmamış blok (%lu bayt)" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Arşiv dosyası geri alınamaz; -i olmaksızın okunamayabilir" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek bir kaydın sınırında durmadı" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: geçersiz bölüm numarası içeriyor" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Bölüm numarası kapsamdışı" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "#%d. bölümü %s için hazırlamak istiyorsanız return tuşuna basınız: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Kullanıcı cevabı beklenirken dosya sonuna gelindi" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "UYARI: Arşiv eksik" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -661,126 +709,126 @@ msgstr "" " q Uygulama sonlandırılır\n" " y veya <enter> İşlem sürdürülür\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! bir alt kabuk açılır\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Bu listeyi basar\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Yeni bölüm yok; çıkıyor.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Dosya ismi belirtilmemiş. Tekrar deneyin.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Girdi geçersiz, Yardım için ? yazın.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "%s komutu başarısız" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s belki de bu bölümde devam ediyor: başlıktaki isim kırpılmış" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s bu bölümde devam etmiyor" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s yanlış uzunluk (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Bu bölüm sıralama dışı" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Arşiv etiketi %s ile eşleşmiyor" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "%s bölümü %s ile eşleşmiyor" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" "%s: dosya ismi GNU çoklu bölüm başlığında saklanamayacak kadar uzun, kırpıldı" -#: src/buffer.c:1621 +#: src/buffer.c:1749 #, fuzzy msgid "write did not end on a block boundary" msgstr "rmtlseek bir kaydın sınırında durmadı" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Sadece %2$lu baytın %1$lu baytı okunabildi" msgstr[1] "Sadece %2$lu baytın %1$lu baytı okunabildi" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "İçerikler farklı" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Arşivde beklenmeyen dosya sonu" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Dosya türleri farklı" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Kipleri farklı" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Kullanıcı-kimlikler farklı" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Grup-kimlikler farklı" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Değişiklik zamanları farklı" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Uzunlukları farklı" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "%s'e bağlı değil" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Sembolik bağlar farklı" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Aygıt numaraları farklı" @@ -802,35 +850,35 @@ msgstr "Arşivdeki dosya isimleri dosya yolu içermiyor." msgid "Verification may fail to locate original files." msgstr "Doğrulama, özgün dosyaların konumlanmasında başarısız olabilir." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "DOĞRULAMA BAŞARISIZ: %d geçersiz başlık saptandı" msgstr[1] "DOĞRULAMA BAŞARISIZ: %d geçersiz başlık saptandı" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "%s de tek başına sıfır bloğu" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: %s arabellekleme dizini yaftasını içeriyor; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" "%1$s değeri, %3$s..%4$s aralığının %2$s dışında; yerine %5$s kullanılıyor" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "%1$s değeri, %3$s..%4$s aralığının %2$s dışında" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Negatif sekizlik başlık üretiliyor" @@ -849,289 +897,275 @@ msgstr "%s: dosya ismi çok uzun (parçalanamıyor); dökümlenmedi" msgid "%s: link name is too long; not dumped" msgstr "%s: bağ ismi çok uzun; dökümlenmedi" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Dosya %s baytta kaldı; sıfırlarla dolduruluyor" msgstr[1] "%s: Dosya %s baytta kaldı; sıfırlarla dolduruluyor" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: dosya farklı bir dosya sisteminde; dökümlenmedi" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "içerik dökümlenmedi" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Bilinmeyen dosya türü; dosya yoksayıldı" -#: src/create.c:1464 -#, c-format -msgid "Missing links to %s.\n" +#: src/create.c:1472 +#, fuzzy, c-format +msgid "Missing links to %s." msgstr "%s için bağlar kayıp.\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: dosya değişmedi; dökümlenmedi" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" -msgstr "%s: dosya arşivdir; dökümlenmedi" - -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Dosya okunamadan kaldırıldı" +msgstr "%s: dosya arşivdir; dökümlenmedi" -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "dizin dökümlenmedi" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: dosya okundu olarak imlendi" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: soket yoksayıldı" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: kapı yoksayıldı" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Sonraki başlığa atlanıyor" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Arşivden başlık-olmayan siliniyor" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: makul olmayan eski tarih damgası %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: zaman damgası %s %s s gelecekte" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Dizin oluşturulurken anlaşılamayan uyumsuzluk" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: durumu çıkarılamadan dizin ismi değiştirildi" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Bitişik dosyaları normal dosyalar olarak çıkarıyor" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Sembolik bağlar, sabit bağlar olarak çıkarılmaya çalışılıyor" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "%s okunuyor\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Dosya çıkarılamaz -- dosyanın başı diğer bölümde" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Umulmadık uzun isim başlığı" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Bilinmeyen dosya türü '%c', normal dosya olarak çıkartılıyor" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Mevcut %s daha yeni ya da yaşıt" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Bu dosyayı yedeklemek mümkün olmadı" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "%s ismi %s olarak değiştirilemez" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Hata kurtarılabilir değil: şimdilik çıkılıyor" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Dizinin eski adı %s idi" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Dizin adı değiştirilmişti" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Dizin yeni" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Geçersiz zaman damgası" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Değişiklik zamanı (saniye cinsinden) geçersiz" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Değişiklik zamanı (nanosaniye cinsinden) geçersiz" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Geçersiz aygıt numarası" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Geçersiz düğüm numarası" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Anlık görüntü dosyası okunurken alan çok uzun" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Anlık görüntü dosyasında okuma hatası" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Anlık görüntü dosyasında beklenmeyen dosya sonu" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Anlık görüntü dosyasında beklenmeyen alan değeri" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Kayıt sonlandırıcı eksik" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Arttırımlı dosya biçimi hatalı" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Desteklenmeyen arttırımlı biçim sürümü: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "dumpdir bozuk: umulan '%c' ama bulunan %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "dumpdir bozuk: 'X' yinelenmiş" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "dumpdir bozuk: 'R'deki isim boş" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "dumpdir bozuk: 'T' 'R' ile öncelenmemiş" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "dumpdir bozuk: 'T'deki isim boş" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "dumpdir bozuk: umulan'%c' ama bulunan veri sonu" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "dumpdir bozuk: 'X' hiç kullanılmamış" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "%s şablonu kullanılarak geçici dizin oluşturulamıyor" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: dizin temizlenmiyor: durumlama yapılamadı" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: dizin farklı bir aygıtta: temizlenmiyor" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: %s siliniyor\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Kaldırılamaz" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Geçiliyor" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** NUL bloku **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Dosya Sonu **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "blok %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Sayısal %s değeri beklenirken başlıkta boşluklar bulundu" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1139,141 +1173,158 @@ msgstr "" "ediliyor" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Arşiv sekizlik değeri %.*s aralığın %s dışında" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Arşiv atıl base-64 başlıklar içeriyor" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Arşiv imzalı base-64 dizge %s, %s aralığının dışında" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Arşiv base-256 değeri %s aralığının dışında" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arşiv %.*s içeriyor, halbuki orada sayısal %s değeri bekleniyor" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Arşiv değeri %s %s türünün %s..%s aralığının dışında" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " bağı -> %s \n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " bilinmeyen dosya türü %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Uzun Bağ--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Uzun İsim--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Bölüm Başlığı--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Devamı bayt %s de--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Oluşturulan dizin:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "%s %s olarak değiştiriliyor\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: İsmi %s olarak değiştirilemez" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Gerisin geriye %s %s olarak değiştiriliyor\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Çalışılan dizin kaydedilemez" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Çalışma dizini değiştirilemez" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Dosya okunamadan kaldırıldı" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Dosya okunamadan kaldırıldı" + +#: src/misc.c:795 msgid "child process" msgstr "alt süreç" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "süreçlerarası kanal" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Kalıp eşleme karakterleri dosya isimlerinde kullanılmış. Lütfen," -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "ya kalıp eşlemeyi etkin kılmak için --wildcards kullanın," -#: src/names.c:597 -msgid "suppress this warning." -msgstr "ya da bu uyarıyı engellemek için --no-wildcards kullanın." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Arşivde yok" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Arşivde bulunması gerekirken yok" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "`-%s' ve `-%s' seçeneklerinin ikisi de standart girdi istiyor" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Geçersiz arşiv biçimi" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "GNU özellikleri ile uyumsuz arşiv biçimi" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1281,7 +1332,7 @@ msgstr "" "Sarmalama şekli `%s' bilinmiyor. Listeyi almak için `%s --quoting-" "style=help' yazın." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1300,7 +1351,7 @@ msgstr "" " tar -tvf arşiv.tar # arşiv.tar içindeki dosyalar listelenir\n" " tar -xf arşiv.tar # arşiv.tar'dan tüm dosyalar çıkarılır\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1321,86 +1372,79 @@ msgstr "" " nil, existing numaralıysa numaralı, değilse basit yedekleme yapılır\n" " never, simple daima basit yedekleme yapılır\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Ana işlem kipi:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "bir arşiv içeriğini listeler" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "bir arşivdeki dosyaları çıkarır" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "yeni bir arşiv oluşturur" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "arşiv ile dosya sistemi arasındaki farklar bulunur" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "dosyaları arşivin sonuna ekler" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "sadece arşivdeki kopyasından daha yeni dosyalar eklenir" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "bir arşive tar dosyaları ekler" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "arşivden siler (teyplerde değil!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "arşiv bölüm etiketini sınar ve çıkar" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "İşlem değiştiriciler:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "seyrek dosyalar verimli şekilde elde edilir" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "ANA[.ALT]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "kullanılacak seyrek biçim sürümü ayarlanır (--sparse uygular)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "GNU eski tarz arttırımlı yedekleme tanınır" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "DOSYA" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "GNU yeni tarz arttırımlı yedekleme tanınır" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "dosyalar okunamadığında sıfırdan farklı bir değerle çıkılmaz" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "SAYI" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1412,117 +1456,121 @@ msgstr "" "ve dosyaların listelenmesi sırasında ya komut satırından ya da -T seçeneği " "üzerinden belirtilir. SAYI öntanımlı olaral 1'dir." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "arşiv arama yapılabilen türde" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "arşiv arama yapılabilen türde" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Üsteyazma denetimi:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "yazdıktan sonra arşivi doğrulamaya çalışır" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "arşive eklendikten sonra dosyalar silinir" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "çıkarılırken mevcut dosyalar değiştirilmez" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "arşivdeki kopyalaraından daha yeni dosyalar değiştirilmez" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "çıkarılırken mevcut dosyaların üzerine yazılır" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "çıkarılmadan önce mevcut dosya silinir" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "dizin çıkarılmadan önce alt dizinleri silinir" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "mevcut dizinlerin öznitelikleri korunur" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "çıkarılırken mevcut dizinlerin metaverisinin üzerine yazılır (öntanımlı)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Çıktı akımını seçiniz:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "dosyalar standart çıktıya çıkarılır" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "KOMUT" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "çıkarılan dosyaları başka bir uygulamaya borular" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "altsüreçlerin çıkış kodları yoksayılır" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "altsüreçlerin çıkış kodları sıfırdan farklıysa hata olarak ele alınır" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Dosya özniteliklerinin elde edilmesi:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "İSİM eklenen dosyaların sahibi yapılır" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "İSİM eklenen dosyaların grubu yapılır" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DOSYA-TARİHİ" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "DOSYA-TARİHİnde eklenen dosyalar için mtime ayarlanır" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "KİP" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "KİP eklenen dosyaların (sembolik) kipi yapılır" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "YÖNTEM" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1532,28 +1580,32 @@ msgstr "" "değerine getirerek (YÖNTEM='replace' öntanımlıdır) ya da ilk yerindeki " "zamanı değiştirmeyerek (YÖNTEM='system')." -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "dosya değişiklik zamanı çıkarılmaz" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "sahibi aynı olan dosyalar çıkarılmaya çalışılır" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "dosyalar sizin sahipliğinizde çıkarılır" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "kullanıcı/grup isimleri yerine daima numaraları kullanılır" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "dosya izinleri ile ilgili bilgileri çıkarır (root kullanıcısı için öntanımlı)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1561,15 +1613,15 @@ msgstr "" "arşivden çıkarılırken izinlere kullanıcıların umask'ı uygulanır (sıradan " "kullanıcılar için öntanımlı)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "isimler arşivdeki sırasına göre çıkarılır" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "-p ve -s birlikte verilmiş gibi olur" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1577,139 +1629,139 @@ msgstr "" "herşey çıkarılana kadar çıkarılan dizinlerin izinleri ve değişiklik " "zamanlarının değiştirilmesi geciktirilir" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "--delay-directory-restore seçeneğinin etkisi iptal edilir." -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Aygıt seçimi ve aygıt değiştirme:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARŞİV" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "arşiv dosyası ya da ARŞİV aygıtı kullanılır" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "bir iki nokta üstüste içerse bile arşiv dosyası yereldir" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "rmt yerine rmt KOMUT kullanılır" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "rsh yerine uzak uçta KOMUT kullanılır" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "sürücü ve yoğunluk belirtilir" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "çok bölümlü arşivi oluşturur/listeler/çıkarır" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "SAYI x 1024 bayt yazıldıktan sonra band değiştirilir" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "her bandın sonunda betiği çalıştırır (-M uygular)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "DOSYAda bölüm numarası kullanılır/güncellenir" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Aygıtın blok düzeni:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOK" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "kayıt başına BLOK x 512 bayt" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "512'nin katları olarak kayıt başına BOYUT bayt" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "arşivdeki sıfırlı bloklar yoksayılır (dosyasonu anlamında)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "okunmuş olarak yeniden bloklanır (4.2 BSD boruları için)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Arşiv biçimi seçimi:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "BİÇİM" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "belirtilen biçimin arşivi oluşturulur." -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "BİÇİM şunlardan biri olabilir:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "eski V7 tar biçimi" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "tar <= 1.12 için GNU biçimi" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x biçimi" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) biçimi" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) biçimi" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "pax ile aynı" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr " --format=v7 ile aynı" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "--format=posix ile aynı" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "isim[[:]=değer][,isim[[:]=değer]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "pax anahtar sözcüklerini denetler" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "METİN" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1717,194 +1769,171 @@ msgstr "" "arşivi METİN bölüm ismiyle oluşturur; listeleme/çıkarma sırasında METİN, " "bölüm ismini genelleme kalıbı olarak kullanılır" -#: src/tar.c:593 +#: src/tar.c:613 #, fuzzy msgid "Compression options:" msgstr "Sıkıştırma seçenekleri çelişiyor" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "arşivi bzip2 üzerinden geçirir" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "arşivi gzip üzerinden geçirir" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "arşivi compress üzerinden geçirir" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "arşivi gzip üzerinden geçirir" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "arşivi gzip üzerinden geçirir" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "arşivi gzip üzerinden geçirir" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "UYG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "arşivi UYG üzerinden geçirir (UYG -d kabul etmeli)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Yerel dosya seçimi:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "belirtilen DOSYA arşive eklenir (isim bir tire ile başlıyorsa kullanışlıdır)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DİZİN" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "DİZİN dizinine geçilir" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "çıkarılacak ya da oluşturulacak isimler DOSYAdan alınır" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T boş karakter sonlandırmalı isimleri okur, -C iptal edilir" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanır" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanmaz" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "ŞABLON" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "belirtilen ŞABLONa uyan dosyalar hariç tutulur" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "DOSYAdaki şablonlara uyan isimler hariç tutulur" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "yafta dosyası hariç, CACHEDIR.TAG içeren dizinler dışlanır" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG içeren dizinlerin altındaki herşey hariç tutulur" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG içeren dizinler hariç tutulur" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "DOSYA'nın kendisi hariç, DOSYA içeren dizinlerin içerikleri hariç tutulur" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "DOSYA içeren dizinlerin altındaki herşey hariç tutulur" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "DOSYA içeren dizinler hariç tutulur" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "dizinlerde özdevinimli olarak azalan sıralamadan kaçınılır" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "arşiv oluşturulurken yerel dosya sisteminde kalınır" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "dizinlerin alt dizinlerine inilir (öntanımlı)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "dosya isimlerinin başındaki `/'lar ayrılmaz" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "sembolik bağlar izlenir; hedeflerindeki dosyalar arşivlenir ve dökümlenir" -#: src/tar.c:668 +#: src/tar.c:686 #, fuzzy msgid "follow hard links; archive and dump the files they refer to" msgstr "" "sembolik bağlar izlenir; hedeflerindeki dosyalar arşivlenir ve dökümlenir" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "ÜYE-İSMİ" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "arşivin ÜYE-İSMİ üyesinden başlanır" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "sadece DOSYA-TARİHİnden daha yeni dosyalar saklanır" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "TARİH" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "sadece veri değişecekse tarih ve saat karşılaştırılır" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "DENETİM" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "kaldırılmadan önce DENETİM sürümü seçilerek yedeklenir" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "DİZGE" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1912,89 +1941,98 @@ msgstr "" "kaldırmadan önce uygun sonekle yedekleme yapılır (SIMPLE_BACKUP_SUFFIX ortam " "değişkeni ile belirlenmemişse sonek olarak '~' kullanılır" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Dosya ismi dönüşümleri:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "çıkarılırken dosya isimlerinden baştaki SAYI bileşen ayrılır" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "İFADE" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "dosya isimleri dönüştürülürken sed değiştirme İFADEsi kullanılır" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Dosya ismi eşleştirme seçenekleri\n" "(içerme ve dışlama kalıplarının her ikisi de etkili):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "harf büyüklükleri önemsenmez" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "dosya isminin başlangıcına uyan kalıplar" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "bir /'dan sonra şablonla eşleşen kalıplar (dışlama için öntanımlı)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "harf büyüklüklerine duyarlı eşleşme (öntanımlı)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "genelleme kalıpları kullanılır (dışlama için öntanımlı)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "birebir dizge eşleme" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "'/' ile eşleşmeyen genelleme kalıpları" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "'/' ile eşleşen genelleme kalıpları (dışlama için öntanımlı)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Bilgilendirme çıktısı:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "işlenen dosyalar ayrıntılı listelenir" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 +#, fuzzy +msgid "warning control" +msgstr "Üsteyazma denetimi:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "her SAYIncı kayıtta gelişim iletisi gösterilir (öntanımlı: 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "tüm bağlar dökümlenmezse bir ileti basılır" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SiNYAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2005,113 +2043,121 @@ msgstr "" "alındığında bayt toplamını basar; İzin verilen sinyaller: SIGHUP, SIGQUIT, " "SIGINT, SIGUSR1 ve SIGUSR2; SIG ile başlamayanları da kabul edilir" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "dosya değişiklik zamanları UTC'ye göre basılır" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "ayrıntılı çıktı DOSYAya gönderilir" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "her iletide arşiv içindeki blok sayısı gösterilir" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "her eylemden önce doğrulama istenir" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "tar öntanımlıları gösterilir" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" "listeleme ya da çıkarma sırasında arama koşuluna uymayan dizinler listelenir" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "dönüşümden sonra dosya ve arşiv isimlerini gösterir" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "ŞEKİL" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "sarmalama şeklinin ismi; geçerli ŞEKİL değerleri için aşağıya bakınız" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "DİZGEdeki sarmalama karakterlerine ek olarak" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "DİZGEdeki karakterler için sarmalamayı iptal eder" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Uyumluluk seçenekleri:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "oluştururken --old-archive ile, çıkarırken --no-same-owner ile aynı" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Diğer seçenekler:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "bozuculuk olasılığı olan bazı seçeneklerin kullanımı iptal edilir" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" msgstr "`-Acdtrux' seçenekleri birden fazla belirtilemez" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Sıkıştırma seçenekleri çelişiyor" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Bilinmeyen sinyal ismi: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Tarih örnekleri dosyası bulunamadı" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Bilinmeyen tarih biçemi %2$s yerine %1$s kullanılıyor" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Seçenek %s: `%s' tarihi %s olarak ele alınıyor" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: dosya listesi zaten okundu" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: okunan dosya ismi boş karakter içeriyor" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "arşivi gzip üzerinden geçirir" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style seçeneği için geçerli değerler:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2119,158 +2165,169 @@ msgstr "" "\n" "*Bu* tar için öntanımlılar:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Bloklama çarpanı geçersiz" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Kayıt ortamının uzunluğu geçersiz" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "Arttırımlı dosya biçimi hatalı" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Birden fazla eşik tarihi" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Seyrek sürüm değeri geçersiz" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' seçeneği bu platformda desteklenmiyor" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "--checkpoint değeri bir tamsayı değil" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s: geçersiz grup" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Seçenekte verilen kip geçersiz" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Sayı geçersiz" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Sahip geçersiz" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Kayıt uzunluğu geçersiz" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Kayıt uzunluğu %d nin katları olmalı" -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Elemen sayısı geçersiz" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Sadece tek bir --to-command seçeneği kullanılabilir" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Hatalı yoğunluk argümanı: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Bilinmeyen yoğunluk: '%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "`-[0-7][lmh]' seçeneği *bu* tar ile desteklenmiyor" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[DOSYA]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Eski seçenek `%c' bir argümanla kullanılır." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence bir dosya listesi olmaksızın anlamlı değil" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence istenen işlem kipinde kullanılamaz" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Çok sayıda arşiv dosyası `-M' seçeneği gerektirir" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "--listed-incremental ile --newer birlikte kullanılamaz" -#: src/tar.c:2292 +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--occurrence bir dosya listesi olmaksızın anlamlı değil" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Bölüm etiketi çok uzun (sınır: %lu bayt)" msgstr[1] "%s: Bölüm etiketi çok uzun (sınır: %lu bayt)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Çok sayıda bölüm içeren arşivler doğrulanamaz" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Sıkıştırılmış arşivler doğrulanamaz" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Çok sayıda bölüm içeren sıkıştırılmış arşivler kullanılamıyor" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Sıkıştırılmış arşivler birleştirilemez" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Bir boş arşivin oluşturulması ister istemez reddediliyor" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "`-Aru' seçenekleri `-f -' ile uyumsuz" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" msgstr "`-Acdtrux' seçeneklerinden biri belirtilmeli" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" @@ -2282,79 +2339,84 @@ msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Dosya %s baytta kırpılmış" msgstr[1] "%s: Dosya %s baytta kırpılmış" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "%s anahtar sözcüğü ya bilinmiyor ya da henüz gerçeklenmemiş" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "Numara izin verilen aralığın dışında: %s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "%s şablonu kullanılamıyor" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "%s anahtar sözcüğü çakıştırılamaz" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Ek başlık bozuk: uzunluk eksik" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Ek başlık uzunluğu izin verilen aralığın dışında" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Ek başlık uzunluğu %*s aralık dışında" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Ek başlık bozuk: uzunluktan sonra boşluk yok" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Ek başlık bozuk: eşit işareti eksik" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Ek başlık bozuk: satırsonu eksik" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Bilinmeyen ek başlık anahtar sözcüğü `%s' yoksayılıyor" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Üretilen isim/değer çifti çok uzun (isim=%s, uzunluk=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Ek başlık %s=%s, %s..%s aralığının dışında" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Ek başlık bozuk: %s=%s geçersiz" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Ek başlık bozuk: %s=%s aşırıya kaçmış" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Ek başlık bozuk: %s geçersiz: umulmadık %c ayracı" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Ek başlık bozuk: %s geçersiz: değerler tek sayıda" @@ -2395,7 +2457,7 @@ msgstr "Yazma sınama yeri %u" msgid "Read checkpoint %u" msgstr "Okuma sınaması yeri %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2403,86 +2465,92 @@ msgstr "" "genfile, GNU paxutils deneme araçları için veri dosyalarını işleme sokar.\n" "SEÇENEKLER:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Dosya oluşturma seçenekleri:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "BOYUT" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Dosya belirtilen BOYUTta oluşturulur" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Dosyalar standart çıktı yerine İSİM dosyasına yazılır" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Dosya isimleri DOSYAdan okunur" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T boş karakter sonlandırmalı isimleri okur" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Dosyayı belirtilen ŞABLON ile doldurur. ŞABLON 'default' veya 'zeros' " "olabilir" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Seyrek dosyalar için blok boyu" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Seyrek dosya üretilir. Komut satırının kalanı dosya eşlemini verir." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "KONUM" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Veriyi yazmadan önce belirtilen konuma gider" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Dosya istatistikleri seçenekleri:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Belirtilen her dosya için stat yapısının içeriğini basar. Öntanımlı BİÇİM: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "İcra eşzamanlama seçenekleri:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [SEÇENEK...]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" "Belirtilen KOMUT çalıştırılır. --checkpoint ile ve --cut, --append, --touch " "seçeneklerinden biri ile birlikte kullanışlıdır" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Sınama SAYIsı aşıldığında belirtilen eylem uygulanır (aşağıya bakınız)" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Sonraki --touch seçeneği için tarih ayarlanır" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "İcra edilen sınamalar ve KOMUTun çıkış durumu gösterilir" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2490,153 +2558,220 @@ msgstr "" "Çalıştırma eylemlerini eşzamanlar. Bunlar --checkpoint seçeneği ile " "belirtilen sayı aşıldığında çalıştırılırlar." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" "DOSYA --length seçeneği ile belirtilen boyutta kırpılır (belirtilmemişse 0)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "DOSYAya BOYUT bayt eklenir. BOYUT evvelce --length seçeneği ile belirtilir." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "DOSYAnın değişiklik ve erişim zamanları güncellenir" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "KOMUT çalıştırılır" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Geçersiz boyut: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Numara izin verilen aralığın dışında: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatif boyut: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) başarısız" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Sayı çözümlenirken `%s' civarında hata" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Bilinmeyen tarih biçimi" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGÜMANLAR...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "`%s' açılamıyor" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "konumlanamıyor" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "dosya ismi boş karakter içeriyor" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "seyrek dosyalar standart çıktıda üretilemez, --file seçeneğini kullanın" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "kalıp yanlış (`%s' yakınında)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Bilinmeyen alan `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "zaman `%s' olarak ayarlanamaz" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "`%s' açılamıyor" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Komut başarıyla sonlandı\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Komut %d çıkış durumu ile başarısız oldu\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Komut %d sinyali ile sonlandırıldı\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Komut %d sinyali ile durduruldu\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Komut bellek dökümü verdi\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Komut sonlandı\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat seçeneği dosya isimleri gerektirir" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "argüman sayısı çok fazla" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s: kuraldışı seçenek -- %c\n" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ "Uyarı: -I seçeneği desteklenmiyor; -j ya da -T mi yazacaktınız yoksa?" +#~ "\n" +#~ "Yazılım hatalarını <%s> adresine,\n" +#~ "çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n" + +#~ msgid "Reading %s\n" +#~ msgstr "%s okunuyor\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "Hata kurtarılabilir değil: şimdilik çıkılıyor" + +#~ msgid "suppress this warning." +#~ msgstr "ya da bu uyarıyı engellemek için --no-wildcards kullanın." + +#~ msgid "filter the archive through bzip2" +#~ msgstr "arşivi bzip2 üzerinden geçirir" + +#~ msgid "filter the archive through gzip" +#~ msgstr "arşivi gzip üzerinden geçirir" + +#~ msgid "filter the archive through compress" +#~ msgstr "arşivi compress üzerinden geçirir" + +#, fuzzy +#~ msgid "filter the archive through lzma" +#~ msgstr "arşivi gzip üzerinden geçirir" #, fuzzy -#~ msgid "cancel effect of the previous --transform-links option" -#~ msgstr "--delay-directory-restore seçeneğinin etkisi iptal edilir." +#~ msgid "filter the archive through lzop" +#~ msgstr "arşivi gzip üzerinden geçirir" + +#~ msgid "Input string too long" +#~ msgstr "Girdi dizgesi çok uzun" + +#~ msgid "Number syntax error" +#~ msgstr "Sayısal sözdizimi hatası" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd: Tampon alanı ayrılamıyor\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "Tampon alanı ayrılamıyor" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "Daha fazla bilgi için `%s --help' yazın.\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "Kullanımı: %s [SEÇENEK]\n" +#~ "Bir teybi uzak bağlantı üzerinden komut kabul ederek çalıştırır.\n" +#~ "\n" +#~ " --version Sürümü basar.\n" +#~ " --help Bu iletiyi basar.\n" + +#~ msgid "Seek offset error" +#~ msgstr "Arama başlangıcı hatası" + +#~ msgid "Premature end of file" +#~ msgstr "Dosya sonu belirsiz" #~ msgid "block size" #~ msgstr "blok uzunluğu" @@ -2644,5 +2779,9 @@ msgstr "argüman sayısı çok fazla" #~ msgid "[.]NUMBER" #~ msgstr "[.]SAYI" +#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" +#~ msgstr "" +#~ "Uyarı: -I seçeneği desteklenmiyor; -j ya da -T mi yazacaktınız yoksa?" + #~ msgid "Error exit delayed from previous errors" #~ msgstr "Hata çıkışı önceki hatalardan dolayı gecikti" diff --git a/po/uk.gmo b/po/uk.gmo index 3a71e8dccd5f115de891c9e71066747cb4395a04..788ae4d4bc8311d14025a6eead1d24a4de194d4a 100644 Binary files a/po/uk.gmo and b/po/uk.gmo differ diff --git a/po/uk.po b/po/uk.po index 80ccf0e7a18960766af6c045379034b9bc9ebad9..0576a5c2d07404e592dbd51eb78bfd5bf5c8a518 100644 --- a/po/uk.po +++ b/po/uk.po @@ -1,14 +1,14 @@ # Ukrainian messages for GNU tar # This file is distributed under the same license as the tar package. -# Copyright (C) 2008 Free Software Foundation, Inc. -# Sergey Poznyakoff <gray@gnu.org>, 2005, 2006, 2007, 2008. +# Copyright (C) 2010 Free Software Foundation, Inc. +# Sergey Poznyakoff <gray@gnu.org>, 2005, 2006, 2007, 2008, 2009, 2010. # msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.23\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2008-12-28 16:01+0200\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-03-10 13:30+0200\n" "Last-Translator: Sergey Poznyakoff <gray@gnu.org>\n" "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -17,286 +17,191 @@ 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/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "неправильний аргумент %s для %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "неоднозначний аргумент %s для %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Дозволені аргументи такі:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: значення %s є менше ніж або дорівнює %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: параметр ARGP_HELP_FMT вимагає значення" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Невідомий параметр ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Хибні дані в ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "" "Аргументи, обов'язкові для довгих ключів, є обов'язковими й для коротких." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Використання:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " чи: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [ОПЦІЯ...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "" "Спробуйте `%s --help' або `%s --usage' для отримання докладнішого опису.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Про помилки звітуйте на <%s>.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Невідома системна помилка" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "вивести цю довідку" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "вивести коротке повідомлення про використання" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "НАЗВА" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "встановити назву програми" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "СЕКУНДИ" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "зачекати вказану кількість секунд (типово 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "вивести версію програми" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Невідома версія!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Забагато аргументів\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Опція мала бути розпізнана!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "помилка запису" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: опція `%s' неоднозначна\n" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: опція '%s' неоднозначна\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: опція `--%s' не може мати аргументу\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: опція '--%s' не може мати аргументу\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: опція `%c%s' не може мати аргументу\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: опція '%c%s' не може мати аргументу\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: опція `%s' вимагає аргумент\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: опція '%s' вимагає аргументу\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: невідома опція `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: невідома опція '--%s'\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: невідома опція `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: невідома опція '%c%s'\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: недопустима опція -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: недійсна опція -- '%c'\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: невірна опція -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: опція вимагає аргументу -- '%c'\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: опція вимагає аргумент -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: опція '-W %s' неоднозначна\n" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -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" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: опція `-W %s' не може мати аргументу\n" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "пам'ять вичерпана" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "не вдається змінити поточний каталог" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "не вдається зберегти поточний каталог" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Помилка у функції %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Попередження: Помилка у функції %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Не вдається змінити права доступу на %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Не вдається змінити власника на uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Не вдається створити жорстке посилання на %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Помилка в позиції %s, під час читання %lu байту" -msgstr[1] "%s: Помилка в позиції %s, під час читання %lu байтів" -msgstr[2] "%s: Помилка в позиції %s, під час читання %lu байтів" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Попередження: Помилка в позиції %s, під час читання %lu байту" -msgstr[1] "%s: Попередження: Помилка в позиції %s, під час читання %lu байтів" -msgstr[2] "%s: Попередження: Помилка в позиції %s, під час читання %lu байтів" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Не вдається виконати lseek до %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Попередження: Не вдається виконати lseek до %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Не вдається створити символічне посилання на %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Вдалося записати тільки %lu з %lu байта" -msgstr[1] "%s: Вдалося записати тільки %lu з %lu байтів" -msgstr[2] "%s: Вдалося записати тільки %lu з %lu байтів" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Видалення початкового префіксу `%s' з назв файлів" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Видалення початкового префіксу `%s' з назви цілі жорсткого посилання" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Підстановка `.' замість пустої назви файлу" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Підстановка `.' замість пустої назви цілі жорсткого посилання" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -310,17 +215,17 @@ msgstr "Підстановка `.' замість пустої назви ціл #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -330,7 +235,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yYтТ]" @@ -340,39 +245,28 @@ msgstr "^[yYтТ]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nNнН]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: сервіс відсутній" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "stdin" - -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "stdout" +msgid "Packaged by %s (%s)\n" +msgstr "Пакував %s (%s)\n" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "Не вдалося запустити віддалену оболонку" +msgid "Packaged by %s\n" +msgstr "Пакував %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -384,23 +278,25 @@ msgstr "" "\n" "Ліцензія GPLv3+: GNU GPL версії 3 або пізнішої <http://gnu.org/licenses/gpl." "html>\n" +"Це є вільне програмне забезпечення: ви можете змінювати та розповсюджувати " +"його.\n" "Немає ЖОДНИХ ГАРАНТІЙ, в межах дозволених правом.\n" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Автор: %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Автори: %s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Автори: %s, %s та %s.\n" @@ -408,7 +304,7 @@ msgstr "Автори: %s, %s та %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -420,7 +316,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -432,7 +328,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -444,7 +340,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -456,7 +352,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -469,7 +365,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -483,7 +379,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -498,136 +394,283 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"Про помилки звітуйте на <%s>.\n" +"Про помилки звітуйте на %s\n" +"Про помилки у перекладі звітуйте за адресою <translation-team-uk@lists." +"sourceforge.net>\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" -msgstr "" +msgid "Report %s bugs to: %s\n" +msgstr "Про помилки у програмі %s звітуйте на %s\n" + +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "домашня сторінка %s: <%s>\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "домашня сторінка %s: <http://www.gnu.org/software/%s/>\n" + +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Загальна допомога щодо використання ПЗ GNU: <http://www.gnu.org/gethelp/>\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Помилка у функції %s" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "За довгий вхідний рядок" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Попередження: Помилка у функції %s" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Помилка синтаксису числа" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Не вдається змінити права доступу на %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Не вдається виділити простір для буфера\n" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Не вдається змінити власника на uid %lu, gid %lu" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Не вдається виділити простір для буфера" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Не вдається створити жорстке посилання на %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Спробуйте `%s --help' для отримання докладнішого опису.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Помилка в позиції %s, під час читання %lu байту" +msgstr[1] "%s: Помилка в позиції %s, під час читання %lu байтів" +msgstr[2] "%s: Помилка в позиції %s, під час читання %lu байтів" -#: rmt/rmt.c:308 +#: lib/paxerror.c:192 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" -msgstr "" -"Використання: %s [ОПЦІЯ]\n" -"Керує стрічковим пристроєм, отримуючи команди від віддаленого процесу.\n" -"\n" -" --version Вивести версію програми та вийти.\n" -" --help Вивести цю довідку\n" +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Попередження: Помилка в позиції %s, під час читання %lu байту" +msgstr[1] "%s: Попередження: Помилка в позиції %s, під час читання %lu байтів" +msgstr[2] "%s: Попередження: Помилка в позиції %s, під час читання %lu байтів" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Зміщення за межами діапазону" +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Не вдається виконати lseek до %s" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 -msgid "Seek offset out of range" -msgstr "Зміщення за межами діапазону" +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Попередження: Не вдається виконати lseek до %s" -#: rmt/rmt.c:428 +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Не вдається створити символічне посилання на %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Вдалося записати тільки %lu з %lu байта" +msgstr[1] "%s: Вдалося записати тільки %lu з %lu байтів" +msgstr[2] "%s: Вдалося записати тільки %lu з %lu байтів" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Видалення початкового префіксу `%s' з назв файлів" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Видалення початкового префіксу `%s' з назви цілі жорсткого посилання" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Підстановка `.' замість пустої назви файлу" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Підстановка `.' замість пустої назви цілі жорсткого посилання" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: сервіс відсутній" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "stdin" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "stdout" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" +msgstr "Не вдалося під'єднатись до %s: неможливо встановити адресу хоста" + +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Не вдалося запустити віддалену оболонку" + +#: rmt/rmt.c:413 msgid "Seek direction out of range" msgstr "Напрямок зміщення за межами діапазону" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: передчасне закінчення файла\n" +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "Помилковий напрям пошуку" + +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "Помилковий зсув у файлі" + +#: rmt/rmt.c:433 +msgid "Seek offset out of range" +msgstr "Зміщення за межами діапазону" + +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "Помилкова кількість байтів" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "Кількість байтів за межами діапазону" -#: rmt/rmt.c:474 -msgid "Premature end of file" +#: rmt/rmt.c:539 +msgid "Premature eof" msgstr "Передчасне закінчення файла" -#: rmt/rmt.c:672 +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "Недійсний код операції" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "Операція не підтримується" + +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "Неочікувані аргументи" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "Керує стрічковим пристроєм, отримуючи команди від віддаленого процесу" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "ЧИСЛО" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "встановити рівень налагоджування" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "ФАЙЛ" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "встановити назву файлу для виходу налагоджування" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "не вдається відкрити %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "забагато аргументів" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Хибна команда" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "Це не схоже на архів tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Записано загалом" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Прочитано байтів загалом" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Видалено загалом: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Недійсне значення record_size" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "Не вказано назви архіву" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "Неможливо перевіряти архів, записаний до stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архів стиснений. Використовуйте опцію %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "Не можна оновлювати стиснені архіви" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "На початку стрічки, закінчуємо" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Надто багато помилок, виконання перервано" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -635,7 +678,7 @@ msgstr[0] "Розмір запису = %lu блок" msgstr[1] "Розмір запису = %lu блоки" msgstr[2] "Розмір запису = %lu блоків" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -643,39 +686,39 @@ msgstr[0] "Невірне вирівнювання блоку (%lu байт) в msgstr[1] "Невірне вирівнювання блоку (%lu байти) в архіві" msgstr[2] "Невірне вирівнювання блоку (%lu байтів) в архіві" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Не вдалося переміститись назад у архіві; можливо архів не можна прочитати " "без опції -i" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek не зупинився на межі запису" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: містить невірний номер тому" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Переповнення номера тому" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Підготуйте том #%d архіву %s ї натиснить return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Кінець файлу, замість очікуваної відповіді" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "ПОПЕРЕДЖЕННЯ: Незавершений архів" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -686,66 +729,66 @@ msgstr "" " q Перервати роботу\n" " у або новий рядок Продовжувати\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Викликати оболонку\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? Вивести цю довідку\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Новий том відсутній. Завершення.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Не вказано назви файлу. Спробуйте ще раз.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Недійсні вхідні дані. Наберіть ? щоб отримати підказку.\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "збій виконання `%s'" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s можливо продовжується у цьому томі: заголовок містить обрізану назву" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s не продовжується у цьому томі" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s є неправильним розміром (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Цей том є за межами послідовності (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "Назви тому відсутня в архіві. Не можна порівняти з %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Етикетка тому %s не співпадає з %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -753,11 +796,11 @@ msgstr "" "%s: назва файлу надто довга щоб зберегти її у заголовку тому GNU; назву " "обрізано" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "запис не закінчився на межі блоку" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -765,49 +808,49 @@ msgstr[0] "Вдалося прочитати тільки %lu з %lu байта" msgstr[1] "Вдалося прочитати тільки %lu з %lu байтів" msgstr[2] "Вдалося прочитати тільки %lu з %lu байтів" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Різниця у змісті" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "Неочікуваний кінець файла в архіві" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Різниця у типі файлу" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Різниця у правах доступу" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Різниця у значенні UID" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Різниця у значенні GID" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Різниця у часі модифікації" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Різниця у розмірі" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Не є посиланням до %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Різниця у символічному посиланні" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Різниця у номері пристрою" @@ -829,7 +872,7 @@ msgstr "Архів містить назви файлів без поперед msgid "Verification may fail to locate original files." msgstr "Перевірка може не знайти первинних файлів." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -837,28 +880,28 @@ msgstr[0] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірни msgstr[1] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовки" msgstr[2] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовків" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Самотній блок нулів, зсув %s" # Не подобається мені це "кешування"... -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: містить мітку каталогу кешування `%s'; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "Значення %s поза межами діапазону типа %s %s..%s; заміна на %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "значення %s за межами діапазону типа %s %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Створення від'ємних вісімкових заголовків" @@ -877,7 +920,7 @@ msgstr "%s: назва файлу занадто довга (не вдаєтьс msgid "%s: link name is too long; not dumped" msgstr "%s: назва посилання занадто довга; не архівується" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -885,286 +928,272 @@ msgstr[0] "%s: Файл скоротився на %s байт; заповнен msgstr[1] "%s: Файл скоротився на %s байти; заповнення нулями" msgstr[2] "%s: Файл скоротився на %s байтів; заповнення нулями" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: файл знаходиться в іншої файлової системі; не архівується" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "вміст не архівується" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Невідомий тип файла; Файл проігноровано" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "Відсутні деякі посилання до `%s'.\n" +msgid "Missing links to %s." +msgstr "Відсутні деякі посилання до %s." -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: файл не змінено; не архівується" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: файл є архівом; не архівується" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Файл було видалено перед тим як tar встиг його прочитати" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "каталог не архівується" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файл змінився під час читання" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: гніздо ігнорується" # FIXME: door? -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: двері ігноруються" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Перехід до наступного заголовка" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "Видалення не-заголовка з архіву" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: неймовірно стара дата %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: мітка часу %s зсунута на %s сек. до майбутнього" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Неочікувана суперечність під час створення каталогу" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Каталог перейменовано перед тим, як tar встиг витягнути його стан" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Витягування безперервних файлів у звичайні" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Спроба перетворити символічні посилання на жорсткі" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Зчитування %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Не вдається витягнути -- файл починається в іншому томі" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Неочікуваний кінець файла у заголовку довгої назви" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Невідомий тип файлу `%c', спроба витягнути його як звичайний файл" # FIXME: або сучасний? -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "Існуючий файл `%s' є новіший" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Не вдалося створити резервну копію цього файла" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Не вдається перейменувати %s на %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Невиправна помилка: завершення роботи" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Каталог перейменовано з %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Каталог перейменовано" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Новий каталог" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Невірний час файлу" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Невірна дата модифікації (секунди)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Недійсний час модифікації (наносекунди)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Невірний номер пристрою" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Невірний номер і-вузла" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "З файла-знімка прочитано надто довге поле" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Помилка читання файла-знімка" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Неочікуваний кінець файла-знімка" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Неочікуваний кінець файла-знімка" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Бракує ознаки кінця запису" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Неправильний формат файла знімку" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Такий інкрементний формат не підтримується: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "" "Неправильно сформований dumpdir: очікувалося '%c' натомість знайдено %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Неправильно сформований dumpdir: 'X' вказаний двічі" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Невірний формат dumpdir: пуста назва у `R'" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Невірний формат dumpdir: `T' без попереднього `R'" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Невірний формат dumpdir: пуста назва у `T'" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "" "Невірний формат dumpdir: очікувалося `%c', натомість знайдено кінець файла" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Невірний формат dumpdir: `X' не використаний" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Не вдається створити тимчасовий каталог використовуючи шаблон %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Каталог не очищується: не вдалося виконати stat" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: Каталог знаходиться на іншому пристрої: не очищується" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Стирання %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Не вдається видалити" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Пропускається" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** Містить нулі **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Кінець файлу **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "блок %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Пробіли у заголовку замість очікуваного числового значення типу %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1172,17 +1201,17 @@ msgstr "" "вважається, що це є двійкове доповнення" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Вісімкове значення %.*s знаходиться поза межами діапазону типу %s" # FIXME: base=64? -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "Архів містить застарілі заголовки з основою 64" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" @@ -1190,128 +1219,146 @@ msgstr "" "типу %s" # FIXME: base-256 -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Значення з основою 256 поза допустимими межами типу %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Знайдено %.*s замість числового значення типу %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Значення %s поза допустимими межами типу %s %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr "посилання до %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr "невідомий тип файла %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Довге посилання--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Довга назва--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Заголовок тому--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Продовжується з байту %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Створення каталогу:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Перейменовано %s у %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Не вдається перейменувати на %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Перейменовано %s назад у %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Не вдається зберегти поточний каталог" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Не вдається змінити поточний каталог" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Файл було видалено перед тим як tar встиг його прочитати" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Каталог було видалено перед тим як tar встиг його прочитати" + +#: src/misc.c:795 msgid "child process" msgstr "процес-нащадок" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "канал між процесами" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "Назви файлів містять символи-шаблони. Будь ласка, користайтеся" +#: src/names.c:601 +msgid "Pattern matching characters used in file names" +msgstr "Назви файлів містять символи-шаблони" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "" -"опцією --wildcards аби увімкнути шаблони, або опцією --no-wildcards, щоб" +"Користайтеся опцією --wildcards аби увімкнути шаблони, або опцією --no-" +"wildcards, щоб позбутися цього повідомлення" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "усунути це повідомлення." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s: Не знайдено в архіві" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Потрібну копію у архіві не знайдено" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" +"Використання опції -C у переліку файлів разом з опцією --listed-incremental " +"не дозволяється" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Разом з --listed-incremental дозволяється лише одна опція -C" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Обидві опції -%s і -%s вимагають доступу до стандартного входу" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Невірний формат архіву" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "Формат архіву є несумісним з розширеними властивостями GNU" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1319,7 +1366,7 @@ msgstr "" "Невідомий стиль цитування `%s'. Наберіть `%s --quoting-style=help' аби " "отримати перелік стилів." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1338,7 +1385,7 @@ msgstr "" " # archive.tar\n" " tar -xf archive.tar # Витягує усі файли з archive.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1360,88 +1407,81 @@ msgstr "" " інакше - прості\n" " never, simple завжди створювати прості резервні копії\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Режими роботи:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "вивести вміст архіву" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "витягнути файли з архіву" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "створити новий архів" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "порівняти файли в архіві з файлами у файлової системі" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "долучити файли до існуючого архіву" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "долучати тільки такі файли, що є новішими за їх копії в архіві" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "долучити архів до архіву" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "видалити файли з архіву (не на стрічці!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "перевірити мітку тому та вийти" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Модифікатори режиму роботи:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "заощаджувати простір під час зберігання розсіяних файлів" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "ГОЛОВНИЙ[.ДРУГОРЯДНИЙ]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "встановлює версію формату розсіяних файлів (вмикає --sparse)" # FIXME: incremental -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "обробка старого формату інкрементного архіву GNU" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "ФАЙЛ" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "обробка нового формату інкрементного архіву GNU" +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "рівень архівної копії для створення інкрементного архіву" + # FIXME: хммм... -#: src/tar.c:408 +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "ігнорувати помилки читання файлів" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "ЧИСЛО" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1453,119 +1493,122 @@ msgstr "" "з переліком файлів (у командному рядку або за допомогою опції -T). Типове " "ЧИСЛО: 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "архів підтримує операцію seek" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "архів не підтримує операцію seek" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "не перевіряти номери пристрою під час створювання інкрементних архівів" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "" "перевіряти номери пристрою під час створювання інкрементних архівів (типово)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Керування перезаписом:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "перевірити архів після запису в нього" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "видаляти файли після додавання до архіву" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "не заміняти існуючи файли під час витягування" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "не заміняти існуючи файли що є новішими за їх копії у архіві" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "перезаписувати існуючі файли під час витягування" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "видаляти кожний файл перед витягуванням його копії" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "спорожняти старий каталог перед витягуванням його копії з архіву" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "зберігати мета-дані існуючих каталогів" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "перезаписувати метадані існуючих каталогів під час витягування (типово)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Вибір вихідного потоку:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "витягувати файли у стандартний вивід" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "КОМАНДА" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "передавати витягнуті файли до стандартного вводу іншої програми" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "ігнорувати коди завершення процесів-нащадків" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "вважати ненульовий код завершення нащадка помилкою" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Обробка атрибутів файлу:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "встановлення вказаного користувача власником доданих файлів" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "встановлення групи з вказаною назвою групою власника доданих файлів" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "ДАТА-АБО-ФАЙЛ" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "встановлення часу останньої зміни доданих файлів" # Ну, і чому це CHANGES?? -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "ПРАВА" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "встановлення вказаних символічно прав доступу для доданих файлів" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "МЕТОД" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1575,29 +1618,33 @@ msgstr "" "читання (типово, МЕТОД='replace'), або через запобігання оновленню часу " "(МЕТОД='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "не витягувати час модифікації файлів" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "витягувати назву власника файлів" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "" +"встановлювати власників файлів за даними з архіву (типово для супер-" +"користувача)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "стати власником витягнутих файлів" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "стати власником витягнутих файлів (типово для звичайного користувача)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "завжди використовувати числа замість назв власника/групи" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "встановлювати права доступу згідно з даними архіву (типово для супер-" "користувача)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" @@ -1605,15 +1652,15 @@ msgstr "" "встановлювати права доступу згідно зі значенням umask (типово для звичайного " "користувача)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "витягувати файли у порядку їх з'явлення в архіві" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "те ж, що -p -s разом" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1621,139 +1668,139 @@ msgstr "" "затримати встановлення часу модифікації та прав доступу до каталогів до " "кінця витягування" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "відмінити дії опції --delay-directory-restore" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Вибір та зміна пристрою:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "АРХІВ" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "використовувати вказаний файл або пристрій" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "файл архіву є локальним, навіть якщо його назва містить двокрапку" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "використовувати вказану команду замість rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "використовувати вказану команду замість rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "визначає пристрой та густину" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "створити, виводити зміст або витягувати файли з багатотомного архіву" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "змінити стрічку після запису ЧИСЛА x 1024 байтів" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "запускати сценарій наприкінці кожної стрічки (вмикає -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "використовувати/обновляти номер тому у ФАЙЛІ" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Блокування пристрою:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "ЧИСЛО-БЛОКІВ" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "розмір запису ЧИСЛО-БЛОКІВ x 512 байтів" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "встановити розмір запису у блоках по 512 байтів" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "ігнорувати нульові блоки в архіві (звичайно вказують кінець файлу)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "розбивати на блоки під час читання (для каналів 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "Вибір формату архіву:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "ФОРМАТ" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "створити архів у вказаному форматі" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "ФОРМАТ будь-який з наступних:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "старий формат V7" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "формат GNU, сумісний з версією tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "формат GNU, сумісний з версією tar 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "формат POSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "формат POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "те ж, що і pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "те ж, що і --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "те ж, що і --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "ключове_слово[[:]=значення][,ключове_слово[[:]=значення], ...]\"" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "керування ключовими словами pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "ТЕКСТ" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" @@ -1761,103 +1808,77 @@ msgstr "" "створити архів з назвою тому \"ТЕКСТ\". Під час виводу змісту або " "витягування, використовувати ТЕКСТ як шаблон пошуку тому" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Опції стиснення:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" msgstr "вибирати програму стиснення за суфіксом архіву" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" msgstr "не використовувати суфікс для вибору програми стиснення" -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "використовувати bzip2 для стиснення/розтискання архіву" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "використовувати gzip для стиснення/розтискання архіву" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "використовувати compress для стиснення/розтискання архіву" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "використовувати lzma для стиснення/розтискання архіву" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "використовувати lzop для стиснення/розтискання архіву" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "використовувати gzip для стиснення/розтискання архіву" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "ПРОГРАМА" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "використовувати ПРОГРАМУ для стиснення/розтискання архіву" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Вибір файлів:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "долучити ФАЙЛ до архіву (корисне, якщо його назва починається з -)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "КАТАЛОГ" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "перейти до вказаного каталогу" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "читати назви файлів для додання/витягування з вказаного файла" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "" "файл, вказаний з опцією -T, містить назви, відокремлені нульовими символами. " "Ця опція вимикає -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "відмінити дію попередньої опції --null" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "усувати цитування з назв файлів прочитаних за допомогою -T (типово)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "не усувати цитування з назв файлів прочитаних за допомогою -T" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "ШАБЛОН" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "не обробляти файли, назви яких відповідають вказаному шаблону" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "виключити назви що відповідають шаблонам, вказаним у файлі" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1865,88 +1886,92 @@ msgstr "" "не архівувати файли в каталогах, що містять CACHEDIR.TAG, з винятком самого " "файлу" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "не архівувати жодні файли в каталогах, що містять CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "не архівувати каталоги, що містять CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "не архівувати файли в каталогах, що містять ФАЙЛ, з винятком самого файлу" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "не архівувати жодні файли в каталогах, що містять ФАЙЛ" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "не архівувати каталоги, що містять ФАЙЛ" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "не архівувати каталоги систем керування версіями" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "не архівувати резерві файли та файли блокування" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "не заходити автоматично у каталоги" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "залишатися у локальної файлової системі під час створення архіву" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "рекурсивно проходити каталоги (типово)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "не видаляти початкову косу риску `/' з назв файлів" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "Йти за символьними посиланнями: долучати файли, на яки вони вказують" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "Йти за жорсткими посиланнями: долучати файли, на яки вони вказують" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "НАЗВА-ФАЙЛУ" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "починати обслуговування архіву з вказаного файлу" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "долучати тільки такі файли, що є новіші за вказану дату або файл" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "порівнювати тільки дату і час зміни даних" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "РЕЖИМ" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "перед видаленням створювати резервні файли у вказаному режимі" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "РЯДОК" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1954,90 +1979,98 @@ msgstr "" "перед видаленням створювати резервні файли з указаним суфіксом (типово '~', " "якщо не перевизначено змінною середовища SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Перетворювання назв файлів:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "видаляти вказане ЧИСЛО компонентів з початку назв файлів" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "ВИРАЗ" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "перетворювати назви файлів за допомогою вказаного виразу заміни" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Керування порівнюванням назв (впливає на взірці як вилучення, так і " "долучення):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "шаблони ігнорують відмінності у регістрі символів" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "порівнювати шаблони з назвами файлів починаючи від початку назви" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "" "порівнювати шаблони з назвами файлів починаючи від будь-якого / (типово)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "шаблони враховують регістр (типово)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "користатися шаблонами (типово для вилучення)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "порівнювати назви буквально" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "шаблони не стосуються до '/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "шаблони стосуються до '/' (типово)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Інформативний вивід:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "виводити докладну інформацію про оброблені файли" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "КЛ.-СЛОВО" + +#: src/tar.c:740 +msgid "warning control" +msgstr "керування попередженнями" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "виводити контрольне повідомлення кожне ЧИСЛО записів (типово 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "ДІЯ" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "виконати вказану дію у контрольному пункті" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "виводити повідомлення якщо до архіву було додано не всі посилання" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2048,27 +2081,27 @@ msgstr "" "- друкувати статистику по отриманню цього сигналу; дозволеними сигналами є " "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 і SIGUSR2, а також ці назви без префікса SIG" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "друкувати час модифікації файлів у UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "виводити детальну інформацію у ФАЙЛ" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "попереджувати кожне повідомлення номером блоку в архіві" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "Запитувати підтвердження кожної дії" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "вивести типові налаштування" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2076,31 +2109,31 @@ msgstr "" "під час виведення змісту або витягування файлів друкувати назви каталогів що " "не відповідають критеріям пошуку" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "показувати перетворені назви файлів" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "СТИЛЬ" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "встановити стиль цитування; дозволені стилі див. нижче" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "цитувати також вказані символи" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "вимкнути цитування вказаних символів" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Опції сумісності:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2108,56 +2141,63 @@ msgstr "" "під час створення архіву, те ж саме, що і --old-archive. Під час " "витягування, те ж саме, що --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Інші опції:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "заборонити користування деякими потенційно небезпечними опціями" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "Не можна вказувати більш ніж одну з опцій `-Acdtrux'" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "" +"Не можна вказувати більш ніж одну з опцій `-Acdtrux' або `--test-label'" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Опції стиснення конфліктують одна з другою" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Невідомий тип файла %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Не знайдено файл-зразок дати" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Використовується %s замість невідомого формату дати %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Опція %s: Дату `%s' сприйнято як %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: перелік файлів уже прочитано" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: прочитана назва файла містить нульовий символ" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "фільтрувати архів через %s" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "Допустимими аргументами опції --quoting-style є:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2165,48 +2205,51 @@ msgstr "" "\n" "Типові налаштування *цієї* копії програми:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Неправильний фактор блокування" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Неправильна довжина стрічки" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "Недійсне значення для рівня архівації" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Більш ніж одна гранична дата" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Недійсна версія формату розсіяних файлів" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "опція --atime-preserve='system' не підтримується на цій платформі" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "аргумент --checkpoint мусить бути цілим числом" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: Невірна група" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "Недійсна група" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Невірний формат прав доступу" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Невірне число" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Невірний власник" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2214,65 +2257,69 @@ msgstr "" "Опція --preserve є застарілою, замість неї використовуйте --preserve-" "permissions --preserve-order" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Невірний розмір запису" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Розмір запису має ділитися на %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Невірна кількість елементів" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Дозволяється лише одна опція --to-command" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Невірний аргумент вказання густини: `%s'" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Невідома густина: `%c'" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "Опції `-[0-7][lmh]' не підтримуються *цією* версією tar" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[ФАЙЛ]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Стара опція `%c' потребує аргументу" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "вказання --occurrence не має сенсу без вказання переліку файлів" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "" "опцію --occurrence не можна використовувати у зазначеному режимі роботи" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "Вказання декількох файлів потребує вказання опції `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Не можна використовувати --listed-incremental разом з --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "Використання --level разом з --listed-incremental не має сенсу" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" @@ -2280,47 +2327,47 @@ msgstr[0] "%s: Мітка тому є надто довга (обмеження msgstr[1] "%s: Мітка тому є надто довга (обмеження в %lu байти)" msgstr[2] "%s: Мітка тому є надто довга (обмеження в %lu байтів)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "Не можна перевіряти багатотомні архіви" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "Не можна перевіряти стиснені архіви" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "Не можна використовувати стиснення багатотомних архівів" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Не можна з'єднувати стиснені архіви" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "Опція --pax-option використовується тільки з архівами у форматі POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "Розмір тому не може бути більшим від розміру запису" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "Опція --preserve-order несумісна з --listed-incremental" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "Полохливо відмовляюся створювати пустий архів" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Опції `-Aru' несумісні з `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "Необхідно вказати одну з опцій `-Acdtrux'" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "Необхідно вказати одну з опцій `-Acdtrux' або `--test-label'" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Невдачне завершення внаслідок попередніх помилок" @@ -2333,84 +2380,88 @@ msgstr[0] "%s: Файл скоротився на %s байт" msgstr[1] "%s: Файл скоротився на %s байти" msgstr[2] "%s: Файл скоротився на %s байтів" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Ключове слово %s не є відоме або ще не реалізоване" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "Значення позначки часу поза допустимими межами" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Шаблон %s забороняється уживати" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Не можна перевизначити ключове слово %s" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Невірно сформований розширений заголовок: бракує довжини" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Довжина розширеного заголовку є за межами діапазону" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Довжина розширеного заголовку %*s є за межами діапазону" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "" "Невірно сформований розширений заголовок: відсутній пробіл після довжини" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Невірно сформований розширений заголовок: відсутній знак рівняння" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Невірно сформований розширений заголовок: відсутній знак нового рядка" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Невідоме ключове слово `%s' іґнорується" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Створена пара ключове слово/значення є за довга (ключ=%s, довжина=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" "Значення розширеного заголовку %s=%s лежить поза допустимими межами типу %s.." "%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Невірно сформований розширений заголовок: недійсна змінна %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Невірно сформований розширений заголовок: зайвий %s=%s" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Невірно сформований розширений заголовок: змінна %s: неочікуваний розділювач " "%c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Невірно сформований розширений заголовок %s: непарна кількість значень" @@ -2451,7 +2502,7 @@ msgstr "Контрольна відмітка запису %u" msgid "Read checkpoint %u" msgstr "Контрольна відмітка читання %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2459,85 +2510,90 @@ msgstr "" "genfile - програма обробки файлів з набору перевірок пакету GNU paxutils\n" "Перелік опцій:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Опції створювання файлів:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "РОЗМІР" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Створити файл заданого розміру" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Писати у вказаний файл, замість стандартного виводу" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Читати назви файлів з вказаного файлу" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "" "файл, вказаний з опцією -T, містить назви, відокремлені нульовими символами" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Взірець заповнення файла: 'default' (типовий) або 'zeros' (заповнення нулями)" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Розмір блока розсіяного файла" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Створити розсіяний файл. Решта аргументів дає мапу файла." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "ЗСУВ" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Перед записом даних перейти до вказаного зсуву в файлі" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Статистика файлів:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "Виводити вміст структури stat для кожного файла. Типовий формат: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Синхронне виконання:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "ОПЦІЯ" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"Виконати вказану команду. Для ужитку з опціями --cut, --append або --touch" +"Виконати вказану команду. Для використання з опціями --cut, --append, --" +"touch або --unlink" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Виконати вказану операцію (див. нижче) по досягненню контрольної відмітки" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Встановлює дати для наступної опції --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Друкувати виконані операції і код завершення команди" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2545,7 +2601,7 @@ msgstr "" "Операції синхронного виконання. Виконуються по досягненню контрольної " "відмітки, вказаної опцією --checkpoint. " -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2553,140 +2609,139 @@ msgstr "" "Обрізати файл до розміру, вказаного попередньою опцією --length (до 0, якщо " "її не було вказано)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "Додати до файла кількість байтів, вказану попередньою опцією --length." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Поновити час доступу та модифікації файла" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Виконати КОМАНДУ" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "Видалити файл" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Невірний розмір: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Число поза допустимими межами: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Від'ємний розмір: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "збій виконання stat(%s)" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "замовлений розмір файлу %lu, справжній -- %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "створений файл не є розсіяним" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Помилка розбору числа біля `%s'" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Невідомий формат дати" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[АРГУМЕНТИ...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "не вдається відкрити `%s'" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "не вдається виконати lseek" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "назва файла містить нульовий символ" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "неможливо створювати розсіяні файли на стандартному виводі; користайтеся " "опцією --file" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "недійсна маска (біля `%s')" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Невідоме поле `%s'" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "не вдається встановити час файла `%s'" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "не вдається видалити `%s'" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Команда завершилася успішно\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Команда завершилася з кодом %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Команда завершилася по сигналу %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Команда зупинилася по сигналу %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Команда скинула відбиток пам'яті\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Команда завершилася\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "опція --stat вимагає назв файлів" - -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "забагато аргументів" - -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "" -#~ "Попередження: опція -I не підтримується. Можливо ви маєте на увазі -j або " -#~ "-T?" diff --git a/po/vi.gmo b/po/vi.gmo index 284ed3c1e4f3b73c28c1f1e1255bd960ca1cacbb..b2c6f5d90fbb06e9ccf86d5ccd75944d3d43cb99 100644 Binary files a/po/vi.gmo and b/po/vi.gmo differ diff --git a/po/vi.po b/po/vi.po index 93b1e8bb9279452e843f76872db73b8afeb6af16..47c0c2e42b37bcc1da7fa4687ba834b13e4f4627 100644 --- a/po/vi.po +++ b/po/vi.po @@ -1,15 +1,15 @@ # Vietnamese translation for Tar. -# Copyright © 2009 Free Software Foundation, Inc. +# Copyright © 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # Phan Vinh Thinh <teppi82@gmail.com>, 2005. -# Clytie Siddall <clytie@riverland.net.au>, 2007-2009. +# Clytie Siddall <clytie@riverland.net.au>, 2007-2010. # msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2009-01-27 18:57+0930\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-13 17:50+0930\n" "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" "MIME-Version: 1.0\n" @@ -18,47 +18,47 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "tham số không thích hợp %s cho %s" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "tham số không rõ ràng %s cho %s" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "Các tham số đúng là:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: giá trị %s nhỏ hơn hay bằng %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: tham số ARGP_HELP_FMT yêu cầu một giá trị" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: tham số ARGP_HELP_FMT phải là số dương" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: Tham số không rõ ARGP_HELP_FMT" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "Có rác trong ARGP_HELP_FMT: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." @@ -66,232 +66,143 @@ msgstr "" "Tham số ủy nhiệm hay tham số không bắt buộc cho các tùy chọn dài cũng đồng " "thời là ủy nhiệm hay không bắt buộc cho các tùy chọn ngắn tương ứng." -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "Sử dụng:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " hoặc: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [TÙY CHỌN...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "Hãy thử `%s --help' hoặc `%s --usage' để biết thêm thông tin.\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "Báo cáo lỗi tới %s.\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "Lỗi hệ thống không rõ" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "hiển thị trợ giúp này" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "hiển thị cách sử dụng ngắn gọn" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "TÊN" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "đặt tên chương trình" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "GIÂY" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "treo trong vòng GIÂY giây (mặc định 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "In ra phiên bản chương trình" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(LỖI CHƯƠNG TRÌNH) Không rõ phiên bản !?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s: Quá nhiều đối số\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(LỖI CHƯƠNG TRÌNH) Tùy chọn nên được nhận ra !?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "lỗi ghi" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: tùy chọn `%s' không rõ ràng\n" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: tùy chọn « %s » vẫn mơ hồ\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: tùy chọn `--%s' không cho phép một tham số\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: tùy chọn « --%s » không cho phép đối số\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: tùy chọn `%c%s' không cho phép một tham số\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: tùy chọn « %c%s » không cho phép đối số\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: tùy chọn `%s' yêu cầu một tham số\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: tùy chọn « %s » yêu cầu một đối số\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: tùy chọn không nhận ra `--%s'\n" +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: không nhận ra tuỳ chọn « --%s »\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: tùy chọn không nhận ra `%c%s'\n" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: không nhận ra tuỳ chọn « %c%s »\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: tùy chọn không cho phép -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: tùy chọn sai -- « %c »\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: tùy chọn không đúng -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: tùy chọn yêu cầu một đối số -- « %c »\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: tùy chọn cần một tham số -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: tùy chọn « -W %s » vẫn mơ hồ\n" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: tùy chọn `-W %s' không rõ ràng\n" +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s: tùy chọn « -W %s » không cho phép đối số\n" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: tùy chọn `-W %s' không yêu cầu một tham số\n" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "cạn bộ nhớ" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "Không thể thu thư mục làm việc hiện thời" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "không trở được về thư mục làm việc đầu tiên" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s: Không thể %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s: Cảnh báo: Không thể %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s: Không thay đổi được chế độ thành %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Không thay đổi được quyền sở hữu thành uid %lu, gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s: Không tạo được liên kết cứng tới %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Lỗi đọc tại byte %s, trong khi đọc %lu byte" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s: Cảnh báo: Lỗi đọc tại byte %s, trong khi đọc %lu byte" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s: Không thể tìm tới %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Cảnh báo: Không thể tìm tới %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s: Không tạo được liên kết mềm tới %s" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Chỉ ghi nhớ %lu từ %lu byte" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "Xóa bỏ phần dẫn đầu `%s' từ tên của các thành viên" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "Xóa bỏ phần dẫn đầu `%s' từ đích đến của các liên kết cứng" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "Đang thay thế `.' cho tên rỗng của các thành viên" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "Đang thay thế `.' cho đích đến rỗng của liên kết cứng" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -305,17 +216,17 @@ msgstr "Đang thay thế `.' cho đích đến rỗng của liên kết cứng" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "`" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "'" @@ -325,7 +236,7 @@ msgstr "'" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[cCyY]" @@ -335,39 +246,28 @@ msgstr "^[cCyY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[kKnN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Dịch vụ không làm việc" - -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:76 #, c-format -msgid "stdin" -msgstr "đầu vào tiêu chuẩn" +msgid "Packaged by %s (%s)\n" +msgstr "Đóng gói bởi %s (%s)\n" -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:79 #, c-format -msgid "stdout" -msgstr "đầu ra tiêu chuẩn" - -#: lib/rtapelib.c:512 -#, c-format -msgid "Cannot execute remote shell" -msgstr "Không thể chạy shell ở xa" +msgid "Packaged by %s\n" +msgstr "Đóng gói bởi %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "©" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -384,19 +284,19 @@ msgstr "" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "Tác giả: %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "Tác giả: %s và %s.\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "Tác giả: %s, %s và %s.\n" @@ -404,7 +304,7 @@ msgstr "Tác giả: %s, %s và %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -416,7 +316,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -428,7 +328,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -440,7 +340,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -452,7 +352,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -466,7 +366,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -480,7 +380,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -495,178 +395,320 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"Thông báo lỗi tới <%s>.\n" +"Báo cáo lỗi nào cho: %s\n" +"Báo cáo lỗi dịch nào cho Clytie: <clytie@riverland.net.au>\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" -msgstr "" +msgid "Report %s bugs to: %s\n" +msgstr "Báo cáo lỗi %s nào cho: %s\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Trang chủ %s: <%s>\n" + +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "Trang chủ %s : <http://www.gnu.org/software/%s/>\n" + +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" msgstr "" +"Trợ giúp chung về cách sử dụng phần mềm GNU : <http://www.gnu.org/gethelp/>\n" + +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s: Không thể %s" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "Chuỗi gõ quá dài" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s: Cảnh báo: Không thể %s" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "Lỗi cú pháp con số" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s: Không thay đổi được chế độ thành %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd: Không thể phân phối không gian cho bộ đệm\n" +#: lib/paxerror.c:101 +#, c-format +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s: Không thay đổi được quyền sở hữu thành uid %lu, gid %lu" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "Không thể phân phối không gian cho bộ đệm" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s: Không tạo được liên kết cứng tới %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:179 lib/paxerror.c:211 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "Hãy thử `%s --help' để biết thêm thông tin.\n" +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Lỗi đọc tại byte %s, trong khi đọc %lu byte" -#: rmt/rmt.c:308 +#: lib/paxerror.c:192 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s: Cảnh báo: Lỗi đọc tại byte %s, trong khi đọc %lu byte" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s: Không thể tìm tới %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s: Cảnh báo: Không thể tìm tới %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s: Không tạo được liên kết mềm tới %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%s: Chỉ ghi nhớ %lu từ %lu byte" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "Xóa bỏ phần dẫn đầu `%s' từ tên của các thành viên" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "Xóa bỏ phần dẫn đầu `%s' từ đích đến của các liên kết cứng" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "Đang thay thế `.' cho tên rỗng của các thành viên" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "Đang thay thế `.' cho đích đến rỗng của liên kết cứng" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp: Dịch vụ không làm việc" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "đầu vào tiêu chuẩn" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "đầu ra tiêu chuẩn" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"Sử dụng: %s [TÙY_CHỌN]\n" -"Điều khiển một ổ băng từ, chấp nhận các lệnh từ một tiến trình ở xa.\n" -"\n" -" --version Đưa ra thông tin phiên bản.\n" -" --help Đưa ra trợ giúp này.\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "Lỗi hiệu số tìm nơi" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "Không thể chạy shell ở xa" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "Hướng tìm kiếm vượt quá vùng cho phép" + +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "Sai đặt hướng tìm nơi" + +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "Sai đặt khoảng chênh tìm nơi" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" msgstr "Bộ tìm kiếm vượt quá vùng cho phép" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "Hướng tìm kiếm vượt quá vùng cho phép" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "Sai đếm byte" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "Số đếm byte ở ngoại phạm vi" + +#: rmt/rmt.c:539 +msgid "Premature eof" +msgstr "Gặp kết thúc tập tin sớm" + +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "Mã thao tác sai" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "Thao tác không được hỗ trợ" + +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "Gặp đối số bất thường" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "Thao tác một ổ băng từ, chấp nhận lệnh từ một tiến trình ở xa" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "SỐ" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "đặt cấp gỡ rối" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "TẬP TIN" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "đặt tên tập tin kết xuất gỡ rối" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd: Kết thúc tập tin (eof) sớm\n" +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "không thể mở %s" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "Kết thúc sớm của tập tin" +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "quá nhiều đối số" -#: rmt/rmt.c:672 +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "Câu lệnh rác" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" -msgstr "Đây có vẻ không phải là một tập tin lưu trữ tar" +msgstr "Đây có vẻ không phải là một kho lưu tar" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "Tổng số byte đã ghi" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "Tổng số byte đã đọc" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "Tổng số byte đã xoá: %s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(đường ống)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "Giá trị cho record_size không đúng" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" -msgstr "Không đưa ra tên tập tin lưu trữ" +msgstr "Không đưa ra tên kho lưu" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" -msgstr "Không kiểm tra được tập tin lưu trữ stdin/stdout" +msgstr "Không kiểm tra được kho lưu stdin/stdout" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" -msgstr "Tập tin lưu trữ được nén. Hãy sử dụng tùy chọn %s" +msgstr "Kho lưu được nén. Hãy sử dụng tùy chọn %s" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" -msgstr "Không cập nhật được lưu trữ đã nén" +msgstr "Không cập nhật được kho lưu đã nén" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "Tại đầu băng ghi âm, thoát ra bây giờ" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "Quá nhiều lỗi, đang thoát" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" -msgstr[0] "Khối chưa sắp hàng (%lu byte) trong tập tin lưu trữ" +msgstr[0] "Kích cỡ mục ghi = %lu khối" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" -msgstr[0] "Khối chưa sắp hàng (%lu byte) trong tập tin lưu trữ" +msgstr[0] "Khối chưa sắp hàng (%lu byte) trong kho lưu" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" -msgstr "Không thể \"tua\" lại tập tin lưu trữ; nó có thể đọc khi không có -i" +msgstr "" +"Không thể \"tua\" lại tập tin kho lưu; nó có thể không đọc được khi không có " +"« -i »" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek không dừng lại tại một ranh giới bản ghi" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: chứa số thứ tự khối không đúng" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "Số thứ tự khối thừa ra" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Chuẩn bị khối #%d cho %s và nhấn Enter: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "Kết thúc tập tin (EOF) khi mong đợi trả lời của người dùng" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" -msgstr "CẢNH BÁO: Tập tin lưu trữ không hoàn thành" +msgstr "CẢNH BÁO: Kho lưu không hoàn thành" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -677,65 +719,65 @@ msgstr "" " q Dừng tar\n" " y hay dòng mới\tTiếp tục lại chạy tiến trình\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Tạo một trình bao con\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? In ra danh sách này\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "Không có khối mới; đang thoát.\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "Chưa ghi rõ tên tập tin: hãy thử lại.\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Gõ sai. (Gỏ ? để xem trợ giúp.)\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "Câu lệnh %s không thành công" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s có thể tiếp tục trên khối tin này: phần đầu chứa tên bị cắt ngắn" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s không tiếp tục trên khối này" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s là kích thước sai (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Khối tin này vượt quá dãy cho phép (%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" -msgstr "Tập tin lưu trữ không có nhãn tương ứng với %s" +msgstr "Kho lưu không có nhãn tương ứng với %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "Khối %s không tương ứng %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -743,59 +785,59 @@ msgstr "" "%s: tên tập tin quá dài để chứa trong một phần đầu đa khối GNU nên bị cắt " "ngắn" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "tiến trình ghi (write) không dừng lại tại một ranh giới khối" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Chỉ đọc được %lu từ %lu byte" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "Diff nội dung" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" -msgstr "Kết thúc tập tin không mong đợi trong lưu trữ" +msgstr "Kết thúc tập tin không mong đợi trong kho lưu" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "Diff dạng tập tin" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "Diff chế độ" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Diff Uid" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Diff Gid" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "Diff thời gian sửa đổi" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "Diff kích thước" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "Không liên kết tới %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Diff liên kết mềm" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "Diff số thứ tự của thiết bị" @@ -812,39 +854,39 @@ msgstr "" #: src/compare.c:524 msgid "Archive contains file names with leading prefixes removed." -msgstr "Tập tin lưu trữ chứa tên tập tin không có tiền tố ở đầu." +msgstr "Kho lưu chứa tên tập tin không có tiền tố ở đầu." #: src/compare.c:526 msgid "Verification may fail to locate original files." msgstr "Sự kiểm tra có thể không định vị được các tập tin gốc." -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "LỖI KIỂM TRA: tìm thấy %d phần đầu không đúng" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "Một khối không đơn lẻ tại %s" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: chứa một thẻ thư mục ghi nhớ tạm %s: %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "giá trị %s vượt quá %s phạm vi %s..%s; đang thay thế %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "giá trị %s vượt quá %s phạm vi %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "Đang tạo phần đầu hệ tám âm" @@ -863,429 +905,434 @@ msgstr "%s: tên tập tin quá dài (không chia được); không được dum msgid "%s: link name is too long; not dumped" msgstr "%s: tên liên kết quá dài; không được dump" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s: Tập tin được rút ngắn %s byte; độn vào bắng các số không" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: tập tin trên một hệ thống tập tin khác; không được dump" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "chưa đổ nội dung" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Không rõ dạng tập tin; tập tin bị lờ đi" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "Thiếu liên kết tới '%s'.\n" +msgid "Missing links to %s." +msgstr "Thiếu liên kết tới %s." -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: tập tin chưa thay đổi; không được dump" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" -msgstr "%s: tập tin là một lưu trữ; không được dump" +msgstr "%s: tập tin là kho lưu; không được đổ" -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s: Tập tin bị xóa trước khi chúng ta đọc nó" - -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "chưa đổ thư mục" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" msgstr "%s: tập tin đã thay đổi khi chúng ta đọc nó" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" msgstr "%s: socket bị lờ đi" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: cửa (door) bị lờ đi" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "Nhảy tới phần đầu tiếp theo" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" -msgstr "Xóa không phải phần đầu từ lưu trữ" +msgstr "Xóa không phải phần đầu từ kho lưu" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: tem thời gian cũ không hợp lý %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: tem thời gian %s là %s giây trong tương lai" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Sự mâu thuẫn không mong đợi khi tạo thư mục" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s: Đổi tên thư mục trước khi có thể giải phóng trạng thái của nó" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "Giải nén các tập tin liền nhau thành những tập tin thông thường" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "Đang thử giải nén liên kết mềm thành liên kết cứng" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "Đọc %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Không giải nén được -- tập tin tiếp tục từ khối khác" -#: src/extract.c:1150 src/list.c:1090 +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "Phần đầu tên dài không mong đợi" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s: Dạng tập tin không rõ '%c' nên giải nén như tập tin thông thường" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "%s hiện thời là mới hay hay cùng thời" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s: Không thể sao lưu tập tin này" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "Không thể đổi tên %s thành %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "Lỗi không thể phục hồi: thoát bây giờ" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Đã đổi tên thư mục từ %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Đã đổi tên thư mục" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s: Thư mục là mới" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "Tem thời gian không đúng" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "Thời gian sửa đổi không hợp lệ (giây)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "Thời gian sửa đổi không hợp lệ (nanô-giây)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "Số thứ tự thiết bị không đúng" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "Số thứ tự chỉ mục inode sai" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "Trường quá dài trong khi đọc tập tin ảnh chụp" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "Lỗi đọc trong tập tin ảnh chụp" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "Kết thúc tập tin (EOF) không mong đợi trong tập tin ảnh chụp" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "Giá trị trường không mong đợi trong tập tin ảnh chụp" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "Thiếu dấu giới hạn mục ghi" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "Định dạng tập tin dần sai" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "Phiên bản định dạng dần không được hỗ trợ : %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "Thư mục đổ dạng sai: mong đợi « %c » còn tìm %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "Thư mục đổ dạng sai: « X » đã nhân đôi" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "Thư mục đổ dạng sai: tên rỗng trong « R »" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "Thư mục đổ dạng sai: « T » không có « R » đi trướ" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "Thư mục đổ dạng sai: tên rỗng trong « T »" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "Thư mục đổ dạng sai: mong đợi « %c » còn tìm kết thúc dữ liệu" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "Thư mục đổ dạng sai: « X » không bao giờ dùng" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "Không thể tạo thư mục tạm bằng mẫu %s" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s: Không làm sạch thư mục: không thể lấy trạng thái (stat)" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: thư mục trên một thiết bị khác: không làm sạch" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s: Đang xóa %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s: Không thể xóa bỏ" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s: Đang bỏ đi" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "khối %s: ** Khối của các số không (NUL) **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "khối %s: ** Kết thúc tập tin **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "khối %s: " -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Khoảng trống trong Phần đầu trong khi mong đợi một giá trị số %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" -"Giá trị hệ tám %.*s của lưu trữ vượt ra phạm vi %s; coi như phần bù của hai" +"Giá trị hệ tám %.*s của kho lưu vượt ra phạm vi %s; coi như phần bù của hai" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" -msgstr "Giá trị hệ tám %.*s của lưu trữ vượt ra phạm vi %s" +msgstr "Giá trị hệ tám %.*s của kho lưu vượt ra phạm vi %s" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" -msgstr "Lưu trữ chứa phần đầu base-64 không còn dùng nữa" +msgstr "Kho lưu chứa phần đầu base-64 không còn dùng nữa" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" -msgstr "Lưu trữ ký chuỗi base-64 %s vượt ra ngoài vùng %s" +msgstr "Kho lưu ký chuỗi base-64 %s vượt ra ngoài vùng %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" -msgstr "Giá trị base-256 của lưu trữ vượt ra ngoài vùng %s" +msgstr "Giá trị base-256 của kho lưu vượt ra ngoài vùng %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" -msgstr "Lưu trữ chứa %.*s ở chỗ mong đợi giá trị số %s" +msgstr "Kho lưu chứa %.*s ở chỗ mong đợi giá trị số %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" -msgstr "Giá trị lưu trữ %s vượt quá phạm vi %s (%s..%s)" +msgstr "Giá trị kho lưu %s vượt quá phạm vi %s (%s..%s)" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " liên kết tới %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " dạng tập tin không rõ %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--Liên kết Dài--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--Tên Dài--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--Phần đầu Khối--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Tiếp tục tại byte %s--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "Đang tạo thư mục:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "Đang đổi tên %s thành %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Không thể đổi tên thành %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "Đang đổi tên %s ngược lại thành %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "Không thể ghi nhớ thư mục làm việc" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "Không thay đổi được thư mục làm việc" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s: Tập tin bị xóa trước khi chúng ta đọc nó" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: Thư mục bị xoá trước khi chúng ta đọc nó" + +#: src/misc.c:795 msgid "child process" msgstr "tiến trình con" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "kênh (channel) giữa các tiến trình" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "Tên tập tin chứa ký tự khớp mẫu." -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "Hãy dùng « --wildcards » để hiệu lực khớp mẫu," -#: src/names.c:597 -msgid "suppress this warning." -msgstr "hoặc dùng « --no-wildcards » để thu hồi cảnh báo này." - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" -msgstr "%s: Không tìm thấy trong lưu trữ" +msgstr "%s: Không tìm thấy trong kho lưu" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" -msgstr "%s: Không tìm thấy phần tử yêu cầu trong lưu trữ" +msgstr "%s: Không tìm thấy phần tử yêu cầu trong kho lưu" + +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "" +"Sử dụng tuỳ chọn « -C » bên trong danh sách tập tin không được phép với « --" +"listed-incremental »" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "Chỉ cho phép một tuỳ chọn « -C » với « --listed-incremental »" -#: src/tar.c:79 +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "Cả hai tùy chọn `-%s' và `-%s' đều muốn dữ liệu nhập vào tiêu chuẩn" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" -msgstr "%s: Định dạng lưu trữ không đúng" +msgstr "%s: Định dạng kho lưu không đúng" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" -msgstr "Muốn tính năng GNU trên định dạng lưu trữ không tương thích" +msgstr "Muốn tính năng GNU trên định dạng kho lưu không tương thích" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." @@ -1293,7 +1340,7 @@ msgstr "" "Không rõ kiểu dáng trích dẫn « %s ». Hãy thử lệnh « %s --quoting-style=help » " "để xem danh sách." -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1303,9 +1350,8 @@ msgid "" " tar -tvf archive.tar # List all files in archive.tar verbosely.\n" " tar -xf archive.tar # Extract all files from archive.tar.\n" msgstr "" -"Chương trình `tar' của GNU ghi nhớ nhiều tập tin vào cùng một lưu trữ băng " -"từ hay lên đĩa, và có thể phục hồi từng tập tin riêng rẽ từ kho lưu trữ " -"này.\n" +"Chương trình `tar' của GNU ghi nhớ nhiều tập tin vào cùng một kho lưu băng " +"từ hay lên đĩa, và có thể phục hồi từng tập tin riêng rẽ từ kho lưu này.\n" "\n" "Ví dụ :\n" " tar -cf kho.tar foo bar # Tạo kho.tar từ các tập tin foo và bar.\n" @@ -1313,7 +1359,7 @@ msgstr "" "kho.tar.\n" " tar -xf kho.tar # Giải phóng tất cả các tập tin ra từ kho.tar.\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1324,103 +1370,96 @@ msgid "" " nil, existing numbered if numbered backups exist, simple otherwise\n" " never, simple always make simple backups\n" msgstr "" -"Hậu tố lưu trữ là `~', trừ khi được đặt với « --suffix » hay " +"Hậu tố kho lưu là `~', trừ khi được đặt với « --suffix » hay " "SIMPLE_BACKUP_SUFFIX.\n" "Có thể đặt điều khiển phiên bản bằng « --backup » hay VERSION_CONTROL,\n" "các giá trị là:\n" "\n" -" none, off \tkhông bao giờ tạo lưu trữ\n" -" t, numbered tạo lưu trữ đánh số\n" -" nil, existing đánh số nếu lưu trữ tồn tại, nếu không thì đơn giản\n" -" never, simple luôn luôn tạo lưu trữ đơn giản\n" +" none, off \tkhông bao giờ tạo kho lưu\n" +" t, numbered tạo kho lưu đánh số\n" +" nil, existing đánh số nếu kho lưu tồn tại, nếu không thì đơn giản\n" +" never, simple luôn luôn tạo kho lưu đơn giản\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "Chế độ thao tác chính:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" -msgstr "liệt kê nội dung của một lưu trữ" +msgstr "liệt kê nội dung của một kho lưu" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" -msgstr "giải phóng các tập tin từ một lưu trữ" +msgstr "giải phóng các tập tin từ một kho lưu" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" -msgstr "tạo một lưu trữ mới" +msgstr "tạo một kho lưu mới" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" -msgstr "tìm sự khác nhau giữa lưu trữ và hệ thống tập tin" +msgstr "tìm sự khác nhau giữa kho lưu và hệ thống tập tin" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" -msgstr "thêm các tập tin vào cuối một lưu trữ" +msgstr "thêm các tập tin vào cuối một kho lưu" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" -msgstr "chỉ thêm những tập tin mới hơn bản sao trong lưu trữ" +msgstr "chỉ thêm những tập tin mới hơn bản sao trong kho lưu" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" -msgstr "thêm các tập tin tar vào một lưu trữ" +msgstr "thêm các tập tin tar vào một kho lưu" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" -msgstr "xóa từ lưu trữ (không dùng trên các băng ghi âm mag!)" +msgstr "xóa từ kho lưu (không dùng trên các băng ghi âm mag!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" -msgstr "thử nhãn khối tin lưu trữ rồi thoát" +msgstr "thử nhãn khối tin kho lưu rồi thoát" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "Từ khóa bổ nghĩa thao tác:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "điều khiển các tập tin thưa thớt một cách có hiệu quả" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "CHÍNH[.PHỤ]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "đặt phiên bản của định dạng sparse cần dùng (ngụ ý « --sparse »)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "điều khiển sao lưu incremental có định dạng GNU cũ" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "TẬP TIN" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "điều khiển sao lưu incremental có định dạng GNU mới" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "cấp đổ cho kho lưu liệt kê tăng dần được tạo" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "đừng thoát với giá trị khác không trên tập tin không thể đọc" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "SỐ" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" "diff, --extract or --list and when a list of files is given either on the " "command line or via the -T option; NUMBER defaults to 1" msgstr "" -"chỉ thực hiện trên lần xuất hiện thứ SỐ của mỗi tập tin trong lưu trữ. Tùy " +"chỉ thực hiện trên lần xuất hiện thứ SỐ của mỗi tập tin trong kho lưu. Tùy " "chọn này chỉ có ý nghĩa khi kết hợp với một trong những câu lệnh con:\n" " --delete\t\txoá\n" " --diff\t\tkhác biệt\n" @@ -1430,117 +1469,120 @@ msgstr "" "T ».\n" "Mặc định SỐ có giá trị bằng 1." -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" -msgstr "có thể tìm nơi trong kho lưu trữ" +msgstr "có thể tìm nơi trong kho lưu" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "không thể tìm nơi trong kho lưu" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "đừng kiểm tra số thứ tự thiết bị khi tạo kho nén dần" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "kiểm tra số thứ tự thiết bị khi tạo kho nén dần" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "Điều khiển ghi đè:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" -msgstr "thử kiểm tra lưu trữ sau khi ghi nó" +msgstr "thử kiểm tra kho lưu sau khi ghi nó" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" -msgstr "xóa bỏ các tập tin sau khi thêm chúng vào lưu trữ" +msgstr "xóa bỏ các tập tin sau khi thêm chúng vào kho lưu" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "không thay thế những tập tin đã có khi giải phóng" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" -msgstr "không thay thế những tập tin đã có mà mới hơn bản sao trong lưu trữ" +msgstr "không thay thế những tập tin đã có mà mới hơn bản sao trong kho lưu" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "ghi đè lên những tập tin đã có khi giải phóng" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "xóa bỏ quyền ưu tiên của mỗi tập tin để giải phóng và ghi đè lên nó" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "xóa sạch quyền ưu tiên trong cây thư mục để giải phóng thư mục" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "bảo quản dữ liệu mêta của các thư mục đã có" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" "ghi đè lên siêu dữ liệu của những thư mục đã có khi giải phóng (mặc định)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "Chọn luồng xuất:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "giải phóng tập tin ra đầu ra tiêu chuẩn" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "CÂU LỆNH" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "gửi các tập tin đã giải nén qua ống dẫn cho chương trình khác" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "bỏ qua mã thoát của tiến trình con" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "xử lý mã thoát khác số không của tiến trình con như lỗi" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "Điều khiển thuộc tính tập tin:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "bắt buộc dùng TÊN làm người sở hữu cho những tập tin thêm vào" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "bắt buộc dùng TÊN làm nhóm sở hữu cho những tập tin thêm vào" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "NGÀY-CỦA-TẬP-TIN" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "đặt từ DATE-OR-FILE thời gian mtime cho các tập tin đã thêm" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "THAY ĐỔI" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "bắt buộc THAY ĐỔI chế độ (tượng trưng) cho những tập tin thêm vào" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "PHƯƠNG PHÁP" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1550,45 +1592,51 @@ msgstr "" "thời gian sau khi đọc (PHƯƠNG PHÁP='replace'; mặc định), hoặc bằng cách " "không đặt thời gian như vậy (PHƯƠNG PHÁP='system')" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "không giải phóng thời gian sửa đổi của tập tin" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "thử giải phóng tập tin với cùng quyền sở hữu" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "" +"thử giải phóng tập tin cùng quyền sở hữu với tập tin trong kho lưu (mặc định " +"cho siêu người dùng)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "giải phóng tập tin như tự bạn" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "" +"giải phóng tập tin dưới tên người dùng riêng (mặc định cho người dùng bình " +"thường)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "luôn luôn sử dụng số cho tên người dùng/nhóm" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "" "cũng giải nén thông tin về quyền truy cập tập tin (mặc định cho siêu người " "dùng)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -"áp dụng umask của người dùng khi giải nén quyền truy cập ra từ kho lưu trữ " -"(mặc định cho người dùng bình thường)" +"áp dụng umask của người dùng khi giải nén quyền truy cập ra từ kho lưu (mặc " +"định cho người dùng bình thường)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" -msgstr "sắp xếp tên để giải phóng tới lưu trữ tương ứng" +msgstr "sắp xếp tên để giải phóng tới kho lưu tương ứng" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "giống như khi có hai tùy chọn -p và -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" @@ -1596,242 +1644,216 @@ msgstr "" "hoãn đến kết thúc tiến trình giải nén việc đặt thời gian sửa đổi và quyền " "truy cập các thư mục đã giải nén" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "hủy hiệu ứng của tùy chọn « --delay-directory-restore »" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "Lựa chọn và chuyển đổi thiết bị:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "LƯU TRỮ" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" -msgstr "sử dụng tập tin lưu trữ hoặc thiết bị LƯU TRỮ" +msgstr "sử dụng tập tin kho lưu hoặc thiết bị LƯU TRỮ" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" -msgstr "tập tin lưu trữ là nội bộ thậm chí nếu có một dấu hai chấm" +msgstr "tập tin kho lưu là cục bộ thậm chí nếu có một dấu hai chấm" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "sử dụng CÂU LỆNH rmt đưa ra thay cho rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "sử dụng CÂU LỆNH từ xa thay cho rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "chỉ ra ổ và mật độ ghi dữ liệu" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" -msgstr "tạo/liệt kê/giải phóng lưu trữ nhiều khối" +msgstr "tạo/liệt kê/giải phóng kho lưu nhiều khối" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "thay băng ghi âm (tape) sau khi ghi nhớ SỐ X 1024 byte" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "chạy script tại cuối mỗi băng ghi âm (có nghĩa -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "sử dụng/cập nhật số thứ tự khối trong TẬP TIN" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "Khối của thiết bị:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "KHỐI" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "KHỐI X 512 byte cho mỗi bản ghi" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "SỐ byte cho mỗi mục ghi, bội số cho 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" -msgstr "lờ đi những khối không (zero) trong lưu trữ (có nghĩa EOF)" +msgstr "lờ đi những khối không (zero) trong kho lưu (có nghĩa EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "đặt khối lại khi chúng ta đọc (cho đường ống 4.2BSD)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" -msgstr "Lựa chọn định dạng lưu trữ:" +msgstr "Lựa chọn định dạng kho lưu:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "ĐỊNH DẠNG" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "tạo lưư trữ với định dạng đưa ra" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "ĐỊNH DẠNG là một trong số sau:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "định dạng tar V7 cũ" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "định dạng GNU theo như tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "định dạng tar GNU 1.13.x" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "định dạng PoSIX 1003.1-1988 (ustar)" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "định dạng POSIX 1003.1-2001 (pax)" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "bằng pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "giống như --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "giống như --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "từ_khoá[[:]=giá_trị][,từ_khoá[[:]=giá_trị]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "từ khóa điều khiển pax" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "VĂN BẢN" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -"tạo lưu trữ với tên khối tin VĂN BẢN. Tại thời điểm liệt kê/giải phóng, sử " +"tạo kho lưu với tên khối tin VĂN BẢN. Tại thời điểm liệt kê/giải phóng, sử " "dụng VĂN BẢN làm mẫu glob cho tên khối tin" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "Tùy chọn nén:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" -msgstr "dùng hậu tố lưu trữ để xác định chương trình nén" +msgstr "dùng hậu tố kho lưu để xác định chương trình nén" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" -msgstr "không nên dùng hậu tố lưu trữ để xác định chương trình nén" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "lọc lưu trữ qua bzip2" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "lọc lưu trữ qua gzip" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "lọc lưu trữ qua compress" - -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "lọc lưu trữ qua lzma" +msgstr "không nên dùng hậu tố kho lưu để xác định chương trình nén" -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "lọc kho lưu trữ qua lzop" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "lọc lưu trữ qua gzip" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "TRÌNH" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "lọc qua chương TRÌNH (phải chấp nhận -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "Lựa chọn tập tin nội bộ:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -"thêm vào kho lưu trữ TẬP TIN đã cho (có ích nếu tên nó bắt đầu với dấu gạch)" +"thêm vào kho lưu TẬP TIN đã cho (có ích nếu tên nó bắt đầu với dấu gạch)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "THƯ MỤC" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "thay đổi tới thư mục THƯ MỤC" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "lấy các tên tập tin cần giải phóng hay tạo từ TẬP TIN" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T đọc tên kết thúc vô hiệu lực, tắt -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "tắt hiệu ứng của tùy chọn « --null » đi trước" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "hủy trích dẫn các tên tập tin được đọc bằng « -T » (mặc định)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "đừng hủy trích dẫn các tên tập tin được đọc bằng « -T »" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "MẪU" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "loại trừ những tập tin tương ứng với MẪU" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "loại trừ những mẫu liệt kê trong TẬP TIN" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1839,88 +1861,92 @@ msgstr "" "loại trữ nội dung của thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG, trừ tập tin " "thẻ chính nó" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" "loại trữ mọi thứ đều nằm dưới thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "loại trữ thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "loại trữ nội dung của thư mục chứa TẬP TIN, trừ TẬP TIN chính nó" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "loại trữ mọi thứ đều nằm dưới thư mục chứa TẬP TIN" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "loại trữ thư mục chứa TẬP TIN" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "trừ thư mục của hệ thống điều khiển phiên bản (v.d. « .svn »)" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "loại trừ tập tin kiểu sao lưu và khoá" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "tránh sự giảm dần một cách tự động trong các thư mục" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" -msgstr "nằm trong hệ thống tập tin nội bộ khi tạo lưu trữ" +msgstr "nằm trong hệ thống tập tin nội bộ khi tạo kho lưu" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "đệ quy vào các thư mục (mặc định)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "đừng bỏ `/' ở đầu tên tập tin" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" -msgstr "theo liên kết tượng trưng; lưu trữ và đổ tập tin tới đó nó chỉ" +msgstr "theo liên kết tượng trưng; kho lưu và đổ tập tin tới đó nó chỉ" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" -msgstr "theo liên kết cứng; lưu trữ và đổ tập tin tới đó nó chỉ" +msgstr "theo liên kết cứng; kho lưu và đổ tập tin tới đó nó chỉ" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "TÊN-THÀNH-VIÊN" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" -msgstr "bắt đầu tại thành viên TÊN-THÀNH-VIÊN trong lưu trữ" +msgstr "bắt đầu tại thành viên TÊN-THÀNH-VIÊN trong kho lưu" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "chỉ chứa những tập tin mới hơn NGÀY-CỦA-TẬP-TIN" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "NGÀY" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "so sánh ngày và thời gian chỉ khi dữ liệu thay đổi" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "ĐIỀU KHIỂN" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "sao lưu trước khi xóa, chọn phiên bản ĐIỀU KHIỂN" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "CHUỖI" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -1928,121 +1954,129 @@ msgstr "" "sao lưu trước khi xóa, ghi đè hậu tố thông thường ('~' trừ khi ghi đè bằng " "biến môi trường SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "Chuyển dạng tên tập tin:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "bỏ đi SỐ thành phần đứng đầu ra tên tập tin khi giải nén" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "BIỂU THỨC" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "dùng « sed replace BIỂU THỨC » để chuyển dạng tên tập tin" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Tùy chọn khớp tên tập tin (có tác động mẫu kiểu cả hai loại trừ và bao gồm):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "không phân biệt chữ hoa/thường" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "mẫu tương ứng với bắt đầu tên tập tin" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "mẫu tương ứng sau bất kỳ / nào (mặc định để loại trừ)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "khớp có phân biệt chữ hoa/ thường (mặc định)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "dùng ký tự đại diện (mặc định để loại trừ)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "khớp chuỗi nghĩa chữ" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "ký tự đại diện không tương ứng '/'" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "ký tự đại diện tương ứng '/' (mặc định để loại trừ)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "Dữ liệu kết quả có tính thông tin:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "liệt kê một cách tỉ mỉ những tập tin được tiến hành" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "TỪ_KHOÁ" + +#: src/tar.c:740 +msgid "warning control" +msgstr "điều khiển cảnh báo" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "hiển thị thông báo về tiến triển sau mỗi mục ghi thứ SỐ (mặc định 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "HÀNH_ĐỘNG" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "thực hiện HÀNH_ĐỘNG này ở mỗi điểm kiểm" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "in ra một thông báo nếu không phải tất cả các liên kết được dump" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "TÍN HIỆU" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " "SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also " "accepted" msgstr "" -"in ra tổng số byta sau khi xử lý kho lưu trữ ;\n" +"in ra tổng số byte sau khi xử lý kho lưu ;\n" "có đối số thì in ra tổng số byte khi nhận được TÍN HIỆU này; tín hiệu được " "phép:\n" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1, SIGUSR2;\n" "cũng chấp nhận tên không có tiền tố « SIG »." -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "in ra ngày sửa đổi tập tin theo UTC" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "gửi kết quả chi tiết tới TẬP TIN" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" -msgstr "hiên thị số thứ tự khối trong lưu trữ với mỗi thông báo" +msgstr "hiên thị số thứ tự khối trong kho lưu với mỗi thông báo" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "hỏi xác nhận trước mỗi hành động" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "hiển thị các giá trị mặc định của tar" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2050,32 +2084,32 @@ msgstr "" "khi liệt kê hay giải phóng, liệt kê mỗi thư mục không tương ứng với tiêu chí " "tìm kiếm" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" -msgstr "hiển thị các tên tập tin hay kho lưu trữ sau khi chuyển dạng" +msgstr "hiển thị các tên tập tin hay kho lưu sau khi chuyển dạng" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "KIỂU DÁNG" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "đặt kiểu dáng trích dẫn tên; xem dưới để tìm các giá trị KIỂU DÁNG hợp lệ" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "cũng trích dẫn các ký tự của CHUỖI" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "tắt trích dẫn các ký tự của CHUỖI" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "Tùy chọn tương thích:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2083,56 +2117,62 @@ msgstr "" "khi tạo, giống như « --old-archive »\n" "khi giải phóng, giống như « --no-same-owner »" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "Những tùy chọn khác:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "tắt sử dụng một số tùy chọn có thể gây tai hại" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "Không nên chỉ ra hai tùy chọn hoặc nhiều hơn trong số `-Acdtrux'" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "Chỉ cho phép đưa ra một tùy chọn « -Acdtrux » hay « --test-label »" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "Mâu thuẫn giữa các tùy chọn nén" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" msgstr "Không rõ tên tín hiệu : %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "Không tìm thấy tập tin mẫu ngày tháng" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Đang thay thế %s cho dạng ngày tháng không rõ %s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "Tùy chọn %s: đang xử lý ngày tháng « %s » như %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: danh sách tập tin đã được đọc" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: đọc tên tập tin chứa ký tự vô giá trị" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "lọc kho lưu qua %s" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "Các đối số thích hợp với tùy chọn « --quoting-style »:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2140,48 +2180,51 @@ msgstr "" "\n" "tar *này* mặc định tới:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" msgstr "Nhân tố khối không đúng" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "Chiều dài băng ghi âm không đúng" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "Sai đặt giá trị cấp tăng dần" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "Có nhiều ngày bắt đầu" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" msgstr "Giá trị phiên bản sparse không hợp lệ" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' không được hỗ trợ trên nền tảng này" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "giá trị « --checkpoint » không phải số nguyên" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s: Nhóm không đúng" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "Nhóm không đúng" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "Đưa ra chế độ không đúng trên tùy chọn" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "Số không đúng" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "Chủ sở hữu không đúng" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2189,111 +2232,115 @@ msgstr "" "Tùy chọn « --preserve » bị phản đối, hãy sử dụng tùy chọn « --preserve-" "permissions » « --preserve-order » để thay thế" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "Kích thước bản ghi không đúng" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "Kích thước bản ghi phải là bội số của %d." -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "Số thứ tự của nguyên tố không đúng" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "Cho phép chỉ một tùy chọn « --to-command »" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "Tham số mật độ dạng sai: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "Mật độ không rõ : « %c »" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "tar *này* không hỗ trợ tùy chọn `-[0-7][lmh]'" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[TẬP TIN]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "Tùy chọn cũ `%c' yêu cầu một tham số." -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence không có giá trị khi không đưa ra một danh sách tập tin" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence không được sử dụng trong chế độ thao tác đã yêu cầu" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" -msgstr "Tập tin nhiều lưu trữ yêu cầu tùy chọn `-M'" +msgstr "Tập tin nhiều kho lưu yêu cầu tùy chọn `-M'" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "Không thể kết hợp --listed-incremental với --newer" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "Tùy chọn « --level » vô ích mà không có « --listed-incremental »" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s: Nhãn khối quá dài (giới hạn là %lu byte)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" -msgstr "Không thể kiểm tra lưu trữ nhiều khối" +msgstr "Không thể kiểm tra kho lưu nhiều khối" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" -msgstr "Không thể kiểm tra lưu trữ đã nén" +msgstr "Không thể kiểm tra kho lưu đã nén" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" -msgstr "Không thể sử dụng lưu trữ nhiều khối đã nén" +msgstr "Không thể sử dụng kho lưu nhiều khối đã nén" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "Không thể ghép nối các kho nén" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" -msgstr "--pax-option chỉ dùng được trên lưu trữ POSIX" +msgstr "--pax-option chỉ dùng được trên kho lưu POSIX" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "Chiều dài khối tin không thể nhỏ hơn kích cỡ mục ghi" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "" "Tùy chọn « --preserve-order » không tương thích với « --listed-incremental »" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" -msgstr "Từ chối tạo một lưu trữ trống rỗng" +msgstr "Từ chối tạo một kho lưu trống rỗng" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "Các tùy chọn `-Aru' không tương thích với `-f -'" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "Bạn phải chỉ ra một trong các tùy chọn `-Acdtrux'" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "Bạn phải chỉ ra một trong hai tùy chọn « -Acdtrux » và « --test-label »" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Đang thoát với trạng thái thất bại do lỗi xảy ra trước" @@ -2304,80 +2351,84 @@ msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Tập tin được rút ngắn %s byte" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Từ khóa %s không rõ hoặc chưa được thực hiện" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "Nhãn thời gian ở ngoại phạm vi" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "Không thể dùng mẫu (pattern) %s" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Không thể ghi chèn lên từ khóa %s" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "Phần đầu mở rộng dạng sai: thiếu chiều dài" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "Chiều dài phần đầu mở rộng ở ngoại phạm vi được phép" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "Chiều dài phần đầu mở rộng %*s ở ngoại phạm vi được phép" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "Phần đầu mở rộng dạng sai: thiếu khoảng trắng ở sau chiều dài" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "Phần đầu mở rộng bị lỗi: thiếu dấu bằng" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "Phần đầu mở rộng dạng sai: thiếu dòng mới" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "Bỏ qua từ khoá phần đầu mở rộng không rõ « %s »" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Cặp từ khoá/giá trị đã tạo ra quá dài (từ khoá=%s, chiều dài=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Phần đầu mở rộng %s=%s ở ngoại phạm vi (%s..%s)" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Phần đầu mở rộng dạng sai: %s=%s không hợp lệ" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Phần đầu mở rộng dạng sai: %s=%s thừa" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Phần đầu mở rộng dạng sai: %s không hợp lệ: dấu giới hạn không mong đợi %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Phần đầu mở rộng dạng sai: %s không hợp lệ: số giá trị lẻ" @@ -2418,7 +2469,7 @@ msgstr "Điểm kiểm tra ghi %u" msgid "Read checkpoint %u" msgstr "Điểm kiểm tra đọc %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2426,90 +2477,95 @@ msgstr "" "genfile thao tác các tập tin dữ liệu cho bộ tiện ích thử paxutils của GNU.\n" "TÙY CHỌN:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "Tùy chọn tạo tập tin:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "KÍCH CỠ" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "Tạo tập tin có KÍCH CỠ đã cho" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "Ghi vào tập tin TÊN, thay vào thiết bị gõ chuẩn" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "Đọc các tên tập tin từ TẬP TIN" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T đọc tên kết thúc vô hiệu lực" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Điền vào tập tin bằng MẪU đã cho. MẪU là:\n" " • default\t\tmặc định\n" " • zeros\t\tcác số không" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "Kích cỡ của khối cho tập tin spare" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Tạo ra tập tin sparse. Phần còn lại của dòng lệnh đưa ra sơ đồ tập tin." -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "HIỆU SỐ" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "Tìm nơi theo hiệu số đã cho trước khi ghi dữ liệu" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "Tùy chọn thống kê tập tin:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "In ra kết xuất struct stat về mỗi tập tin đã cho. ĐỊNH DẠNG mặc định: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "Tùy chọn thực hiện đồng thời:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "TÙY_CHỌN" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"Thực hiện LỆNH đã cho. Có ích với « --checkpoint » (điểm kiểm tra) và một " -"của:\n" +"Thực hiện các ĐỐI_SỐ đã cho. Có ích với « --checkpoint » (điểm kiểm tra) và " +"một của:\n" " • --cut\t\tcất\n" " • --append\tphụ thêm\n" -" • --touch\tsờ" +" • --touch\tsờ\n" +" • --unlink\tbỏ liên kết" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Thực hiện hành động đã cho (xem dưới) khi tới điểm kiểm tra SỐ" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "Đặt ngày tháng cho tùy chọn « -touch » kế tiếp" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Hiển thị các điểm kiểm tra đã thực hiện và trạng thái thoát của LỆNH" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2517,7 +2573,7 @@ msgstr "" "Các hành động thực hiện đồng thời; được thực hiện khi tới điểm kiểm tra có " "số được ghi rõ bằng tùy chọn « --checkpoint »." -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2525,140 +2581,147 @@ msgstr "" "Cắt ngắn TẬP TIN thành kích cỡ được ghi rõ bằng tùy chọn « --length » trước " "(không ghi rõ thì 0)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Phụ thêm KÍCH CỠ byte vào TẬP TIN. KÍCH CỠ được ghi rõ bằng tùy chọn « --" "length » trước." -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "Cập nhật các thời gian truy cập và sửa đổi của TẬP TIN" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "Thực hiện LỆNH" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "Bỏ liên kết TẬP_TIN" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Kích cỡ không hợp lệ: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Số nằm ngoài phạm vi cho phép: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Kích cỡ âm: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) bị lỗi" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "yêu cầu chiều dài tập tin %lu mà có %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "đã tạo tập tin không phải thưa thớt (sparse)" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "Lỗi phân tích số gần « %s »" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "Không rõ định dạng ngày tháng" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ĐỐI SỐ...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "không thể mở « %s »" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "không thể tìm nơi" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "tên tập tin chứa ký tự vô giá trị" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "không thể tạo ra tập tin sparse trên thiết bị gõ chuẩn: dùng tùy chọn « --" "file »" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "mặt nạ không đúng (gần « %s »)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "Không rõ trường « %s »" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "không thể đặt thời gian trên « %s »" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "không thể bỏ liên kết « %s »" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "Lệnh đã thoát thành công\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "Lệnh bị lỗi với trạng thái %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "Lệnh đã chấm dứt khi nhận tín hiệu %d\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "Lệnh đã dừng chạy khi nhận tín hiệu %d\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "Lệnh đã đổ lõi\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "Lệnh đã chấm dứt\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat yêu cầu tên tập tin" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "quá nhiều đối số" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "Không thể quyết định tên máy %s" -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "Cảnh báo: không hỗ trợ tùy chọn -I, có thể bạn muốn -j hay -T?" +#~ msgid "suppress this warning." +#~ msgstr "hoặc dùng « --no-wildcards » để thu hồi cảnh báo này." diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index d501c0efe0d51f889cce6d4439515586d1a25ebc..13bbeee20514f9bdb041b62666aa58c91b485bdf 100644 Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ diff --git a/po/zh_CN.po b/po/zh_CN.po index 907b108ff0ba6ba28bb74773491f6a2aea3ff78a..642de848cb142615c14100ba9aa01e6e6aefc7a2 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -3,294 +3,204 @@ # This file is distributed under the same license as the tar package. # Wang Li <charles@linux.net.cn>, 2002. # Rongjun Mu <rongjunmu+i18n@gmail.com>, 2004. -# Ji ZhengYu <zhengyuji@gmail.com>, 2008. +# Ji ZhengYu <zhengyuji@gmail.com>, 2008, 2009, 2010. # msgid "" msgstr "" -"Project-Id-Version: tar 1.21\n" +"Project-Id-Version: tar 1.22.91\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2009-01-04 13:57+0800\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2010-02-16 14:27+0800\n" "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n" -"Language-Team: Chinese (simplified) <translation-team-zh-cn@lists." -"sourceforge.net>\n" +"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "%2$s 的参数 %1$s 无效" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" msgstr "%2$s 的参数 %1$s 具有歧义" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "有效的参数为:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" msgstr "ARGP_HELP_FMT: %s 的值小于或者等于 %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT 参数需要一个值" -#: lib/argp-help.c:226 +#: gnu/argp-help.c:228 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" msgstr "%.*s: ARGP_HELP_FMT 参数值必须为正" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" msgstr "%.*s: 未知的 ARGP_HELP_FMT 参数" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "ARGP_HELP_FMT 中的参数错误: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "长选项和相应短选项具有相同的强制参数或可选参数。" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" msgstr "用法:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " msgstr " 或: " -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" msgstr " [选项...]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, c-format msgid "Try `%s --help' or `%s --usage' for more information.\n" msgstr "请用“%s --help”或“%s --usage”获得更多信息。\n" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "将错误报告发送到 %s。\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "未知的系统错误" -#: lib/argp-parse.c:81 src/tar.c:774 +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "显示此帮助列表" -#: lib/argp-parse.c:82 src/tar.c:775 +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "显示简短的用法说明" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "名称" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" msgstr "设置程序名" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" msgstr "秒" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" msgstr "挂起 SECS 秒(默认 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "打印程序版本" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" msgstr "(程序错误)未知版本!?" -#: lib/argp-parse.c:611 +#: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" msgstr "%s:参数太多\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" msgstr "(程序错误)选项可否被识别!?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" msgstr "写错误" -#: lib/getopt.c:526 lib/getopt.c:542 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s:选项“%s”具有歧义\n" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s: 选项\"%s\"具有歧义\n" -#: lib/getopt.c:575 lib/getopt.c:579 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s:选项“--%s”不接受参数\n" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s: 选项\"--%s\"不需要参数\n" -#: lib/getopt.c:588 lib/getopt.c:593 +#: gnu/getopt.c:593 gnu/getopt.c:598 #, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s:选项“%c%s”不接受参数\n" +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s: 选项\"%c%s\"不需要参数\n" -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 #, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s:选项“%s”需要一个参数\n" +msgid "%s: option '%s' requires an argument\n" +msgstr "%s: 选项\"%s\"必须要参数\n" -#: lib/getopt.c:693 lib/getopt.c:696 +#: gnu/getopt.c:698 gnu/getopt.c:701 #, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s:无法识别的选项“--%s”\n" +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s: 无法识别的选项\"--%s\"\n" -#: lib/getopt.c:704 lib/getopt.c:707 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s:无法识别的选项“%c%s”\n" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s: 无法识别的选项\"%c%s\"\n" -#: lib/getopt.c:759 lib/getopt.c:762 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s:非法选项 -- %c\n" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s: 无效选项 -- \"%c\"\n" -#: lib/getopt.c:768 lib/getopt.c:771 +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 #, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s:无效选项 -- %c\n" +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s: 选项需要参数 -- \"%c\"\n" -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 +#: gnu/getopt.c:884 gnu/getopt.c:900 #, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s:选项需要一个参数 -- %c\n" +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s: 选项\"-W %s\"具有歧义\n" -#: lib/getopt.c:892 lib/getopt.c:908 +#: gnu/getopt.c:924 gnu/getopt.c:942 #, c-format -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" -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s:选项“-W %s”不接受参数\n" - -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 msgid "memory exhausted" msgstr "内存耗尽" -#: lib/openat-die.c:35 +#: gnu/openat-die.c:36 #, c-format msgid "unable to record current working directory" msgstr "无法记录当前工作目录" -#: lib/openat-die.c:48 +#: gnu/openat-die.c:54 #, c-format msgid "failed to return to initial working directory" msgstr "无法回到起始的工作目录" -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s:无法 %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s:警告:无法 %s" - -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s:无法将模式改为 %s" - -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s:无法将所有权改为 uid %lu,gid %lu" - -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s:无法硬连接到 %s" - -#: lib/paxerror.c:179 lib/paxerror.c:211 -#, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%1$s:读入 %3$lu 字节时,在 %2$s 字节处发生读错误" - -#: lib/paxerror.c:192 -#, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%1$s:警告:读入 %3$lu 字节时,在 %2$s 字节处发生读错误" - -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s:无法定位到 %s" - -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s:警告:无法定位到 %s" - -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s:无法创建到 %s 的符号连接" - -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%1$s:只写入了 %3$lu 个中的 %2$lu 个字节" - -#: lib/paxnames.c:155 -#, c-format -msgid "Removing leading `%s' from member names" -msgstr "从成员名中删除开头的“%s”" - -#: lib/paxnames.c:156 -#, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "从硬连接目标中删除开头的“%s”" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "为空成员名替换“.”" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "为空的硬连接替换“.”" - #. TRANSLATORS: #. Get translations for open and closing quotation marks. #. @@ -304,17 +214,17 @@ msgstr "为空的硬连接替换“.”" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" msgstr "“" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" msgstr "”" @@ -324,7 +234,7 @@ msgstr "”" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" msgstr "^[yY]" @@ -334,39 +244,28 @@ msgstr "^[yY]" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" msgstr "^[nN]" -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp:服务不可用" - -#: lib/rtapelib.c:303 +#: gnu/version-etc.c:76 #, c-format -msgid "stdin" -msgstr "标准输入" +msgid "Packaged by %s (%s)\n" +msgstr "由 %s (%s) 打包\n" -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:79 #, c-format -msgid "stdout" -msgstr "标准输出" - -#: lib/rtapelib.c:512 -#, c-format -msgid "Cannot execute remote shell" -msgstr "无法执行远程 shell" +msgid "Packaged by %s\n" +msgstr "由 %s 打包\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" msgstr "(C)" -#: lib/version-etc.c:67 -#, fuzzy +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -379,23 +278,23 @@ msgstr "" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." "html>\n" "这是自由软件:您可以自由地更改并重新发布它。\n" -"There is NO WARRANTY, to the extent permitted by law.\n" +"在法律所允许的范围内不含任何担保。\n" "\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 +#: gnu/version-etc.c:104 #, c-format msgid "Written by %s.\n" msgstr "由 %s 所写。\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 +#: gnu/version-etc.c:108 #, c-format msgid "Written by %s and %s.\n" msgstr "由 %s 和 %s 所写。\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 +#: gnu/version-etc.c:112 #, c-format msgid "Written by %s, %s, and %s.\n" msgstr "由 %s,%s, 和 %s 所写。\n" @@ -403,7 +302,7 @@ msgstr "由 %s,%s, 和 %s 所写。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -415,7 +314,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -427,7 +326,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -439,7 +338,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -451,7 +350,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -465,7 +364,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -479,7 +378,7 @@ msgstr "" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" @@ -494,178 +393,316 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 +#: gnu/version-etc.c:247 #, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" msgstr "" "\n" -"将错误报告到 <%s>。\n" +"将错误报告发送到: %s。翻译错误报告给 <i18n-zh@googlegroups.com>\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:249 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" -msgstr "" +msgid "Report %s bugs to: %s\n" +msgstr "将 %s 错误报告发送到: %s\n" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:253 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "%s 主页: <%s>\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "输入字符串太长了" +#: gnu/version-etc.c:255 +#, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "%s 主页: <http://www.gnu.org/software/%s/>\n" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "编号语法错误" +#: gnu/version-etc.c:258 +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "GNU 软件的通用帮助: <http://www.gnu.org/gethelp/>\n" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd:无法分配缓冲区空间\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s:无法 %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "无法分配缓冲区空间" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s:警告:无法 %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:93 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "请用“%s --help”获得更多信息。\n" +msgid "%s: Cannot change mode to %s" +msgstr "%s:无法将模式改为 %s" -#: rmt/rmt.c:308 +#: lib/paxerror.c:101 #, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s:无法将所有权改为 uid %lu,gid %lu" + +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s:无法硬连接到 %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%1$s:读入 %3$lu 字节时,在 %2$s 字节处发生读错误" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%1$s:警告:读入 %3$lu 字节时,在 %2$s 字节处发生读错误" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s:无法定位到 %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s:警告:无法定位到 %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s:无法创建到 %s 的符号连接" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%1$s:只写入了 %3$lu 个中的 %2$lu 个字节" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "从成员名中删除开头的“%s”" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "从硬连接目标中删除开头的“%s”" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "为空成员名替换“.”" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "为空的硬连接替换“.”" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp:服务不可用" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "标准输入" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "标准输出" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"用法:%s [选项]\n" -"操作磁带驱动器,接受来自远程进程的命令。\n" -"\n" -" --version 输出版本信息。\n" -" --help 输出此帮助。\n" -#: rmt/rmt.c:397 -msgid "Seek offset error" -msgstr "定位偏移量错误" +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "无法执行远程 shell" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "查寻方向超出范围" + +#: rmt/rmt.c:419 +msgid "Invalid seek direction" +msgstr "无效的查寻方向" + +#: rmt/rmt.c:427 +msgid "Invalid seek offset" +msgstr "无效的查寻偏移量" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:433 msgid "Seek offset out of range" -msgstr "定位操作的偏移量超出范围" +msgstr "查寻操作的偏移量超出范围" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "定位方向超出范围" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +msgid "Invalid byte count" +msgstr "无效的字节数" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +msgid "Byte count out of range" +msgstr "字节数超出范围" + +#: rmt/rmt.c:539 +msgid "Premature eof" +msgstr "文件结尾出现过早" + +#: rmt/rmt.c:582 +msgid "Invalid operation code" +msgstr "无效操作模式" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "不支持的操作" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" -msgstr "rmtd:过早的 eof\n" +#: rmt/rmt.c:645 +msgid "Unexpected arguments" +msgstr "参数异常" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "过早的文件结尾" +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "接受远程程序的命令操作磁带机" -#: rmt/rmt.c:672 +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "NUMBER" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "设定调试级别" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "FILE" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "设定调试输出文件名" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, c-format +msgid "cannot open %s" +msgstr "无法打开 %s" + +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "参数过多" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "垃圾命令" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" msgstr "它似乎不像是一个 tar 归档文件" -#: src/buffer.c:354 src/buffer.c:363 +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" msgstr "总计写入字节数" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" msgstr "总计读取字节数" -#: src/buffer.c:365 +#: src/buffer.c:396 #, c-format msgid "Total bytes deleted: %s\n" msgstr "总计删除字节数:%s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(管道)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" msgstr "record_size 的无效值" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "未给出归档文件名" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "无法验证标准输入/标准输出归档文件" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" msgstr "归档被压缩。使用 %s 选项" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "无法更新压缩归档文件" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" msgstr "处于磁带的起点,现在退出" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" msgstr "错误过多,退出" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "记录大小 = %lu 块" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "归档中未对齐的块 (%lu 字节)s" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "无法倒回归档文件;如果没有 -i 可能无法读入它" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek 未停在记录边界处" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s:包含无效的卷编号" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "卷编号溢出" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "为 %2$s 准备卷 #%1$d 并按回车:" -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "需得到用户应答时文件结束" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "警告:归档文件不完整" -#: src/buffer.c:956 +#: src/buffer.c:1003 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -676,123 +713,123 @@ msgstr "" " q\t\t终止 tar\n" " y or newline\t继续操作\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! 衍生出一个子 shell\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" msgstr " ? 打印此列表\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" msgstr "没有新的卷;退出。\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" msgstr "未指定文件名。重试。\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "无效输入。输入 ? 显示帮助。\n" -#: src/buffer.c:1066 +#: src/buffer.c:1113 #, c-format msgid "%s command failed" msgstr "%s 命令失败" -#: src/buffer.c:1221 +#: src/buffer.c:1294 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s 在本卷可能连续: 头部包含截短的名字" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s 在本卷中不连续" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s 的大小错误 (%s != %s + %s)" -#: src/buffer.c:1253 +#: src/buffer.c:1326 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "此卷次序有误(%s - %s != %s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "归档未被标记为匹配 %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "卷标 %s 不匹配 %s" -#: src/buffer.c:1402 +#: src/buffer.c:1530 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "%s: 文件名太长而无法贮存在 GNU 多卷头,已被截短" -#: src/buffer.c:1621 +#: src/buffer.c:1749 msgid "write did not end on a block boundary" msgstr "写操作未在记录边界处终止" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "仅能读入 %2$lu 中的 %1$lu 个字节" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "内容不同" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" msgstr "归档文件中异常的 EOF" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "文件类型不同" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "访问模式不同" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid 不同" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid 不同" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "修改时间不同" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "大小不同" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" msgstr "没有连接到 %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "符号连接不同" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" msgstr "设备号不同" @@ -814,33 +851,33 @@ msgstr "归档包含带有被移除前导字符的文件名。" msgid "Verification may fail to locate original files." msgstr "位于原始文件中的验证可能失败。" -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "校验失败:检测到 %d 个无效的头" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "在 %s 处一个单独的零块" -#: src/create.c:67 +#: src/create.c:68 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: 包含一个缓存目录标识 %s;%s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "值 %s 超出了 %s 的范围 %s..%s;正在替换 %s" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "值 %s 超出了 %s 的范围 %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" msgstr "正在生成负八进制头" @@ -859,435 +896,437 @@ msgstr "%s:文件名太长(不能被分割);未输出" msgid "%s: link name is too long; not dumped" msgstr "%s:连接名太长;未输出" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s:文件缩小 %s 字节;用零填充" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s:文件在不同的文件系统上;未输出" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" msgstr "未输出内容" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s:未知的文件类型;忽略文件" -#: src/create.c:1464 +#: src/create.c:1472 #, c-format -msgid "Missing links to %s.\n" -msgstr "缺少到 %s 的连接。\n" +msgid "Missing links to %s." +msgstr "缺少到 %s 的连接。" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" -msgstr "%s:文件未改变;未输出" +msgstr "%s: 文件未改变;未输出" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" -msgstr "%s:文件是归档文件;未输出" - -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s:文件在我们读入之前被删除了" +msgstr "%s: 文件是归档文件;未输出" -#: src/create.c:1591 src/incremen.c:543 +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" msgstr "未输出目录" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" -msgstr "%s:在我们读入文件时文件发生了变化" +msgstr "%s: 在我们读入文件时文件发生了变化" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" -msgstr "%s:忽略套接字(socket)" +msgstr "%s: 忽略套接字(socket)" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" msgstr "%s: 忽略权限" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" msgstr "跳转到下一个头" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" msgstr "从归档文件中删除非头信息" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s:不可信的旧时间戳 %s" -#: src/extract.c:215 +#: src/extract.c:229 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s:时间戳 %s 是未来的 %s 秒之后" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s:创建目录时出现意外的不一致" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "%s:目录名在状态信息被获取之前改变了" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" msgstr "展开紧邻的文件为普通文件" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "正试图将符号连接展开为硬连接" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "正在读入 %s\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s:无法展开 -- 文件一直延伸至另一卷中" -#: src/extract.c:1150 src/list.c:1090 -#, fuzzy +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" msgstr "异常的长名字头部" -#: src/extract.c:1156 +#: src/extract.c:1197 #, c-format msgid "%s: Unknown file type `%c', extracted as normal file" msgstr "%s:未知的文件类型“%c”,作为普通文件展开" -#: src/extract.c:1181 +#: src/extract.c:1223 #, c-format msgid "Current %s is newer or same age" msgstr "当前的“%s”更新或一样新" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" msgstr "%s:无法备份该文件" -#: src/extract.c:1355 +#: src/extract.c:1402 #, c-format msgid "Cannot rename %s to %s" msgstr "无法将 %s 重命名为 %s" -#: src/extract.c:1367 -#, c-format -msgid "Error is not recoverable: exiting now" -msgstr "错误不可恢复:现在退出" - -#: src/incremen.c:448 src/incremen.c:492 +#: src/incremen.c:482 src/incremen.c:526 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s:目录已改名,不再是 %s" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" msgstr "%s:目录已被改名" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s:目录是新的" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" msgstr "无效的时间戳" -#: src/incremen.c:959 +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" msgstr "无效的修改时间(秒)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" msgstr "无效的修改时间(纳秒)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "无效的设备号" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "无效的 inode 号" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" msgstr "读取目录文件时字段太长" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" msgstr "目录文件读取错误" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" msgstr "目录文件中异常的文件结尾(EOF)" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" msgstr "目录文件中异常的字段值" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" msgstr "缺少记录终止符" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" msgstr "文件格式错误增量" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" msgstr "不支持增量格式版本: %<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" msgstr "错误的 dumpdir: 需要“%c”但实际为 %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" msgstr "错误的 dumpdir: 重复的“X”" -#: src/incremen.c:1462 +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" msgstr "错误的 dumpdir: “R”中有空名字" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" msgstr "错误的 dumpdir: “R”后未紧接着用“T”" -#: src/incremen.c:1481 +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" msgstr "错误的 dumpdir: “T”中有空名字" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" msgstr "错误的 dumpdir: 需要“%c”但实际为数据结尾" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" msgstr "错误的 dumpdir: 从未用过“X”" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" msgstr "无法通过模板 %s 创建临时目录" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s:未清除目录:无法 stat" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s: 目录在不同的设备上: 未清除" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s:正在删除 %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s:无法删除" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" msgstr "%s:忽略" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "块 %s:** 空块 **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" msgstr "块 %s:** 文件结束 **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "块 %s:" -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "头中需要数值 %s 处为空白符" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "归档的八进制值 %.*s 超出范围 %s;假定为其二进制补码" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "归档八进制值 %.*s 超出 %s 的范围" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "归档包含过时的 base-64 头" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "归档签署的 base-64 字符串 %s 超出范围 %s" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "归档的 base-256 值超出范围 %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "归档包含 %.*s 而需要数字值 %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 +#: src/list.c:872 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "归档值 %s 超出 %s 的范围 %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" msgstr " 连接到 %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" msgstr " 未知的文件类型 %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--长连接--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--长名--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--卷头--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" msgstr "--从 %s 字节继续--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "正在创建目录:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" msgstr "将 %s 改名为 %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s:无法重命名为 %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "将 %s 的名字改回 %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" msgstr "无法保存工作目录" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" msgstr "无法改变工作目录" -#: src/misc.c:711 +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s:文件在我们读入之前被删除了" + +#: src/misc.c:774 +#, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s: 文件在读入之前被删除了" + +#: src/misc.c:795 msgid "child process" msgstr "子进程" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" msgstr "进程内通道" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" msgstr "请在文件名中使用匹配字符模式。" -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" msgstr "使用 --wildcards 打开模式匹配,或是 --no-wildcards 来关闭之" -#: src/names.c:597 -msgid "suppress this warning." -msgstr "不显示此警告。" - -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" msgstr "%s:归档中找不到" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s:没有在归档中找到需要的" -#: src/tar.c:79 +#: src/names.c:894 +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "在文件列表中 -C 选项与 --listed-incremental 选项不许合用" + +#: src/names.c:900 +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "仅一个 -C 选项允许与 --listed-incremental 合用" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" msgstr "选项“-%s”和“-%s”都需要标准输出" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s:无效的归档格式" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" msgstr "在不兼容的归档格式上需要 GNU 特征" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." msgstr "未知的引用形式‘%s’。尝试用‘%s --quoting-style=help’获取列表。" -#: src/tar.c:336 +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1307,7 +1346,7 @@ msgstr "" "件。\n" " tar -xf archive.tar # 展开归档文件 archive.tar 中的所有文件。\n" -#: src/tar.c:345 +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1326,86 +1365,79 @@ msgstr "" " nil, existing 如果编号备份存在则进行编号备份,否则进行简单备份\n" " never, simple 总是使用简单备份\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "主操作模式:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "列出归档内容" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "从归档中解出文件" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" msgstr "创建一个新归档" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "找出归档和文件系统的差异" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "追加文件至归档结尾" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "仅追加比归档中副本更新的文件" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "追加 tar 文件至归档" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "从归档(非磁带!)中删除" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" msgstr "测试归档卷标并退出" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "操作修饰符:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" msgstr "高效处理离散文件" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" msgstr "MAJOR[.MINOR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" msgstr "设置所用的离散格式版本(隐含 --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" msgstr "处理老式的 GNU 格式的增量备份" -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "文件" - -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" msgstr "处理新式的 GNU 格式的增量备份" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "所创建的增量列表归档的输出级别" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "当遇上不可读文件时不要以非零值退出" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "NUMBER" - -#: src/tar.c:410 +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1416,116 +1448,119 @@ msgstr "" "extract 或是 --list 中的一个联合使用时,此选项才有效。而且不管文件列表是以命" "令行形式给出或是通过 -T 选项指定的;NUMBER 值默认为 1" -#: src/tar.c:416 +#: src/tar.c:434 msgid "archive is seekable" msgstr "归档可检索" -#: src/tar.c:418 +#: src/tar.c:436 +msgid "archive is not seekable" +msgstr "归档不可检索" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" msgstr "当创建增量归档时不要检查设备号" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" msgstr "当创建增量归档时检查设备号(默认)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" msgstr "重写控制:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "在写入以后尝试校验归档" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "在添加文件至归档后删除它们" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "解压时不要替换存在的文件" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "不要替换比归档中副本更新的已存在的文件" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "解压时重写存在的文件" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "在解压要重写的文件之前先删除它们" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" msgstr "解压目录之前先清除目录层次" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" msgstr "保留已存在目录的元数据" -#: src/tar.c:446 +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "解压时重写已存在目录的元数据(默认)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" msgstr "选择输出流:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" msgstr "解压文件至标准输出" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "COMMAND" -#: src/tar.c:457 +#: src/tar.c:477 msgid "pipe extracted files to another program" msgstr "将解压的文件通过管道传送至另一个程序" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" msgstr "忽略子进程的退出代码" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" msgstr "将子进程的非零退出代码认为发生错误" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "操作文件属性:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" msgstr "强制将 NAME 作为所添加的文件的所有者" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" msgstr "强制将 NAME 作为所添加的文件的组所有者" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "DATE-OR-FILE" -#: src/tar.c:473 +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" msgstr "从 DATE-OR-FILE 中为添加的文件设置 mtime" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "CHANGES" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" msgstr "强制将所添加的文件(符号)更改为权限 CHANGES" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" msgstr "METHOD" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " @@ -1534,452 +1569,440 @@ msgstr "" "在输出的文件上保留访问时间,要么通过在读取(默认 METHOD=‘replace’)后还原时间," "要不就不要在第一次(METHOD=‘system’)设置时间" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "不要解压文件的修改时间" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" -msgstr "尝试解压时保持所有者关系一致" +#: src/tar.c:504 +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" +msgstr "尝试解压时保持所有者关系一致(超级用户默认此项)" -#: src/tar.c:486 -msgid "extract files as yourself" -msgstr "将文件解压为您所有" +#: src/tar.c:506 +msgid "extract files as yourself (default for ordinary users)" +msgstr "将文件解压为您所有(普通用户默认此项)" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "总是以数字代表用户/组的名称" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" msgstr "解压文件权限信息(默认只为超级用户服务)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "从归档中解压权限时使用用户的掩码位(默认为普通用户服务)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "为解压至匹配归档排序名称" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "与 -p 和 -s 一样" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "直到解压结束才设置修改时间和所解目录的权限" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" msgstr "取消 --delay-directory-restore 选项的效果" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" msgstr "设备选择和切换:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "ARCHIVE" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" msgstr "使用归档文件或 ARCHIVE 设备" -#: src/tar.c:514 +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "即使归档文件存在副本还是把它认为是本地归档" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" msgstr "使用指定的 rmt COMMAND 代替 rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" msgstr "使用远程 COMMAND 代替 rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "指定驱动器和压缩率" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "创建/列出/解压多卷归档文件" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "写入 NUMBER × 1024 字节后更换磁带" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "在每卷磁带最后运行脚本(隐含 -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "使用/更新 FILE 中的卷数" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "设备分块:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "BLOCKS" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" msgstr "每个记录 BLOCKS x 512 字节" -#: src/tar.c:553 +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" msgstr "每个记录的字节数 NUMBER,乘以 512" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "忽略归档中的零字节块(即文件结尾)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "读取时重新分块(只对 4.2BSD 管道有效)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" msgstr "选择归档格式:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "FORMAT" -#: src/tar.c:565 +#: src/tar.c:585 msgid "create archive of the given format" msgstr "创建指定格式的归档" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" msgstr "FORMAT 是以下格式中的一种:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "old V7 tar 格式" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "GNU 格式 as per tar <= 1.12" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x 格式" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) 格式" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) 格式" -#: src/tar.c:578 +#: src/tar.c:598 msgid "same as pax" msgstr "等同于 pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "等同于 --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "等同于 --format=posix" -#: src/tar.c:585 +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." msgstr "关键字[[:]=值][,关键字[[:]=值]]..." -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "控制 pax 关键字" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "TEXT" -#: src/tar.c:588 +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "创建带有卷名 TEXT 的归档;在列出/解压时,使用 TEXT 作为卷名的模式串" -#: src/tar.c:593 +#: src/tar.c:613 msgid "Compression options:" msgstr "压缩选项:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" -msgstr "使用归档后缀来决定压缩程序" +msgstr "使用归档后缀名来决定压缩程序" -#: src/tar.c:597 -#, fuzzy +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" -msgstr "未使用归档后缀来决定压缩程序" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "通过 bzip2 过滤归档" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "通过 gzip 过滤归档" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "通过 compress 过滤归档" +msgstr "不使用归档后缀名来决定压缩程序" -#: src/tar.c:609 -msgid "filter the archive through lzma" -msgstr "通过 lzma 过滤归档" - -#: src/tar.c:611 -msgid "filter the archive through lzop" -msgstr "通过 lzop 过滤归档" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "通过 gzip 过滤归档" - -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "PROG" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "通过 PROG 过滤(必须是能接受 -d 选项的程序)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "本地文件选择:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "添加指定的 FILE 至归档(如果名字以 - 开始会很有用的)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "DIR" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "改变至目录 DIR" -#: src/tar.c:627 +#: src/tar.c:643 msgid "get names to extract or create from FILE" msgstr "从 FILE 中获取文件名来解压或创建文件" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T 读取以空终止的名字,-C 禁用" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" msgstr "禁用上一次的效果 --null 选项" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" msgstr "以 -T 读取的文件名作为引用结束(默认)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" msgstr "不以 -T 读取的文件名作为引用结束" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" msgstr "PATTERN" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" msgstr "排除以 PATTERN 指定的文件" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" msgstr "排除 FILE 中列出的模式串" -#: src/tar.c:641 +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "除标识文件本身外,排除包含 CACHEDIR.TAG 的目录中的内容" -#: src/tar.c:644 +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "排除包含 CACHEDIR.TAG 的目录中所有内容" -#: src/tar.c:647 +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" msgstr "排除包含 CACHEDIR.TAG 的目录" -#: src/tar.c:649 +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "除 FILE 自身外,排除包含 FILE 的目录中的内容" -#: src/tar.c:652 +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" msgstr "排除包含 FILE 的目录中的所有内容" -#: src/tar.c:654 +#: src/tar.c:670 msgid "exclude directories containing FILE" msgstr "排除包含 FILE 的目录" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" msgstr "排除版本控制系统目录" -#: src/tar.c:658 +#: src/tar.c:674 +msgid "exclude backup and lock files" +msgstr "排除备份和锁文件" + +#: src/tar.c:676 msgid "avoid descending automatically in directories" msgstr "避免目录中的自动降级" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "创建归档时保存在本地文件系统中" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "目录递归(默认)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "不要从文件名中清除引导符‘/’" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" msgstr "跟踪符号链接;将它们所指向的文件归档并输出" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" msgstr "跟踪硬链接;将它们所指向的文件归档并输出" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "MEMBER-NAME" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "从归档中的 MEMBER-NAME 成员处开始" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "只保存比 DATE-OR-FILE 更新的文件" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "DATE" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "当只有数据改变时比较数据和时间" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" msgstr "在删除前备份,选择 CONTROL 版本" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "STRING" -#: src/tar.c:679 +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" "在删除前备份,除非被环境变量 SIMPLE_BACKUP_SUFFIX 覆盖,否则覆盖常用后缀(‘’)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" msgstr "文件名变换:" -#: src/tar.c:686 +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "解压时从文件名中清除 NUMBER 个引导部分" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" msgstr "EXPRESSION" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" msgstr "使用 sed 代替 EXPRESSION 来进行文件名变换" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" msgstr "文件名匹配选项(同时影响排除和包括模式串):" -#: src/tar.c:698 +#: src/tar.c:716 msgid "ignore case" msgstr "忽略大小写" -#: src/tar.c:700 +#: src/tar.c:718 msgid "patterns match file name start" msgstr "模式串匹配文件名头部" -#: src/tar.c:702 +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" msgstr "模式串匹配任意‘/’后字符(默认对 exclusion 有效)" -#: src/tar.c:704 +#: src/tar.c:722 msgid "case sensitive matching (default)" msgstr "匹配大小写(默认)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" msgstr "使用通配符(默认对 exclusion )" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" msgstr "逐字匹配字符串" -#: src/tar.c:710 +#: src/tar.c:728 msgid "wildcards do not match `/'" msgstr "通配符不匹配‘/’" -#: src/tar.c:712 +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" msgstr "通配符匹配‘/’(默认对排除操作有效)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "提示性输出:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "详细地列出处理的文件" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "KEYWORD" + +#: src/tar.c:740 +msgid "warning control" +msgstr "警告控制:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" msgstr "每隔 NUMBER 个记录显示进度信息(默认为 10 个)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" msgstr "ACTION" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" msgstr "在每个检查点上执行 ACTION" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" msgstr "只要不是所有链接都被输出就打印信息" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -1990,112 +2013,118 @@ msgstr "" "号为: SIGHUP,SIGQUIT,SIGINT,SIGUSR1 和 SIGUSR2;同时也接受不带 SIG 前缀的" "信号名称" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "以 UTC 格式打印文件修改信息" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "将详细输出发送至 FILE" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "每个信息都显示归档内的块数" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "每次操作都要求确认" -#: src/tar.c:744 +#: src/tar.c:764 msgid "show tar defaults" msgstr "显示 tar 默认选项" -#: src/tar.c:746 +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "列表或解压时,列出每个不匹配查找标准的目录" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" msgstr "显示变换后的文件名或归档名" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" msgstr "STYLE" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" msgstr "设置名称引用风格;有效的 STYLE 值请参阅以下说明" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" msgstr "来自 STRING 的额外的引用字符" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" msgstr "禁用来自 STRING 的字符引用" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" msgstr "兼容性选项:" -#: src/tar.c:764 +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "创建归档时,相当于 --old-archive;展开归档时,相当于 --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" msgstr "其它选项:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" msgstr "禁用某些潜在的有危险的选项" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "您不能指定除“-Acdtrux”外的选项" +#: src/tar.c:927 +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "您不能指定超过一个\"-Acdtrux\"或是\"--test-label\"外的选项" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" msgstr "压缩选项冲突" -#: src/tar.c:986 +#: src/tar.c:993 #, c-format msgid "Unknown signal name: %s" -msgstr " 未知的信号名称: %s" +msgstr "未知的信号名称: %s" -#: src/tar.c:1010 +#: src/tar.c:1017 msgid "Date sample file not found" msgstr "找不到数据样板文件" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "把未知的时间格式 %2$s 替换为 %1$s" -#: src/tar.c:1043 +#: src/tar.c:1054 #, c-format msgid "Option %s: Treating date `%s' as %s" msgstr "选项 %s: 将日期 ‘%s’ 当作 %s" -#: src/tar.c:1120 +#: src/tar.c:1132 #, c-format msgid "%s: file list already read" msgstr "%s: 文件列表已经读取" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: 读取的文件名含有空字符" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, c-format +msgid "filter the archive through %s" +msgstr "通过 %s 过滤归档" + +#: src/tar.c:1290 +msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style 选项的有效参数为:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2103,50 +2132,53 @@ msgstr "" "\n" "此 tar 默认为:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 #, fuzzy msgid "Invalid blocking factor" msgstr "无效的块因子" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "无效的磁带长度" -#: src/tar.c:1441 +#: src/tar.c:1511 +msgid "Invalid incremental level value" +msgstr "无效的增量度" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "多于一个时间阈值" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 #, fuzzy msgid "Invalid sparse version value" msgstr "无效的离散版本值" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" msgstr "此平台不支持 --atime-preserve=‘system’ " -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" msgstr "--checkpoint 值不是个整数" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" -msgstr "%s:无效的组" +#: src/tar.c:1830 +msgid "Invalid group" +msgstr "无效的组" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "选项中给出无效的访问模式" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "无效的数字" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "无效的所有者" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" @@ -2154,110 +2186,114 @@ msgstr "" "--preserve 选项已经废弃了,请使用 --preserve-permissions --preserve-order 代" "替" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" msgstr "无效的记录大小" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." msgstr "记录大小必须是 %d 的倍数。" -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "无效的元素数" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" msgstr "仅允许使用一个 --to-command 选项" -#: src/tar.c:1968 +#: src/tar.c:2100 #, c-format msgid "Malformed density argument: %s" msgstr "错误的压缩参数: %s" -#: src/tar.c:1994 +#: src/tar.c:2126 #, c-format msgid "Unknown density: `%c'" msgstr "未知的压缩参数: ‘%c’" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" msgstr "本 tar 不支持选项“-[0-7][lmh]”" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." msgstr "[FILE]..." -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." msgstr "旧选项“%c”需要参数。" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "没有一个文件列表时 --occurrence 是没有意义的" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" msgstr "--occurrence 不能用于请求的操作模式中" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" msgstr "多个归档文件需要使用“-M”选项" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" msgstr "无法在使用 --newer 的时候使用 --listed-incremental" -#: src/tar.c:2292 +#: src/tar.c:2387 +msgid "--level is meaningless without --listed-incremental" +msgstr "没有 --listed-incremental 选项的话 --level 选项是无意义的" + +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" msgstr[0] "%s:卷标过长 (限制为 %lu 字节)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" msgstr "无法检验多卷归档文件" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" msgstr "无法检验压缩归档文件" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "无法使用多卷压缩归档文件" -#: src/tar.c:2319 +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" msgstr "无法联结压缩归档文件" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option 只能用于 POSIX 归档中" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" msgstr "卷长度不可小于记录大小" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" msgstr "--preserve-order 与 --listed-incremental 不匹配" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" msgstr "谨慎地拒绝创建空归档文件" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" msgstr "选项“-Aru”与“-f -”不兼容" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "您必须从选项“-Acdtrux”中指定一个" +#: src/tar.c:2592 +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "您必须从\"-Acdtrux\"或是\"--test-label\"选项中指定一个" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "由于前次错误,将以上次的错误状态退出" @@ -2268,79 +2304,83 @@ msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s:文件缩小 %s 字节" -#: src/xheader.c:156 +#: src/xheader.c:163 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "关键字 %s 未知或还未实现" -#: src/xheader.c:182 +#: src/xheader.c:173 +msgid "Time stamp is out of allowed range" +msgstr "时间标记超出允许范围" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" msgstr "不能使用模式 %s" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "不能覆盖关键字 %s" -#: src/xheader.c:496 +#: src/xheader.c:541 msgid "Malformed extended header: missing length" msgstr "错误的扩展头: 缺少 length" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" msgstr "扩展头长度超出所允许的范围" -#: src/xheader.c:511 +#: src/xheader.c:556 #, c-format msgid "Extended header length %*s is out of range" msgstr "扩展头长度 %*s 超出范围" -#: src/xheader.c:523 +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" msgstr "错误的扩展头: length 后缺少空白符" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" msgstr "错误的扩展头: 缺少等于符号" -#: src/xheader.c:537 +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" msgstr "错误的扩展头: 缺少空行" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" msgstr "忽略未知的扩展头关键字‘%s’" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "生成的关键字/值对太长了(keyword=%s, length=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 +#: src/xheader.c:862 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "扩展头 %s=%s 超出范围 %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "错误的扩展头: %s=%s 无效" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "错误的扩展头: %s=%s 溢出" -#: src/xheader.c:1326 +#: src/xheader.c:1378 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "错误的扩展头: %s 无效: 非预期的分隔符 %c" -#: src/xheader.c:1336 +#: src/xheader.c:1388 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "错误的扩展头: %s 无效: 奇怪的数值" @@ -2381,7 +2421,7 @@ msgstr "写入操作的检查点 %u" msgid "Read checkpoint %u" msgstr "读取操作的检查点 %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2389,84 +2429,87 @@ msgstr "" "genfile 为 GNU paxutils 测试软件操作数据文件。\n" "选项为:\n" -#: tests/genfile.c:126 +#: tests/genfile.c:128 msgid "File creation options:" msgstr "文件创建选项:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" msgstr "SIZE" -#: tests/genfile.c:128 +#: tests/genfile.c:130 msgid "Create file of the given SIZE" msgstr "创建指定 SIZE 的文件" -#: tests/genfile.c:130 +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" msgstr "写入文件 NAME,而不是标准输出" -#: tests/genfile.c:132 +#: tests/genfile.c:134 msgid "Read file names from FILE" msgstr "从 FILE 读取文件名" -#: tests/genfile.c:134 +#: tests/genfile.c:136 msgid "-T reads null-terminated names" msgstr "-T 读取以 NULL 终止的名字" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "以指定的 PATTERN 填充文件。PATTERN 可以是‘default’或是‘zeros’" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" msgstr "离散文件的块大小" -#: tests/genfile.c:141 +#: tests/genfile.c:143 #, fuzzy msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "生成离散文件。命令行其余选项指定 map 文件。" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" msgstr "OFFSET" -#: tests/genfile.c:144 +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" msgstr "在写入数据前定位至指定的偏移位" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" msgstr "文件统计选项:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "打印每个给定文件的 stat 结构定义的内容。默认 FORMAT 是: " -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" msgstr "同步执行选项:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +msgid "OPTION" +msgstr "OPTION" + +#: tests/genfile.c:165 msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" -"执行指定的 COMMAND。与 --checkpoint 或 --cut,--append,--touch 中的一个一起" -"使用时有用" +"执行 ARGS。与 --checkpoint 或 --cut,--append,--touch 中的一个一起使用时有用" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "只要达到 checkpoint NUMBER 指定的数值就执行指定的操作(见下)" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" msgstr "为下一个 --touch 选项设定日期" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "显示执行的 checkpoints 以及 COMMAND 的退出状态" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2474,142 +2517,217 @@ msgstr "" "同步执行操作。当达到由 --checkpoint 选项指定的 checkpoint 数值时会执行这些操" "作。" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "截短 FILE 至由前面 --length 选项指定的大小(如果未指定的话,默认 0)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "添加 SIZE 字节至 FILE。SIZE 由前面的 --length 选项指定。" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" msgstr "更新 FILE 的访问和修改时间" -#: tests/genfile.c:190 +#: tests/genfile.c:192 msgid "Execute COMMAND" msgstr "执行 COMMAND" -#: tests/genfile.c:240 +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "删除 FILE" + +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "无效的值: %s" -#: tests/genfile.c:245 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "数值超出所允许的范围: %s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "负值: %s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) 错误" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "需要文件长度为 %lu,实际为 %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "所创建的文件非稀疏文件" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" msgstr "“%s”附近解析数字错误" -#: tests/genfile.c:359 +#: tests/genfile.c:368 #, c-format msgid "Unknown date format" msgstr "未知的数据格式" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" msgstr "无法打开“%s”" -#: tests/genfile.c:425 +#: tests/genfile.c:435 msgid "cannot seek" msgstr "无法定位" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" msgstr "文件名包含空字符" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "使用 --file 选项无法在标准输出上生成离散文件" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" msgstr "不正确的掩码(“%s”附近)" -#: tests/genfile.c:591 tests/genfile.c:624 +#: tests/genfile.c:601 tests/genfile.c:634 #, c-format msgid "Unknown field `%s'" msgstr "未知的文件掩码位“%s”" -#: tests/genfile.c:651 +#: tests/genfile.c:661 #, c-format msgid "cannot set time on `%s'" msgstr "无法设定“%s”的时间" -#: tests/genfile.c:805 +#: tests/genfile.c:700 +#, c-format +msgid "cannot unlink `%s'" +msgstr "无法删除 \"%s\"" + +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" msgstr "命令成功退出\n" -#: tests/genfile.c:807 +#: tests/genfile.c:828 #, c-format msgid "Command failed with status %d\n" msgstr "命令出错,状态 %d\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" msgstr "命令由信号 %d 终止了\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" msgstr "命令由信号 %d 停止了\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" msgstr "命令输出 core\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" msgstr "命令终止\n" -#: tests/genfile.c:851 +#: tests/genfile.c:872 #, c-format msgid "--stat requires file names" msgstr "--stat 选项需要文件名" -#: tests/genfile.c:864 -#, c-format -msgid "too many arguments" -msgstr "参数过多" +#~ msgid "Cannot resolve hostname %s" +#~ msgstr "无法解析主机 %s" + +#~ msgid "suppress this warning." +#~ msgstr "不显示此警告。" + +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s:非法选项 -- %c\n" + +#~ msgid "" +#~ "\n" +#~ "Report bugs to <%s>.\n" +#~ msgstr "" +#~ "\n" +#~ "将错误报告到 <%s>。\n" + +#~ msgid "Input string too long" +#~ msgstr "输入字符串太长了" + +#~ msgid "Number syntax error" +#~ msgstr "编号语法错误" + +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd:无法分配缓冲区空间\n" + +#~ msgid "Cannot allocate buffer space" +#~ msgstr "无法分配缓冲区空间" + +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "请用“%s --help”获得更多信息。\n" + +#~ msgid "" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" +#~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" +#~ msgstr "" +#~ "用法:%s [选项]\n" +#~ "操作磁带驱动器,接受来自远程进程的命令。\n" +#~ "\n" +#~ " --version 输出版本信息。\n" +#~ " --help 输出此帮助。\n" + +#~ msgid "Seek offset error" +#~ msgstr "定位偏移量错误" + +#~ msgid "Premature end of file" +#~ msgstr "过早的文件结尾" + +#~ msgid "Reading %s\n" +#~ msgstr "正在读入 %s\n" + +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "错误不可恢复:现在退出" + +#~ msgid "filter the archive through bzip2" +#~ msgstr "通过 bzip2 过滤归档" + +#~ msgid "filter the archive through gzip" +#~ msgstr "通过 gzip 过滤归档" + +#~ msgid "filter the archive through compress" +#~ msgstr "通过 compress 过滤归档" + +#~ msgid "filter the archive through lzma" +#~ msgstr "通过 lzma 过滤归档" + +#~ msgid "filter the archive through lzop" +#~ msgstr "通过 lzop 过滤归档" #~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" #~ msgstr "警告:不支持 -I 选项,或许您的意思是 -j 或者 -T ?" @@ -2626,9 +2744,6 @@ msgstr "参数过多" #~ msgid "Visible long name error" #~ msgstr "可见的长文件名错误" -#~ msgid "Time stamp out of range" -#~ msgstr "时间标记超出范围" - #~ msgid "Device number out of range" #~ msgstr "设备号超出范围" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index 41227d65cc522791fc05090242beaef4d34ce9ee..61b79cc0ae0b3c6f59be907b47979dbbe9c761cc 100644 Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ diff --git a/po/zh_TW.po b/po/zh_TW.po index 8baed54198e56a9c2ec3a3ad4c112c6cb8a2bf63..b4d86982884ba1393891cd4eeed68a8c9c614a25 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1,294 +1,203 @@ -# Traditional Chinese Messages for tar +# Traditional Chinese Messages for tar. # Copyright (C) 2005 Free Software Foundation, Inc. -# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005 +# This file is distributed under the same license as the tar package. +# Wei-Lun Chao <chaoweilun@gmail.com>, 2009. # msgid "" msgstr "" -"Project-Id-Version: tar 1.15.1\n" +"Project-Id-Version: tar 1.22\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2009-03-05 09:18+0200\n" -"PO-Revision-Date: 2005-05-10 17:13+0800\n" -"Last-Translator: Wei-Lun Chao <chaoweilun@pcmail.com.tw>\n" +"POT-Creation-Date: 2010-03-10 12:53+0200\n" +"PO-Revision-Date: 2009-08-30 00:17+0800\n" +"Last-Translator: Wei-Lun Chao <chaoweilun@gmail.com>\n" "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: lib/argmatch.c:133 +#: gnu/argmatch.c:135 #, c-format msgid "invalid argument %s for %s" msgstr "%2$s 的引數 %1$s 無效" -#: lib/argmatch.c:134 +#: gnu/argmatch.c:136 #, c-format msgid "ambiguous argument %s for %s" -msgstr "%2$s 的引數 %1$s 是不明確的" +msgstr "%2$s 的引數 %1$s 是模稜兩可的" -#: lib/argmatch.c:153 +#: gnu/argmatch.c:155 #, c-format msgid "Valid arguments are:" msgstr "有效的引數為:" -#: lib/argp-help.c:147 +#: gnu/argp-help.c:149 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" -msgstr "" +msgstr "ARGP_HELP_FMT:%s 值是少於或等於 %s" -#: lib/argp-help.c:220 +#: gnu/argp-help.c:222 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" msgstr "%.*s: ARGP_HELP_FMT 參數需要一個值" -#: lib/argp-help.c:226 -#, fuzzy, c-format +#: gnu/argp-help.c:228 +#, c-format msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -msgstr "%.*s: ARGP_HELP_FMT 參數需要一個值" +msgstr "%.*s: ARGP_HELP_FMT 參數必須是正值" -#: lib/argp-help.c:235 +#: gnu/argp-help.c:237 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" -msgstr "%.*s: 未知的 ARGP_HELP_FMT 參數" +msgstr "%.*s: 不明的 ARGP_HELP_FMT 參數" -#: lib/argp-help.c:247 +#: gnu/argp-help.c:249 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" msgstr "ARGP_HELP_FMT 中無用的資訊: %s" -#: lib/argp-help.c:1246 +#: gnu/argp-help.c:1246 msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." msgstr "長選項的必須或可選用的引數也是相對應短選項的必須或可選用的引數。" -#: lib/argp-help.c:1639 +#: gnu/argp-help.c:1639 msgid "Usage:" -msgstr "用法:" +msgstr "用法:" -#: lib/argp-help.c:1643 +#: gnu/argp-help.c:1643 msgid " or: " -msgstr " 或者: " +msgstr " 或:" -#: lib/argp-help.c:1655 +#: gnu/argp-help.c:1655 msgid " [OPTION...]" -msgstr " [選項...]" +msgstr " [選項…]" -#: lib/argp-help.c:1682 +#: gnu/argp-help.c:1682 #, 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" -#: lib/argp-help.c:1710 src/tar.c:1256 +#: gnu/argp-help.c:1710 #, c-format msgid "Report bugs to %s.\n" msgstr "請向 %s 回報錯誤。\n" -#: lib/argp-help.c:1929 lib/error.c:125 +#: gnu/argp-help.c:1929 gnu/error.c:155 msgid "Unknown system error" msgstr "不明的系統錯誤" -#: lib/argp-parse.c:81 src/tar.c:774 -#, fuzzy +#: gnu/argp-parse.c:83 msgid "give this help list" msgstr "給出這個使用方式列表" -#: lib/argp-parse.c:82 src/tar.c:775 -#, fuzzy +#: gnu/argp-parse.c:84 msgid "give a short usage message" msgstr "給出簡短的使用訊息" -#: lib/argp-parse.c:83 src/tar.c:468 src/tar.c:470 src/tar.c:539 -#: tests/genfile.c:129 +#: gnu/argp-parse.c:85 src/tar.c:488 src/tar.c:490 src/tar.c:559 +#: tests/genfile.c:131 msgid "NAME" msgstr "名稱" -#: lib/argp-parse.c:83 +#: gnu/argp-parse.c:85 msgid "set the program name" -msgstr "" +msgstr "設定程式名稱" -#: lib/argp-parse.c:84 +#: gnu/argp-parse.c:86 msgid "SECS" -msgstr "" +msgstr "秒" -#: lib/argp-parse.c:85 src/tar.c:780 +#: gnu/argp-parse.c:87 msgid "hang for SECS seconds (default 3600)" -msgstr "" +msgstr "掛斷若干秒 (預設 3600)" -#: lib/argp-parse.c:142 src/tar.c:776 -#, fuzzy +#: gnu/argp-parse.c:144 msgid "print program version" msgstr "印出程式版本" -#: lib/argp-parse.c:158 +#: gnu/argp-parse.c:160 #, c-format msgid "(PROGRAM ERROR) No version known!?" -msgstr "" +msgstr "(程式錯誤) 沒有已知版本 !?" -#: lib/argp-parse.c:611 -#, fuzzy, c-format +#: gnu/argp-parse.c:613 +#, c-format msgid "%s: Too many arguments\n" -msgstr "%s:選項‘%s’需要引數\n" +msgstr "%s:太多引數\n" -#: lib/argp-parse.c:754 +#: gnu/argp-parse.c:756 msgid "(PROGRAM ERROR) Option should have been recognized!?" -msgstr "" +msgstr "(程式錯誤) 選項應該已被辨識 !?" -#: lib/closeout.c:112 +#: gnu/closeout.c:114 msgid "write error" -msgstr "" - -#: lib/getopt.c:526 lib/getopt.c:542 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s:選項‘%s’是不明確的\n" - -#: lib/getopt.c:575 lib/getopt.c:579 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s:選項‘--%s’不可配合引數使用\n" - -#: lib/getopt.c:588 lib/getopt.c:593 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s:選項‘%c%s’不可配合引數使用\n" - -#: lib/getopt.c:636 lib/getopt.c:655 lib/getopt.c:971 lib/getopt.c:990 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s:選項‘%s’需要引數\n" - -#: lib/getopt.c:693 lib/getopt.c:696 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s:無法識別的選項‘--%s’\n" - -#: lib/getopt.c:704 lib/getopt.c:707 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s:無法識別的選項‘%c%s’\n" - -#: lib/getopt.c:759 lib/getopt.c:762 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s:不合法的選項 ─ %c\n" - -#: lib/getopt.c:768 lib/getopt.c:771 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s:無效的選項 ─ %c\n" - -#: lib/getopt.c:823 lib/getopt.c:839 lib/getopt.c:1043 lib/getopt.c:1061 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s:選項需要引數 ─ %c\n" - -#: lib/getopt.c:892 lib/getopt.c:908 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s:選項‘-W %s’是不明確的\n" - -#: lib/getopt.c:932 lib/getopt.c:950 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s:選項‘-W %s’不可配合引數使用\n" +msgstr "寫入錯誤" -#: lib/obstack.c:423 lib/obstack.c:425 lib/xalloc-die.c:34 src/extract.c:1374 -msgid "memory exhausted" -msgstr "記憶體耗盡" - -#: lib/openat-die.c:35 +#: gnu/getopt.c:531 gnu/getopt.c:547 #, fuzzy, c-format -msgid "unable to record current working directory" -msgstr "無法更改使用中的目錄" +msgid "%s: option '%s' is ambiguous\n" +msgstr "%s:選項「%s」是模稜兩可的\n" -#: lib/openat-die.c:48 +#: gnu/getopt.c:580 gnu/getopt.c:584 #, fuzzy, c-format -msgid "failed to return to initial working directory" -msgstr "無法儲存使用中的目錄" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:58 lib/paxerror.c:71 -#, c-format -msgid "%s: Cannot %s" -msgstr "%s:無法 %s" - -#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. -#. Directly translating this to another language will not work, first because -#. %s itself is not translated. -#. Translate it as `%s: Function %s failed'. -#: lib/paxerror.c:84 -#, c-format -msgid "%s: Warning: Cannot %s" -msgstr "%s:警告:無法 %s" +msgid "%s: option '--%s' doesn't allow an argument\n" +msgstr "%s:選項「--%s」不允許引數\n" -#: lib/paxerror.c:93 -#, c-format -msgid "%s: Cannot change mode to %s" -msgstr "%s:無法更改模式至 %s" +#: gnu/getopt.c:593 gnu/getopt.c:598 +#, fuzzy, c-format +msgid "%s: option '%c%s' doesn't allow an argument\n" +msgstr "%s:選項「%c%s」不允許引數\n" -#: lib/paxerror.c:101 -#, c-format -msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s:無法更改擁有者至 uid %lu,所屬群組至 gid %lu" +#: gnu/getopt.c:641 gnu/getopt.c:660 gnu/getopt.c:963 gnu/getopt.c:982 +#, fuzzy, c-format +msgid "%s: option '%s' requires an argument\n" +msgstr "%s:選項「%s」需要一個引數\n" -#: lib/paxerror.c:127 -#, c-format -msgid "%s: Cannot hard link to %s" -msgstr "%s:無法建立實際連結 (hard link) 至 %s" +#: gnu/getopt.c:698 gnu/getopt.c:701 +#, fuzzy, c-format +msgid "%s: unrecognized option '--%s'\n" +msgstr "%s:無法辨識的選項「--%s」\n" -#: lib/paxerror.c:179 lib/paxerror.c:211 +#: gnu/getopt.c:709 gnu/getopt.c:712 #, fuzzy, c-format -msgid "%s: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s:讀取 %s 位元組時錯誤,正在讀取 %lu 位元組" +msgid "%s: unrecognized option '%c%s'\n" +msgstr "%s:無法辨識的選項「%c%s」\n" -#: lib/paxerror.c:192 +#: gnu/getopt.c:761 gnu/getopt.c:764 #, fuzzy, c-format -msgid "%s: Warning: Read error at byte %s, while reading %lu byte" -msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" -msgstr[0] "%s:警告:讀取 %s 位元組時錯誤,正在讀取 %lu 位元組" +msgid "%s: invalid option -- '%c'\n" +msgstr "%s:無效的選項 -- %c\n" -#: lib/paxerror.c:259 -#, c-format -msgid "%s: Cannot seek to %s" -msgstr "%s:無法搜尋至 %s" +#: gnu/getopt.c:814 gnu/getopt.c:831 gnu/getopt.c:1034 gnu/getopt.c:1052 +#, fuzzy, c-format +msgid "%s: option requires an argument -- '%c'\n" +msgstr "%s:選項需要一個引數 -- %c\n" -#: lib/paxerror.c:275 -#, c-format -msgid "%s: Warning: Cannot seek to %s" -msgstr "%s:警告:無法搜尋至 %s" +#: gnu/getopt.c:884 gnu/getopt.c:900 +#, fuzzy, c-format +msgid "%s: option '-W %s' is ambiguous\n" +msgstr "%s:選項「-W %s」是模稜兩可的\n" -#: lib/paxerror.c:284 -#, c-format -msgid "%s: Cannot create symlink to %s" -msgstr "%s:無法建立符號連結至 %s" +#: gnu/getopt.c:924 gnu/getopt.c:942 +#, fuzzy, c-format +msgid "%s: option '-W %s' doesn't allow an argument\n" +msgstr "%s:選項「-W %s」不允許引數\n" -#: lib/paxerror.c:349 -#, c-format -msgid "%s: Wrote only %lu of %lu byte" -msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%1$s:只能寫入 %3$lu 位元組中的 %2$lu 個" +#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36 +msgid "memory exhausted" +msgstr "記憶體已耗盡" -#: lib/paxnames.c:155 +#: gnu/openat-die.c:36 #, c-format -msgid "Removing leading `%s' from member names" -msgstr "從成員名稱中移除前端的‘%s’" +msgid "unable to record current working directory" +msgstr "無法記錄目前的工作目錄" -#: lib/paxnames.c:156 +#: gnu/openat-die.c:54 #, c-format -msgid "Removing leading `%s' from hard link targets" -msgstr "從硬式連結目標中移除前端的‘%s’" - -#: lib/paxnames.c:169 -msgid "Substituting `.' for empty member name" -msgstr "以‘.’來替換空白的成員名稱" - -#: lib/paxnames.c:170 -msgid "Substituting `.' for empty hard link target" -msgstr "以‘.’來替換空白的硬式連結目標" +msgid "failed to return to initial working directory" +msgstr "回到初始工作目錄時失敗" #. TRANSLATORS: #. Get translations for open and closing quotation marks. @@ -303,19 +212,19 @@ msgstr "以‘.’來替換空白的硬式連結目標" #. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and #. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION #. MARK). A British English Unicode locale should instead -#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and -#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. +#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) +#. and U+2019 (RIGHT SINGLE QUOTATION MARK), respectively. #. #. If you don't know what to put here, please see #. <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs> #. and use glyphs suitable for your language. -#: lib/quotearg.c:249 +#: gnu/quotearg.c:274 msgid "`" -msgstr "‘" +msgstr "「" -#: lib/quotearg.c:250 +#: gnu/quotearg.c:275 msgid "'" -msgstr "’" +msgstr "」" #. TRANSLATORS: A regular expression testing for an affirmative answer #. (english: "yes"). Testing the first character may be sufficient. @@ -323,9 +232,9 @@ msgstr "’" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^yesexpr=' -#: lib/rpmatch.c:147 +#: gnu/rpmatch.c:149 msgid "^[yY]" -msgstr "" +msgstr "^[yY是]" #. TRANSLATORS: A regular expression testing for a negative answer #. (english: "no"). Testing the first character may be sufficient. @@ -333,38 +242,28 @@ msgstr "" #. To enquire the regular expression that your system uses for this #. purpose, you can use the command #. locale -k LC_MESSAGES | grep '^noexpr=' -#: lib/rpmatch.c:160 +#: gnu/rpmatch.c:162 msgid "^[nN]" -msgstr "" - -#: lib/rtapelib.c:299 -#, c-format -msgid "exec/tcp: Service not available" -msgstr "exec/tcp: 無法提供服務" - -#: lib/rtapelib.c:303 -#, c-format -msgid "stdin" -msgstr "標準輸入" +msgstr "^[nN否]" -#: lib/rtapelib.c:306 +#: gnu/version-etc.c:76 #, c-format -msgid "stdout" -msgstr "標準輸出" +msgid "Packaged by %s (%s)\n" +msgstr "" -#: lib/rtapelib.c:512 +#: gnu/version-etc.c:79 #, c-format -msgid "Cannot execute remote shell" -msgstr "無法執行遠端 shell" +msgid "Packaged by %s\n" +msgstr "" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: lib/version-etc.c:65 +#: gnu/version-etc.c:86 msgid "(C)" -msgstr "" +msgstr "©" -#: lib/version-etc.c:67 +#: gnu/version-etc.c:88 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." @@ -373,455 +272,620 @@ msgid "" "There is NO WARRANTY, to the extent permitted by law.\n" "\n" msgstr "" +"\n" +"使用授權 GPLv3+: GNU GPL 第三版或後續版本<http://gnu.org/licenses/gpl." +"html>。\n" +"這是自由軟體:您可以自由變更和再次散布它。\n" +"在法律所允許的範圍內沒有任何擔保。\n" +"\n" #. TRANSLATORS: %s denotes an author name. -#: lib/version-etc.c:83 -#, fuzzy, c-format +#: gnu/version-etc.c:104 +#, c-format msgid "Written by %s.\n" -msgstr "由 F. Pinard 編寫。" +msgstr "由 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:87 -#, fuzzy, c-format +#: gnu/version-etc.c:108 +#, c-format msgid "Written by %s and %s.\n" -msgstr "由 F. Pinard 編寫。" +msgstr "由 %s 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. -#: lib/version-etc.c:91 -#, fuzzy, c-format +#: gnu/version-etc.c:112 +#, c-format msgid "Written by %s, %s, and %s.\n" -msgstr "由 F. Pinard 編寫。" +msgstr "由 %s, %s, 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:97 +#: gnu/version-etc.c:119 #, c-format msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" +"由 %s, %s, %s,\n" +"和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:103 +#: gnu/version-etc.c:126 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"寫作由 %s, %s, %s,\n" +" %s, 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:109 +#: gnu/version-etc.c:133 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" +"寫作由 %s, %s, %s,\n" +" %s, %s, 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:116 +#: gnu/version-etc.c:141 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" +"寫作由 %s, %s, %s,\n" +" %s, %s, %s, 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:123 +#: gnu/version-etc.c:149 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" +"寫作由 %s, %s, %s,\n" +" %s, %s, %s, %s,\n" +"和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:131 +#: gnu/version-etc.c:158 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"寫作由 %s, %s, %s,\n" +" %s, %s, %s, %s,\n" +" %s, 和 %s 編寫。\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies #. ca. 16 screen columns and that a screen line has ca. 80 columns. -#: lib/version-etc.c:141 +#: gnu/version-etc.c:169 #, c-format msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" +"寫作由 %s, %s, %s,\n" +" %s, %s, %s, %s,\n" +" %s, %s, 和其他人編寫。\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). -#: lib/version-etc.c:181 rmt/rmt.c:315 -#, c-format +#: gnu/version-etc.c:247 +#, fuzzy, c-format msgid "" "\n" -"Report bugs to <%s>.\n" +"Report bugs to: %s\n" +msgstr "請向 %s 回報錯誤。\n" + +#: gnu/version-etc.c:249 +#, fuzzy, c-format +msgid "Report %s bugs to: %s\n" msgstr "" "\n" -"請向 <%s> 回報錯誤。\n" +"將錯誤回報給 <%s>。\n" -#: lib/version-etc.c:182 +#: gnu/version-etc.c:253 #, c-format -msgid "%s home page: <http://www.gnu.org/software/%s/>.\n" +msgid "%s home page: <%s>\n" msgstr "" -#: lib/version-etc.c:184 -msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n" -msgstr "" +#: gnu/version-etc.c:255 +#, fuzzy, c-format +msgid "%s home page: <http://www.gnu.org/software/%s/>\n" +msgstr "%s 首頁:<http://www.gnu.org/software/%s/>。\n" -#: rmt/rmt.c:142 -msgid "Input string too long" -msgstr "" +#: gnu/version-etc.c:258 +#, fuzzy +msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n" +msgstr "使用 GNU 軟體的一般說明:<http://www.gnu.org/gethelp/>。\n" -#: rmt/rmt.c:161 -msgid "Number syntax error" -msgstr "" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:58 lib/paxerror.c:71 +#, c-format +msgid "%s: Cannot %s" +msgstr "%s:無法 %s" -#: rmt/rmt.c:180 -msgid "rmtd: Cannot allocate buffer space\n" -msgstr "rmtd:無法分配緩衝區空間\n" +#. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. +#. Directly translating this to another language will not work, first because +#. %s itself is not translated. +#. Translate it as `%s: Function %s failed'. +#: lib/paxerror.c:84 +#, c-format +msgid "%s: Warning: Cannot %s" +msgstr "%s:警告:無法 %s" -#: rmt/rmt.c:182 -msgid "Cannot allocate buffer space" -msgstr "無法分配緩衝區空間" +#: lib/paxerror.c:93 +#, c-format +msgid "%s: Cannot change mode to %s" +msgstr "%s:無法變更模式為 %s" -#: rmt/rmt.c:304 +#: lib/paxerror.c:101 #, c-format -msgid "Try `%s --help' for more information.\n" -msgstr "請嘗試‘%s --help’來獲取更多資訊。\n" +msgid "%s: Cannot change ownership to uid %lu, gid %lu" +msgstr "%s:無法變更所有權為 uid %lu,gid %lu" -#: rmt/rmt.c:308 -#, fuzzy, c-format -msgid "" -"Usage: %s [OPTION]\n" -"Manipulate a tape drive, accepting commands from a remote process.\n" -"\n" -" --version Output version info.\n" -" --help Output this help.\n" +#: lib/paxerror.c:127 +#, c-format +msgid "%s: Cannot hard link to %s" +msgstr "%s:無法建立硬式連結到 %s" + +#: lib/paxerror.c:179 lib/paxerror.c:211 +#, c-format +msgid "%s: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s:讀取 %s 位元組時錯誤,正在讀取 %lu 位元組" + +#: lib/paxerror.c:192 +#, c-format +msgid "%s: Warning: Read error at byte %s, while reading %lu byte" +msgid_plural "%s: Warning: Read error at byte %s, while reading %lu bytes" +msgstr[0] "%s:警告:讀取 %s 位元組時錯誤,正在讀取 %lu 位元組" + +#: lib/paxerror.c:259 +#, c-format +msgid "%s: Cannot seek to %s" +msgstr "%s:無法尋指到 %s" + +#: lib/paxerror.c:275 +#, c-format +msgid "%s: Warning: Cannot seek to %s" +msgstr "%s:警告:無法尋指到 %s" + +#: lib/paxerror.c:284 +#, c-format +msgid "%s: Cannot create symlink to %s" +msgstr "%s:無法建立符號連結到 %s" + +#: lib/paxerror.c:349 +#, c-format +msgid "%s: Wrote only %lu of %lu byte" +msgid_plural "%s: Wrote only %lu of %lu bytes" +msgstr[0] "%1$s:只能寫入 %3$lu 位元組中的 %2$lu 個" + +#: lib/paxnames.c:155 +#, c-format +msgid "Removing leading `%s' from member names" +msgstr "從成員名稱中移除前端的「%s」" + +#: lib/paxnames.c:156 +#, c-format +msgid "Removing leading `%s' from hard link targets" +msgstr "從硬式連結目標中移除前端的「%s」" + +#: lib/paxnames.c:169 +msgid "Substituting `.' for empty member name" +msgstr "以「.」來替換空白的成員名稱" + +#: lib/paxnames.c:170 +msgid "Substituting `.' for empty hard link target" +msgstr "以「.」來替換空白的硬式連結目標" + +#: lib/rtapelib.c:299 +#, c-format +msgid "exec/tcp: Service not available" +msgstr "exec/tcp:無法提供服務" + +#: lib/rtapelib.c:303 +#, c-format +msgid "stdin" +msgstr "標準輸入" + +#: lib/rtapelib.c:306 +#, c-format +msgid "stdout" +msgstr "標準輸出" + +#: lib/rtapelib.c:429 +#, c-format +msgid "Cannot connect to %s: resolve failed" msgstr "" -"用法: %s [選項]\n" -"操控磁帶機,接收來自遠端行程的命令。\n" -"\n" -" --version 輸出版本資訊。\n" -" --help 輸出本輔助說明。\n" -#: rmt/rmt.c:397 +#: lib/rtapelib.c:515 +#, c-format +msgid "Cannot execute remote shell" +msgstr "無法執行遠端命令殼" + +#: rmt/rmt.c:413 +msgid "Seek direction out of range" +msgstr "尋覓方向超出範圍" + +#: rmt/rmt.c:419 #, fuzzy -msgid "Seek offset error" -msgstr "搜尋差值超出範圍以外" +msgid "Invalid seek direction" +msgstr "選項中的模式無效" -#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557 +#: rmt/rmt.c:427 +#, fuzzy +msgid "Invalid seek offset" +msgstr "無效的大小:%s" + +#: rmt/rmt.c:433 msgid "Seek offset out of range" -msgstr "搜尋差值超出範圍以外" +msgstr "尋覓偏移值超出範圍" -#: rmt/rmt.c:428 -msgid "Seek direction out of range" -msgstr "搜尋方向超出範圍以外" +#: rmt/rmt.c:474 rmt/rmt.c:525 rmt/rmt.c:589 +#, fuzzy +msgid "Invalid byte count" +msgstr "無效的磁帶長度" + +#: rmt/rmt.c:480 rmt/rmt.c:531 rmt/rmt.c:595 rmt/rmt.c:606 +#, fuzzy +msgid "Byte count out of range" +msgstr "尋覓偏移值超出範圍" -#: rmt/rmt.c:472 -msgid "rmtd: Premature eof\n" +#: rmt/rmt.c:539 +#, fuzzy +msgid "Premature eof" msgstr "rmtd:檔案突然結束\n" -#: rmt/rmt.c:474 -msgid "Premature end of file" -msgstr "檔案突然結束" +#: rmt/rmt.c:582 +#, fuzzy +msgid "Invalid operation code" +msgstr "主要操作模式:" + +#: rmt/rmt.c:617 rmt/rmt.c:661 +msgid "Operation not supported" +msgstr "" + +#: rmt/rmt.c:645 +#, fuzzy +msgid "Unexpected arguments" +msgstr "未預期的保存檔結尾" + +#: rmt/rmt.c:670 +msgid "Manipulate a tape drive, accepting commands from a remote process" +msgstr "" + +#: rmt/rmt.c:677 src/tar.c:423 src/tar.c:427 src/tar.c:557 src/tar.c:572 +#: src/tar.c:703 src/tar.c:741 tests/genfile.c:167 +msgid "NUMBER" +msgstr "數目" + +#: rmt/rmt.c:678 +msgid "set debug level" +msgstr "" + +#: rmt/rmt.c:679 src/tar.c:421 src/tar.c:562 src/tar.c:638 src/tar.c:642 +#: src/tar.c:654 src/tar.c:664 src/tar.c:667 src/tar.c:669 src/tar.c:756 +#: tests/genfile.c:133 tests/genfile.c:181 tests/genfile.c:185 +#: tests/genfile.c:188 tests/genfile.c:194 +msgid "FILE" +msgstr "檔案" + +#: rmt/rmt.c:680 +msgid "set debug output file name" +msgstr "" + +#: rmt/rmt.c:696 rmt/rmt.c:764 +#, fuzzy, c-format +msgid "cannot open %s" +msgstr "無法開啟「%s」" -#: rmt/rmt.c:672 +#: rmt/rmt.c:761 tests/genfile.c:885 tests/genfile.c:902 +#, c-format +msgid "too many arguments" +msgstr "太多引數" + +#: rmt/rmt.c:803 msgid "Garbage command" msgstr "無用的命令" -#: src/buffer.c:290 src/buffer.c:295 src/buffer.c:541 src/buffer.c:1128 -#: src/delete.c:210 src/list.c:167 src/update.c:165 +#: src/buffer.c:321 src/buffer.c:326 src/buffer.c:572 src/buffer.c:1176 +#: src/buffer.c:1222 src/buffer.c:1251 src/delete.c:211 src/list.c:171 +#: src/update.c:189 msgid "This does not look like a tar archive" -msgstr "它不像是 tar 保存檔" +msgstr "這個看起來不像 tar 保存檔" -#: src/buffer.c:354 src/buffer.c:363 -#, fuzzy +#: src/buffer.c:385 src/buffer.c:394 msgid "Total bytes written" -msgstr "已寫入位元組總數: %s (%s, %s/s)\n" +msgstr "已寫入位元組總數" -#: src/buffer.c:361 src/buffer.c:375 +#: src/buffer.c:392 src/buffer.c:406 msgid "Total bytes read" -msgstr "" +msgstr "已讀取位元組總數" -#: src/buffer.c:365 -#, fuzzy, c-format +#: src/buffer.c:396 +#, c-format msgid "Total bytes deleted: %s\n" -msgstr "已寫入位元組總數: %s (%s, %s/s)\n" +msgstr "已刪除位元組總數:%s\n" -#: src/buffer.c:454 +#: src/buffer.c:485 msgid "(pipe)" msgstr "(管線)" -#: src/buffer.c:477 +#: src/buffer.c:508 msgid "Invalid value for record_size" -msgstr "無效的紀錄大小" +msgstr "無效的記錄大小" -#: src/buffer.c:480 +#: src/buffer.c:511 msgid "No archive name given" msgstr "沒有指定保存檔名稱" -#: src/buffer.c:524 +#: src/buffer.c:555 msgid "Cannot verify stdin/stdout archive" msgstr "無法檢驗標準輸出入保存檔" -#: src/buffer.c:538 +#: src/buffer.c:569 #, c-format msgid "Archive is compressed. Use %s option" -msgstr "保存檔已壓縮過。使用 %s 選項" +msgstr "保存檔被壓縮過。使用 %s 選項" -#: src/buffer.c:593 src/tar.c:2317 +#: src/buffer.c:626 src/tar.c:2429 msgid "Cannot update compressed archives" msgstr "無法更新壓縮的保存檔" -#: src/buffer.c:672 +#: src/buffer.c:705 msgid "At beginning of tape, quitting now" -msgstr "開始讀取磁帶時出錯,立刻退出" +msgstr "位於磁帶起始部份,立刻退出" -#: src/buffer.c:678 +#: src/buffer.c:711 msgid "Too many errors, quitting" -msgstr "錯誤過多,必須中止" +msgstr "太多錯誤,離開中" -#: src/buffer.c:697 +#: src/buffer.c:744 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" -msgstr[0] "紀錄大小 = %lu 區塊" +msgstr[0] "記錄大小 = %lu 區塊" -#: src/buffer.c:718 +#: src/buffer.c:765 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "保存檔中未排列的區塊 (%lu 位元組)" -#: src/buffer.c:795 +#: src/buffer.c:842 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "無法倒退保存檔檔案;沒有 -i 也許會無法讀取" -#: src/buffer.c:827 +#: src/buffer.c:874 msgid "rmtlseek not stopped at a record boundary" -msgstr "rmtlseek 無法在紀錄分界處停止" +msgstr "rmtlseek 無法在記錄分界處停止" -#: src/buffer.c:881 +#: src/buffer.c:928 #, c-format msgid "%s: contains invalid volume number" msgstr "%s:包含無效的卷冊號碼" -#: src/buffer.c:916 +#: src/buffer.c:963 msgid "Volume number overflow" msgstr "卷冊號碼已滿" -#: src/buffer.c:931 +#: src/buffer.c:978 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "準備好卷冊 #%d 以完成 %s 並按下 return: " -#: src/buffer.c:937 +#: src/buffer.c:984 msgid "EOF where user reply was expected" msgstr "到達期待使用者回答的檔案末端" -#: src/buffer.c:942 src/buffer.c:974 +#: src/buffer.c:989 src/buffer.c:1021 msgid "WARNING: Archive is incomplete" msgstr "警告:保存檔不完整" -#: src/buffer.c:956 -#, fuzzy, c-format +#: src/buffer.c:1003 +#, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" " q Abort tar\n" " y or newline Continue operation\n" msgstr "" -" n [名稱] 賦予下一個 (以及後續的) 卷冊一個新檔名\n" -" q 中斷 tar\n" -" ! 產生一個子命令介面\n" -" ? 印出本列表\n" +" n 名稱 賦予下一個 (以及後續的) 卷冊一個新檔名\n" +" q 放棄打包\n" +" y 或 newline 繼續作業\n" -#: src/buffer.c:961 +#: src/buffer.c:1008 #, c-format msgid " ! Spawn a subshell\n" -msgstr "" +msgstr " ! 衍生一個子命令殼\n" -#: src/buffer.c:962 +#: src/buffer.c:1009 #, c-format msgid " ? Print this list\n" -msgstr "" +msgstr " ? 列印這個清單\n" -#: src/buffer.c:969 +#: src/buffer.c:1016 msgid "No new volume; exiting.\n" -msgstr "沒有新的卷冊;離開。\n" +msgstr "沒有新卷冊;離開。\n" -#: src/buffer.c:1002 +#: src/buffer.c:1049 msgid "File name not specified. Try again.\n" -msgstr "" +msgstr "檔案名稱尚未指定。再次嘗試。\n" -#: src/buffer.c:1015 +#: src/buffer.c:1062 #, c-format msgid "Invalid input. Type ? for help.\n" -msgstr "" +msgstr "無效的輸入。按下 ? 以獲得說明。\n" -#: src/buffer.c:1066 -#, fuzzy, c-format +#: src/buffer.c:1113 +#, c-format msgid "%s command failed" -msgstr "‘%s’指令失敗" +msgstr "%s 命令失敗" -#: src/buffer.c:1221 -#, fuzzy, c-format +#: src/buffer.c:1294 +#, c-format msgid "%s is possibly continued on this volume: header contains truncated name" -msgstr "%s 在本卷冊中並不連續" +msgstr "%s 在本卷冊中可能連續:標頭含有截斷的名稱" -#: src/buffer.c:1225 +#: src/buffer.c:1298 #, c-format msgid "%s is not continued on this volume" msgstr "%s 在本卷冊中並不連續" -#: src/buffer.c:1239 +#: src/buffer.c:1312 #, c-format msgid "%s is the wrong size (%s != %s + %s)" -msgstr "%s 的大小有錯誤 (%s != %s + %s)" +msgstr "%s 的大小有錯 (%s != %s + %s)" -#: src/buffer.c:1253 -#, fuzzy, c-format +#: src/buffer.c:1326 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "本卷冊已超出序列" +msgstr "本卷冊已超出序列 (%s - %s !=%s)" -#: src/buffer.c:1303 +#: src/buffer.c:1404 src/buffer.c:1430 #, c-format msgid "Archive not labeled to match %s" msgstr "保存檔未標誌為符合 %s" -#: src/buffer.c:1306 +#: src/buffer.c:1434 #, c-format msgid "Volume %s does not match %s" msgstr "卷冊 %s 不符合 %s" -#: src/buffer.c:1402 -#, fuzzy, c-format +#: src/buffer.c:1530 +#, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" -msgstr "%s: 檔名太長,無法儲存於 GNU 多重卷冊表頭之中" +msgstr "%s:檔名太長,無法儲存於 GNU 多重卷冊標頭之中,已截斷" -#: src/buffer.c:1621 -#, fuzzy +#: src/buffer.c:1749 msgid "write did not end on a block boundary" -msgstr "rmtlseek 無法在紀錄分界處停止" +msgstr "並未於區段界限結束寫入" -#: src/compare.c:96 +#: src/compare.c:95 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "只能讀取 %2$lu 位元組中的 %1$lu 個" -#: src/compare.c:106 src/compare.c:388 +#: src/compare.c:105 src/compare.c:388 msgid "Contents differ" msgstr "內容不同" -#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372 -#: src/list.c:1323 +#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:386 +#: src/list.c:1376 src/xheader.c:710 msgid "Unexpected EOF in archive" -msgstr "保存檔的檔案結尾不正常" +msgstr "未預期的保存檔結尾" -#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412 +#: src/compare.c:179 src/compare.c:195 src/compare.c:313 src/compare.c:412 msgid "File type differs" msgstr "檔案類型不同" -#: src/compare.c:183 src/compare.c:203 src/compare.c:328 +#: src/compare.c:182 src/compare.c:202 src/compare.c:327 msgid "Mode differs" msgstr "模式不同" -#: src/compare.c:206 +#: src/compare.c:205 msgid "Uid differs" msgstr "Uid 號碼不同" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Gid differs" msgstr "Gid 號碼不同" -#: src/compare.c:212 +#: src/compare.c:211 msgid "Mod time differs" msgstr "修改時間不同" -#: src/compare.c:216 src/compare.c:420 +#: src/compare.c:215 src/compare.c:420 msgid "Size differs" msgstr "大小不同" -#: src/compare.c:270 +#: src/compare.c:269 #, c-format msgid "Not linked to %s" -msgstr "並未連結至 %s" +msgstr "並未鏈結至 %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "符號連結不同" -#: src/compare.c:322 +#: src/compare.c:321 msgid "Device number differs" -msgstr "裝置檔案號碼不同" +msgstr "裝置編號不同" #: src/compare.c:462 #, c-format msgid "Verify " -msgstr "檢驗 " +msgstr "驗證 " #: src/compare.c:469 -#, fuzzy, c-format +#, c-format msgid "%s: Unknown file type `%c', diffed as normal file" -msgstr "%s:不明的檔案類型‘%c’,會以普通檔案的方式作比較" +msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式作比較" #: src/compare.c:524 msgid "Archive contains file names with leading prefixes removed." -msgstr "保存檔中包含前置文字被移除的檔案名稱。" +msgstr "保存檔包含前置文字被移除的檔案名稱。" #: src/compare.c:526 msgid "Verification may fail to locate original files." -msgstr "確認動作可能無法找到原始檔案" +msgstr "查核動作可能無法找到原始檔案" -#: src/compare.c:596 +#: src/compare.c:599 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" -msgstr[0] "確認失誤:%d 偵測到無效的表頭" +msgstr[0] "驗證失敗:%d 偵測到無效的標頭" -#: src/compare.c:612 src/list.c:144 +#: src/compare.c:617 src/list.c:148 #, c-format msgid "A lone zero block at %s" msgstr "位於 %s 的孤立零值區塊" -#: src/create.c:67 -#, fuzzy, c-format +#: src/create.c:68 +#, c-format msgid "%s: contains a cache directory tag %s; %s" -msgstr "%s:包含一個快取目錄標籤;未傾印" +msgstr "%s:包含一個快取目錄標記 %s; %s" -#: src/create.c:272 +#: src/create.c:273 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "數值 %s 已超出 %s 的範圍 %s..%s;以 %s 替代中" -#: src/create.c:278 +#: src/create.c:279 #, c-format msgid "value %s out of %s range %s..%s" msgstr "數值 %s 已超出 %s 的範圍 %s..%s" -#: src/create.c:338 +#: src/create.c:339 msgid "Generating negative octal headers" -msgstr "正在產生負數的八進位表頭" +msgstr "正在產生負數的八進位標頭" #: src/create.c:624 src/create.c:687 #, c-format @@ -836,443 +900,441 @@ msgstr "%s:檔名太長 (無法分割);未傾印" #: src/create.c:661 #, c-format msgid "%s: link name is too long; not dumped" -msgstr "%s:連接名稱太長;未傾印" +msgstr "%s:鏈結名稱太長;未傾印" -#: src/create.c:1076 +#: src/create.c:1078 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" msgstr[0] "%s:檔案縮小了 %s 位元組;以零值填補" -#: src/create.c:1177 +#: src/create.c:1175 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s:檔案位於不同的檔案系統;未傾印" -#: src/create.c:1221 src/create.c:1232 src/incremen.c:551 src/incremen.c:557 +#: src/create.c:1219 src/create.c:1230 src/incremen.c:590 src/incremen.c:596 msgid "contents not dumped" -msgstr "" +msgstr "內容無法傾印" -#: src/create.c:1361 +#: src/create.c:1362 #, c-format msgid "%s: Unknown file type; file ignored" -msgstr "%s:檔案類型不詳;會忽略該檔案" +msgstr "%s:不明檔案類型;忽略該檔案" -#: src/create.c:1464 +#: src/create.c:1472 #, fuzzy, c-format -msgid "Missing links to %s.\n" +msgid "Missing links to %s." msgstr "失去至 %s 的連結。\n" -#: src/create.c:1535 +#: src/create.c:1543 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s:檔案沒有變更;未傾印" -#: src/create.c:1543 +#: src/create.c:1552 #, c-format msgid "%s: file is the archive; not dumped" -msgstr "%s:這個檔案是保存檔;未傾印" - -#: src/create.c:1573 -#, c-format -msgid "%s: File removed before we read it" -msgstr "%s:當讀取檔案時該檔案已被移除" +msgstr "%s:檔案是保存檔;未傾印" -#: src/create.c:1591 src/incremen.c:543 -#, fuzzy +#: src/create.c:1593 src/incremen.c:583 msgid "directory not dumped" -msgstr "%s:包含一個快取目錄標籤;未傾印" +msgstr "目錄未傾印" -#: src/create.c:1659 +#: src/create.c:1664 #, c-format msgid "%s: file changed as we read it" -msgstr "%s:檔案在我們讀取時已變更" +msgstr "%s:檔案在讀取時已變更" -#: src/create.c:1739 +#: src/create.c:1731 #, c-format msgid "%s: socket ignored" -msgstr "%s:會忽略 socket" +msgstr "%s:忽略通訊端" -#: src/create.c:1744 +#: src/create.c:1737 #, c-format msgid "%s: door ignored" -msgstr "%s:會忽略 door" +msgstr "%s:忽略匣門" -#: src/delete.c:216 src/list.c:181 src/update.c:170 +#: src/delete.c:217 src/list.c:185 src/update.c:194 msgid "Skipping to next header" -msgstr "跳至下一個表頭" +msgstr "跳至下一個標頭" -#: src/delete.c:281 +#: src/delete.c:283 msgid "Deleting non-header from archive" -msgstr "從保存檔中刪除無表頭者" +msgstr "從保存檔中刪除無標頭者" -#: src/extract.c:198 +#: src/extract.c:211 #, c-format msgid "%s: implausibly old time stamp %s" -msgstr "%s:難以確信的舊時間印記 %s" +msgstr "%s:難以確信的舊時間戳記 %s" -#: src/extract.c:215 -#, fuzzy, c-format +#: src/extract.c:229 +#, c-format msgid "%s: time stamp %s is %s s in the future" -msgstr "%s:時間印記 %s 代表未來的 %lu 秒" +msgstr "%s:時間戳記 %s 代表未來的 %s 秒" -#: src/extract.c:395 +#: src/extract.c:409 #, c-format msgid "%s: Unexpected inconsistency when making directory" -msgstr "%s:產生目錄時有不正常的矛盾" +msgstr "%s:產生目錄時有未預期的不一致" -#: src/extract.c:588 +#: src/extract.c:613 #, c-format msgid "%s: Directory renamed before its status could be extracted" -msgstr "%s:擷取目錄的狀態前目錄已更改了名稱" +msgstr "%s:解開目錄狀態之前已更改了名稱" -#: src/extract.c:724 +#: src/extract.c:759 msgid "Extracting contiguous files as regular files" -msgstr "正在解開連續的檔案為正常的檔案" +msgstr "正在解開連續檔案為正常檔案" -#: src/extract.c:997 +#: src/extract.c:1039 msgid "Attempting extraction of symbolic links as hard links" msgstr "嘗試解開符號連結為硬式連結" -#: src/extract.c:1054 -#, c-format -msgid "Reading %s\n" -msgstr "正在讀取“%s”\n" - -#: src/extract.c:1143 +#: src/extract.c:1183 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s:無法解開 -- 檔案延續自其他卷冊" -#: src/extract.c:1150 src/list.c:1090 -#, fuzzy +#: src/extract.c:1190 src/list.c:1109 msgid "Unexpected long name header" -msgstr "損毀名稱的檔案結尾不正常" +msgstr "未預期的長名稱標頭" -#: src/extract.c:1156 -#, fuzzy, c-format +#: src/extract.c:1197 +#, c-format msgid "%s: Unknown file type `%c', extracted as normal file" -msgstr "%s:不明的檔案類型‘%c’,會以普通檔案的方式抽取資料" +msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式解開資料" -#: src/extract.c:1181 -#, fuzzy, c-format +#: src/extract.c:1223 +#, c-format msgid "Current %s is newer or same age" -msgstr "目前的‘%s’較新" +msgstr "目前的 %s 較新或相同" -#: src/extract.c:1227 +#: src/extract.c:1274 #, c-format msgid "%s: Was unable to backup this file" -msgstr "%s:無法備份此檔案" +msgstr "%s:之前無法備份這個檔案" -#: src/extract.c:1355 -#, fuzzy, c-format +#: src/extract.c:1402 +#, c-format msgid "Cannot rename %s to %s" -msgstr "%s:無法改名為 %s" +msgstr "無法將 %s 重新命名為 %s" -#: src/extract.c:1367 +#: src/incremen.c:482 src/incremen.c:526 #, c-format -msgid "Error is not recoverable: exiting now" -msgstr "發生無法復原的錯誤:立刻退出" - -#: src/incremen.c:448 src/incremen.c:492 -#, fuzzy, c-format msgid "%s: Directory has been renamed from %s" -msgstr "%s:目錄已被變更名稱" +msgstr "%s:目錄已從 %s 重新命名" -#: src/incremen.c:460 +#: src/incremen.c:494 #, c-format msgid "%s: Directory has been renamed" -msgstr "%s:目錄已被變更名稱" +msgstr "%s:目錄已被重新命名" -#: src/incremen.c:505 +#: src/incremen.c:539 #, c-format msgid "%s: Directory is new" msgstr "%s:目錄是新的" -#: src/incremen.c:903 src/incremen.c:920 +#: src/incremen.c:956 src/incremen.c:973 msgid "Invalid time stamp" -msgstr "無效的時間標記" +msgstr "無效的時間戳記" -#: src/incremen.c:959 -#, fuzzy +#: src/incremen.c:1012 msgid "Invalid modification time (seconds)" -msgstr "選項中的模式無效" +msgstr "無效的修改時間 (秒)" -#: src/incremen.c:974 +#: src/incremen.c:1027 msgid "Invalid modification time (nanoseconds)" -msgstr "" +msgstr "無效的修改時間 (奈秒)" -#: src/incremen.c:994 +#: src/incremen.c:1047 msgid "Invalid device number" msgstr "無效的裝置號碼" -#: src/incremen.c:1009 +#: src/incremen.c:1062 msgid "Invalid inode number" msgstr "無效的 inode 號碼" -#: src/incremen.c:1060 src/incremen.c:1097 +#: src/incremen.c:1113 src/incremen.c:1150 msgid "Field too long while reading snapshot file" -msgstr "" +msgstr "讀取快照檔時欄位太長" -#: src/incremen.c:1067 src/incremen.c:1105 +#: src/incremen.c:1120 src/incremen.c:1158 msgid "Read error in snapshot file" -msgstr "" +msgstr "讀取快照檔時發生錯誤" -#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161 -#: src/incremen.c:1219 -#, fuzzy +#: src/incremen.c:1122 src/incremen.c:1162 src/incremen.c:1214 +#: src/incremen.c:1272 msgid "Unexpected EOF in snapshot file" -msgstr "保存檔的檔案結尾不正常" +msgstr "未預期的快照檔結尾" -#: src/incremen.c:1076 src/incremen.c:1116 +#: src/incremen.c:1129 src/incremen.c:1169 msgid "Unexpected field value in snapshot file" -msgstr "" +msgstr "未預期的快照檔欄位值" -#: src/incremen.c:1211 +#: src/incremen.c:1264 msgid "Missing record terminator" -msgstr "" +msgstr "缺少記錄終止符號" -#: src/incremen.c:1262 src/incremen.c:1265 +#: src/incremen.c:1325 src/incremen.c:1328 msgid "Bad incremental file format" -msgstr "" +msgstr "不當的遞增檔案格式" -#: src/incremen.c:1284 +#: src/incremen.c:1347 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" -msgstr "" +msgstr "不受支援的遞增格式版本:%<PRIuMAX>" -#: src/incremen.c:1439 +#: src/incremen.c:1502 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" -msgstr "" +msgstr "異常的傾印目錄:預期「%c」但是找到 %#3o" -#: src/incremen.c:1449 +#: src/incremen.c:1512 msgid "Malformed dumpdir: 'X' duplicated" -msgstr "" +msgstr "異常的傾印目錄:「X」重製" -#: src/incremen.c:1462 -#, fuzzy +#: src/incremen.c:1525 msgid "Malformed dumpdir: empty name in 'R'" -msgstr "未成形的密度引數: '%s'" +msgstr "異常的傾印目錄:在「R」中有空的名稱" -#: src/incremen.c:1475 +#: src/incremen.c:1538 msgid "Malformed dumpdir: 'T' not preceeded by 'R'" -msgstr "" +msgstr "異常的傾印目錄:「R」未在「T」之前" -#: src/incremen.c:1481 -#, fuzzy +#: src/incremen.c:1544 msgid "Malformed dumpdir: empty name in 'T'" -msgstr "未成形的密度引數: '%s'" +msgstr "異常的傾印目錄:在「T」中有空的名稱" -#: src/incremen.c:1501 +#: src/incremen.c:1564 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" -msgstr "" +msgstr "異常的傾印目錄:預期「%c」但是發現資料的結束" -#: src/incremen.c:1507 +#: src/incremen.c:1571 msgid "Malformed dumpdir: 'X' never used" -msgstr "" +msgstr "異常的傾印目錄:「X」永不使用" -#: src/incremen.c:1551 +#: src/incremen.c:1615 #, c-format msgid "Cannot create temporary directory using template %s" -msgstr "" +msgstr "無法使用模板 %s 建立暫存目錄" -#: src/incremen.c:1613 +#: src/incremen.c:1677 #, c-format msgid "%s: Not purging directory: unable to stat" msgstr "%s:未能清空目錄;無法顯示狀態" -#: src/incremen.c:1626 +#: src/incremen.c:1690 #, c-format msgid "%s: directory is on a different device: not purging" msgstr "%s:目錄位於不同的裝置;無法清空" -#: src/incremen.c:1634 +#: src/incremen.c:1698 #, c-format msgid "%s: Deleting %s\n" msgstr "%s:正在刪除 %s\n" -#: src/incremen.c:1639 +#: src/incremen.c:1703 #, c-format msgid "%s: Cannot remove" msgstr "%s:無法移除" -#: src/list.c:113 +#: src/list.c:115 #, c-format msgid "%s: Omitting" -msgstr "%s:遺漏中" +msgstr "%s:省略中" -#: src/list.c:131 +#: src/list.c:133 #, c-format msgid "block %s: ** Block of NULs **\n" -msgstr "區塊 %s:** 空虛的區塊 **\n" +msgstr "區塊 %s:** 空值區塊 **\n" -#: src/list.c:155 +#: src/list.c:159 #, c-format msgid "block %s: ** End of File **\n" -msgstr "區塊 %s:** 檔案末端 **\n" +msgstr "區塊 %s:** 檔案結尾 **\n" -#: src/list.c:178 src/list.c:1063 src/list.c:1291 +#: src/list.c:182 src/list.c:1081 src/list.c:1344 #, c-format msgid "block %s: " msgstr "區塊 %s:" -#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) -#: src/list.c:671 +#. TRANSLATORS: %s is type of the value (gid_t, uid_t, +#. etc.) +#: src/list.c:689 #, c-format msgid "Blanks in header where numeric %s value expected" -msgstr "空白出現在預期為數值 %s 的地方" +msgstr "空白出現在標頭中預期為數值 %s 的地方" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:726 +#: src/list.c:744 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "保存檔八進位數值 %.*s 超出 %s 範圍;假定為二的補數" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:737 +#: src/list.c:755 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "保存檔八進位數值 %.*s 超出 %s 範圍" -#: src/list.c:758 +#: src/list.c:776 msgid "Archive contains obsolescent base-64 headers" msgstr "保存檔含有過時的 base-64 標頭" -#: src/list.c:772 +#: src/list.c:790 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "保存檔有號 base-64 字串 %s 超出 %s 範圍" -#: src/list.c:803 +#: src/list.c:821 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "保存檔 base-256 值超出 %s 範圍" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:832 +#: src/list.c:850 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "保存檔包含 %.*s 於預期為數值 %s 的地方" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:854 -#, fuzzy, c-format +#: src/list.c:872 +#, c-format msgid "Archive value %s is out of %s range %s..%s" -msgstr "保存檔值 %s 已超出 %s 的範圍 %s.%s" +msgstr "保存檔值 %s 已超出 %s 的範圍 %s..%s" -#: src/list.c:1226 +#: src/list.c:1245 #, c-format msgid " link to %s\n" -msgstr " 連結至 %s\n" +msgstr " 連結到 %s\n" -#: src/list.c:1234 +#: src/list.c:1253 #, c-format msgid " unknown file type %s\n" -msgstr "不明的檔案類型 %s\n" +msgstr " 不明檔案類型 %s\n" -#: src/list.c:1252 +#: src/list.c:1271 #, c-format msgid "--Long Link--\n" msgstr "--長 連 結--\n" -#: src/list.c:1256 +#: src/list.c:1275 #, c-format msgid "--Long Name--\n" msgstr "--長 名 稱--\n" -#: src/list.c:1260 +#: src/list.c:1279 #, c-format msgid "--Volume Header--\n" msgstr "--卷 冊 標 頭--\n" -#: src/list.c:1268 +#: src/list.c:1287 #, c-format msgid "--Continued at byte %s--\n" -msgstr "─由第 %s 位元組繼續─\n" +msgstr "--於第 %s 位元組繼續--\n" -#: src/list.c:1296 +#: src/list.c:1349 msgid "Creating directory:" msgstr "正在建立目錄:" -#: src/misc.c:456 +#: src/misc.c:502 #, c-format msgid "Renaming %s to %s\n" -msgstr "正在將 %s 改名為 %s\n" +msgstr "正在將 %s 重新命名為 %s\n" -#: src/misc.c:465 src/misc.c:483 +#: src/misc.c:511 src/misc.c:529 #, c-format msgid "%s: Cannot rename to %s" -msgstr "%s:無法改名為 %s" +msgstr "%s:無法重新命名為 %s" -#: src/misc.c:488 +#: src/misc.c:534 #, c-format msgid "Renaming %s back to %s\n" msgstr "將 %s 的名稱還原為 %s\n" -#: src/misc.c:615 +#: src/misc.c:669 msgid "Cannot save working directory" -msgstr "無法儲存使用中的目錄" +msgstr "無法儲存工作目錄" -#: src/misc.c:621 +#: src/misc.c:675 msgid "Cannot change working directory" -msgstr "無法更改使用中的目錄" +msgstr "無法變更工作目錄" + +#: src/misc.c:759 +#, c-format +msgid "%s: File removed before we read it" +msgstr "%s:讀取檔案之前已被移除" + +#: src/misc.c:774 +#, fuzzy, c-format +msgid "%s: Directory removed before we read it" +msgstr "%s:讀取檔案之前已被移除" -#: src/misc.c:711 +#: src/misc.c:795 msgid "child process" -msgstr "副程序" +msgstr "子進程" -#: src/misc.c:720 +#: src/misc.c:804 msgid "interprocess channel" -msgstr "行程內通道" +msgstr "進程間通道" -#. TRANSLATORS: The following three msgids form a single sentence. -#. -#: src/names.c:593 -msgid "Pattern matching characters used in file names. Please," -msgstr "" - -#: src/names.c:595 -msgid "use --wildcards to enable pattern matching, or --no-wildcards to" -msgstr "" +#: src/names.c:601 +#, fuzzy +msgid "Pattern matching characters used in file names" +msgstr "在檔案名稱中使用的式樣匹配字元。請," -#: src/names.c:597 -msgid "suppress this warning." -msgstr "" +#: src/names.c:603 +#, fuzzy +msgid "" +"Use --wildcards to enable pattern matching, or --no-wildcards to suppress " +"this warning" +msgstr "使用 --wildcards 以啟用式樣匹配,或 --no-wildcards 來" -#: src/names.c:612 src/names.c:630 +#: src/names.c:619 src/names.c:637 #, c-format msgid "%s: Not found in archive" -msgstr "%s:保存檔中無法找到" +msgstr "%s:在保存檔中找不到" -#: src/names.c:615 +#: src/names.c:622 #, c-format msgid "%s: Required occurrence not found in archive" -msgstr "%s:要求的事件在保存檔中找不到" +msgstr "%s:要求項目在保存檔中找不到" -#: src/tar.c:79 +#: src/names.c:894 +#, fuzzy +msgid "" +"Using -C option inside file list is not allowed with --listed-incremental" +msgstr "--preserve-order 與 --listed-incremental 不相容" + +#: src/names.c:900 +#, fuzzy +msgid "Only one -C option is allowed with --listed-incremental" +msgstr "--preserve-order 與 --listed-incremental 不相容" + +#: src/tar.c:81 #, c-format msgid "Options `-%s' and `-%s' both want standard input" -msgstr "選項‘-%s’與‘-%s’兩者都需要標準輸入" +msgstr "選項「-%s」和「-%s」兩者都需要標準輸入" -#: src/tar.c:156 +#: src/tar.c:158 #, c-format msgid "%s: Invalid archive format" msgstr "%s:無效的保存檔格式" -#: src/tar.c:180 +#: src/tar.c:182 msgid "GNU features wanted on incompatible archive format" -msgstr "不能在不兼容於 GNU 的保存檔格式中使用 GNU 功能" +msgstr "不能在不兼容的保存檔格式中使用 GNU 功能" -#: src/tar.c:241 +#: src/tar.c:250 #, c-format msgid "" "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list." -msgstr "" +msgstr "不明引號樣式「%s」。嘗試「%s --quoting-style=help」以取得清單。" -#: src/tar.c:336 -#, fuzzy +#: src/tar.c:347 msgid "" "GNU `tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1282,16 +1344,15 @@ msgid "" " tar -tvf archive.tar # List all files in archive.tar verbosely.\n" " tar -xf archive.tar # Extract all files from archive.tar.\n" msgstr "" +"GNU「tar」將許多檔案一起儲存進單一磁帶或磁碟保存檔,而且可以從保存檔還原個別" +"檔案。\n" "\n" -"用法:%s [選項]... [檔案]...\n" -"\n" -"例子:\n" -" %s -cf archive.tar foo bar # 建立包括 foo 及 bar 檔案的 archive.tar。\n" -" %s -tvf archive.tar # 詳細列出 archive.tar 中的所有檔案。\n" -" %s -xf archive.tar # 抽取 archive.tar 中的所有檔案。\n" +"範例:\n" +" tar -cf archive.tar foo bar # 建立包括 foo 及 bar 檔案的 archive.tar。\n" +" tar -tvf archive.tar # 詳細列出 archive.tar 中的所有檔案。\n" +" tar -xf archive.tar # 解開 archive.tar 中的所有檔案。\n" -#: src/tar.c:345 -#, fuzzy +#: src/tar.c:356 msgid "" "The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n" "The version control may be set with --backup or VERSION_CONTROL, values " @@ -1302,103 +1363,87 @@ msgid "" " nil, existing numbered if numbered backups exist, simple otherwise\n" " never, simple always make simple backups\n" msgstr "" -"GNU‘tar’可將多個檔案儲存為磁帶或磁碟中的一個保存檔,並由保存檔還原個別的\n" -"檔案。\n" -"\n" -"例子:\n" -" tar -cf archive.tar foo bar # 建立包括 foo 及 bar 檔案的 archive.tar。\n" -" tar -tvf archive.tar # 詳細列出 archive.tar 中的所有檔案。\n" -" tar -xf archive.tar # 抽取 archive.tar 中的所有檔案。\n" -"\n" "備份檔的後置字串為‘~’,除非以 --suffix 選項或是 SIMPLE_BACKUP_SUFFIX\n" "環境變數指定。版本控制的方式可透過 --backup 選項或 VERSION_CONTROL 環境\n" "變數來選擇。可用的變數值為:\n" "\n" -" t, numbered 備份檔會加上數字\n" +" none, off 永不製作備份 t, numbered 備份檔會加上數字\n" " nil, existing 若有數字的備份檔已經存在則使用數字,否則使用普通方式備份\n" " never, simple 永遠使用普通方式備份\n" -#: src/tar.c:370 +#: src/tar.c:386 msgid "Main operation mode:" msgstr "主要操作模式:" -#: src/tar.c:373 +#: src/tar.c:389 msgid "list the contents of an archive" msgstr "列出保存檔的內容" -#: src/tar.c:375 +#: src/tar.c:391 msgid "extract files from an archive" msgstr "從保存檔中解開檔案" -#: src/tar.c:378 +#: src/tar.c:394 msgid "create a new archive" -msgstr "建立一個新的保存檔" +msgstr "建立新的保存檔" -#: src/tar.c:380 +#: src/tar.c:396 msgid "find differences between archive and file system" msgstr "在保存檔與檔案系統之間找出差異" -#: src/tar.c:383 +#: src/tar.c:399 msgid "append files to the end of an archive" msgstr "加入檔案到保存檔末端" -#: src/tar.c:385 +#: src/tar.c:401 msgid "only append files newer than copy in archive" msgstr "只加入比保存檔中複本還新的檔案" -#: src/tar.c:387 +#: src/tar.c:403 msgid "append tar files to an archive" msgstr "加入 tar 檔案到保存檔中" -#: src/tar.c:390 +#: src/tar.c:406 msgid "delete from the archive (not on mag tapes!)" msgstr "從保存檔中刪除 (並非在磁帶上!)" -#: src/tar.c:392 +#: src/tar.c:408 msgid "test the archive volume label and exit" -msgstr "" +msgstr "測試保存檔卷冊標籤然後離開" -#: src/tar.c:397 +#: src/tar.c:413 msgid "Operation modifiers:" msgstr "運算變更項:" -#: src/tar.c:400 +#: src/tar.c:416 msgid "handle sparse files efficiently" -msgstr "有效率地處理稀疏的檔案" +msgstr "有效率地處理稀疏檔案" -#: src/tar.c:401 +#: src/tar.c:417 msgid "MAJOR[.MINOR]" -msgstr "" +msgstr "MAJOR[.MINOR]" -#: src/tar.c:402 +#: src/tar.c:418 msgid "set version of the sparse format to use (implies --sparse)" -msgstr "" +msgstr "設定稀疏格式版本以使用 (意味著 --sparse)" -#: src/tar.c:404 +#: src/tar.c:420 msgid "handle old GNU-format incremental backup" -msgstr "處理舊型 GNU-格式之漸進式備份" - -#: src/tar.c:405 src/tar.c:542 src/tar.c:622 src/tar.c:626 src/tar.c:638 -#: src/tar.c:648 src/tar.c:651 src/tar.c:653 src/tar.c:736 tests/genfile.c:131 -#: tests/genfile.c:179 tests/genfile.c:183 tests/genfile.c:186 -msgid "FILE" -msgstr "檔案" +msgstr "處理舊型 GNU-格式之遞增備份" -#: src/tar.c:406 +#: src/tar.c:422 msgid "handle new GNU-format incremental backup" -msgstr "處理新型 GNU-格式之漸進式備份" +msgstr "處理新型 GNU-格式之遞增備份" -#: src/tar.c:408 +#: src/tar.c:424 +msgid "dump level for created listed-incremental archive" +msgstr "" + +#: src/tar.c:426 msgid "do not exit with nonzero on unreadable files" msgstr "離開無法讀取的檔案時不要回傳非零的值" -#: src/tar.c:409 src/tar.c:537 src/tar.c:552 src/tar.c:685 src/tar.c:721 -#: tests/genfile.c:165 -msgid "NUMBER" -msgstr "數目" - -#: src/tar.c:410 -#, fuzzy +#: src/tar.c:428 msgid "" "process only the NUMBERth occurrence of each file in the archive; this " "option is valid only in conjunction with one of the subcommands --delete, --" @@ -1407,717 +1452,694 @@ msgid "" msgstr "" "只有對於每一個在保存檔中第 NUM 個出現的檔案才會處理。此選項只有與 --" "delete、--diff、--extract 或 --list 等次命令之一合併使用時才有效,而且要經由" -"命令列 或是 -T 選項來提供一個檔案序列。預設的數目是 1。" +"命令列或是 -T 選項來提供一個檔案序列。預設的數目是 1。" -#: src/tar.c:416 -#, fuzzy +#: src/tar.c:434 msgid "archive is seekable" -msgstr "保存檔是可搜尋的" +msgstr "保存檔是可尋指的" -#: src/tar.c:418 +#: src/tar.c:436 +#, fuzzy +msgid "archive is not seekable" +msgstr "保存檔是可尋指的" + +#: src/tar.c:438 msgid "do not check device numbers when creating incremental archives" -msgstr "" +msgstr "不檢查裝置數量時建立遞增檔案" -#: src/tar.c:421 +#: src/tar.c:441 msgid "check device numbers when creating incremental archives (default)" -msgstr "" +msgstr "檢查裝置數量時建立遞增檔案 (預設)" -#: src/tar.c:427 +#: src/tar.c:447 msgid "Overwrite control:" -msgstr "" +msgstr "覆寫控制:" -#: src/tar.c:430 +#: src/tar.c:450 msgid "attempt to verify the archive after writing it" msgstr "嘗試在寫入之後驗證保存檔" -#: src/tar.c:432 +#: src/tar.c:452 msgid "remove files after adding them to the archive" msgstr "在加入檔案至保存檔之後移除它們" -#: src/tar.c:434 +#: src/tar.c:454 msgid "don't replace existing files when extracting" msgstr "解開時不要替換既有的檔案" -#: src/tar.c:436 +#: src/tar.c:456 msgid "don't replace existing files that are newer than their archive copies" msgstr "不要替換既有且比它們在保存檔中複本還新的檔案" -#: src/tar.c:438 +#: src/tar.c:458 msgid "overwrite existing files when extracting" msgstr "解開時覆寫既有檔案" -#: src/tar.c:440 +#: src/tar.c:460 msgid "remove each file prior to extracting over it" msgstr "在解開並覆寫檔案之前先移除它" -#: src/tar.c:442 +#: src/tar.c:462 msgid "empty hierarchies prior to extracting directory" -msgstr "在解開目錄之前先清空目錄階層" +msgstr "在解開目錄之前先清空階層結構" -#: src/tar.c:444 +#: src/tar.c:464 msgid "preserve metadata of existing directories" -msgstr "保留既有目錄的原始資料" +msgstr "保留既有目錄的後設資料" -#: src/tar.c:446 -#, fuzzy +#: src/tar.c:466 msgid "overwrite metadata of existing directories when extracting (default)" -msgstr "解開時覆寫既有檔案" +msgstr "解開時覆寫既有目錄的後設資料 (預設)" -#: src/tar.c:452 +#: src/tar.c:472 msgid "Select output stream:" -msgstr "" +msgstr "選取輸出串流:" -#: src/tar.c:455 +#: src/tar.c:475 msgid "extract files to standard output" -msgstr "解開檔案至標準輸出" +msgstr "解開檔案到標準輸出" -#: src/tar.c:456 src/tar.c:515 src/tar.c:517 tests/genfile.c:162 -#: tests/genfile.c:189 +#: src/tar.c:476 src/tar.c:535 src/tar.c:537 tests/genfile.c:191 msgid "COMMAND" msgstr "命令" -#: src/tar.c:457 -#, fuzzy +#: src/tar.c:477 msgid "pipe extracted files to another program" -msgstr "解開檔案至標準輸出" +msgstr "將解開的檔案管線引導到另外的程式" -#: src/tar.c:459 +#: src/tar.c:479 msgid "ignore exit codes of children" -msgstr "" +msgstr "忽略子進程的離開代碼" -#: src/tar.c:461 +#: src/tar.c:481 msgid "treat non-zero exit codes of children as error" -msgstr "" +msgstr "將子進程的非零離開代碼視為錯誤" -#: src/tar.c:466 +#: src/tar.c:486 msgid "Handling of file attributes:" msgstr "檔案屬性的處理:" -#: src/tar.c:469 +#: src/tar.c:489 msgid "force NAME as owner for added files" -msgstr "強制以名稱做為加入檔案的擁有者" +msgstr "強制以 NAME 做為加入檔案的擁有者" -#: src/tar.c:471 +#: src/tar.c:491 msgid "force NAME as group for added files" -msgstr "強制以名稱做為加入檔案的群組" +msgstr "強制以 NAME 做為加入檔案的群組" -#: src/tar.c:472 src/tar.c:671 +#: src/tar.c:492 src/tar.c:689 msgid "DATE-OR-FILE" msgstr "檔案的日期" -#: src/tar.c:473 -#, fuzzy +#: src/tar.c:493 msgid "set mtime for added files from DATE-OR-FILE" -msgstr "只儲存比 DATE-OF-FILE 還新的檔案" +msgstr "將加入檔案的 mtime 設定為 DATE-OR-FILE" -#: src/tar.c:474 +#: src/tar.c:494 msgid "CHANGES" msgstr "變更" -#: src/tar.c:475 +#: src/tar.c:495 msgid "force (symbolic) mode CHANGES for added files" -msgstr "強制以(符號)變更做為加入檔案的模式" +msgstr "強制將 (符號) 模式 CHANGES 用於已加入檔案" -#: src/tar.c:477 +#: src/tar.c:497 msgid "METHOD" -msgstr "" +msgstr "方法" -#: src/tar.c:478 +#: src/tar.c:498 msgid "" "preserve access times on dumped files, either by restoring the times after " "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" +"保留傾印檔案的存取時間,若非由讀取之後的回復時間(方法=「replace」;預設),就" +"是藉由原本不設定時間 (方法=「system」)" -#: src/tar.c:482 +#: src/tar.c:502 msgid "don't extract file modified time" msgstr "不要解開檔案的修改時間" -#: src/tar.c:484 -msgid "try extracting files with the same ownership" +#: src/tar.c:504 +#, fuzzy +msgid "" +"try extracting files with the same ownership as exists in the archive " +"(default for superuser)" msgstr "嘗試以相同的擁有身分去解開檔案" -#: src/tar.c:486 -msgid "extract files as yourself" +#: src/tar.c:506 +#, fuzzy +msgid "extract files as yourself (default for ordinary users)" msgstr "以自己的身分解開檔案" -#: src/tar.c:488 +#: src/tar.c:508 msgid "always use numbers for user/group names" msgstr "總是使用數字做為使用者/群組名稱" -#: src/tar.c:490 +#: src/tar.c:510 msgid "extract information about file permissions (default for superuser)" -msgstr "" +msgstr "解開檔案權限相關資訊 (預設用於超級使用者)" -#: src/tar.c:494 +#: src/tar.c:514 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" -msgstr "" +msgstr "從保存檔解開權限時套用使用者 umask (預設用於一般使用者)" -#: src/tar.c:496 +#: src/tar.c:516 msgid "sort names to extract to match archive" msgstr "解開時依名稱排序以符合保存檔" -#: src/tar.c:499 +#: src/tar.c:519 msgid "same as both -p and -s" msgstr "等同於指定 -p 與 -s" -#: src/tar.c:501 +#: src/tar.c:521 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" -msgstr "" +msgstr "延遲設定解開目錄的修改時間和權限,直到解開結束" -#: src/tar.c:504 +#: src/tar.c:524 msgid "cancel the effect of --delay-directory-restore option" -msgstr "" +msgstr "取消 --delay-directory-restore 選項的效果" -#: src/tar.c:509 +#: src/tar.c:529 msgid "Device selection and switching:" -msgstr "裝置選擇與切換:" +msgstr "裝置選擇與切換:" -#: src/tar.c:511 +#: src/tar.c:531 msgid "ARCHIVE" msgstr "保存檔" -#: src/tar.c:512 +#: src/tar.c:532 msgid "use archive file or device ARCHIVE" -msgstr "使用保存檔檔案或保存檔裝置" +msgstr "使用 ARCHIVE 檔案或 ARCHIVE 裝置" -#: src/tar.c:514 -#, fuzzy +#: src/tar.c:534 msgid "archive file is local even if it has a colon" msgstr "即使具有冒號,保存檔檔案仍位於本地端" -#: src/tar.c:516 +#: src/tar.c:536 msgid "use given rmt COMMAND instead of rmt" -msgstr "使用賦予的 rmt 命令以取代 rmt" +msgstr "使用給定的 rmt COMMAND 以代替 rmt" -#: src/tar.c:518 +#: src/tar.c:538 msgid "use remote COMMAND instead of rsh" -msgstr "使用遠端的命令以取代 rsh" +msgstr "使用遠端 COMMAND 以代替 rsh" -#: src/tar.c:522 +#: src/tar.c:542 msgid "specify drive and density" msgstr "指定磁碟機與記錄密度" -#: src/tar.c:536 +#: src/tar.c:556 msgid "create/list/extract multi-volume archive" msgstr "建立/列表/解開 多重卷冊的保存檔" -#: src/tar.c:538 +#: src/tar.c:558 msgid "change tape after writing NUMBER x 1024 bytes" msgstr "在寫入 NUMBER x 1024 位元組之後更換磁帶" -#: src/tar.c:540 +#: src/tar.c:560 msgid "run script at end of each tape (implies -M)" msgstr "在每卷磁帶末端執行命令稿 (意指 -M)" -#: src/tar.c:543 +#: src/tar.c:563 msgid "use/update the volume number in FILE" msgstr "使用/更新 FILE 中的卷冊號碼" -#: src/tar.c:548 +#: src/tar.c:568 msgid "Device blocking:" msgstr "裝置分區:" -#: src/tar.c:550 +#: src/tar.c:570 msgid "BLOCKS" msgstr "區塊" -#: src/tar.c:551 +#: src/tar.c:571 msgid "BLOCKS x 512 bytes per record" -msgstr "每筆紀錄含有 BLOCKS x 512 位元組" +msgstr "每筆記錄含有 BLOCKS x 512 位元組" -#: src/tar.c:553 -#, fuzzy +#: src/tar.c:573 msgid "NUMBER of bytes per record, multiple of 512" -msgstr "每筆紀錄 SIZE 位元組,為 512 的倍數" +msgstr "每筆記錄 SIZE 位元組,為 512 的倍數" -#: src/tar.c:555 +#: src/tar.c:575 msgid "ignore zeroed blocks in archive (means EOF)" msgstr "忽略保存檔中零值的區塊 (意指 EOF)" -#: src/tar.c:557 +#: src/tar.c:577 msgid "reblock as we read (for 4.2BSD pipes)" msgstr "讀取時重新分區 (用於 4.2BSD 管線)" -#: src/tar.c:562 +#: src/tar.c:582 msgid "Archive format selection:" -msgstr "保存檔格式選擇:" +msgstr "保存檔格式選擇:" -#: src/tar.c:564 tests/genfile.c:152 +#: src/tar.c:584 tests/genfile.c:154 msgid "FORMAT" msgstr "格式" -#: src/tar.c:565 -#, fuzzy +#: src/tar.c:585 msgid "create archive of the given format" -msgstr "以給定格式建立保存檔。" +msgstr "以給定格式建立保存檔" -#: src/tar.c:567 +#: src/tar.c:587 msgid "FORMAT is one of the following:" -msgstr "符合下列任一格式:" +msgstr "符合下列任一 FORMAT:" -#: src/tar.c:568 +#: src/tar.c:588 msgid "old V7 tar format" msgstr "舊式 V7 tar 格式" -#: src/tar.c:571 +#: src/tar.c:591 msgid "GNU format as per tar <= 1.12" msgstr "tar <= 1.12 之 GNU 格式" -#: src/tar.c:573 +#: src/tar.c:593 msgid "GNU tar 1.13.x format" msgstr "GNU tar 1.13.x 格式" -#: src/tar.c:575 +#: src/tar.c:595 msgid "POSIX 1003.1-1988 (ustar) format" msgstr "POSIX 1003.1-1988 (ustar) 格式" -#: src/tar.c:577 +#: src/tar.c:597 msgid "POSIX 1003.1-2001 (pax) format" msgstr "POSIX 1003.1-2001 (pax) 格式" -#: src/tar.c:578 -#, fuzzy +#: src/tar.c:598 msgid "same as pax" msgstr "等同 pax" -#: src/tar.c:581 +#: src/tar.c:601 msgid "same as --format=v7" msgstr "等同 --format=v7" -#: src/tar.c:584 +#: src/tar.c:604 msgid "same as --format=posix" msgstr "等同 --format=posix" -#: src/tar.c:585 -#, fuzzy +#: src/tar.c:605 msgid "keyword[[:]=value][,keyword[[:]=value]]..." -msgstr "關鍵字[[:]=值][,關鍵字[[:]=值], ...]" +msgstr "關鍵字[[:]=值][,關鍵字[[:]=值]…]" -#: src/tar.c:586 +#: src/tar.c:606 msgid "control pax keywords" msgstr "控制 pax 的關鍵字" -#: src/tar.c:587 +#: src/tar.c:607 msgid "TEXT" msgstr "文字" -#: src/tar.c:588 -#, fuzzy +#: src/tar.c:608 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -"以卷冊名稱 NAME 來建立保存檔。在列表/解開時,使用 TEXT 做為萬用比對樣式" +"以卷冊名稱 NAME 來建立保存檔。在列表/解開時,使用 TEXT 做為卷冊名稱的萬用比對" +"式樣" -#: src/tar.c:593 -#, fuzzy +#: src/tar.c:613 msgid "Compression options:" -msgstr "有關壓縮的選項互相抵觸" +msgstr "壓縮選項:" -#: src/tar.c:595 +#: src/tar.c:615 msgid "use archive suffix to determine the compression program" -msgstr "" +msgstr "利用保存檔字尾決定壓縮程式" -#: src/tar.c:597 +#: src/tar.c:617 msgid "do not use archive suffix to determine the compression program" -msgstr "" - -#: src/tar.c:600 -msgid "filter the archive through bzip2" -msgstr "保存檔以 bzip2 過濾處理" - -#: src/tar.c:602 -msgid "filter the archive through gzip" -msgstr "保存檔以 gzip 過濾處理" - -#: src/tar.c:606 -msgid "filter the archive through compress" -msgstr "保存檔以 compress 過濾處理" - -#: src/tar.c:609 -#, fuzzy -msgid "filter the archive through lzma" -msgstr "保存檔以 gzip 過濾處理" - -#: src/tar.c:611 -#, fuzzy -msgid "filter the archive through lzop" -msgstr "保存檔以 gzip 過濾處理" - -#: src/tar.c:613 -#, fuzzy -msgid "filter the archive through xz" -msgstr "保存檔以 gzip 過濾處理" +msgstr "不利用保存檔字尾決定壓縮程式" -#: src/tar.c:614 +#: src/tar.c:619 msgid "PROG" msgstr "程式" -#: src/tar.c:615 +#: src/tar.c:620 msgid "filter through PROG (must accept -d)" msgstr "以 PROG 過濾處理 (必須接受 -d)" -#: src/tar.c:620 +#: src/tar.c:636 msgid "Local file selection:" msgstr "本機檔案選擇:" -#: src/tar.c:623 +#: src/tar.c:639 msgid "add given FILE to the archive (useful if its name starts with a dash)" -msgstr "" +msgstr "將給定的 FILE 加入保存檔 (如果它的名稱以減號開始時就很有用)" -#: src/tar.c:624 +#: src/tar.c:640 msgid "DIR" msgstr "目錄" -#: src/tar.c:625 +#: src/tar.c:641 msgid "change to directory DIR" msgstr "更改至目錄 DIR" -#: src/tar.c:627 -#, fuzzy +#: src/tar.c:643 msgid "get names to extract or create from FILE" -msgstr "從檔案 NAME 中取得要解開或建立的名稱" +msgstr "從 FILE 中取得要解開或建立的名稱" -#: src/tar.c:629 +#: src/tar.c:645 msgid "-T reads null-terminated names, disable -C" msgstr "-T 讀取零值終結的名稱,停用 -C" -#: src/tar.c:631 +#: src/tar.c:647 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "停用先前 --null 選項的效果" -#: src/tar.c:633 +#: src/tar.c:649 msgid "unquote filenames read with -T (default)" -msgstr "" +msgstr "去除以 -T 讀取的檔名引號 (預設)" -#: src/tar.c:635 +#: src/tar.c:651 msgid "do not unquote filenames read with -T" -msgstr "" +msgstr "不去除以 -T 讀取的檔名引號" -#: src/tar.c:636 tests/genfile.c:135 +#: src/tar.c:652 tests/genfile.c:137 msgid "PATTERN" -msgstr "樣式" +msgstr "式樣" -#: src/tar.c:637 +#: src/tar.c:653 msgid "exclude files, given as a PATTERN" -msgstr "排除給定樣式的檔案" +msgstr "排除給定式樣的檔案" -#: src/tar.c:639 +#: src/tar.c:655 msgid "exclude patterns listed in FILE" -msgstr "排除 FILE 中所列出的樣式" +msgstr "排除 FILE 中所列出的式樣" -#: src/tar.c:641 -#, fuzzy +#: src/tar.c:657 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" -msgstr "排除包含了快取標記的目錄" +msgstr "排除包含 CACHEDIR.TAG 的目錄內容,除了該標記檔案本身" -#: src/tar.c:644 -#, fuzzy +#: src/tar.c:660 msgid "exclude everything under directories containing CACHEDIR.TAG" -msgstr "排除包含了快取標記的目錄" +msgstr "排除包含 CACHEDIR.TAG 的目錄之下所有東西" -#: src/tar.c:647 -#, fuzzy +#: src/tar.c:663 msgid "exclude directories containing CACHEDIR.TAG" -msgstr "排除包含了快取標記的目錄" +msgstr "排除包含 CACHEDIR.TAG 的目錄" -#: src/tar.c:649 -#, fuzzy +#: src/tar.c:665 msgid "exclude contents of directories containing FILE, except for FILE itself" -msgstr "排除包含了快取標記的目錄" +msgstr "排除包含 FILE 的目錄內容,除了該檔案本身" -#: src/tar.c:652 -#, fuzzy +#: src/tar.c:668 msgid "exclude everything under directories containing FILE" -msgstr "排除包含了快取標記的目錄" +msgstr "排除包含 FILE 的目錄之下所有東西" -#: src/tar.c:654 -#, fuzzy +#: src/tar.c:670 msgid "exclude directories containing FILE" -msgstr "排除包含了快取標記的目錄" +msgstr "排除包含 FILE 的目錄" -#: src/tar.c:656 +#: src/tar.c:672 msgid "exclude version control system directories" +msgstr "排除版本控制系統目錄" + +#: src/tar.c:674 +msgid "exclude backup and lock files" msgstr "" -#: src/tar.c:658 +#: src/tar.c:676 msgid "avoid descending automatically in directories" -msgstr "避免自動在目錄中下降" +msgstr "避免自動在目錄中遞降" -#: src/tar.c:660 +#: src/tar.c:678 msgid "stay in local file system when creating archive" msgstr "建立保存檔時保持在本地檔案系統中" -#: src/tar.c:662 +#: src/tar.c:680 msgid "recurse into directories (default)" msgstr "遞迴進入目錄 (預設)" -#: src/tar.c:664 +#: src/tar.c:682 msgid "don't strip leading `/'s from file names" msgstr "不要從檔案名稱中截去前導的 '/'" -#: src/tar.c:666 +#: src/tar.c:684 msgid "follow symlinks; archive and dump the files they point to" -msgstr "" +msgstr "跟隨符號連結;保存和傾印它們所指涉的檔案" -#: src/tar.c:668 +#: src/tar.c:686 msgid "follow hard links; archive and dump the files they refer to" -msgstr "" +msgstr "跟隨硬式連結;保存和傾印它們所參考的檔案" -#: src/tar.c:669 +#: src/tar.c:687 msgid "MEMBER-NAME" msgstr "成員-名稱" -#: src/tar.c:670 +#: src/tar.c:688 msgid "begin at member MEMBER-NAME in the archive" msgstr "從保存檔中名為 MEMBER-NAME 的成員開始" -#: src/tar.c:672 +#: src/tar.c:690 msgid "only store files newer than DATE-OR-FILE" msgstr "只儲存比 DATE-OF-FILE 還新的檔案" -#: src/tar.c:674 +#: src/tar.c:692 msgid "DATE" msgstr "日期" -#: src/tar.c:675 +#: src/tar.c:693 msgid "compare date and time when data changed only" msgstr "只有當資料變更時才比較日期和時間" -#: src/tar.c:676 +#: src/tar.c:694 msgid "CONTROL" msgstr "控制" -#: src/tar.c:677 +#: src/tar.c:695 msgid "backup before removal, choose version CONTROL" -msgstr "移除前先備份,選擇版本 CONTROL" +msgstr "移除之前先備份,選擇版本 CONTROL" -#: src/tar.c:678 src/tar.c:753 src/tar.c:755 tests/genfile.c:168 +#: src/tar.c:696 src/tar.c:773 src/tar.c:775 tests/genfile.c:170 msgid "STRING" msgstr "字串" -#: src/tar.c:679 -#, fuzzy +#: src/tar.c:697 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -"移除前先備份並覆蓋一般後置文字 '~',除非被環境變數 SIMPLE_BACKUP_SUFFIX 所覆" -"蓋" +"移除之前先備份並覆寫常用後置文字 (「~」除非被環境變數 SIMPLE_BACKUP_SUFFIX 所" +"蓋過)" -#: src/tar.c:684 +#: src/tar.c:702 msgid "File name transformations:" -msgstr "" +msgstr "檔案名稱變換:" -#: src/tar.c:686 -#, fuzzy +#: src/tar.c:704 msgid "strip NUMBER leading components from file names on extraction" msgstr "從檔案名稱中截去以 NUMBER 為首的成分" -#: src/tar.c:688 +#: src/tar.c:706 msgid "EXPRESSION" -msgstr "" +msgstr "表示式" -#: src/tar.c:689 +#: src/tar.c:707 msgid "use sed replace EXPRESSION to transform file names" -msgstr "" +msgstr "利用 sed 將 EXPRESSION 替代為變換檔案名稱" -#: src/tar.c:695 +#: src/tar.c:713 msgid "File name matching options (affect both exclude and include patterns):" -msgstr "" +msgstr "檔案名稱吻合選項 (同時影響排除和包含式樣同者):" -#: src/tar.c:698 -#, fuzzy +#: src/tar.c:716 msgid "ignore case" -msgstr "排除時忽略大小寫" +msgstr "忽略大小寫" -#: src/tar.c:700 -#, fuzzy +#: src/tar.c:718 msgid "patterns match file name start" -msgstr "排除樣式會比對檔案名稱開頭" +msgstr "吻合檔案名稱開頭的式樣" -#: src/tar.c:702 -#, fuzzy +#: src/tar.c:720 msgid "patterns match after any `/' (default for exclusion)" -msgstr "排除樣式會比對任一 '/' 後端 (預設)" +msgstr "式樣吻合任何「/」之後的式樣 (預設排除)" -#: src/tar.c:704 -#, fuzzy +#: src/tar.c:722 msgid "case sensitive matching (default)" -msgstr "排除樣式忽略大小寫" +msgstr "大小寫需相符的吻合 (預設)" -#: src/tar.c:706 +#: src/tar.c:724 msgid "use wildcards (default for exclusion)" -msgstr "" +msgstr "使用萬用字元 (預設排除)" -#: src/tar.c:708 +#: src/tar.c:726 msgid "verbatim string matching" -msgstr "" +msgstr "逐字進行吻合" -#: src/tar.c:710 -#, fuzzy +#: src/tar.c:728 msgid "wildcards do not match `/'" -msgstr "排除樣式之萬用字元不會符合 '/'" +msgstr "萬用字元不會吻合「/」" -#: src/tar.c:712 -#, fuzzy +#: src/tar.c:730 msgid "wildcards match `/' (default for exclusion)" -msgstr "排除樣式之萬用字元會符合 '/' (預設)" +msgstr "萬用字元會吻合「/」(預設排除)" -#: src/tar.c:717 +#: src/tar.c:735 msgid "Informative output:" msgstr "富含資訊的輸出:" -#: src/tar.c:720 +#: src/tar.c:738 msgid "verbosely list files processed" msgstr "詳細列出處理過的檔案" -#: src/tar.c:722 +#: src/tar.c:739 +msgid "KEYWORD" +msgstr "" + +#: src/tar.c:740 #, fuzzy +msgid "warning control" +msgstr "覆寫控制:" + +#: src/tar.c:742 msgid "display progress messages every NUMBERth record (default 10)" -msgstr "每 10 項紀錄顯示一次進度訊息" +msgstr "每幾項記錄顯示一次進度訊息 (預設 10)" -#: src/tar.c:724 +#: src/tar.c:744 msgid "ACTION" -msgstr "" +msgstr "動作" -#: src/tar.c:725 +#: src/tar.c:745 msgid "execute ACTION on each checkpoint" -msgstr "" +msgstr "於每個查核點執行 ACTION" -#: src/tar.c:728 +#: src/tar.c:748 msgid "print a message if not all links are dumped" -msgstr "如果並非所有連結都被傾印則印出一條訊息" +msgstr "如果並非所有連結都被傾印則印出訊息" -#: src/tar.c:729 +#: src/tar.c:749 msgid "SIGNAL" -msgstr "" +msgstr "信號" -#: src/tar.c:730 +#: src/tar.c:750 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " "SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names without SIG prefix are also " "accepted" msgstr "" +"處理保存檔之後列印位元組總計;當此信號被投遞時,利用引數 - 列印位元組總計;允" +"許的信號是:SIGHUP、SIGQUIT、SIGINT、SIGUSR1 和 SIGUSR2;不具 SIG 前綴的名稱" +"也是可接受的" -#: src/tar.c:735 +#: src/tar.c:755 msgid "print file modification dates in UTC" msgstr "以 UTC 格式印出檔案修改日期" -#: src/tar.c:737 +#: src/tar.c:757 msgid "send verbose output to FILE" msgstr "將詳細輸出送至 FILE" -#: src/tar.c:739 +#: src/tar.c:759 msgid "show block number within archive with each message" msgstr "每則訊息附帶顯示在保存檔中的區塊號碼" -#: src/tar.c:741 +#: src/tar.c:761 msgid "ask for confirmation for every action" msgstr "任何動作都要求確認" -#: src/tar.c:744 -#, fuzzy +#: src/tar.c:764 msgid "show tar defaults" msgstr "顯示 tar 預設值" -#: src/tar.c:746 -#, fuzzy +#: src/tar.c:766 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "當表列或解開時,列出每一個不符合搜尋條件的目錄" -#: src/tar.c:748 +#: src/tar.c:768 msgid "show file or archive names after transformation" -msgstr "" +msgstr "顯示變換之後的檔案或保存檔名稱" -#: src/tar.c:751 +#: src/tar.c:771 msgid "STYLE" -msgstr "" +msgstr "樣式" -#: src/tar.c:752 +#: src/tar.c:772 msgid "set name quoting style; see below for valid STYLE values" -msgstr "" +msgstr "設定名稱引號樣式;參看下列的有效樣式值" -#: src/tar.c:754 +#: src/tar.c:774 msgid "additionally quote characters from STRING" -msgstr "" +msgstr "來自 STRING 的額外引號字元" -#: src/tar.c:756 +#: src/tar.c:776 msgid "disable quoting for characters from STRING" -msgstr "" +msgstr "停用來自字串的引號字元" -#: src/tar.c:761 +#: src/tar.c:781 msgid "Compatibility options:" -msgstr "相容性選項:" +msgstr "相容選項:" -#: src/tar.c:764 -#, fuzzy +#: src/tar.c:784 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "當建立時,等同於 --old-archive。當解開時,等同於 --no-same-owner" -#: src/tar.c:769 +#: src/tar.c:789 msgid "Other options:" -msgstr "其他選項:" +msgstr "其他選項:" -#: src/tar.c:772 +#: src/tar.c:792 msgid "disable use of some potentially harmful options" -msgstr "" +msgstr "停用某些潛在有害的選項" -#: src/tar.c:920 -msgid "You may not specify more than one `-Acdtrux' option" -msgstr "不可指定‘-Acdtrux’當中多於一個的選項" +#: src/tar.c:927 +#, fuzzy +msgid "You may not specify more than one `-Acdtrux' or `--test-label' option" +msgstr "不可指定「-Acdtrux」當中多於一個的選項" -#: src/tar.c:930 +#: src/tar.c:937 msgid "Conflicting compression options" -msgstr "有關壓縮的選項互相抵觸" +msgstr "互相抵觸的壓縮選項" -#: src/tar.c:986 -#, fuzzy, c-format +#: src/tar.c:993 +#, c-format msgid "Unknown signal name: %s" -msgstr "不明的檔案類型 %s\n" +msgstr "不明的信號名稱:%s" -#: src/tar.c:1010 -#, fuzzy +#: src/tar.c:1017 msgid "Date sample file not found" -msgstr "找不到用作擷取時間資料的檔案" +msgstr "找不到日期範例檔案" -#: src/tar.c:1018 +#: src/tar.c:1025 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "以 %s 代替不明的日期格式 %s" -#: src/tar.c:1043 -#, fuzzy, c-format +#: src/tar.c:1054 +#, c-format msgid "Option %s: Treating date `%s' as %s" -msgstr "以 %2$s + %3$ld 柰秒的格式來處理日期 '%1$s'" +msgstr "選項 %1$s: 以 %3$s 格式來處理日期「%2$s」" -#: src/tar.c:1120 -#, fuzzy, c-format +#: src/tar.c:1132 +#, c-format msgid "%s: file list already read" -msgstr "%s:這個檔案是保存檔;未傾印" +msgstr "%s:已經讀取檔案清單" -#: src/tar.c:1185 +#: src/tar.c:1198 #, c-format msgid "%s: file name read contains nul character" -msgstr "" +msgstr "%s:所讀檔案名稱含有空值字元" -#: src/tar.c:1250 -msgid "Valid arguments for --quoting-style options are:" -msgstr "" +#: src/tar.c:1265 src/tar.c:1269 src/tar.c:1273 src/tar.c:1277 src/tar.c:1281 +#: src/tar.c:1285 +#, fuzzy, c-format +msgid "filter the archive through %s" +msgstr "保存檔以 xz 過濾處理" + +#: src/tar.c:1290 +#, fuzzy +msgid "Valid arguments for the --quoting-style option are:" +msgstr "用於 --quoting-style 選項的有效引數為:" -#: src/tar.c:1253 +#: src/tar.c:1294 msgid "" "\n" "*This* tar defaults to:\n" @@ -2125,161 +2147,173 @@ msgstr "" "\n" "*這個* tar 預設為:\n" -#: src/tar.c:1294 +#: src/tar.c:1393 msgid "Invalid blocking factor" -msgstr "無效的分區因素" +msgstr "無效的分區因子" -#: src/tar.c:1401 +#: src/tar.c:1500 msgid "Invalid tape length" msgstr "無效的磁帶長度" -#: src/tar.c:1441 +#: src/tar.c:1511 +#, fuzzy +msgid "Invalid incremental level value" +msgstr "不當的遞增檔案格式" + +#: src/tar.c:1557 msgid "More than one threshold date" msgstr "一個以上的限定日期" -#: src/tar.c:1496 src/tar.c:1499 +#: src/tar.c:1612 src/tar.c:1615 msgid "Invalid sparse version value" -msgstr "" +msgstr "無效的稀疏版本值" -#: src/tar.c:1584 +#: src/tar.c:1700 msgid "--atime-preserve='system' is not supported on this platform" -msgstr "" +msgstr "--atime-preserve='system' 於這個平台未被支援" -#: src/tar.c:1609 +#: src/tar.c:1725 msgid "--checkpoint value is not an integer" -msgstr "" +msgstr "--checkpoint 值不是整數" -#: src/tar.c:1710 -#, c-format -msgid "%s: Invalid group" +#: src/tar.c:1830 +#, fuzzy +msgid "Invalid group" msgstr "%s:無效的群組" -#: src/tar.c:1717 +#: src/tar.c:1837 msgid "Invalid mode given on option" msgstr "選項中的模式無效" -#: src/tar.c:1774 +#: src/tar.c:1894 msgid "Invalid number" msgstr "無效的號碼" -#: src/tar.c:1796 +#: src/tar.c:1916 msgid "Invalid owner" msgstr "無效的擁有者" -#: src/tar.c:1822 +#: src/tar.c:1946 msgid "" "The --preserve option is deprecated, use --preserve-permissions --preserve-" "order instead" msgstr "" +"--preserve 選項不宜再用,請以 --preserve-permissions --preserve-order 做為替" +"代" -#: src/tar.c:1832 +#: src/tar.c:1956 msgid "Invalid record size" -msgstr "無效的紀錄大小" +msgstr "無效的記錄大小" -#: src/tar.c:1835 +#: src/tar.c:1959 #, c-format msgid "Record size must be a multiple of %d." -msgstr "紀錄大小必須是 %d 的倍數。" +msgstr "記錄大小必須是 %d 的倍數。" -#: src/tar.c:1872 +#: src/tar.c:2000 msgid "Invalid number of elements" msgstr "無效的元素號碼" -#: src/tar.c:1892 +#: src/tar.c:2020 msgid "Only one --to-command option allowed" -msgstr "" +msgstr "只允許一個 --to-command 選項" -#: src/tar.c:1968 -#, fuzzy, c-format +#: src/tar.c:2100 +#, c-format msgid "Malformed density argument: %s" -msgstr "未成形的密度引數: '%s'" +msgstr "異常的密度引數:%s" -#: src/tar.c:1994 -#, fuzzy, c-format +#: src/tar.c:2126 +#, c-format msgid "Unknown density: `%c'" -msgstr "未知的密度: '%c'" +msgstr "不明的密度:「%c」" -#: src/tar.c:2011 +#: src/tar.c:2143 #, c-format msgid "Options `-[0-7][lmh]' not supported by *this* tar" -msgstr "此版本的 tar 不支援‘-[0-7][lmh]’選項" +msgstr "此版本的 tar 不支援「-[0-7][ lmh]」選項" -#: src/tar.c:2046 +#: src/tar.c:2156 msgid "[FILE]..." -msgstr "[FILE]..." +msgstr "[FILE]…" -#: src/tar.c:2152 +#: src/tar.c:2274 #, c-format msgid "Old option `%c' requires an argument." -msgstr "舊式的選項‘%c’需要引數。" +msgstr "舊的選項「%c」需要一個引數。" -#: src/tar.c:2234 +#: src/tar.c:2355 msgid "--occurrence is meaningless without a file list" msgstr "若無檔案列表,--occurrence 便不具意義" -#: src/tar.c:2240 +#: src/tar.c:2361 msgid "--occurrence cannot be used in the requested operation mode" -msgstr "--occurrence 不可使用於要求的作業模式" +msgstr "--occurrence 無法於要求的作業模式中使用" -#: src/tar.c:2270 +#: src/tar.c:2379 msgid "Multiple archive files require `-M' option" -msgstr "指定多個保存檔時需要‘-M’選項" +msgstr "指定多個保存檔時需要「-M」選項" -#: src/tar.c:2275 +#: src/tar.c:2384 msgid "Cannot combine --listed-incremental with --newer" -msgstr "無法同時使用 --listed-incremental 及 --newer 選項" +msgstr "無法同時使用 --listed-incremental 及 --newer" + +#: src/tar.c:2387 +#, fuzzy +msgid "--level is meaningless without --listed-incremental" +msgstr "--preserve-order 與 --listed-incremental 不相容" -#: src/tar.c:2292 +#: src/tar.c:2404 #, c-format msgid "%s: Volume label is too long (limit is %lu byte)" msgid_plural "%s: Volume label is too long (limit is %lu bytes)" -msgstr[0] "%s: 卷冊標籤太長 (限制為 %lu 位元組)" +msgstr[0] "%s:卷冊標籤太長 (限制為 %lu 位元組)" -#: src/tar.c:2305 +#: src/tar.c:2417 msgid "Cannot verify multi-volume archives" -msgstr "無法檢驗多重卷冊的保存檔" +msgstr "無法驗證多重卷冊的保存檔" -#: src/tar.c:2307 +#: src/tar.c:2419 msgid "Cannot verify compressed archives" -msgstr "無法檢驗壓縮的保存檔" +msgstr "無法驗證壓縮過的保存檔" -#: src/tar.c:2313 +#: src/tar.c:2425 msgid "Cannot use multi-volume compressed archives" msgstr "無法使用多重卷冊的壓縮保存檔" -#: src/tar.c:2319 -#, fuzzy +#: src/tar.c:2431 msgid "Cannot concatenate compressed archives" -msgstr "無法更新壓縮的保存檔" +msgstr "無法串接壓縮過的檔案" -#: src/tar.c:2331 +#: src/tar.c:2443 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option 只能用於 POSIX 保存檔" -#: src/tar.c:2349 +#: src/tar.c:2461 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "卷冊長度無法少於記錄大小" -#: src/tar.c:2352 +#: src/tar.c:2464 msgid "--preserve-order is not compatible with --listed-incremental" -msgstr "" +msgstr "--preserve-order 與 --listed-incremental 不相容" -#: src/tar.c:2363 +#: src/tar.c:2475 msgid "Cowardly refusing to create an empty archive" -msgstr "拒絕建立空白的保存檔" +msgstr "低調拒絕建立空白的保存檔" -#: src/tar.c:2388 +#: src/tar.c:2501 msgid "Options `-Aru' are incompatible with `-f -'" -msgstr "‘-Aru’及‘-f -’選項互不兼容" +msgstr "「-Aru」與「-f -」選項不相容" -#: src/tar.c:2477 -msgid "You must specify one of the `-Acdtrux' options" -msgstr "必須指定‘-Acdtrux’選項的其中一個" +#: src/tar.c:2592 +#, fuzzy +msgid "You must specify one of the `-Acdtrux' or `--test-label' options" +msgstr "必須指定「-Acdtrux」選項的其中一個" -#: src/tar.c:2528 +#: src/tar.c:2646 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "由於先前錯誤而以失敗狀態離開" #: src/update.c:86 #, c-format @@ -2287,615 +2321,427 @@ msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s:檔案縮減了 %s 位元組" -#: src/xheader.c:156 -#, fuzzy, c-format +#: src/xheader.c:163 +#, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "關鍵字 %s 為未知或尚未實作" -#: src/xheader.c:182 +#: src/xheader.c:173 +#, fuzzy +msgid "Time stamp is out of allowed range" +msgstr "號碼超出允許的範圍:%s" + +#: src/xheader.c:204 #, c-format msgid "Pattern %s cannot be used" -msgstr "樣式 %s 無法被使用" +msgstr "式樣 %s 無法使用" -#: src/xheader.c:192 +#: src/xheader.c:218 #, c-format msgid "Keyword %s cannot be overridden" msgstr "關鍵字 %s 無法被蓋過" -#: src/xheader.c:496 -#, fuzzy +#: src/xheader.c:541 msgid "Malformed extended header: missing length" -msgstr "未成形的擴充標頭:缺少等號" +msgstr "異常的擴充標頭:長度缺少" -#: src/xheader.c:504 +#: src/xheader.c:549 msgid "Extended header length is out of allowed range" -msgstr "" +msgstr "擴充標頭長度超出允許範圍" -#: src/xheader.c:511 -#, fuzzy, c-format +#: src/xheader.c:556 +#, c-format msgid "Extended header length %*s is out of range" -msgstr "保存檔有號 base-64 字串 %s 超出 %s 範圍" +msgstr "擴充標頭長度 %*s 超出範圍" -#: src/xheader.c:523 -#, fuzzy +#: src/xheader.c:568 msgid "Malformed extended header: missing blank after length" -msgstr "未成形的擴充標頭:在長度之後缺少空白" +msgstr "異常的擴充標頭:在長度之後缺少空白" -#: src/xheader.c:531 +#: src/xheader.c:576 msgid "Malformed extended header: missing equal sign" -msgstr "未成形的擴充標頭:缺少等號" +msgstr "異常的擴充標頭:缺少等號" -#: src/xheader.c:537 -#, fuzzy +#: src/xheader.c:582 msgid "Malformed extended header: missing newline" -msgstr "未成形的擴充標頭:缺少等號" +msgstr "異常的擴充標頭:缺少新列" -#: src/xheader.c:574 +#: src/xheader.c:620 #, c-format msgid "Ignoring unknown extended header keyword `%s'" -msgstr "" +msgstr "忽略不明擴充標頭關鍵字「%s」" -#: src/xheader.c:778 +#: src/xheader.c:830 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" -msgstr "" +msgstr "產生的關鍵字/值對太長 (關鍵字=%s,長度=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:810 -#, fuzzy, c-format +#: src/xheader.c:862 +#, c-format msgid "Extended header %s=%s is out of range %s..%s" -msgstr "保存檔值 %s 已超出 %s 的範圍 %s.%s" +msgstr "擴充標頭 %s=%s 超出範圍 %s..%s" -#: src/xheader.c:941 src/xheader.c:971 src/xheader.c:1285 -#, fuzzy, c-format +#: src/xheader.c:993 src/xheader.c:1023 src/xheader.c:1337 +#, c-format msgid "Malformed extended header: invalid %s=%s" -msgstr "未成形的擴充標頭:缺少等號" +msgstr "異常的擴充標頭:無效的 %s=%s" -#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313 -#, fuzzy, c-format +#: src/xheader.c:1290 src/xheader.c:1315 src/xheader.c:1365 +#, c-format msgid "Malformed extended header: excess %s=%s" -msgstr "未成形的擴充標頭:缺少等號" +msgstr "異常的擴充標頭:過剩的 %s=%s" -#: src/xheader.c:1326 -#, fuzzy, c-format +#: src/xheader.c:1378 +#, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" -msgstr "未成形的擴充標頭:缺少等號" +msgstr "異常的擴充標頭:無效的 %s:未預期的分隔符號 %c" -#: src/xheader.c:1336 -#, fuzzy, c-format +#: src/xheader.c:1388 +#, c-format msgid "Malformed extended header: invalid %s: odd number of values" -msgstr "未成形的擴充標頭:缺少等號" +msgstr "異常的擴充標頭:無效的 %s:奇怪的數值數量" #: src/checkpoint.c:107 -#, fuzzy, c-format +#, c-format msgid "%s: not a valid timeout" -msgstr "%s:無效的群組" +msgstr "%s:不是有效的時間限制" #: src/checkpoint.c:112 #, c-format msgid "%s: unknown checkpoint action" -msgstr "" +msgstr "%s:不明查核點動作" #: src/checkpoint.c:132 msgid "write" -msgstr "" +msgstr "寫入" #: src/checkpoint.c:132 msgid "read" -msgstr "" +msgstr "讀取" #. TRANSLATORS: This is a ``checkpoint of write operation'', #. *not* ``Writing a checkpoint''. #. E.g. in Spanish ``Punto de comprobaci@'on de escritura'', #. *not* ``Escribiendo un punto de comprobaci@'on'' #: src/checkpoint.c:222 -#, fuzzy, c-format +#, c-format msgid "Write checkpoint %u" -msgstr "寫入檢查點 %d" +msgstr "寫入的查核點 %u" #. TRANSLATORS: This is a ``checkpoint of read operation'', #. *not* ``Reading a checkpoint''. #. E.g. in Spanish ``Punto de comprobaci@'on de lectura'', #. *not* ``Leyendo un punto de comprobaci@'on'' #: src/checkpoint.c:228 -#, fuzzy, c-format +#, c-format msgid "Read checkpoint %u" -msgstr "讀入檢查點 %d" +msgstr "讀取的查核點 %u" -#: tests/genfile.c:111 +#: tests/genfile.c:112 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" +"genfile 在 GNU paxutils 測試套件中用於操控資料檔案。\n" +"選項:\n" -#: tests/genfile.c:126 -#, fuzzy +#: tests/genfile.c:128 msgid "File creation options:" -msgstr "其他選項:" +msgstr "檔案建立選項:" -#: tests/genfile.c:127 tests/genfile.c:138 +#: tests/genfile.c:129 tests/genfile.c:140 msgid "SIZE" -msgstr "" +msgstr "大小" -#: tests/genfile.c:128 -#, fuzzy +#: tests/genfile.c:130 msgid "Create file of the given SIZE" -msgstr "以給定格式建立保存檔。" +msgstr "以給定 SIZE 建立檔案。" -#: tests/genfile.c:130 -#, fuzzy +#: tests/genfile.c:132 msgid "Write to file NAME, instead of standard output" -msgstr "解開檔案至標準輸出" +msgstr "寫入檔案 NAME,以代替標準輸出" -#: tests/genfile.c:132 -#, fuzzy +#: tests/genfile.c:134 msgid "Read file names from FILE" -msgstr "讀取 %s 位元組自 %s " +msgstr "從 FILE 讀取檔案名稱" -#: tests/genfile.c:134 -#, fuzzy +#: tests/genfile.c:136 msgid "-T reads null-terminated names" -msgstr "-T 讀取零值終結的名稱,停用 -C" +msgstr "-T 讀取零值終結的名稱" -#: tests/genfile.c:136 +#: tests/genfile.c:138 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" -msgstr "" +msgstr "以給定 PATTERN 填充檔案。PATTERN 是「default」或「zeros」" -#: tests/genfile.c:139 +#: tests/genfile.c:141 msgid "Size of a block for sparse file" -msgstr "" +msgstr "用於稀疏檔案的區塊大小" -#: tests/genfile.c:141 +#: tests/genfile.c:143 msgid "Generate sparse file. Rest of the command line gives the file map." -msgstr "" +msgstr "產生稀疏檔案。命令列的其餘部份給出檔案對映。" -#: tests/genfile.c:143 +#: tests/genfile.c:145 msgid "OFFSET" -msgstr "" +msgstr "偏移值" -#: tests/genfile.c:144 -#, fuzzy +#: tests/genfile.c:146 msgid "Seek to the given offset before writing data" -msgstr "嘗試在寫入之後驗證保存檔" +msgstr "寫入資料之前尋指給定的偏移值" -#: tests/genfile.c:150 +#: tests/genfile.c:152 msgid "File statistics options:" -msgstr "" +msgstr "檔案統計選項:" -#: tests/genfile.c:153 +#: tests/genfile.c:155 msgid "Print contents of struct stat for each given file. Default FORMAT is: " -msgstr "" +msgstr "列印每個給定檔案的結構狀態內容。預設 FORMAT 為:" -#: tests/genfile.c:160 +#: tests/genfile.c:162 msgid "Synchronous execution options:" -msgstr "" +msgstr "同步的執行選項:" -#: tests/genfile.c:163 +#: tests/genfile.c:164 +#, fuzzy +msgid "OPTION" +msgstr " [選項…]" + +#: tests/genfile.c:165 +#, fuzzy msgid "" -"Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, " -"--touch" +"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " +"--unlink" msgstr "" +"執行給定的 COMMAND。同時與 --checkpoint 和 --cut, --append, --touch 之一使用" +"會有作用" -#: tests/genfile.c:166 +#: tests/genfile.c:168 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" -msgstr "" +msgstr "當達到查核點 NUMBER 時實行給定動作 (參看以下)" -#: tests/genfile.c:169 +#: tests/genfile.c:171 msgid "Set date for next --touch option" -msgstr "" +msgstr "設定後續 --touch 選項所需的日期" -#: tests/genfile.c:172 +#: tests/genfile.c:174 msgid "Display executed checkpoints and exit status of COMMAND" -msgstr "" +msgstr "顯示已執行的查核點以及 COMMAND 的離開狀態" -#: tests/genfile.c:177 +#: tests/genfile.c:179 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" +"同步的執行動作。當到達由 --checkpoint 選項所給定的查核點編號時,這些動作會被" +"執行。" -#: tests/genfile.c:180 +#: tests/genfile.c:182 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" -msgstr "" +msgstr "依先前 --length 選項指定的大小來截斷檔案 (如果它未被給定就是 0)" -#: tests/genfile.c:184 +#: tests/genfile.c:186 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." -msgstr "" +msgstr "附加 SIZE 位元組到 FILE。SIZE 是由先前 --length 選項所給定。" -#: tests/genfile.c:187 +#: tests/genfile.c:189 msgid "Update the access and modification times of FILE" -msgstr "" +msgstr "更新檔案的存取和修改時間" -#: tests/genfile.c:190 -#, fuzzy +#: tests/genfile.c:192 msgid "Execute COMMAND" -msgstr "命令" +msgstr "執行 COMMAND" -#: tests/genfile.c:240 -#, fuzzy, c-format -msgid "Invalid size: %s" -msgstr "無效的時間標記" +#: tests/genfile.c:195 +msgid "Unlink FILE" +msgstr "" #: tests/genfile.c:245 -#, fuzzy, c-format +#, c-format +msgid "Invalid size: %s" +msgstr "無效的大小:%s" + +#: tests/genfile.c:250 +#, c-format msgid "Number out of allowed range: %s" -msgstr "Inode 號碼超出範圍以外" +msgstr "號碼超出允許的範圍:%s" -#: tests/genfile.c:248 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" -msgstr "" +msgstr "負值大小:%s" -#: tests/genfile.c:261 tests/genfile.c:558 +#: tests/genfile.c:266 tests/genfile.c:568 #, c-format msgid "stat(%s) failed" -msgstr "" +msgstr "狀態(%s) 失敗" -#: tests/genfile.c:264 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "要求檔案長度 %lu,實際則是 %lu" -#: tests/genfile.c:268 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "建立的不是稀疏檔案" -#: tests/genfile.c:353 +#: tests/genfile.c:362 #, c-format msgid "Error parsing number near `%s'" -msgstr "" +msgstr "剖析數字接近「%s」時發生錯誤" -#: tests/genfile.c:359 -#, fuzzy, c-format +#: tests/genfile.c:368 +#, c-format msgid "Unknown date format" -msgstr "不明的系統錯誤" +msgstr "不明的日期格式" -#: tests/genfile.c:382 +#: tests/genfile.c:392 msgid "[ARGS...]" -msgstr "" +msgstr "[引數…]" -#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512 -#: tests/genfile.c:662 tests/genfile.c:676 +#: tests/genfile.c:429 tests/genfile.c:469 tests/genfile.c:522 +#: tests/genfile.c:672 tests/genfile.c:686 #, c-format msgid "cannot open `%s'" -msgstr "" +msgstr "無法開啟「%s」" -#: tests/genfile.c:425 -#, fuzzy +#: tests/genfile.c:435 msgid "cannot seek" -msgstr "close 程序失敗" +msgstr "無法尋指" -#: tests/genfile.c:442 +#: tests/genfile.c:452 #, c-format msgid "file name contains null character" -msgstr "" +msgstr "檔案名稱含有空字元" -#: tests/genfile.c:507 +#: tests/genfile.c:517 #, c-format msgid "cannot generate sparse files on standard output, use --file option" -msgstr "" +msgstr "無法於標準輸出產生稀疏檔案,使用 --file 選項" -#: tests/genfile.c:585 +#: tests/genfile.c:595 #, c-format msgid "incorrect mask (near `%s')" -msgstr "" +msgstr "不正確遮罩 (接近「%s」)" -#: tests/genfile.c:591 tests/genfile.c:624 -#, fuzzy, c-format +#: tests/genfile.c:601 tests/genfile.c:634 +#, c-format msgid "Unknown field `%s'" -msgstr "不明的檔案類型 %s\n" +msgstr "不明的欄位「%s」" -#: tests/genfile.c:651 -#, fuzzy, c-format +#: tests/genfile.c:661 +#, c-format msgid "cannot set time on `%s'" -msgstr "%s:無法搜尋至 %s" +msgstr "無法設定時間為「%s」" + +#: tests/genfile.c:700 +#, fuzzy, c-format +msgid "cannot unlink `%s'" +msgstr "無法開啟「%s」" -#: tests/genfile.c:805 +#: tests/genfile.c:826 #, c-format msgid "Command exited successfully\n" -msgstr "" +msgstr "成功離開命令\n" -#: tests/genfile.c:807 -#, fuzzy, c-format +#: tests/genfile.c:828 +#, c-format msgid "Command failed with status %d\n" -msgstr "副程序因訊號 %d 而突然終止" +msgstr "命令以狀態 %d 失敗\n" -#: tests/genfile.c:811 +#: tests/genfile.c:832 #, c-format msgid "Command terminated on signal %d\n" -msgstr "" +msgstr "命令於信號 %d 終止\n" -#: tests/genfile.c:813 +#: tests/genfile.c:834 #, c-format msgid "Command stopped on signal %d\n" -msgstr "" +msgstr "命令於信號 %d 停止\n" -#: tests/genfile.c:816 +#: tests/genfile.c:837 #, c-format msgid "Command dumped core\n" -msgstr "" +msgstr "命令傾印核心\n" -#: tests/genfile.c:819 +#: tests/genfile.c:840 #, c-format msgid "Command terminated\n" -msgstr "" +msgstr "命令終止\n" -#: tests/genfile.c:851 -#, fuzzy, c-format -msgid "--stat requires file names" -msgstr "--損毀的檔案名稱--\n" - -#: tests/genfile.c:864 +#: tests/genfile.c:872 #, c-format -msgid "too many arguments" -msgstr "" - -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "警告:不再支援 -I 選項;也許你是指 -j 或 -T 選項?" - -#~ msgid "block size" -#~ msgstr "區塊大小" - -#~ msgid "" -#~ "This program comes with NO WARRANTY, to the extent permitted by law.\n" -#~ "You may redistribute it under the terms of the GNU General Public " -#~ "License;\n" -#~ "see the file named COPYING for details." -#~ msgstr "" -#~ "此軟體在法律允許的限度之下不附帶任何保證。你可以根據 GNU General Public\n" -#~ "License 中的條款重新散佈此軟體;詳請請參考檔案 COPYING。" - -#~ msgid "rmtd: Garbage command %c\n" -#~ msgstr "rmtd: 無用的命令 %c\n" - -#~ msgid "WARNING: No volume header" -#~ msgstr "警告: 沒有卷冊表頭" - -#~ msgid "Visible long name error" -#~ msgstr "可見的過長名稱錯誤" - -#~ msgid "Time stamp out of range" -#~ msgstr "時間印記超出範圍以外" - -#~ msgid "Device number out of range" -#~ msgstr "裝置號碼超出範圍以外" - -#~ msgid "Visible longname error" -#~ msgstr "可見的檔案名稱過長錯誤" - -#~ msgid "Renamed %s to %s" -#~ msgstr "將 %s 改名為 %s" - -#~ msgid "%s: Cannot symlink to %s" -#~ msgstr "%s:無法建立符號連結至 %s" - -#~ msgid "Symlinked %s to %s" -#~ msgstr "建立符號連結 %s 並連至 %s" - -#~ msgid "Unknown demangling command %s" -#~ msgstr "未知的指令:%s" - -#~ msgid "Missing file name after -C" -#~ msgstr "-C 後缺少了檔案名稱" - -#~ msgid "don't change access times on dumped files" -#~ msgstr "不要改變傾印檔案的存取時間" - -#~ msgid "extract permissions information" -#~ msgstr "解開權限資訊" - -#~ msgid "do not extract permissions information" -#~ msgstr "不要解開權限資訊" - -#~ msgid "FILE-OF-NAMES" -#~ msgstr "符合名稱之檔案" - -#~ msgid "exclude patterns are plain strings" -#~ msgstr "排除樣式為單純字串" - -#~ msgid "dump instead the files symlinks point to" -#~ msgstr "傾印以替代符號連結所指向的檔案" - -#~ msgid "same as -N" -#~ msgstr "等同於 -N" - -#~ msgid "exclude patterns use wildcards (default)" -#~ msgstr "排除樣式會使用萬用字元 (預設)" - -#~ msgid "print total bytes written while creating archive" -#~ msgstr "建立保存檔時印出寫入位元組合計" - -#~ msgid "Print license and exit" -#~ msgstr "印出使用授權並離開" +msgid "--stat requires file names" +msgstr "--stat 需要檔案名稱" -#~ msgid "" -#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n" -#~ "for complete list of authors.\n" -#~ msgstr "" -#~ "奠基於 John Gilmore 與 Jay Fenlason 的成果。\n" -#~ "參見 AUTHORS 以獲得完整的作者列表。\n" +#~ msgid "%s: illegal option -- %c\n" +#~ msgstr "%s:不合法的選項 -- %c\n" #~ msgid "" -#~ " GNU tar is free software; you can redistribute it and/or modify\n" -#~ " it under the terms of the GNU General Public License as published by\n" -#~ " the Free Software Foundation; either version 2 of the License, or\n" -#~ " (at your option) any later version.\n" -#~ "\n" -#~ " GNU tar is distributed in the hope that it will be useful,\n" -#~ " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -#~ " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -#~ " GNU General Public License for more details.\n" -#~ "\n" -#~ " You should have received a copy of the GNU General Public License\n" -#~ " along with GNU tar; if not, write to the Free Software\n" -#~ " Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 " -#~ "USA\n" #~ "\n" +#~ "Report bugs to <%s>.\n" #~ msgstr "" -#~ " GNU tar 是自由軟體, 您可以在自由軟體基金會所出版的 GNU\n" -#~ " 一般公用授權書的規範下加以重新散發或且修改; 不管是第二\n" -#~ " 或 (你認為的) 更後面的版本皆可.\n" #~ "\n" -#~ " GNU tar 的散發只是希望它能有所用途而不附有任何的保證!\n" -#~ " 甚至也不暗示它有商品價值或能合用於特定的目的. 細節請見\n" -#~ " GNU 一般公用授權書.\n" -#~ "\n" -#~ " 正常情況下, 您在收到這個軟體的同時, 也應該收到 GNU\n" -#~ " 一般公用授權書, 如果沒有, 請連絡自由軟體基金會, 地址是:\n" -#~ " 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n" -#~ " USA.\n" -#~ "\n" - -#~ msgid "Semantics of -l option will change in the future releases." -#~ msgstr "選項 -l 的語意將會在未來版本中變更。" - -#~ msgid "Please use --one-file-system option instead." -#~ msgstr "請以 --one-file-system 選項替代使用。" - -#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?" -#~ msgstr "警告:不再支援 -y 選項;也許你是指 -j 選項?" - -#~ msgid "Error in writing to standard output" -#~ msgstr "將資料寫入至標準輸出時發生錯誤" - -#~ msgid "Error exit delayed from previous errors" -#~ msgstr "發生錯誤離開時因之前的錯誤而延遲" - -#~ msgid "Cannot dup" -#~ msgstr "dup 程序失敗" +#~ "將錯誤回報給 <%s>。\n" -#~ msgid "Cannot use compressed or remote archives" -#~ msgstr "無法使用壓縮或遠端保存檔" +#~ msgid "Reading %s\n" +#~ msgstr "正在讀取 %s\n" -#~ msgid "Child returned status %d" -#~ msgstr "副程序回傳值為 %d" - -#~ msgid "" -#~ "GNU `tar' saves many files together into a single tape or disk archive, " -#~ "and\n" -#~ "can restore individual files from the archive.\n" -#~ msgstr "" -#~ "GNU‘tar’可將多個檔案儲存為磁帶或磁碟中的一個保存檔,並由保存檔還原個別的\n" -#~ "檔案。\n" - -#~ msgid "" -#~ "\n" -#~ "If a long option shows an argument as mandatory, then it is mandatory\n" -#~ "for the equivalent short option also. Similarly for optional arguments.\n" -#~ msgstr "" -#~ "\n" -#~ "如果某個長選項必須使用引數,在同等的短選項中這些引數也是必須的。\n" -#~ "選擇性的引數也有類似的規定。\n" +#~ msgid "Error is not recoverable: exiting now" +#~ msgstr "發生無法復原的錯誤:立刻離開" -#~ msgid "" -#~ "\n" -#~ "Main operation mode:\n" -#~ " -t, --list list the contents of an archive\n" -#~ " -x, --extract, --get extract files from an archive\n" -#~ " -c, --create create a new archive\n" -#~ " -d, --diff, --compare find differences between archive and file " -#~ "system\n" -#~ " -r, --append append files to the end of an archive\n" -#~ " -u, --update only append files newer than copy in archive\n" -#~ " -A, --catenate append tar files to an archive\n" -#~ " --concatenate same as -A\n" -#~ " --delete delete from the archive (not on mag tapes!)\n" -#~ msgstr "" -#~ "\n" -#~ "主要操作模式:\n" -#~ " -t, --list 列出保存檔的內容\n" -#~ " -x, --extract, --get 由保存檔抽取檔案\n" -#~ " -c, --create 建立新的保存檔\n" -#~ " -d, --diff, --compare 比較保存檔和檔案系統之間的差異\n" -#~ " -r, --append 在保存檔後加上檔案\n" -#~ " -u, --update only append files newer than copy in archive\n" -#~ " -A, --catenate 在保存檔後加上 tar 檔案\n" -#~ " --concatenate 等於 -A\n" -#~ " --delete 由保存檔中刪除檔案 (不是由磁帶刪除)\n" +#~ msgid "suppress this warning." +#~ msgstr "抑制這個警告。" -#~ msgid "" -#~ " --backup[=CONTROL] backup before removal, choose version " -#~ "control\n" -#~ " --suffix=SUFFIX backup before removal, override usual " -#~ "suffix\n" -#~ msgstr "" -#~ " --backup[=CONTROL] 移除檔案前先備份,並使用版本控制的方式\n" -#~ " --suffix=後置字串 移除檔案前先備份,並自行指定備份檔的後置字" -#~ "串\n" +#~ msgid "filter the archive through bzip2" +#~ msgstr "保存檔以 bzip2 過濾處理" -#~ msgid "Obsolete option name replaced by --blocking-factor" -#~ msgstr "此過時的選項名稱已由 --blocking-factor 代替" +#~ msgid "filter the archive through gzip" +#~ msgstr "保存檔以 gzip 過濾處理" -#~ msgid "Obsolete option name replaced by --read-full-records" -#~ msgstr "此過時的選項名稱已由 --read-full-records 代替" +#~ msgid "filter the archive through compress" +#~ msgstr "保存檔以 compress 過濾處理" -#~ msgid "Obsolete option name replaced by --touch" -#~ msgstr "此過時的選項名稱已由 --touch 代替" +#~ msgid "filter the archive through lzma" +#~ msgstr "保存檔以 lzma 過濾處理" -#~ msgid "Obsolete option name replaced by --absolute-names" -#~ msgstr "此過時的選項名稱已由 --absolute-names 代替" +#~ msgid "filter the archive through lzop" +#~ msgstr "保存檔以 lzop 過濾處理" -#~ msgid "Obsolete option name replaced by --block-number" -#~ msgstr "此過時的選項名稱已由 --block-number 代替" +#~ msgid "Input string too long" +#~ msgstr "輸入字串太長" -#~ msgid "Obsolete option name replaced by --backup" -#~ msgstr "此過時的選項名稱已由 --backup 代替" +#~ msgid "Number syntax error" +#~ msgstr "數字語法錯誤" -#~ msgid "Written by John Gilmore and Jay Fenlason." -#~ msgstr "由 John Gilmore 及 Jay Fenlason 編寫。" +#~ msgid "rmtd: Cannot allocate buffer space\n" +#~ msgstr "rmtd:無法配置緩衝區空間\n" -#~ msgid "" -#~ "Copyright (C) %s Free Software Foundation, Inc.\n" -#~ "This is free software; see the source for copying conditions. There is " -#~ "NO\n" -#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " -#~ "PURPOSE.\n" -#~ msgstr "" -#~ "版權所有 (C) %s Free Software Foundation, Inc.\n" -#~ "這是自由軟體;請參考原始碼的版權聲明。本軟體不提供任何保證,甚至不會包括\n" -#~ "可售性或適用於任何特定目的的保證。\n" +#~ msgid "Cannot allocate buffer space" +#~ msgstr "無法配置緩衝區空間" -#~ msgid "" -#~ "This is free software; see the source for copying conditions. There is " -#~ "NO\n" -#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR " -#~ "PURPOSE.\n" -#~ msgstr "" -#~ "這是自由軟體;請參考原始碼的版權聲明。本軟體不提供任何保證,甚至不會包括\n" -#~ "可售性或適用於任何特定目的的保證。\n" +#~ msgid "Try `%s --help' for more information.\n" +#~ msgstr "請嘗試「%s --help」以獲得更多資訊。\n" #~ msgid "" -#~ "This program is free software; you can redistribute it and/or modify\n" -#~ "it under the terms of the GNU General Public License as published by\n" -#~ "the Free Software Foundation; either version 2, or (at your option)\n" -#~ "any later version.\n" +#~ "Usage: %s [OPTION]\n" +#~ "Manipulate a tape drive, accepting commands from a remote process.\n" #~ "\n" +#~ " --version Output version info.\n" +#~ " --help Output this help.\n" #~ msgstr "" -#~ "本程式是自由軟體;你可以根據 Free Software Foundation 所公佈的 GNU\n" -#~ "General Public License 第二版或(自由選擇)較新的版本中的條款去重新\n" -#~ "散佈及/或修改本軟體。\n" +#~ "用法: %s [選項]\n" +#~ "操控磁帶機,接收來自遠端行程的命令。\n" #~ "\n" +#~ " --version 輸出版本資訊。\n" +#~ " --help 輸出本輔助說明。\n" -#~ msgid "" -#~ "This program is distributed in the hope that it will be useful,\n" -#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -#~ "GNU General Public License for more details.\n" -#~ "\n" -#~ msgstr "" -#~ "發佈本軟體是希望它會有用,但不會提供任何保證,甚至不會包括可售性或\n" -#~ "適用於任何特定目的的保證。詳情請參考 GNU General Public License。\n" -#~ "\n" +#~ msgid "Seek offset error" +#~ msgstr "尋覓偏移值錯誤" -#~ msgid "" -#~ "You should have received a copy of the GNU General Public License\n" -#~ "along with this program; if not, write to the Free Software Foundation,\n" -#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" -#~ msgstr "" -#~ "你應該已經隨本軟體收到一份 GNU General Public License;否則請寄信至\n" -#~ "Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,\n" -#~ "MA 02111-1307, USA.\n" +#~ msgid "Premature end of file" +#~ msgstr "檔案突然結束" diff --git a/rmt/Makefile.am b/rmt/Makefile.am index b4552128dc5ae21a7914e27526a68a1739799556..37f621a104bfca03234401b19f58300a1c8c7532 100644 --- a/rmt/Makefile.am +++ b/rmt/Makefile.am @@ -4,10 +4,10 @@ EXTRA_PROGRAMS = rmt rmt_SOURCES = rmt.c -INCLUDES = -I$(top_srcdir)/lib -I../ -I../lib +INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -LDADD = ../lib/lib$(PACKAGE).a $(LIBINTL) +LDADD = ../gnu/libgnu.a $(LIBINTL) rmt_LDADD = $(LDADD) $(LIB_SETSOCKOPT) -rmt.o: ../lib/configmake.h +rmt.o: ../gnu/configmake.h diff --git a/rmt/Makefile.in b/rmt/Makefile.in index a2c43b4c7409ebb5a42b4cf256800454f2ae92c3..de66f7498d8fdf1042f40728b062d13a4566225f 100644 --- a/rmt/Makefile.in +++ b/rmt/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -16,8 +17,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -40,63 +42,71 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/canonicalize-lgpl.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ - $(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \ - $(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \ - $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \ - $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \ - $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ - $(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ - $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ - $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ - $(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \ - $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \ - $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \ - $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \ - $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ @@ -112,37 +122,52 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \ - $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \ - $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ - $(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ - $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(rmtdir)" -rmtPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(rmt_PROGRAMS) am_rmt_OBJECTS = rmt.$(OBJEXT) rmt_OBJECTS = $(am_rmt_OBJECTS) am__DEPENDENCIES_1 = -am__DEPENDENCIES_2 = ../lib/lib$(PACKAGE).a $(am__DEPENDENCIES_1) +am__DEPENDENCIES_2 = ../gnu/libgnu.a $(am__DEPENDENCIES_1) rmt_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles +am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(rmt_SOURCES) DIST_SOURCES = $(rmt_SOURCES) ETAGS = etags @@ -152,6 +177,7 @@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -180,7 +206,6 @@ DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRENT_H = @DIRENT_H@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -193,7 +218,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ -FCNTL_H = @FCNTL_H@ FLOAT_H = @FLOAT_H@ FNMATCH_H = @FNMATCH_H@ GETOPT_H = @GETOPT_H@ @@ -205,45 +229,59 @@ GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ @@ -266,15 +304,31 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PUTC = @GNULIB_PUTC@ @@ -284,13 +338,20 @@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ @@ -301,6 +362,7 @@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ @@ -311,8 +373,16 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ @@ -332,8 +402,11 @@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ @@ -358,37 +431,68 @@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ -HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ @@ -402,7 +506,6 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRNDUP = @HAVE_STRNDUP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ @@ -411,6 +514,8 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ @@ -419,11 +524,15 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -441,16 +550,14 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -INTTYPES_H = @INTTYPES_H@ LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTAR_LIBDEPS = @LIBTAR_LIBDEPS@ -LIBTAR_LTLIBDEPS = @LIBTAR_LTLIBDEPS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LIB_CLOSE = @LIB_CLOSE@ LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ @@ -465,12 +572,36 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ @@ -499,25 +630,40 @@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PU_RMT_PROG = @PU_RMT_PROG@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ @@ -527,26 +673,53 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRPTIME = @REPLACE_STRPTIME@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -554,6 +727,7 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ @@ -564,22 +738,20 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYSEXITS_H = @SYSEXITS_H@ -SYS_STAT_H = @SYS_STAT_H@ -SYS_TIME_H = @SYS_TIME_H@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -VOID_UNSETENV = @VOID_UNSETENV@ -WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ -WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -637,13 +809,14 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ rmtdir = $(DEFAULT_RMT_DIR) rmt_PROGRAMS = @PU_RMT_PROG@ rmt_SOURCES = rmt.c -INCLUDES = -I$(top_srcdir)/lib -I../ -I../lib -LDADD = ../lib/lib$(PACKAGE).a $(LIBINTL) +INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib +LDADD = ../gnu/libgnu.a $(LIBINTL) rmt_LDADD = $(LDADD) $(LIB_SETSOCKOPT) all: all-am @@ -653,14 +826,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits rmt/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits rmt/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits rmt/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits rmt/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -678,26 +851,41 @@ $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): install-rmtPROGRAMS: $(rmt_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(rmtdir)" || $(MKDIR_P) "$(DESTDIR)$(rmtdir)" - @list='$(rmt_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(rmtPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(rmtdir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(rmtPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(rmtdir)/$$f" || exit 1; \ - else :; fi; \ - done + @list='$(rmt_PROGRAMS)'; test -n "$(rmtdir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(rmtdir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(rmtdir)$$dir" || exit $$?; \ + } \ + ; done uninstall-rmtPROGRAMS: @$(NORMAL_UNINSTALL) - @list='$(rmt_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(rmtdir)/$$f'"; \ - rm -f "$(DESTDIR)$(rmtdir)/$$f"; \ - done + @list='$(rmt_PROGRAMS)'; test -n "$(rmtdir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(rmtdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(rmtdir)" && rm -f $$files clean-rmtPROGRAMS: -test -z "$(rmt_PROGRAMS)" || rm -f $(rmt_PROGRAMS) @@ -719,7 +907,7 @@ installcheck-rmtPROGRAMS: $(rmt_PROGRAMS) done; rm -f c$${pid}_.???; exit $$bad rmt$(EXEEXT): $(rmt_OBJECTS) $(rmt_DEPENDENCIES) @rm -f rmt$(EXEEXT) - $(LINK) $(rmt_OBJECTS) $(rmt_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(rmt_OBJECTS) $(rmt_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -730,15 +918,17 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmt.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` @@ -748,14 +938,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -763,29 +953,34 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -806,13 +1001,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -843,6 +1042,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -863,6 +1063,8 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: @@ -871,18 +1073,28 @@ install-data-am: install-rmtPROGRAMS install-dvi: install-dvi-am +install-dvi-am: + install-exec-am: install-html: install-html-am +install-html-am: + install-info: install-info-am +install-info-am: + install-man: install-pdf: install-pdf-am +install-pdf-am: + install-ps: install-ps-am +install-ps-am: + installcheck-am: installcheck-rmtPROGRAMS maintainer-clean: maintainer-clean-am @@ -920,7 +1132,8 @@ uninstall-am: uninstall-rmtPROGRAMS ps ps-am tags uninstall uninstall-am uninstall-rmtPROGRAMS -rmt.o: ../lib/configmake.h +rmt.o: ../gnu/configmake.h + # 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. .NOEXPORT: diff --git a/rmt/rmt.c b/rmt/rmt.c index a043dd0c89510b1304c5bde32e32bf7b96bc650c..a3897eb56f0fc06d91417d8d92ff373d4c44a60f 100644 --- a/rmt/rmt.c +++ b/rmt/rmt.c @@ -1,48 +1,32 @@ -/* Remote connection server. - - Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004, - 2005, 2006, 2007 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, 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, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Copyright (C) 1983 Regents of the University of California. - All rights reserved. - - Redistribution and use in source and binary forms are permitted provided - that the above copyright notice and this paragraph are duplicated in all - such forms and that any documentation, advertising materials, and other - materials related to such distribution and use acknowledge that the - software was developed by the University of California, Berkeley. The - name of the University may not be used to endorse or promote products - derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ +/* This file is part of GNU Paxutils. + Copyright (C) 2009 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, 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/>. */ #include "system.h" #include "system-ioctl.h" -#include <closeout.h> #include <configmake.h> -#include <safe-read.h> -#include <full-write.h> -#include <version-etc.h> -#define obstack_chunk_alloc malloc -#define obstack_chunk_free free -#include <obstack.h> +#include <argp.h> +#include <argp-version-etc.h> #include <getopt.h> -#include <sys/socket.h> +#include <full-write.h> +#include <configmake.h> +#include <inttostr.h> +#include <error.h> +#include <progname.h> +#include <c-ctype.h> +#include <safe-read.h> #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 @@ -51,626 +35,778 @@ # define EXIT_SUCCESS 0 #endif -/* Maximum size of a string from the requesting program. - It must hold enough for any integer, possibly with a sign. */ -#define STRING_SIZE (UINTMAX_STRSIZE_BOUND + 1) - -const char *program_name; - -/* File descriptor of the tape device, or negative if none open. */ -static int tape = -1; - -/* Buffer containing transferred data, and its allocated size. */ -static char *record_buffer; -static size_t allocated_size; - -/* Buffer for constructing the reply. */ -static char reply_buffer[BUFSIZ]; - -/* Obstack for arbitrary-sized strings */ -struct obstack string_stk; - -/* Debugging tools. */ - -static FILE *debug_file; - -#define DEBUG(File) \ - if (debug_file) fprintf(debug_file, File) - -#define DEBUG1(File, Arg) \ - if (debug_file) fprintf(debug_file, File, Arg) - -#define DEBUG2(File, Arg1, Arg2) \ - if (debug_file) fprintf(debug_file, File, Arg1, Arg2) + +int dbglev; +FILE *dbgout; + +#define DEBUG(lev,msg) \ + do { if (dbgout && (lev) <= dbglev) fprintf (dbgout, "%s", msg); } while (0) +#define DEBUG1(lev, fmt, x) \ + do { if (dbgout && (lev) <= dbglev) fprintf (dbgout, fmt, x); } while (0) +#define DEBUG2(lev, fmt, x1, x2) \ + do \ + { \ + if (dbgout && (lev) <= dbglev) \ + fprintf (dbgout, fmt, x1, x2); \ + } \ + while (0) + +#define VDEBUG(lev, pfx, fmt, ap) \ + do \ + { \ + if (dbgout && (lev) <= dbglev) \ + { \ + fprintf (dbgout, "%s", pfx); \ + vfprintf (dbgout, fmt, ap); \ + } \ + } \ + while (0) + + static void -report_error_message (const char *string) +trimnl (char *str) { - DEBUG1 ("rmtd: E 0 (%s)\n", string); - - sprintf (reply_buffer, "E0\n%s\n", string); - full_write (STDOUT_FILENO, reply_buffer, strlen (reply_buffer)); + if (str) + { + size_t len = strlen (str); + if (len > 1 && str[len-1] == '\n') + str[len-1] = 0; + } } + -static void -report_numbered_error (int num) -{ - DEBUG2 ("rmtd: E %d (%s)\n", num, strerror (num)); - - sprintf (reply_buffer, "E%d\n%s\n", num, strerror (num)); - full_write (STDOUT_FILENO, reply_buffer, strlen (reply_buffer)); -} + +char *input_buf_ptr = NULL; +size_t input_buf_size = 0; -static char * -get_string (void) +char * +rmt_read (void) { - for (;;) + ssize_t rc = getline (&input_buf_ptr, &input_buf_size, stdin); + if (rc > 0) { - char c; - if (safe_read (STDIN_FILENO, &c, 1) != 1) - exit (EXIT_SUCCESS); - - if (c == '\n') - break; - - obstack_1grow (&string_stk, c); + DEBUG1 (10, "C: %s", input_buf_ptr); + trimnl (input_buf_ptr); + return input_buf_ptr; } - obstack_1grow (&string_stk, 0); - return obstack_finish (&string_stk); + DEBUG (10, "reached EOF"); + return NULL; } -static void -free_string (char *string) +void +rmt_write (const char *fmt, ...) { - obstack_free (&string_stk, string); + va_list ap; + va_start (ap, fmt); + vfprintf (stdout, fmt, ap); + VDEBUG (10, "S: ", fmt, ap); } -static void -get_string_n (char *string) +void +rmt_reply (uintmax_t code) { - size_t counter; - - for (counter = 0; ; counter++) - { - if (safe_read (STDIN_FILENO, string + counter, 1) != 1) - exit (EXIT_SUCCESS); + char buf[UINTMAX_STRSIZE_BOUND]; + rmt_write ("A%s\n", umaxtostr (code, buf)); +} - if (string[counter] == '\n') - break; +void +rmt_error_message (int code, const char *msg) +{ + DEBUG1 (10, "S: E%d\n", code); + DEBUG1 (10, "S: %s\n", msg); + DEBUG1 (1, "error: %s\n", msg); + fprintf (stdout, "E%d\n%s\n", code, msg); +} - if (counter == STRING_SIZE - 1) - report_error_message (N_("Input string too long")); - } - string[counter] = '\0'; +void +rmt_error (int code) +{ + rmt_error_message (code, strerror (code)); } -static long int -get_long (char const *string) + +char *record_buffer_ptr; +size_t record_buffer_size; + +static void +prepare_record_buffer (size_t size) { - char *p; - long int n; - errno = 0; - n = strtol (string, &p, 10); - if (errno == ERANGE) - { - report_numbered_error (errno); - exit (EXIT_FAILURE); - } - if (!*string || *p) + if (size > record_buffer_size) { - report_error_message (N_("Number syntax error")); - exit (EXIT_FAILURE); + record_buffer_ptr = xrealloc (record_buffer_ptr, size); + record_buffer_size = size; } - return n; } -static void -prepare_input_buffer (int fd, size_t size) + + +int device_fd = -1; + +struct rmt_kw { - if (size <= allocated_size) - return; + char const *name; + size_t len; + int value; +}; - if (record_buffer) - free (record_buffer); +#define RMT_KW(s,v) { #s, sizeof (#s) - 1, v } - record_buffer = malloc (size); +int +xlat_kw (const char *s, const char *pfx, + struct rmt_kw const *kw, int *valp, const char **endp) +{ + size_t slen = strlen (s); - if (! record_buffer) + if (pfx) { - DEBUG (_("rmtd: Cannot allocate buffer space\n")); - - report_error_message (N_("Cannot allocate buffer space")); - exit (EXIT_FAILURE); /* exit status used to be 4 */ + size_t pfxlen = strlen (pfx); + if (slen > pfxlen && memcmp (s, pfx, pfxlen) == 0) + { + s += pfxlen; + slen -= pfxlen; + } } - - allocated_size = size; - -#ifdef SO_RCVBUF - if (0 <= fd) + + for (; kw->name; kw++) { - int isize = size < INT_MAX ? size : INT_MAX; - while (setsockopt (fd, SOL_SOCKET, SO_RCVBUF, - (char *) &isize, sizeof isize) - && 1024 < isize) - isize >>= 1; + if (slen >= kw->len + && memcmp (kw->name, s, kw->len) == 0 + && !(s[kw->len] && c_isalnum (s[kw->len]))) + { + *valp = kw->value; + *endp = s + kw->len; + return 0; + } } -#endif + return 1; } -/* Decode OFLAG_STRING, which represents the 2nd argument to `open'. - OFLAG_STRING should contain an optional integer, followed by an optional - symbolic representation of an open flag using only '|' to separate its - components (e.g. "O_WRONLY|O_CREAT|O_TRUNC"). Prefer the symbolic - representation if available, falling back on the numeric - representation, or to zero if both formats are absent. - - This function should be the inverse of encode_oflag. The numeric - representation is not portable from one host to another, but it is - for backward compatibility with old-fashioned clients that do not - emit symbolic open flags. */ - -static int -decode_oflag (char const *oflag_string) +const char * +skip_ws (const char *s) { - char *oflag_num_end; - int numeric_oflag = strtol (oflag_string, &oflag_num_end, 10); - int symbolic_oflag = 0; - - oflag_string = oflag_num_end; - while (ISSPACE ((unsigned char) *oflag_string)) - oflag_string++; + while (*s && c_isblank (*s)) + s++; + return s; +} - do - { - struct name_value_pair { char const *name; int value; }; - static struct name_value_pair const table[] = - { +static struct rmt_kw const open_flag_kw[] = + { #ifdef O_APPEND - {"APPEND", O_APPEND}, + RMT_KW(APPEND, O_APPEND), #endif - {"CREAT", O_CREAT}, + RMT_KW(CREAT, O_CREAT), #ifdef O_DSYNC - {"DSYNC", O_DSYNC}, + RMT_KW(DSYNC, O_DSYNC), #endif - {"EXCL", O_EXCL}, + RMT_KW(EXCL, O_EXCL), #ifdef O_LARGEFILE - {"LARGEFILE", O_LARGEFILE}, /* LFS extension for opening large files */ + RMT_KW(LARGEFILE, O_LARGEFILE), #endif #ifdef O_NOCTTY - {"NOCTTY", O_NOCTTY}, + RMT_KW(NOCTTY, O_NOCTTY), #endif #if O_NONBLOCK - {"NONBLOCK", O_NONBLOCK}, + RMT_KW(NONBLOCK, O_NONBLOCK), #endif - {"RDONLY", O_RDONLY}, - {"RDWR", O_RDWR}, + RMT_KW(RDONLY, O_RDONLY), + RMT_KW(RDWR, O_RDWR), #ifdef O_RSYNC - {"RSYNC", O_RSYNC}, + RMT_KW(RSYNC, O_RSYNC), #endif #ifdef O_SYNC - {"SYNC", O_SYNC}, + RMT_KW(SYNC, O_SYNC), #endif - {"TRUNC", O_TRUNC}, - {"WRONLY", O_WRONLY} - }; - struct name_value_pair const *t; - size_t s; - - if (*oflag_string++ != 'O' || *oflag_string++ != '_') - return numeric_oflag; - - for (t = table; - (strncmp (oflag_string, t->name, s = strlen (t->name)) != 0 - || (oflag_string[s] - && strchr ("ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789", - oflag_string[s]))); - t++) - if (t == table + sizeof table / sizeof *table - 1) - return numeric_oflag; - - symbolic_oflag |= t->value; - oflag_string += s; - } - while (*oflag_string++ == '|'); - - return symbolic_oflag; -} - -static struct option const long_opts[] = -{ - {"help", no_argument, 0, 'h'}, - {"version", no_argument, 0, 'v'}, - {0, 0, 0, 0} -}; - -/* In-line localization is used only if --help or --version are - locally used. Otherwise, the localization burden lies with tar. */ -static void -i18n_setup () -{ - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); -} - -static void usage (int) __attribute__ ((noreturn)); + RMT_KW(TRUNC, O_TRUNC), + RMT_KW(WRONLY, O_WRONLY), + { NULL } + }; -static void -usage (int status) +int +decode_open_flag (const char *mstr, int *pmode) { - i18n_setup (); + int mode = 0; - if (status != EXIT_SUCCESS) - fprintf (stderr, _("Try `%s --help' for more information.\n"), - program_name); - else + while (mstr) { - printf (_("\ -Usage: %s [OPTION]\n\ -Manipulate a tape drive, accepting commands from a remote process.\n\ -\n\ - --version Output version info.\n\ - --help Output this help.\n"), - program_name); - printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT); - close_stdout (); - } - - exit (status); -} + int v; + const char *p; -static void -respond (long int status) -{ - DEBUG1 ("rmtd: A %ld\n", status); + mstr = skip_ws (mstr); + if (*mstr == 0) + break; + else if (c_isdigit (*mstr)) + v = strtol (mstr, (char**) &p, 10); + else if (xlat_kw (mstr, "O_", open_flag_kw, &v, &p)) + { + rmt_error_message (EINVAL, "invalid open mode"); + return 1; + } - sprintf (reply_buffer, "A%ld\n", status); - full_write (STDOUT_FILENO, reply_buffer, strlen (reply_buffer)); + mode |= v; + + if (*p && c_isblank (*p)) + p = skip_ws (p); + if (*p == 0) + break; + else if (*p == '|') + { + /* FIXMEL + if (p[1] == 0) + rmt_error_message (EINVAL, "invalid open mode"); + */ + mstr = p + 1; + } + else + { + rmt_error_message (EINVAL, "invalid open mode"); + return 1; + } + } + *pmode = mode; + return 0; } - +/* Syntax + ------ + O<device>\n<flags>\n + + Function + -------- + Opens the <device> with given <flags>. If a device had already been opened, + it is closed before opening the new one. + + Arguments + --------- + <device> - name of the device to open. + <flags> - flags for open(2): a decimal number, or any valid O_* constant + from fcntl.h (the initial O_ may be omitted), or a bitwise or (using '|') + of any number of these, e.g.: + + 576 + 64|512 + CREAT|TRUNC + + Reply + ----- + A0\n on success, E<errno>\n<msg>\n on error. + + Extensions + ---------- + The BSD version allows only decimal number as <flags>. +*/ + static void -open_device (void) +open_device (char *str) { - char *device_string = get_string (); - char *oflag_string = get_string (); - - DEBUG2 ("rmtd: O %s %s\n", device_string, oflag_string); - - if (tape >= 0) - close (tape); + char *device = xstrdup (str); + char *flag_str; + int flag; + + flag_str = rmt_read (); + if (!flag_str) + { + DEBUG (1, "unexpected EOF"); + exit (EXIT_FAILURE); + } + if (decode_open_flag (flag_str, &flag) == 0) + { + if (device_fd >= 0) + close (device_fd); - tape = open (device_string, decode_oflag (oflag_string), MODE_RW); - if (tape < 0) - report_numbered_error (errno); - else - respond (0); - free_string (device_string); - free_string (oflag_string); + device_fd = open (device, flag, MODE_RW); + if (device_fd < 0) + rmt_error (errno); + else + rmt_reply (0); + } + free (device); } - + +/* Syntax + ------ + C[<device>]\n + + Function + -------- + Close the currently open device. + + Arguments + --------- + Any arguments are silently ignored. + + Reply + ----- + A0\n on success, E<errno>\n<msg>\n on error. +*/ static void -close_device (void) +close_device () { - free_string (get_string ()); /* discard */ - DEBUG ("rmtd: C\n"); - - if (close (tape) < 0) - report_numbered_error (errno); + if (close (device_fd) < 0) + rmt_error (errno); else { - tape = -1; - respond (0); + device_fd = -1; + rmt_reply (0); } } - -static void -lseek_device (void) + +/* Syntax + ------ + L<whence>\n<offset>\n + + Function + -------- + Perform an lseek(2) on the currently open device with the specified + parameters. + + Arguments + --------- + <whence> - Where to measure offset from. Valid values are: + 0, SET, SEEK_SET to seek from the file beginning, + 1, CUR, SEEK_CUR to seek from the current location in file, + 2, END, SEEK_END to seek from the file end. + Reply + ----- + A<offset>\n on success. The <offset> is the new offset in file. + E<errno>\n<msg>\n on error. + + Extensions + ---------- + The BSD version allows only 0,1,2 as <whence>. +*/ + +static struct rmt_kw const seek_whence_kw[] = + { + RMT_KW(SET, SEEK_SET), + RMT_KW(CUR, SEEK_CUR), + RMT_KW(END, SEEK_END), + { NULL } + }; + +void +lseek_device (const char *str) { - char count_string[STRING_SIZE]; - char position_string[STRING_SIZE]; - off_t count = 0; - int negative; - int whence; char *p; + int whence; + off_t off; + uintmax_t n; + + if (str[0] && str[1] == 0) + { + switch (str[0]) + { + case '0': + whence = SEEK_SET; + break; - get_string_n (count_string); - get_string_n (position_string); - DEBUG2 ("rmtd: L %s %s\n", count_string, position_string); - - /* Parse count_string, taking care to check for overflow. - We can't use standard functions, - since off_t might be longer than long. */ - - for (p = count_string; *p == ' ' || *p == '\t'; p++) - ; + case '1': + whence = SEEK_CUR; + break; - negative = *p == '-'; - p += negative || *p == '+'; + case '2': + whence = SEEK_END; + break; - for (; *p; p++) - { - int digit = *p - '0'; - if (9 < (unsigned) digit) - { - report_error_message (N_("Seek offset error")); - exit (EXIT_FAILURE); - } - else - { - off_t c10 = 10 * count; - off_t nc = negative ? c10 - digit : c10 + digit; - if (c10 / 10 != count || (negative ? c10 < nc : nc < c10)) - { - report_error_message (N_("Seek offset out of range")); - exit (EXIT_FAILURE); - } - count = nc; + default: + rmt_error_message (EINVAL, N_("Seek direction out of range")); + return; } } - - switch (get_long (position_string)) + else if (xlat_kw (str, "SEEK_", seek_whence_kw, &whence, (const char **) &p)) { - case 0: - whence = SEEK_SET; - break; - - case 1: - whence = SEEK_CUR; - break; - - case 2: - whence = SEEK_END; - break; - - default: - report_error_message (N_("Seek direction out of range")); - exit (EXIT_FAILURE); + rmt_error_message (EINVAL, N_("Invalid seek direction")); + return; } - count = lseek (tape, count, whence); - if (count < 0) - report_numbered_error (errno); - else + str = rmt_read (); + n = off = strtoumax (str, &p, 10); + if (*p) { - /* Convert count back to string for reply. - We can't use sprintf, since off_t might be longer - than long. */ - p = count_string + sizeof count_string; - *--p = '\0'; - do - *--p = '0' + (int) (count % 10); - while ((count /= 10) != 0); - - DEBUG1 ("rmtd: A %s\n", p); - - sprintf (reply_buffer, "A%s\n", p); - full_write (STDOUT_FILENO, reply_buffer, strlen (reply_buffer)); + rmt_error_message (EINVAL, N_("Invalid seek offset")); + return; } -} - -static void -write_device (void) -{ - char count_string[STRING_SIZE]; - size_t size; - size_t counter; - size_t status = 0; - - get_string_n (count_string); - size = get_long (count_string); - DEBUG1 ("rmtd: W %s\n", count_string); - - prepare_input_buffer (STDIN_FILENO, size); - for (counter = 0; counter < size; counter += status) + + if (n != off || errno == ERANGE) { - status = safe_read (STDIN_FILENO, &record_buffer[counter], - size - counter); - if (status == SAFE_READ_ERROR || status == 0) - { - DEBUG (_("rmtd: Premature eof\n")); - - report_error_message (N_("Premature end of file")); - exit (EXIT_FAILURE); /* exit status used to be 2 */ - } + rmt_error_message (EINVAL, N_("Seek offset out of range")); + return; } - status = full_write (tape, record_buffer, size); - if (status != size) - report_numbered_error (errno); + + off = lseek (device_fd, off, whence); + if (off < 0) + rmt_error (errno); else - respond (status); + rmt_reply (off); } - -static void -read_device (void) + +/* Syntax + ------ + R<count>\n + + Function + -------- + Read <count> bytes of data from the current device. + + Arguments + --------- + <count> - number of bytes to read. + + Reply + ----- + On success: A<rdcount>\n, followed by <rdcount> bytes of data read from + the device. + On error: E<errno>\n<msg>\n +*/ + +void +read_device (const char *str) { - char count_string[STRING_SIZE]; + char *p; size_t size; + uintmax_t n; size_t status; + + n = size = strtoumax (str, &p, 10); + if (*p) + { + rmt_error_message (EINVAL, N_("Invalid byte count")); + return; + } + + if (n != size || errno == ERANGE) + { + rmt_error_message (EINVAL, N_("Byte count out of range")); + return; + } - get_string_n (count_string); - DEBUG1 ("rmtd: R %s\n", count_string); - - size = get_long (count_string); - prepare_input_buffer (-1, size); - status = safe_read (tape, record_buffer, size); + prepare_record_buffer (size); + status = safe_read (device_fd, record_buffer_ptr, size); if (status == SAFE_READ_ERROR) - report_numbered_error (errno); + rmt_error (errno); else { - sprintf (reply_buffer, "A%lu\n", (unsigned long int) status); - full_write (STDOUT_FILENO, reply_buffer, strlen (reply_buffer)); - full_write (STDOUT_FILENO, record_buffer, status); + rmt_reply (status); + full_write (STDOUT_FILENO, record_buffer_ptr, status); } } - -static void -mtioctop (void) + +/* Syntax + ------ + W<count>\n followed by <count> bytes of input data. + + Function + -------- + Write data onto the current device. + + Arguments + --------- + <count> - number of bytes. + + Reply + ----- + On success: A<wrcount>\n, where <wrcount> is number of bytes actually + written. + On error: E<errno>\n<msg>\n +*/ + +void +write_device (const char *str) { - char operation_string[STRING_SIZE]; - char count_string[STRING_SIZE]; + char *p; + size_t size; + uintmax_t n; + size_t status; + + n = size = strtoumax (str, &p, 10); + if (*p) + { + rmt_error_message (EINVAL, N_("Invalid byte count")); + return; + } + + if (n != size || errno == ERANGE) + { + rmt_error_message (EINVAL, N_("Byte count out of range")); + return; + } - get_string_n (operation_string); - get_string_n (count_string); - DEBUG2 ("rmtd: I %s %s\n", operation_string, count_string); + prepare_record_buffer (size); + if (fread (record_buffer_ptr, size, 1, stdin) != 1) + { + if (feof (stdin)) + rmt_error_message (EIO, N_("Premature eof")); + else + rmt_error (errno); + return; + } + status = full_write (device_fd, record_buffer_ptr, size); + if (status != size) + rmt_error (errno); + else + rmt_reply (status); +} + +/* Syntax + ------ + I<opcode>\n<count>\n + + Function + -------- + Perform a MTIOCOP ioctl(2) command using the specified paramedters. + + Arguments + --------- + <opcode> - MTIOCOP operation code. + <count> - mt_count. + + Reply + ----- + On success: A0\n + On error: E<errno>\n<msg>\n +*/ + +void +iocop_device (const char *str) +{ + char *p; + long opcode; + off_t count; + uintmax_t n; + + opcode = strtol (str, &p, 10); + if (*p) + { + rmt_error_message (EINVAL, N_("Invalid operation code")); + return; + } + str = rmt_read (); + n = count = strtoumax (str, &p, 10); + if (*p) + { + rmt_error_message (EINVAL, N_("Invalid byte count")); + return; + } + + if (n != count || errno == ERANGE) + { + rmt_error_message (EINVAL, N_("Byte count out of range")); + return; + } + #ifdef MTIOCTOP { struct mtop mtop; - const char *p; - off_t count = 0; - int negative; - - /* Parse count_string, taking care to check for overflow. - We can't use standard functions, - since off_t might be longer than long. */ - - for (p = count_string; *p == ' ' || *p == '\t'; p++) - ; - - negative = *p == '-'; - p += negative || *p == '+'; - - for (;;) - { - int digit = *p++ - '0'; - if (9 < (unsigned) digit) - break; - else - { - off_t c10 = 10 * count; - off_t nc = negative ? c10 - digit : c10 + digit; - if (c10 / 10 != count - || (negative ? c10 < nc : nc < c10)) - { - report_error_message (N_("Seek offset out of range")); - exit (EXIT_FAILURE); - } - count = nc; - } - } mtop.mt_count = count; if (mtop.mt_count != count) { - report_error_message (N_("Seek offset out of range")); - exit (EXIT_FAILURE); - } - mtop.mt_op = get_long (operation_string); - - if (ioctl (tape, MTIOCTOP, (char *) &mtop) < 0) - { - report_numbered_error (errno); + rmt_error_message (EINVAL, N_("Byte count out of range")); return; } + + mtop.mt_op = opcode; + if (ioctl (device_fd, MTIOCTOP, (char *) &mtop) < 0) + rmt_error (errno); + else + rmt_reply (0); } +#else + rmt_error_message (ENOSYS, N_("Operation not supported")); #endif - respond (0); } - -static void -status_device (void) + +/* Syntax + ------ + S\n + + Function + -------- + Return the status of the open device, as obtained with a MTIOCGET + ioctl call. + + Arguments + --------- + None + + Reply + ----- + On success: A<count>\n followed by <count> bytes of data. + On error: E<errno>\n<msg>\n +*/ + +void +status_device (const char *str) { - DEBUG ("rmtd: S\n"); - + if (*str) + { + rmt_error_message (EINVAL, N_("Unexpected arguments")); + return; + } #ifdef MTIOCGET { - struct mtget operation; + struct mtget mtget; - if (ioctl (tape, MTIOCGET, (char *) &operation) < 0) - report_numbered_error (errno); + if (ioctl (device_fd, MTIOCGET, (char *) &mtget) < 0) + rmt_error (errno); else { - respond (sizeof operation); - full_write (STDOUT_FILENO, (char *) &operation, sizeof operation); + rmt_reply (sizeof (mtget)); + full_write (STDOUT_FILENO, (char *) &mtget, sizeof (mtget)); } } +#else + rmt_error_message (ENOSYS, N_("Operation not supported")); #endif } + -int -main (int argc, char **argv) -{ - char command; + +const char *argp_program_version = "rmt (" PACKAGE_NAME ") " VERSION; +const char *argp_program_bug_address = "<" PACKAGE_BUGREPORT ">"; - program_name = argv[0]; +static char const doc[] = N_("Manipulate a tape drive, accepting commands from a remote process"); + +enum { + DEBUG_FILE_OPTION = 256 +}; - obstack_init (&string_stk); +static struct argp_option options[] = { + { "debug", 'd', N_("NUMBER"), 0, + N_("set debug level"), 0 }, + { "debug-file", DEBUG_FILE_OPTION, N_("FILE"), 0, + N_("set debug output file name"), 0 }, + { NULL } +}; - switch (getopt_long (argc, argv, "", long_opts, NULL)) +static error_t +parse_opt (int key, char *arg, struct argp_state *state) +{ + switch (key) { + case 'd': + dbglev = strtol (arg, NULL, 0); + break; + + case DEBUG_FILE_OPTION: + dbgout = fopen (arg, "w"); + if (!dbgout) + error (EXIT_FAILURE, errno, _("cannot open %s"), arg); + break; + + case ARGP_KEY_FINI: + if (dbglev) + { + if (!dbgout) + dbgout = stderr; + } + else if (dbgout) + dbglev = 1; + break; + default: - usage (EXIT_FAILURE); + return ARGP_ERR_UNKNOWN; + } + return 0; +} + +static struct argp argp = { + options, + parse_opt, + NULL, + doc, + NULL, + NULL, + NULL +}; - case 'h': - usage (EXIT_SUCCESS); +static const char *rmt_authors[] = { + "Sergey Poznyakoff", + NULL +}; - case 'v': - i18n_setup (); - version_etc (stdout, "rmt", PACKAGE_NAME, PACKAGE_VERSION, - "John Gilmore", "Jay Fenlason", (char *) NULL); - close_stdout (); - return EXIT_SUCCESS; + +void +xalloc_die (void) +{ + rmt_error (ENOMEM); + exit (EXIT_FAILURE); +} - case -1: - break; + +int +main (int argc, char **argv) +{ + char *buf; + int idx; + int stop = 0; + + set_program_name (argv[0]); + argp_version_setup ("rmt", rmt_authors); + + if (isatty (STDOUT_FILENO)) + { + setlocale (LC_ALL, ""); + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); } - - if (optind < argc) + + if (argp_parse (&argp, argc, argv, ARGP_IN_ORDER, &idx, NULL)) + exit (EXIT_FAILURE); + if (idx != argc) { - if (optind != argc - 1) - usage (EXIT_FAILURE); - debug_file = fopen (argv[optind], "w"); - if (debug_file == 0) - { - report_numbered_error (errno); - return EXIT_FAILURE; - } - setbuf (debug_file, 0); + if (idx != argc - 1) + error (EXIT_FAILURE, 0, _("too many arguments")); + dbgout = fopen (argv[idx], "w"); + if (!dbgout) + error (EXIT_FAILURE, errno, _("cannot open %s"), argv[idx]); + dbglev = 1; } - - while (1) + + while (!stop && (buf = rmt_read ()) != NULL) { - errno = 0; - - if (safe_read (STDIN_FILENO, &command, 1) != 1) - return EXIT_SUCCESS; - - switch (command) + switch (buf[0]) { - case 'O': - open_device (); - break; - case 'C': close_device (); + stop = 1; break; - + + case 'I': + iocop_device (buf + 1); + break; + case 'L': - lseek_device (); + lseek_device (buf + 1); break; - - case 'W': - write_device (); + + case 'O': + open_device (buf + 1); break; - + case 'R': - read_device (); + read_device (buf + 1); break; - - case 'I': - mtioctop (); - break; - + case 'S': - status_device (); + status_device (buf + 1); break; - + + case 'W': + write_device (buf + 1); + break; + default: - DEBUG1 ("rmtd: Garbage command %c\n", command); - report_error_message (N_("Garbage command")); + DEBUG1 (1, "garbage input %s\n", buf); + rmt_error_message (EINVAL, N_("Garbage command")); return EXIT_FAILURE; /* exit status used to be 3 */ - } + } } + if (device_fd >= 0) + close_device (); + free (input_buf_ptr); + free (record_buffer_ptr); + return EXIT_SUCCESS; } diff --git a/scripts/Makefile.in b/scripts/Makefile.in index 3d88476ca46b2c89390b09dafcbf8a786fb6b4b8..5da72c537ead9204d57557a88538a6648259480e 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -18,8 +19,9 @@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -41,63 +43,71 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/canonicalize-lgpl.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ - $(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \ - $(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \ - $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \ - $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \ - $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ - $(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ - $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ - $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ - $(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \ - $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \ - $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \ - $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \ - $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ @@ -113,26 +123,54 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \ - $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \ - $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ - $(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ - $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" -libexecSCRIPT_INSTALL = $(INSTALL_SCRIPT) -sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT) SCRIPTS = $(libexec_SCRIPTS) $(sbin_SCRIPTS) +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -140,6 +178,7 @@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -168,7 +207,6 @@ DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRENT_H = @DIRENT_H@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -181,7 +219,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ -FCNTL_H = @FCNTL_H@ FLOAT_H = @FLOAT_H@ FNMATCH_H = @FNMATCH_H@ GETOPT_H = @GETOPT_H@ @@ -193,45 +230,59 @@ GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ @@ -254,15 +305,31 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PUTC = @GNULIB_PUTC@ @@ -272,13 +339,20 @@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ @@ -289,6 +363,7 @@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ @@ -299,8 +374,16 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ @@ -320,8 +403,11 @@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ @@ -346,37 +432,68 @@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ -HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ @@ -390,7 +507,6 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRNDUP = @HAVE_STRNDUP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ @@ -399,6 +515,8 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ @@ -407,11 +525,15 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -429,16 +551,14 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -INTTYPES_H = @INTTYPES_H@ LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTAR_LIBDEPS = @LIBTAR_LIBDEPS@ -LIBTAR_LTLIBDEPS = @LIBTAR_LTLIBDEPS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LIB_CLOSE = @LIB_CLOSE@ LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ @@ -453,12 +573,36 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ @@ -487,25 +631,40 @@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PU_RMT_PROG = @PU_RMT_PROG@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ @@ -515,26 +674,53 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRPTIME = @REPLACE_STRPTIME@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -542,6 +728,7 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ @@ -552,22 +739,20 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYSEXITS_H = @SYSEXITS_H@ -SYS_STAT_H = @SYS_STAT_H@ -SYS_TIME_H = @SYS_TIME_H@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -VOID_UNSETENV = @VOID_UNSETENV@ -WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ -WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -625,6 +810,7 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ BACKUP_LIBEXEC_SCRIPTS_LIST = backup.sh dump-remind @@ -655,14 +841,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits scripts/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits scripts/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits scripts/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits scripts/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -680,25 +866,41 @@ $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): install-libexecSCRIPTS: $(libexec_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)" - @list='$(libexec_SCRIPTS)'; for p in $$list; do \ + @list='$(libexec_SCRIPTS)'; test -n "$(libexecdir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f $$d$$p; then \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " $(libexecSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(libexecdir)/$$f'"; \ - $(libexecSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(libexecdir)/$$f"; \ - else :; fi; \ - done + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ + } \ + ; done uninstall-libexecSCRIPTS: @$(NORMAL_UNINSTALL) - @list='$(libexec_SCRIPTS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " rm -f '$(DESTDIR)$(libexecdir)/$$f'"; \ - rm -f "$(DESTDIR)$(libexecdir)/$$f"; \ - done + @list='$(libexec_SCRIPTS)'; test -n "$(libexecdir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(libexecdir)" && rm -f $$files installcheck-libexecSCRIPTS: $(libexec_SCRIPTS) bad=0; pid=$$$$; list="$(libexec_SCRIPTS)"; for p in $$list; do \ @@ -717,22 +919,37 @@ installcheck-libexecSCRIPTS: $(libexec_SCRIPTS) install-sbinSCRIPTS: $(sbin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)" - @list='$(sbin_SCRIPTS)'; for p in $$list; do \ + @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \ + for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f $$d$$p; then \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " $(sbinSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ - $(sbinSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sbindir)/$$f"; \ - else :; fi; \ - done + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ + } \ + ; done uninstall-sbinSCRIPTS: @$(NORMAL_UNINSTALL) - @list='$(sbin_SCRIPTS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ - echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ - rm -f "$(DESTDIR)$(sbindir)/$$f"; \ - done + @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(sbindir)" && rm -f $$files installcheck-sbinSCRIPTS: $(sbin_SCRIPTS) bad=0; pid=$$$$; list="$(sbin_SCRIPTS)"; for p in $$list; do \ @@ -771,13 +988,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -809,6 +1030,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -827,6 +1049,8 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: @@ -835,18 +1059,28 @@ install-data-am: install-dvi: install-dvi-am +install-dvi-am: + install-exec-am: install-libexecSCRIPTS install-sbinSCRIPTS install-html: install-html-am +install-html-am: + install-info: install-info-am +install-info-am: + install-man: install-pdf: install-pdf-am +install-pdf-am: + install-ps: install-ps-am +install-ps-am: + installcheck-am: installcheck-libexecSCRIPTS installcheck-sbinSCRIPTS maintainer-clean: maintainer-clean-am @@ -894,6 +1128,7 @@ restore: $(srcdir)/restore.in dump-remind: $(srcdir)/dump-remind.in sed $(SED_CMD) $? > $@ + # 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. .NOEXPORT: diff --git a/src/Makefile.am b/src/Makefile.am index c22a568a49eea7182a70d07e580e1d5861cb28a4..fcbac33f08d8e74757195fb79daf3ceb916b0e3f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ # Makefile for GNU tar sources. # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006, -# 2007 Free Software Foundation, Inc. +# 2007, 2009 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 @@ -27,6 +27,7 @@ tar_SOURCES = \ compare.c\ create.c\ delete.c\ + exit.c\ extract.c\ xheader.c\ incremen.c\ @@ -38,11 +39,13 @@ tar_SOURCES = \ system.c\ tar.c\ transform.c\ + unlink.c\ update.c\ - utf8.c + utf8.c\ + warning.c -INCLUDES = -I$(top_srcdir)/lib -I../ -I../lib +INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib -LDADD = ../lib/libtar.a $(LIBINTL) $(LIBICONV) +LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV) tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) diff --git a/src/Makefile.in b/src/Makefile.in index aafc1d22ff508ec51dbecc9621150478a6cf2759..164869c4c6e0236b222757f3cfb99948e85b017d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,13 +18,14 @@ # Makefile for GNU tar sources. # Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006, -# 2007 Free Software Foundation, Inc. +# 2007, 2009 Free Software Foundation, Inc. VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -47,63 +49,71 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/canonicalize-lgpl.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ - $(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \ - $(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \ - $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \ - $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \ - $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ - $(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ - $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ - $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ - $(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \ - $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \ - $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \ - $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \ - $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ @@ -119,43 +129,60 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \ - $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \ - $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ - $(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ - $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_tar_OBJECTS = buffer.$(OBJEXT) checkpoint.$(OBJEXT) \ compare.$(OBJEXT) create.$(OBJEXT) delete.$(OBJEXT) \ - extract.$(OBJEXT) xheader.$(OBJEXT) incremen.$(OBJEXT) \ - list.$(OBJEXT) misc.$(OBJEXT) names.$(OBJEXT) sparse.$(OBJEXT) \ - suffix.$(OBJEXT) system.$(OBJEXT) tar.$(OBJEXT) \ - transform.$(OBJEXT) update.$(OBJEXT) utf8.$(OBJEXT) + exit.$(OBJEXT) extract.$(OBJEXT) xheader.$(OBJEXT) \ + incremen.$(OBJEXT) list.$(OBJEXT) misc.$(OBJEXT) \ + names.$(OBJEXT) sparse.$(OBJEXT) suffix.$(OBJEXT) \ + system.$(OBJEXT) tar.$(OBJEXT) transform.$(OBJEXT) \ + unlink.$(OBJEXT) update.$(OBJEXT) utf8.$(OBJEXT) \ + warning.$(OBJEXT) tar_OBJECTS = $(am_tar_OBJECTS) am__DEPENDENCIES_1 = -am__DEPENDENCIES_2 = ../lib/libtar.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) +am__DEPENDENCIES_2 = ../lib/libtar.a ../gnu/libgnu.a \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) tar_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles +am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(tar_SOURCES) DIST_SOURCES = $(tar_SOURCES) HEADERS = $(noinst_HEADERS) @@ -166,6 +193,7 @@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -194,7 +222,6 @@ DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRENT_H = @DIRENT_H@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -207,7 +234,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ -FCNTL_H = @FCNTL_H@ FLOAT_H = @FLOAT_H@ FNMATCH_H = @FNMATCH_H@ GETOPT_H = @GETOPT_H@ @@ -219,45 +245,59 @@ GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ @@ -280,15 +320,31 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PUTC = @GNULIB_PUTC@ @@ -298,13 +354,20 @@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ @@ -315,6 +378,7 @@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ @@ -325,8 +389,16 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ @@ -346,8 +418,11 @@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ @@ -372,37 +447,68 @@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ -HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ @@ -416,7 +522,6 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRNDUP = @HAVE_STRNDUP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ @@ -425,6 +530,8 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ @@ -433,11 +540,15 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -455,16 +566,14 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -INTTYPES_H = @INTTYPES_H@ LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTAR_LIBDEPS = @LIBTAR_LIBDEPS@ -LIBTAR_LTLIBDEPS = @LIBTAR_LTLIBDEPS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LIB_CLOSE = @LIB_CLOSE@ LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ @@ -479,12 +588,36 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ @@ -513,25 +646,40 @@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PU_RMT_PROG = @PU_RMT_PROG@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ @@ -541,26 +689,53 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRPTIME = @REPLACE_STRPTIME@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -568,6 +743,7 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ @@ -578,22 +754,20 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYSEXITS_H = @SYSEXITS_H@ -SYS_STAT_H = @SYS_STAT_H@ -SYS_TIME_H = @SYS_TIME_H@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -VOID_UNSETENV = @VOID_UNSETENV@ -WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ -WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -651,6 +825,7 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = arith.h common.h tar.h @@ -660,6 +835,7 @@ tar_SOURCES = \ compare.c\ create.c\ delete.c\ + exit.c\ extract.c\ xheader.c\ incremen.c\ @@ -671,11 +847,13 @@ tar_SOURCES = \ system.c\ tar.c\ transform.c\ + unlink.c\ update.c\ - utf8.c + utf8.c\ + warning.c -INCLUDES = -I$(top_srcdir)/lib -I../ -I../lib -LDADD = ../lib/libtar.a $(LIBINTL) $(LIBICONV) +INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib +LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV) tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) all: all-am @@ -685,14 +863,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits src/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -710,26 +888,41 @@ $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ - else :; fi; \ - done + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) @@ -751,7 +944,7 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS) done; rm -f c$${pid}_.???; exit $$bad tar$(EXEEXT): $(tar_OBJECTS) $(tar_DEPENDENCIES) @rm -f tar$(EXEEXT) - $(LINK) $(tar_OBJECTS) $(tar_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(tar_OBJECTS) $(tar_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -764,6 +957,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delete.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/incremen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ @@ -774,20 +968,24 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transform.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/update.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/warning.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xheader.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` @@ -797,14 +995,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -812,29 +1010,34 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -855,13 +1058,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -892,6 +1099,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -912,6 +1120,8 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: @@ -920,18 +1130,28 @@ install-data-am: install-dvi: install-dvi-am +install-dvi-am: + install-exec-am: install-binPROGRAMS install-html: install-html-am +install-html-am: + install-info: install-info-am +install-info-am: + install-man: install-pdf: install-pdf-am +install-pdf-am: + install-ps: install-ps-am +install-ps-am: + installcheck-am: installcheck-binPROGRAMS maintainer-clean: maintainer-clean-am @@ -968,6 +1188,7 @@ uninstall-am: uninstall-binPROGRAMS mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS + # 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. .NOEXPORT: diff --git a/src/buffer.c b/src/buffer.c index 8edc257fe63ba27510eae8a4153ee2b02c48bf0b..8147def1961246dfdef3f3704432416431c6f932 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1,7 +1,8 @@ /* Buffer management for tar. Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software + Foundation, Inc. Written by John Gilmore, on 1985-08-25. @@ -35,9 +36,6 @@ /* Number of retries before giving up on read. */ #define READ_ERROR_MAX 10 -/* Globbing pattern to append to volume label if initial match failed. */ -#define VOLUME_LABEL_APPEND " Volume [1-9]*" - /* Variables. */ static tarlong prev_written; /* bytes written on previous volumes */ @@ -203,6 +201,7 @@ enum compress_type { ct_compress, ct_gzip, ct_bzip2, + ct_lzip, ct_lzma, ct_lzop, ct_xz @@ -220,12 +219,13 @@ struct zip_magic static struct zip_magic const magic[] = { { ct_tar }, { ct_none, }, - { ct_compress, 2, "\037\235", "compress", "-Z" }, - { ct_gzip, 2, "\037\213", "gzip", "-z" }, - { ct_bzip2, 3, "BZh", "bzip2", "-j" }, - { ct_lzma, 6, "\xFFLZMA", "lzma", "--lzma" }, /* FIXME: ???? */ - { ct_lzop, 4, "\211LZO", "lzop", "--lzop" }, - { ct_xz, 6, "\0xFD7zXZ", "-J" }, + { ct_compress, 2, "\037\235", COMPRESS_PROGRAM, "-Z" }, + { ct_gzip, 2, "\037\213", GZIP_PROGRAM, "-z" }, + { ct_bzip2, 3, "BZh", BZIP2_PROGRAM, "-j" }, + { ct_lzip, 4, "LZIP", LZIP_PROGRAM, "--lzip" }, + { ct_lzma, 6, "\xFFLZMA", LZMA_PROGRAM, "--lzma" }, + { ct_lzop, 4, "\211LZO", LZOP_PROGRAM, "--lzop" }, + { ct_xz, 6, "\0xFD7zXZ", XZ_PROGRAM, "-J" }, }; #define NMAGIC (sizeof(magic)/sizeof(magic[0])) @@ -265,6 +265,37 @@ check_compressed_archive (bool *pshort) return ct_none; } +/* Guess if the archive is seekable. */ +static void +guess_seekable_archive () +{ + struct stat st; + + if (subcommand_option == DELETE_SUBCOMMAND) + { + /* The current code in delete.c is based on the assumption that + skip_member() reads all data from the archive. So, we should + make sure it won't use seeks. On the other hand, the same code + depends on the ability to backspace a record in the archive, + so setting seekable_archive to false is technically incorrect. + However, it is tested only in skip_member(), so it's not a + problem. */ + seekable_archive = false; + } + + if (seek_option != -1) + { + seekable_archive = !!seek_option; + return; + } + + if (!multi_volume_option && !use_compress_program_option + && fstat (archive, &st) == 0) + seekable_archive = S_ISREG (st.st_mode); + else + seekable_archive = false; +} + /* Open an archive named archive_name_array[0]. Detect if it is a compressed archive of known type and use corresponding decompression program if so */ @@ -295,7 +326,7 @@ open_compressed_archive () ERROR ((0, 0, _("This does not look like a tar archive"))); set_comression_program_by_suffix (archive_name_array[0], NULL); if (!use_compress_program_option) - return archive; + return archive; break; default: @@ -306,7 +337,7 @@ open_compressed_archive () /* FD is not needed any more */ rmtclose (archive); - + hit_eof = false; /* It might have been set by find_next_block in check_compressed_archive */ @@ -565,6 +596,8 @@ _open_archive (enum access_mode wanted_access) { case ACCESS_READ: archive = open_compressed_archive (); + if (archive >= 0) + guess_seekable_archive (); break; case ACCESS_WRITE: @@ -679,6 +712,19 @@ archive_read_error (void) return; } +static bool +archive_is_dev () +{ + struct stat st; + + if (fstat (archive, &st)) + { + stat_diag (*archive_name_cursor); + return false; + } + return S_ISBLK (st.st_mode) || S_ISCHR (st.st_mode); +} + static void short_read (size_t status) { @@ -690,7 +736,8 @@ short_read (size_t status) if (left && left % BLOCKSIZE == 0 && verbose_option - && record_start_block == 0 && status != 0) + && record_start_block == 0 && status != 0 + && archive_is_dev ()) { unsigned long rsize = status / BLOCKSIZE; WARN ((0, 0, @@ -809,16 +856,16 @@ seek_archive (off_t size) off_t start = current_block_ordinal (); off_t offset; off_t nrec, nblk; - off_t skipped = (blocking_factor - (current_block - record_start)); - - size -= skipped * BLOCKSIZE; + off_t skipped = (blocking_factor - (current_block - record_start)) + * BLOCKSIZE; - if (size < record_size) + if (size <= skipped) return 0; - /* FIXME: flush? */ - + /* Compute number of records to skip */ - nrec = size / record_size; + nrec = (size - skipped) / record_size; + if (nrec == 0) + return 0; offset = rmtlseek (archive, nrec * record_size, SEEK_CUR); if (offset < 0) return offset; @@ -1084,6 +1131,7 @@ new_volume (enum access_mode mode) case ACCESS_READ: archive = rmtopen (*archive_name_cursor, O_RDONLY, MODE_RW, rsh_command_option); + guess_seekable_archive (); break; case ACCESS_WRITE: @@ -1119,7 +1167,7 @@ read_header0 (struct tar_stat_info *info) enum read_header rc; tar_stat_init (info); - rc = read_header_primitive (false, info); + rc = read_header (¤t_header, info, read_header_auto); if (rc == HEADER_SUCCESS) { set_next_block_after (current_header); @@ -1167,17 +1215,42 @@ try_new_volume () { case XGLTYPE: { - if (!read_header0 (&dummy)) - return false; + tar_stat_init (&dummy); + if (read_header (&header, &dummy, read_header_x_global) + != HEADER_SUCCESS_EXTENDED) + { + ERROR ((0, 0, _("This does not look like a tar archive"))); + return false; + } + xheader_decode (&dummy); /* decodes values from the global header */ tar_stat_destroy (&dummy); - if (!real_s_name) - { - /* We have read the extended header of the first member in - this volume. Put it back, so next read_header works as - expected. */ - current_block = record_start; - } + + /* The initial global header must be immediately followed by + an extended PAX header for the first member in this volume. + However, in some cases tar may split volumes in the middle + of a PAX header. This is incorrect, and should be fixed + in the future versions. In the meantime we must be + prepared to correctly list and extract such archives. + + If this happens, the following call to read_header returns + HEADER_FAILURE, which is ignored. + + See also tests/multiv07.at */ + + switch (read_header (&header, &dummy, read_header_auto)) + { + case HEADER_SUCCESS: + set_next_block_after (header); + break; + + case HEADER_FAILURE: + break; + + default: + ERROR ((0, 0, _("This does not look like a tar archive"))); + return false; + } break; } @@ -1264,31 +1337,57 @@ try_new_volume () } -/* Check the LABEL block against the volume label, seen as a globbing +#define VOLUME_TEXT " Volume " +#define VOLUME_TEXT_LEN (sizeof VOLUME_TEXT - 1) + +char * +drop_volume_label_suffix (const char *label) +{ + const char *p; + size_t len = strlen (label); + + if (len < 1) + return NULL; + + for (p = label + len - 1; p > label && isdigit ((unsigned char) *p); p--) + ; + if (p > label && p - (VOLUME_TEXT_LEN - 1) > label) + { + p -= VOLUME_TEXT_LEN - 1; + if (memcmp (p, VOLUME_TEXT, VOLUME_TEXT_LEN) == 0) + { + char *s = xmalloc ((len = p - label) + 1); + memcpy (s, label, len); + s[len] = 0; + return s; + } + } + + return NULL; +} + +/* Check LABEL against the volume label, seen as a globbing pattern. Return true if the pattern matches. In case of failure, retry matching a volume sequence number before giving up in multi-volume mode. */ static bool -check_label_pattern (union block *label) +check_label_pattern (const char *label) { char *string; bool result; - if (! memchr (label->header.name, '\0', sizeof label->header.name)) - return false; - - if (fnmatch (volume_label_option, label->header.name, 0) == 0) + if (fnmatch (volume_label_option, label, 0) == 0) return true; if (!multi_volume_option) return false; - string = xmalloc (strlen (volume_label_option) - + sizeof VOLUME_LABEL_APPEND + 1); - strcpy (string, volume_label_option); - strcat (string, VOLUME_LABEL_APPEND); - result = fnmatch (string, label->header.name, 0) == 0; - free (string); + string = drop_volume_label_suffix (label); + if (string) + { + result = fnmatch (string, volume_label_option, 0) == 0; + free (string); + } return result; } @@ -1297,14 +1396,43 @@ check_label_pattern (union block *label) static void match_volume_label (void) { - union block *label = find_next_block (); - - if (!label) + if (!volume_label) + { + union block *label = find_next_block (); + + if (!label) + FATAL_ERROR ((0, 0, _("Archive not labeled to match %s"), + quote (volume_label_option))); + if (label->header.typeflag == GNUTYPE_VOLHDR) + { + if (memchr (label->header.name, '\0', sizeof label->header.name)) + assign_string (&volume_label, label->header.name); + else + { + volume_label = xmalloc (sizeof (label->header.name) + 1); + memcpy (volume_label, label->header.name, + sizeof (label->header.name)); + volume_label[sizeof (label->header.name)] = 0; + } + } + else if (label->header.typeflag == XGLTYPE) + { + struct tar_stat_info st; + tar_stat_init (&st); + xheader_read (&st.xhdr, label, + OFF_FROM_HEADER (label->header.size)); + xheader_decode (&st); + tar_stat_destroy (&st); + } + } + + if (!volume_label) FATAL_ERROR ((0, 0, _("Archive not labeled to match %s"), quote (volume_label_option))); - if (!check_label_pattern (label)) + + if (!check_label_pattern (volume_label)) FATAL_ERROR ((0, 0, _("Volume %s does not match %s"), - quote_n (0, label->header.name), + quote_n (0, volume_label), quote_n (1, volume_label_option))); } diff --git a/src/common.h b/src/common.h index 9897b46c4c104a79a978fc04361f848669680342..d2de528e0e94809eef7fa0efbb1e3a8975faa3ad 100644 --- a/src/common.h +++ b/src/common.h @@ -1,7 +1,8 @@ /* Common declarations for the tar program. Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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 @@ -60,6 +61,8 @@ #define obstack_chunk_alloc xmalloc #define obstack_chunk_free free #include <obstack.h> +#include <progname.h> +#include <xvasprintf.h> #include <paxlib.h> @@ -70,9 +73,6 @@ /* Information gleaned from the command line. */ -/* Name of this program. */ -GLOBAL const char *program_name; - /* Main command option. */ enum subcommand @@ -85,7 +85,8 @@ enum subcommand DIFF_SUBCOMMAND, /* -d */ EXTRACT_SUBCOMMAND, /* -x */ LIST_SUBCOMMAND, /* -t */ - UPDATE_SUBCOMMAND /* -u */ + UPDATE_SUBCOMMAND, /* -u */ + TEST_LABEL_SUBCOMMAND, /* --test-label */ }; GLOBAL enum subcommand subcommand_option; @@ -185,6 +186,8 @@ GLOBAL enum old_files old_files_option; /* Specified file name for incremental list. */ GLOBAL const char *listed_incremental_option; +/* Incremental dump level */ +GLOBAL int incremental_level; /* Check device numbers when doing incremental dumps. */ GLOBAL bool check_device_option; @@ -318,25 +321,41 @@ GLOBAL const char **archive_name_cursor; /* Output index file name. */ GLOBAL char const *index_file_name; +/* Opaque structure for keeping directory meta-data */ +struct directory; + /* Structure for keeping track of filenames and lists thereof. */ struct name { struct name *next; /* Link to the next element */ + struct name *prev; /* Link to the previous element */ + + char *name; /* File name or globbing pattern */ + size_t length; /* cached strlen (name) */ + int matching_flags; /* wildcard flags if name is a pattern */ + bool cmdline; /* true if this name was given in the + command line */ + int change_dir; /* Number of the directory to change to. Set with the -C option. */ uintmax_t found_count; /* number of times a matching file has been found */ - int matching_flags; /* this name is a regexp, not literal */ - char const *dir_contents; /* for incremental_option */ - - size_t length; /* cached strlen(name) */ - char name[1]; + + /* The following members are used for incremental dumps only, + if this struct name represents a directory; + see incremen.c */ + struct directory *directory;/* directory meta-data and contents */ + struct name *parent; /* pointer to the parent hierarchy */ + struct name *child; /* pointer to the first child */ + struct name *sibling; /* pointer to the next sibling */ + char *caname; /* canonical name */ }; /* Obnoxious test to see if dimwit is trying to dump the archive. */ GLOBAL dev_t ar_dev; GLOBAL ino_t ar_ino; +GLOBAL int seek_option; GLOBAL bool seekable_archive; GLOBAL dev_t root_device; @@ -344,8 +363,6 @@ GLOBAL dev_t root_device; /* Unquote filenames */ GLOBAL bool unquote_option; -GLOBAL bool test_label_option; /* Test archive volume label and exit */ - /* Show file or archive names after transformation. In particular, when creating archive in verbose mode, list member names as stored in the archive */ @@ -379,9 +396,13 @@ extern enum access_mode access_mode; extern FILE *stdlis; extern bool write_archive_to_stdout; extern char *volume_label; +extern size_t volume_label_count; extern char *continued_file_name; extern uintmax_t continued_file_size; extern uintmax_t continued_file_offset; +extern off_t records_written; + +char *drop_volume_label_suffix (const char *label); size_t available_space_after (union block *pointer); off_t current_block_ordinal (void); @@ -428,19 +449,19 @@ bool cachedir_file_p (const char *name); bool file_dumpable_p (struct tar_stat_info *st); void create_archive (void); void pad_archive (off_t size_left); -void dump_file (const char *st, int top_level, dev_t parent_device); +void dump_file (const char *st, bool top_level, dev_t parent_device); union block *start_header (struct tar_stat_info *st); void finish_header (struct tar_stat_info *st, union block *header, off_t block_ordinal); void simple_finish_header (union block *header); union block * write_extended (bool global, struct tar_stat_info *st, union block *old_header); -union block *start_private_header (const char *name, size_t size); +union block *start_private_header (const char *name, size_t size, time_t t); void write_eot (void); void check_links (void); void exclusion_tag_warning (const char *dirname, const char *tagname, const char *message); -enum exclusion_tag_type check_exclusion_tags (char *dirname, +enum exclusion_tag_type check_exclusion_tags (const char *dirname, const char **tag_file_name); #define GID_TO_CHARS(val, where) gid_to_chars (val, where, sizeof (where)) @@ -496,9 +517,16 @@ char *dumpdir_locate (dumpdir_t dump, const char *name); char *dumpdir_next (dumpdir_iter_t itr); char *dumpdir_first (dumpdir_t dump, int all, dumpdir_iter_t *pitr); +struct directory *scan_directory (char *dir, dev_t device, bool cmdline); +void name_fill_directory (struct name *name, dev_t device, bool cmdline); +const char *directory_contents (struct directory *dir); +const char *safe_directory_contents (struct directory *dir); + +void rebase_directory (struct directory *dir, + const char *samp, size_t slen, + const char *repl, size_t rlen); -const char *get_directory_contents (char *dir_name, dev_t device); -const char *append_incremental_renames (const char *dump); +void append_incremental_renames (struct directory *dir); void read_directory_file (void); void write_directory_file (void); void purge_directory (char const *directory_name); @@ -520,6 +548,17 @@ enum read_header HEADER_FAILURE /* ill-formed header, or bad checksum */ }; +/* Operation mode for read_header: */ + +enum read_header_mode +{ + read_header_auto, /* process extended headers automatically */ + read_header_x_raw, /* return raw extended headers (return + HEADER_SUCCESS_EXTENDED) */ + read_header_x_global /* when POSIX global extended header is read, + decode it and return + HEADER_SUCCESS_EXTENDED */ +}; extern union block *current_header; extern enum archive_format current_format; extern size_t recent_long_name_blocks; @@ -532,7 +571,8 @@ char const *tartime (struct timespec t, bool full_time); #define GID_FROM_HEADER(where) gid_from_header (where, sizeof (where)) #define MAJOR_FROM_HEADER(where) major_from_header (where, sizeof (where)) #define MINOR_FROM_HEADER(where) minor_from_header (where, sizeof (where)) -#define MODE_FROM_HEADER(where) mode_from_header (where, sizeof (where)) +#define MODE_FROM_HEADER(where, hbits) \ + mode_from_header (where, sizeof (where), hbits) #define OFF_FROM_HEADER(where) off_from_header (where, sizeof (where)) #define SIZE_FROM_HEADER(where) size_from_header (where, sizeof (where)) #define TIME_FROM_HEADER(where) time_from_header (where, sizeof (where)) @@ -542,20 +582,22 @@ char const *tartime (struct timespec t, bool full_time); gid_t gid_from_header (const char *buf, size_t size); major_t major_from_header (const char *buf, size_t size); minor_t minor_from_header (const char *buf, size_t size); -mode_t mode_from_header (const char *buf, size_t size); +mode_t mode_from_header (const char *buf, size_t size, unsigned *hbits); off_t off_from_header (const char *buf, size_t size); size_t size_from_header (const char *buf, size_t size); time_t time_from_header (const char *buf, size_t size); uid_t uid_from_header (const char *buf, size_t size); -uintmax_t uintmax_from_header (const char * buf, size_t size); +uintmax_t uintmax_from_header (const char *buf, size_t size); void list_archive (void); +void test_archive_label (void); void print_for_mkdir (char *dirname, int length, mode_t mode); -void print_header (struct tar_stat_info *st, off_t block_ordinal); +void print_header (struct tar_stat_info *st, union block *blk, + off_t block_ordinal); void read_and (void (*do_something) (void)); -enum read_header read_header_primitive (bool raw_extended_headers, - struct tar_stat_info *info); -enum read_header read_header (bool raw_extended_headers); +enum read_header read_header (union block **return_block, + struct tar_stat_info *info, + enum read_header_mode m); enum read_header tar_checksum (union block *header, bool silent); void skip_file (off_t size); void skip_member (void); @@ -565,6 +607,15 @@ void skip_member (void); void assign_string (char **dest, const char *src); char *quote_copy_string (const char *str); int unquote_string (char *str); +char *zap_slashes (char *name); +char *normalize_filename (const char *name); +void replace_prefix (char **pname, const char *samp, size_t slen, + const char *repl, size_t rlen); + +typedef struct namebuf *namebuf_t; +namebuf_t namebuf_create (const char *dir); +void namebuf_free (namebuf_t buf); +char *namebuf_name (namebuf_t buf, const char *name); void code_ns_fraction (int ns, char *p); char const *code_timespec (struct timespec ts, char *sbuf); @@ -594,6 +645,7 @@ int deref_stat (bool deref, char const *name, struct stat *buf); int chdir_arg (char const *dir); void chdir_do (int dir); +int chdir_count (void); void close_diag (char const *name); void open_diag (char const *name); @@ -602,6 +654,10 @@ void readlink_diag (char const *name); void savedir_diag (char const *name); void seek_diag_details (char const *name, off_t offset); void stat_diag (char const *name); +void file_removed_diag (const char *name, bool top_level, + void (*diagfn) (char const *name)); +void dir_removed_diag (char const *name, bool top_level, + void (*diagfn) (char const *name)); void write_error_details (char const *name, size_t status, size_t size); void write_fatal (char const *name) __attribute__ ((noreturn)); void write_fatal_details (char const *name, ssize_t status, size_t size) @@ -629,12 +685,14 @@ void name_add_dir (const char *name); void name_term (void); const char *name_next (int change_dirs); void name_gather (void); -struct name *addname (char const *string, int change_dir); +struct name *addname (char const *string, int change_dir, + bool cmdline, struct name *parent); +void remname (struct name *name); bool name_match (const char *name); void names_notfound (void); void collect_and_sort_names (void); struct name *name_scan (const char *name); -char *name_from_list (void); +struct name const *name_from_list (void); void blank_name_list (void); char *new_name (const char *dir_name, const char *name); size_t stripped_prefix_len (char const *file_name, size_t num); @@ -666,6 +724,7 @@ void usage (int) __attribute__ ((noreturn)); int tar_timespec_cmp (struct timespec a, struct timespec b); const char *archive_format_string (enum archive_format fmt); const char *subcommand_string (enum subcommand c); +void set_exit_status (int val); /* Module update.c. */ @@ -681,7 +740,7 @@ void xheader_decode_global (struct xheader *xhdr); void xheader_store (char const *keyword, struct tar_stat_info *st, void const *data); void xheader_read (struct xheader *xhdr, union block *header, size_t size); -void xheader_write (char type, char *name, struct xheader *xhdr); +void xheader_write (char type, char *name, time_t t, struct xheader *xhdr); void xheader_write_global (struct xheader *xhdr); void xheader_finish (struct xheader *hdr); void xheader_destroy (struct xheader *hdr); @@ -752,3 +811,49 @@ void set_comression_program_by_suffix (const char *name, const char *defprog); void checkpoint_compile_action (const char *str); void checkpoint_finish_compile (void); void checkpoint_run (bool do_write); + +/* Module warning.c */ +#define WARN_ALONE_ZERO_BLOCK 0x00000001 +#define WARN_BAD_DUMPDIR 0x00000002 +#define WARN_CACHEDIR 0x00000004 +#define WARN_CONTIGUOUS_CAST 0x00000008 +#define WARN_FILE_CHANGED 0x00000010 +#define WARN_FILE_IGNORED 0x00000020 +#define WARN_FILE_REMOVED 0x00000040 +#define WARN_FILE_SHRANK 0x00000080 +#define WARN_FILE_UNCHANGED 0x00000100 +#define WARN_FILENAME_WITH_NULS 0x00000200 +#define WARN_IGNORE_ARCHIVE 0x00000400 +#define WARN_IGNORE_NEWER 0x00000800 +#define WARN_NEW_DIRECTORY 0x00001000 +#define WARN_RENAME_DIRECTORY 0x00002000 +#define WARN_SYMLINK_CAST 0x00004000 +#define WARN_TIMESTAMP 0x00008000 +#define WARN_UNKNOWN_CAST 0x00010000 +#define WARN_UNKNOWN_KEYWORD 0x00020000 +#define WARN_XDEV 0x00040000 + +/* The warnings composing WARN_VERBOSE_WARNINGS are enabled by default + in verbose mode */ +#define WARN_VERBOSE_WARNINGS (WARN_RENAME_DIRECTORY|WARN_NEW_DIRECTORY) +#define WARN_ALL (0xffffffff & ~WARN_VERBOSE_WARNINGS) + +void set_warning_option (const char *arg); + +extern int warning_option; + +#define WARNOPT(opt,args) \ + do \ + { \ + if (warning_option & opt) WARN (args); \ + } \ + while (0) + +/* Module unlink.c */ + +void queue_deferred_unlink (const char *name, bool is_dir); +void finish_deferred_unlinks (void); + +/* Module exit.c */ +extern void (*fatal_exit_hook) (void); + diff --git a/src/compare.c b/src/compare.c index 66205cb7e34fb63416179da0937fd755b3249e85..f4e92da58f0fa6cf81825ba9c09fa2f502700522 100644 --- a/src/compare.c +++ b/src/compare.c @@ -1,7 +1,7 @@ /* Diff files from a tar archive. Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. Written by John Gilmore, on 1987-04-30. @@ -66,8 +66,7 @@ report_difference (struct tar_stat_info *st, const char *fmt, ...) fprintf (stdlis, "\n"); } - if (exit_status == TAREXIT_SUCCESS) - exit_status = TAREXIT_DIFFERS; + set_exit_status (TAREXIT_DIFFERS); } /* Take a buffer returned by read_and_process and do nothing with it. */ @@ -380,7 +379,8 @@ diff_dumpdir (void) else dev = stat_data.st_dev; - dumpdir_buffer = get_directory_contents (current_stat_info.file_name, dev); + dumpdir_buffer = directory_contents + (scan_directory (current_stat_info.file_name, dev, false)); if (dumpdir_buffer) { @@ -460,7 +460,7 @@ diff_archive (void) { if (now_verifying) fprintf (stdlis, _("Verify ")); - print_header (¤t_stat_info, -1); + print_header (¤t_stat_info, current_header, -1); } switch (current_header->header.typeflag) @@ -578,7 +578,9 @@ verify_volume (void) flush_read (); while (1) { - enum read_header status = read_header (false); + enum read_header status = read_header (¤t_header, + ¤t_stat_info, + read_header_auto); if (status == HEADER_FAILURE) { @@ -588,7 +590,8 @@ verify_volume (void) { counter++; set_next_block_after (current_header); - status = read_header (false); + status = read_header (¤t_header, ¤t_stat_info, + read_header_auto); } while (status == HEADER_FAILURE); @@ -606,11 +609,13 @@ verify_volume (void) { char buf[UINTMAX_STRSIZE_BOUND]; - status = read_header (false); + status = read_header (¤t_header, ¤t_stat_info, + read_header_auto); if (status == HEADER_ZERO_BLOCK) break; - WARN ((0, 0, _("A lone zero block at %s"), - STRINGIFY_BIGINT (current_block_ordinal (), buf))); + WARNOPT (WARN_ALONE_ZERO_BLOCK, + (0, 0, _("A lone zero block at %s"), + STRINGIFY_BIGINT (current_block_ordinal (), buf))); } } diff --git a/src/create.c b/src/create.c index a925160e1be90c5b5b0cab7cc301a3ec3e7135fc..c69d3406a1c859b52afd2695b9136e1bd9885b9a 100644 --- a/src/create.c +++ b/src/create.c @@ -1,7 +1,7 @@ /* Create a tar archive. Copyright (C) 1985, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. Written by John Gilmore, on 1985-08-25. @@ -63,22 +63,23 @@ exclusion_tag_warning (const char *dirname, const char *tagname, const char *message) { if (verbose_option) - WARN ((0, 0, - _("%s: contains a cache directory tag %s; %s"), - quotearg_colon (dirname), - quotearg_n (1, tagname), - message)); + WARNOPT (WARN_CACHEDIR, + (0, 0, + _("%s: contains a cache directory tag %s; %s"), + quotearg_colon (dirname), + quotearg_n (1, tagname), + message)); } enum exclusion_tag_type -check_exclusion_tags (char *dirname, const char **tag_file_name) +check_exclusion_tags (const char *dirname, const char **tag_file_name) { static char *tagname; static size_t tagsize; struct exclusion_tag *tag; size_t dlen = strlen (dirname); - int addslash = dirname[dlen-1] != '/'; - char *nptr = NULL; + int addslash = !ISSLASH (dirname[dlen-1]); + size_t noff = 0; for (tag = exclusion_tags; tag; tag = tag->next) { @@ -89,14 +90,14 @@ check_exclusion_tags (char *dirname, const char **tag_file_name) tagname = xrealloc (tagname, tagsize); } - if (!nptr) + if (noff == 0) { strcpy (tagname, dirname); - nptr = tagname + dlen; + noff = dlen; if (addslash) - *nptr++ = '/'; + tagname[noff++] = '/'; } - strcpy (nptr, tag->name); + strcpy (tagname + noff, tag->name); if (access (tagname, F_OK) == 0 && (!tag->predicate || tag->predicate (tagname))) { @@ -401,8 +402,7 @@ mode_to_chars (mode_t v, char *p, size_t s) && S_IROTH == TOREAD && S_IWOTH == TOWRITE && S_IXOTH == TOEXEC && archive_format != POSIX_FORMAT && archive_format != USTAR_FORMAT - && archive_format != GNU_FORMAT - && archive_format != OLDGNU_FORMAT) + && archive_format != GNU_FORMAT) { negative = v < 0; u = v; @@ -515,9 +515,8 @@ write_eot (void) /* Write a "private" header */ union block * -start_private_header (const char *name, size_t size) +start_private_header (const char *name, size_t size, time_t t) { - time_t t; union block *header = find_next_block (); memset (header->buffer, 0, sizeof (union block)); @@ -525,7 +524,6 @@ start_private_header (const char *name, size_t size) tar_name_copy_str (header->header.name, name, NAME_FIELD_SIZE); OFF_TO_CHARS (size, header->header.size); - time (&t); TIME_TO_CHARS (t, header->header.mtime); MODE_TO_CHARS (S_IFREG|S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, header->header.mode); UID_TO_CHARS (getuid (), header->header.uid); @@ -563,13 +561,13 @@ write_gnu_long_link (struct tar_stat_info *st, const char *p, char type) union block *header; char *tmpname; - header = start_private_header ("././@LongLink", size); - FILL(header->header.mtime, '0'); - FILL(header->header.mode, '0'); - FILL(header->header.uid, '0'); - FILL(header->header.gid, '0'); - FILL(header->header.devmajor, 0); - FILL(header->header.devminor, 0); + header = start_private_header ("././@LongLink", size, time (NULL)); + FILL (header->header.mtime, '0'); + FILL (header->header.mode, '0'); + FILL (header->header.uid, '0'); + FILL (header->header.gid, '0'); + FILL (header->header.devmajor, 0); + FILL (header->header.devminor, 0); uid_to_uname (0, &tmpname); UNAME_TO_CHARS (tmpname, header->header.uname); free (tmpname); @@ -604,8 +602,10 @@ split_long_name (const char *name, size_t length) { size_t i; - if (length > PREFIX_FIELD_SIZE) + if (length > PREFIX_FIELD_SIZE + 1) length = PREFIX_FIELD_SIZE + 1; + else if (ISSLASH (name[length - 1])) + length--; for (i = length - 1; i > 0; i--) if (ISSLASH (name[i])) break; @@ -616,9 +616,9 @@ static union block * write_ustar_long_name (const char *name) { size_t length = strlen (name); - size_t i; + size_t i, nlen; union block *header; - + if (length > PREFIX_FIELD_SIZE + NAME_FIELD_SIZE + 1) { ERROR ((0, 0, _("%s: file name is too long (max %d); not dumped"), @@ -628,7 +628,7 @@ write_ustar_long_name (const char *name) } i = split_long_name (name, length); - if (i == 0 || length - i - 1 > NAME_FIELD_SIZE) + if (i == 0 || (nlen = length - i - 1) > NAME_FIELD_SIZE || nlen == 0) { ERROR ((0, 0, _("%s: file name is too long (cannot be split); not dumped"), @@ -712,7 +712,8 @@ write_extended (bool global, struct tar_stat_info *st, union block *old_header) union block *header, hp; char *p; int type; - + time_t t; + if (st->xhdr.buffer || st->xhdr.stk == NULL) return old_header; @@ -722,13 +723,15 @@ write_extended (bool global, struct tar_stat_info *st, union block *old_header) { type = XGLTYPE; p = xheader_ghdr_name (); + time (&t); } else { type = XHDTYPE; p = xheader_xhdr_name (st); + t = st->stat.st_mtime; } - xheader_write (type, p, &st->xhdr); + xheader_write (type, p, t, &st->xhdr); free (p); header = find_next_block (); memcpy (header, &hp.buffer, sizeof (hp.buffer)); @@ -993,11 +996,9 @@ finish_header (struct tar_stat_info *st, && header->header.typeflag != XHDTYPE && header->header.typeflag != XGLTYPE) { - /* These globals are parameters to print_header, sigh. */ - - current_header = header; + /* FIXME: This global is used in print_header, sigh. */ current_format = archive_format; - print_header (st, block_ordinal); + print_header (st, header, block_ordinal); } header = write_extended (false, st, header); @@ -1072,14 +1073,15 @@ dump_regular_file (int fd, struct tar_stat_info *st) { char buf[UINTMAX_STRSIZE_BOUND]; memset (blk->buffer + count, 0, bufsize - count); - WARN ((0, 0, - ngettext ("%s: File shrank by %s byte; padding with zeros", - "%s: File shrank by %s bytes; padding with zeros", - size_left), - quotearg_colon (st->orig_file_name), - STRINGIFY_BIGINT (size_left, buf))); + WARNOPT (WARN_FILE_SHRANK, + (0, 0, + ngettext ("%s: File shrank by %s byte; padding with zeros", + "%s: File shrank by %s bytes; padding with zeros", + size_left), + quotearg_colon (st->orig_file_name), + STRINGIFY_BIGINT (size_left, buf))); if (! ignore_failed_read_option) - exit_status = TAREXIT_DIFFERS; + set_exit_status (TAREXIT_DIFFERS); pad_archive (size_left - (bufsize - count)); return dump_status_short; } @@ -1090,79 +1092,74 @@ dump_regular_file (int fd, struct tar_stat_info *st) static void dump_dir0 (char *directory, - struct tar_stat_info *st, int top_level, dev_t parent_device) + struct tar_stat_info *st, bool top_level, dev_t parent_device) { dev_t our_device = st->stat.st_dev; const char *tag_file_name; - - if (!is_avoided_name (st->orig_file_name)) - { - union block *blk = NULL; - off_t block_ordinal = current_block_ordinal (); - st->stat.st_size = 0; /* force 0 size on dir */ + union block *blk = NULL; + off_t block_ordinal = current_block_ordinal (); - blk = start_header (st); - if (!blk) - return; + st->stat.st_size = 0; /* force 0 size on dir */ + + blk = start_header (st); + if (!blk) + return; - if (incremental_option && archive_format != POSIX_FORMAT) - blk->header.typeflag = GNUTYPE_DUMPDIR; - else /* if (standard_option) */ - blk->header.typeflag = DIRTYPE; + if (incremental_option && archive_format != POSIX_FORMAT) + blk->header.typeflag = GNUTYPE_DUMPDIR; + else /* if (standard_option) */ + blk->header.typeflag = DIRTYPE; - /* If we're gnudumping, we aren't done yet so don't close it. */ + /* If we're gnudumping, we aren't done yet so don't close it. */ - if (!incremental_option) - finish_header (st, blk, block_ordinal); - else if (gnu_list_name->dir_contents) + if (!incremental_option) + finish_header (st, blk, block_ordinal); + else if (gnu_list_name->directory) + { + if (archive_format == POSIX_FORMAT) { - if (archive_format == POSIX_FORMAT) - { - xheader_store ("GNU.dumpdir", st, gnu_list_name->dir_contents); - finish_header (st, blk, block_ordinal); - } - else + xheader_store ("GNU.dumpdir", st, + safe_directory_contents (gnu_list_name->directory)); + finish_header (st, blk, block_ordinal); + } + else + { + off_t size_left; + off_t totsize; + size_t bufsize; + ssize_t count; + const char *buffer, *p_buffer; + + block_ordinal = current_block_ordinal (); + buffer = safe_directory_contents (gnu_list_name->directory); + totsize = dumpdir_size (buffer); + OFF_TO_CHARS (totsize, blk->header.size); + finish_header (st, blk, block_ordinal); + p_buffer = buffer; + size_left = totsize; + + mv_begin (st); + mv_total_size (totsize); + while (size_left > 0) { - off_t size_left; - off_t totsize; - size_t bufsize; - ssize_t count; - const char *buffer, *p_buffer; - - block_ordinal = current_block_ordinal (); - buffer = gnu_list_name->dir_contents; - if (buffer) - totsize = dumpdir_size (buffer); - else - totsize = 0; - OFF_TO_CHARS (totsize, blk->header.size); - finish_header (st, blk, block_ordinal); - p_buffer = buffer; - size_left = totsize; - - mv_begin (st); - mv_total_size (totsize); - while (size_left > 0) + mv_size_left (size_left); + blk = find_next_block (); + bufsize = available_space_after (blk); + if (size_left < bufsize) { - mv_size_left (size_left); - blk = find_next_block (); - bufsize = available_space_after (blk); - if (size_left < bufsize) - { - bufsize = size_left; - count = bufsize % BLOCKSIZE; - if (count) - memset (blk->buffer + size_left, 0, BLOCKSIZE - count); - } - memcpy (blk->buffer, p_buffer, bufsize); - size_left -= bufsize; - p_buffer += bufsize; - set_next_block_after (blk + (bufsize - 1) / BLOCKSIZE); + bufsize = size_left; + count = bufsize % BLOCKSIZE; + if (count) + memset (blk->buffer + size_left, 0, BLOCKSIZE - count); } - mv_end (); + memcpy (blk->buffer, p_buffer, bufsize); + size_left -= bufsize; + p_buffer += bufsize; + set_next_block_after (blk + (bufsize - 1) / BLOCKSIZE); } - return; + mv_end (); } + return; } if (!recursion_option) @@ -1173,9 +1170,10 @@ dump_dir0 (char *directory, && parent_device != st->stat.st_dev) { if (verbose_option) - WARN ((0, 0, - _("%s: file is on a different filesystem; not dumped"), - quotearg_colon (st->orig_file_name))); + WARNOPT (WARN_XDEV, + (0, 0, + _("%s: file is on a different filesystem; not dumped"), + quotearg_colon (st->orig_file_name))); } else { @@ -1209,7 +1207,7 @@ dump_dir0 (char *directory, } strcpy (name_buf + name_len, entry); if (!excluded_name (name_buf)) - dump_file (name_buf, 0, our_device); + dump_file (name_buf, false, our_device); } free (name_buf); @@ -1223,7 +1221,7 @@ dump_dir0 (char *directory, name_buf = xmalloc (name_size); strcpy (name_buf, st->orig_file_name); strcat (name_buf, tag_file_name); - dump_file (name_buf, 0, our_device); + dump_file (name_buf, false, our_device); free (name_buf); break; @@ -1249,7 +1247,8 @@ ensure_slash (char **pstr) } static bool -dump_dir (int fd, struct tar_stat_info *st, int top_level, dev_t parent_device) +dump_dir (int fd, struct tar_stat_info *st, bool top_level, + dev_t parent_device) { char *directory = fdsavedir (fd); if (!directory) @@ -1270,7 +1269,7 @@ dump_dir (int fd, struct tar_stat_info *st, int top_level, dev_t parent_device) void create_archive (void) { - const char *p; + struct name const *p; open_archive (ACCESS_WRITE); buffer_write_global_xheader (); @@ -1284,24 +1283,24 @@ create_archive (void) collect_and_sort_names (); while ((p = name_from_list ()) != NULL) - if (!excluded_name (p)) - dump_file (p, -1, (dev_t) 0); + if (!excluded_name (p->name)) + dump_file (p->name, p->cmdline, (dev_t) 0); blank_name_list (); while ((p = name_from_list ()) != NULL) - if (!excluded_name (p)) + if (!excluded_name (p->name)) { - size_t plen = strlen (p); + size_t plen = strlen (p->name); if (buffer_size <= plen) { while ((buffer_size *= 2) <= plen) continue; buffer = xrealloc (buffer, buffer_size); } - memcpy (buffer, p, plen); + memcpy (buffer, p->name, plen); if (! ISSLASH (buffer[plen - 1])) - buffer[plen++] = '/'; - q = gnu_list_name->dir_contents; + buffer[plen++] = DIRECTORY_SEPARATOR; + q = directory_contents (gnu_list_name->directory); if (q) while (*q) { @@ -1315,7 +1314,7 @@ create_archive (void) buffer = xrealloc (buffer, buffer_size); } strcpy (buffer + plen, q + 1); - dump_file (buffer, -1, (dev_t) 0); + dump_file (buffer, false, (dev_t) 0); } q += qlen + 1; } @@ -1324,14 +1323,15 @@ create_archive (void) } else { - while ((p = name_next (1)) != NULL) - if (!excluded_name (p)) - dump_file (p, 1, (dev_t) 0); + const char *name; + while ((name = name_next (1)) != NULL) + if (!excluded_name (name)) + dump_file (name, true, (dev_t) 0); } write_eot (); close_archive (); - + finish_deferred_unlinks (); if (listed_incremental_option) write_directory_file (); } @@ -1358,10 +1358,11 @@ compare_links (void const *entry1, void const *entry2) static void unknown_file_error (char const *p) { - WARN ((0, 0, _("%s: Unknown file type; file ignored"), - quotearg_colon (p))); + WARNOPT (WARN_FILE_IGNORED, + (0, 0, _("%s: Unknown file type; file ignored"), + quotearg_colon (p))); if (!ignore_failed_read_option) - exit_status = TAREXIT_FAILURE; + set_exit_status (TAREXIT_FAILURE); } @@ -1377,7 +1378,7 @@ static Hash_table *link_table; static bool dump_hard_link (struct tar_stat_info *st) { - if (link_table && st->stat.st_nlink > 1) + if (link_table && (st->stat.st_nlink > 1 || remove_files_option)) { struct link lp; struct link *duplicate; @@ -1410,8 +1411,8 @@ dump_hard_link (struct tar_stat_info *st) blk->header.typeflag = LNKTYPE; finish_header (st, blk, block_ordinal); - if (remove_files_option && unlink (st->orig_file_name) != 0) - unlink_error (st->orig_file_name); + if (remove_files_option) + queue_deferred_unlink (st->orig_file_name, false); return true; } @@ -1427,19 +1428,26 @@ file_count_links (struct tar_stat_info *st) if (st->stat.st_nlink > 1) { struct link *duplicate; - struct link *lp = xmalloc (offsetof (struct link, name) - + strlen (st->orig_file_name) + 1); + char *linkname = NULL; + struct link *lp; + + assign_string (&linkname, st->orig_file_name); + transform_name (&linkname, XFORM_LINK); + + lp = xmalloc (offsetof (struct link, name) + + strlen (linkname) + 1); lp->ino = st->stat.st_ino; lp->dev = st->stat.st_dev; lp->nlink = st->stat.st_nlink; - strcpy (lp->name, st->orig_file_name); - + strcpy (lp->name, linkname); + free (linkname); + if (! ((link_table || (link_table = hash_initialize (0, 0, hash_link, compare_links, 0))) && (duplicate = hash_insert (link_table, lp)))) xalloc_die (); - + if (duplicate != lp) abort (); lp->nlink--; @@ -1461,12 +1469,11 @@ check_links (void) { if (lp->nlink) { - WARN ((0, 0, _("Missing links to %s.\n"), quote (lp->name))); + WARN ((0, 0, _("Missing links to %s."), quote (lp->name))); } } } - /* Dump a single file, recursing on directories. P is the file name to dump. TOP_LEVEL tells whether this is a top-level call; zero means no, positive means yes, and negative means the top level @@ -1478,7 +1485,7 @@ check_links (void) static void dump_file0 (struct tar_stat_info *st, const char *p, - int top_level, dev_t parent_device) + bool top_level, dev_t parent_device) { union block *header; char type; @@ -1499,7 +1506,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, if (deref_stat (dereference_option, p, &st->stat) != 0) { - stat_diag (p); + file_removed_diag (p, top_level, stat_diag); return; } st->archive_file_size = original_size = st->stat.st_size; @@ -1522,32 +1529,31 @@ dump_file0 (struct tar_stat_info *st, const char *p, /* See if we want only new files, and check if this one is too old to put in the archive. - + This check is omitted if incremental_option is set *and* the requested file is not explicitely listed in the command line. */ - + if (!(incremental_option && !is_individual_file (p)) && !S_ISDIR (st->stat.st_mode) && OLDER_TAR_STAT_TIME (*st, m) && (!after_date_option || OLDER_TAR_STAT_TIME (*st, c))) { if (!incremental_option && verbose_option) - WARN ((0, 0, _("%s: file is unchanged; not dumped"), - quotearg_colon (p))); + WARNOPT (WARN_FILE_UNCHANGED, + (0, 0, _("%s: file is unchanged; not dumped"), + quotearg_colon (p))); return; } /* See if we are trying to dump the archive. */ if (sys_file_is_archive (st)) { - WARN ((0, 0, _("%s: file is the archive; not dumped"), - quotearg_colon (p))); + WARNOPT (WARN_IGNORE_ARCHIVE, + (0, 0, _("%s: file is the archive; not dumped"), + quotearg_colon (p))); return; } - if (is_avoided_name (p)) - return; - is_dir = S_ISDIR (st->stat.st_mode) != 0; if (!is_dir && dump_hard_link (st)) @@ -1569,11 +1575,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, : 0))); if (fd < 0) { - if (!top_level && errno == ENOENT) - WARN ((0, 0, _("%s: File removed before we read it"), - quotearg_colon (p))); - else - open_diag (p); + file_removed_diag (p, top_level, open_diag); return; } } @@ -1589,6 +1591,8 @@ dump_file0 (struct tar_stat_info *st, const char *p, { exclusion_tag_warning (st->orig_file_name, tag_file_name, _("directory not dumped")); + if (fd >= 0) + close (fd); return; } @@ -1643,7 +1647,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, : fstat (fd, &final_stat)) != 0) { - stat_diag (p); + file_removed_diag (p, top_level, stat_diag); ok = false; } } @@ -1656,10 +1660,10 @@ dump_file0 (struct tar_stat_info *st, const char *p, && !(remove_files_option && is_dir)) || original_size < final_stat.st_size) { - WARN ((0, 0, _("%s: file changed as we read it"), - quotearg_colon (p))); - if (exit_status == TAREXIT_SUCCESS) - exit_status = TAREXIT_DIFFERS; + WARNOPT (WARN_FILE_CHANGED, + (0, 0, _("%s: file changed as we read it"), + quotearg_colon (p))); + set_exit_status (TAREXIT_DIFFERS); } else if (atime_preserve_option == replace_atime_preserve && set_file_atime (fd, p, restore_times) != 0) @@ -1673,18 +1677,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, } if (ok && remove_files_option) - { - if (is_dir) - { - if (rmdir (p) != 0 && errno != ENOTEMPTY) - rmdir_error (p); - } - else - { - if (unlink (p) != 0) - unlink_error (p); - } - } + queue_deferred_unlink (p, is_dir); return; } @@ -1700,7 +1693,7 @@ dump_file0 (struct tar_stat_info *st, const char *p, size = readlink (p, buffer, linklen + 1); if (size < 0) { - readlink_diag (p); + file_removed_diag (p, top_level, readlink_diag); return; } buffer[size] = '\0'; @@ -1720,10 +1713,8 @@ dump_file0 (struct tar_stat_info *st, const char *p, /* nothing more to do to it */ if (remove_files_option) - { - if (unlink (p) == -1) - unlink_error (p); - } + queue_deferred_unlink (p, false); + file_count_links (st); return; } @@ -1736,12 +1727,14 @@ dump_file0 (struct tar_stat_info *st, const char *p, type = FIFOTYPE; else if (S_ISSOCK (st->stat.st_mode)) { - WARN ((0, 0, _("%s: socket ignored"), quotearg_colon (p))); + WARNOPT (WARN_FILE_IGNORED, + (0, 0, _("%s: socket ignored"), quotearg_colon (p))); return; } else if (S_ISDOOR (st->stat.st_mode)) { - WARN ((0, 0, _("%s: door ignored"), quotearg_colon (p))); + WARNOPT (WARN_FILE_IGNORED, + (0, 0, _("%s: door ignored"), quotearg_colon (p))); return; } else @@ -1773,14 +1766,11 @@ dump_file0 (struct tar_stat_info *st, const char *p, finish_header (st, header, block_ordinal); if (remove_files_option) - { - if (unlink (p) == -1) - unlink_error (p); - } + queue_deferred_unlink (p, false); } void -dump_file (const char *p, int top_level, dev_t parent_device) +dump_file (const char *p, bool top_level, dev_t parent_device) { struct tar_stat_info st; tar_stat_init (&st); diff --git a/src/delete.c b/src/delete.c index d59a857f5f9b663adfbdab89f39eba048e7edf80..75dc01f8961f532bcccd87e18924236f58e01690 100644 --- a/src/delete.c +++ b/src/delete.c @@ -1,7 +1,7 @@ /* Delete entries from a tar archive. Copyright (C) 1988, 1992, 1994, 1996, 1997, 2000, 2001, 2003, 2004, - 2005, 2006 Free Software Foundation, Inc. + 2005, 2006, 2010 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 @@ -35,7 +35,6 @@ extern union block *current_block; extern union block *recent_long_name; extern union block *recent_long_link; extern off_t records_read; -extern off_t records_written; /* The number of records skipped at the start of the archive, when passing over members that are not deleted. */ @@ -166,7 +165,9 @@ delete_archive_members (void) do { - enum read_header status = read_header (true); + enum read_header status = read_header (¤t_header, + ¤t_stat_info, + read_header_x_raw); switch (status) { @@ -261,7 +262,8 @@ delete_archive_members (void) if (current_block == record_end) flush_archive (); - status = read_header (false); + status = read_header (¤t_header, ¤t_stat_info, + read_header_auto); xheader_decode (¤t_stat_info); diff --git a/src/exit.c b/src/exit.c new file mode 100644 index 0000000000000000000000000000000000000000..ad4d27cfe7b08097deebd97e3467440224e3a6a0 --- /dev/null +++ b/src/exit.c @@ -0,0 +1,37 @@ +/* This file is part of GNU tar. + Copyright (C) 2009 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, 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#include <system.h> +#include "common.h" + +void (*fatal_exit_hook) (void); + +void +fatal_exit (void) +{ + if (fatal_exit_hook) + fatal_exit_hook (); + error (TAREXIT_FAILURE, 0, _("Error is not recoverable: exiting now")); + abort (); +} + +void +xalloc_die (void) +{ + error (0, 0, "%s", _("memory exhausted")); + fatal_exit (); +} diff --git a/src/extract.c b/src/extract.c index 6d703980c3235b9b4244ecb825bad70460b97486..32a883f6592f23a505410a4b09d03b2e066f1e1f 100644 --- a/src/extract.c +++ b/src/extract.c @@ -1,7 +1,7 @@ /* Extract files from a tar archive. Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, - 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + 2001, 2003, 2004, 2005, 2006, 2007, 2010 Free Software Foundation, Inc. Written by John Gilmore, on 1985-11-19. @@ -24,6 +24,7 @@ #include <utimens.h> #include <errno.h> #include <xgetcwd.h> +#include <priv-set.h> #include "common.h" @@ -144,7 +145,8 @@ set_mode (char const *file_name, char typeflag) { mode_t mode; - + bool failed; + if (0 < same_permissions_option && permstatus != INTERDIR_PERMSTATUS) { @@ -186,7 +188,17 @@ set_mode (char const *file_name, mode = cur_info->st_mode ^ invert_permissions; } - if (chmod (file_name, mode) != 0) + failed = chmod (file_name, mode) != 0; + if (failed && errno == EPERM) + { + /* On Solaris, chmod may fail if we don't have PRIV_ALL. */ + if (priv_set_restore_linkdir () == 0) + { + failed = chmod (file_name, mode) != 0; + priv_set_remove_linkdir (); + } + } + if (failed) chmod_error_details (file_name, mode); } @@ -195,8 +207,9 @@ static void check_time (char const *file_name, struct timespec t) { if (t.tv_sec <= 0) - WARN ((0, 0, _("%s: implausibly old time stamp %s"), - file_name, tartime (t, true))); + WARNOPT (WARN_TIMESTAMP, + (0, 0, _("%s: implausibly old time stamp %s"), + file_name, tartime (t, true))); else if (timespec_cmp (volume_start_time, t) < 0) { struct timespec now; @@ -212,8 +225,9 @@ check_time (char const *file_name, struct timespec t) diff.tv_nsec += BILLION; diff.tv_sec--; } - WARN ((0, 0, _("%s: time stamp %s is %s s in the future"), - file_name, tartime (t, true), code_timespec (diff, buf))); + WARNOPT (WARN_TIMESTAMP, + (0, 0, _("%s: time stamp %s is %s s in the future"), + file_name, tartime (t, true), code_timespec (diff, buf))); } } } @@ -474,9 +488,13 @@ file_newer_p (const char *file_name, struct tar_stat_info *tar_stat) if (stat (file_name, &st)) { - stat_warn (file_name); - /* Be on the safe side: if the file does exist assume it is newer */ - return errno != ENOENT; + if (errno != ENOENT) + { + stat_warn (file_name); + /* Be on the safe side: if the file does exist assume it is newer */ + return true; + } + return false; } if (!S_ISDIR (st.st_mode) && tar_timespec_cmp (tar_stat->mtime, get_stat_mtime (&st)) <= 0) @@ -486,17 +504,24 @@ file_newer_p (const char *file_name, struct tar_stat_info *tar_stat) return false; } +#define RECOVER_NO 0 +#define RECOVER_OK 1 +#define RECOVER_SKIP 2 + /* Attempt repairing what went wrong with the extraction. Delete an already existing file or create missing intermediate directories. - Return nonzero if we somewhat increased our chances at a successful - extraction. errno is properly restored on zero return. */ + Return RECOVER_OK if we somewhat increased our chances at a successful + extraction, RECOVER_NO if there are no chances, and RECOVER_SKIP if the + caller should skip extraction of that member. The value of errno is + properly restored on returning RECOVER_NO. */ + static int maybe_recoverable (char *file_name, int *interdir_made) { int e = errno; if (*interdir_made) - return 0; + return RECOVER_NO; switch (errno) { @@ -506,13 +531,13 @@ maybe_recoverable (char *file_name, int *interdir_made) switch (old_files_option) { case KEEP_OLD_FILES: - return 0; + return RECOVER_SKIP; case KEEP_NEWER_FILES: if (file_newer_p (file_name, ¤t_stat_info)) { errno = e; - return 0; + return RECOVER_NO; } /* FALL THROUGH */ @@ -522,7 +547,7 @@ maybe_recoverable (char *file_name, int *interdir_made) { int r = remove_any_file (file_name, ORDINARY_REMOVE_OPTION); errno = EEXIST; - return r; + return r > 0 ? RECOVER_OK : RECOVER_NO; } case UNLINK_FIRST_OLD_FILES: @@ -534,15 +559,15 @@ maybe_recoverable (char *file_name, int *interdir_made) if (! make_directories (file_name)) { errno = ENOENT; - return 0; + return RECOVER_NO; } *interdir_made = 1; - return 1; + return RECOVER_OK; default: /* Just say we can't do anything about it... */ - return 0; + return RECOVER_NO; } } @@ -659,6 +684,7 @@ extract_dir (char *file_name, int typeflag) } if (S_ISDIR (st.st_mode)) { + status = 0; mode = st.st_mode; break; } @@ -666,13 +692,21 @@ extract_dir (char *file_name, int typeflag) errno = EEXIST; } - if (maybe_recoverable (file_name, &interdir_made)) - continue; - - if (errno != EEXIST) + switch (maybe_recoverable (file_name, &interdir_made)) { - mkdir_error (file_name); - return 1; + case RECOVER_OK: + continue; + + case RECOVER_SKIP: + break; + + case RECOVER_NO: + if (errno != EEXIST) + { + mkdir_error (file_name); + return 1; + } + break; } break; } @@ -721,7 +755,8 @@ open_output_file (char *file_name, int typeflag, mode_t mode) if (!conttype_diagnosed) { conttype_diagnosed = 1; - WARN ((0, 0, _("Extracting contiguous files as regular files"))); + WARNOPT (WARN_CONTIGUOUS_CAST, + (0, 0, _("Extracting contiguous files as regular files"))); } } fd = open (file_name, openflag, mode); @@ -760,13 +795,18 @@ extract_file (char *file_name, int typeflag) } else { + int recover = RECOVER_NO; do fd = open_output_file (file_name, typeflag, mode ^ invert_permissions); - while (fd < 0 && maybe_recoverable (file_name, &interdir_made)); + while (fd < 0 + && (recover = maybe_recoverable (file_name, &interdir_made)) + == RECOVER_OK); if (fd < 0) { skip_member (); + if (recover == RECOVER_SKIP) + return 0; open_error (file_name); return 1; } @@ -994,7 +1034,9 @@ extract_symlink (char *file_name, int typeflag) if (!warned_once) { warned_once = 1; - WARN ((0, 0, _("Attempting extraction of symbolic links as hard links"))); + WARNOPT (WARN_SYMBOLIC_CAST, + (0, 0, + _("Attempting extraction of symbolic links as hard links"))); } return extract_link (file_name, typeflag); #endif @@ -1050,8 +1092,6 @@ extract_fifo (char *file_name, int typeflag) static int extract_volhdr (char *file_name, int typeflag) { - if (verbose_option) - fprintf (stdlis, _("Reading %s\n"), quote (current_stat_info.file_name)); skip_member (); return 0; } @@ -1152,9 +1192,10 @@ prepare_to_extract (char const *file_name, int typeflag, tar_extractor_t *fun) break; default: - WARN ((0, 0, - _("%s: Unknown file type `%c', extracted as normal file"), - quotearg_colon (file_name), typeflag)); + WARNOPT (WARN_UNKNOWN_CAST, + (0, 0, + _("%s: Unknown file type `%c', extracted as normal file"), + quotearg_colon (file_name), typeflag)); *fun = extract_file; } @@ -1178,8 +1219,9 @@ prepare_to_extract (char const *file_name, int typeflag, tar_extractor_t *fun) case KEEP_NEWER_FILES: if (file_newer_p (file_name, ¤t_stat_info)) { - WARN ((0, 0, _("Current %s is newer or same age"), - quote (file_name))); + WARNOPT (WARN_IGNORE_NEWER, + (0, 0, _("Current %s is newer or same age"), + quote (file_name))); return 0; } break; @@ -1198,6 +1240,11 @@ extract_archive (void) char typeflag; tar_extractor_t fun; + fatal_exit_hook = extract_finish; + + /* Try to disable the ability to unlink a directory. */ + priv_set_remove_linkdir (); + set_next_block_after (current_header); decode_header (current_header, ¤t_stat_info, ¤t_format, 1); if (!current_stat_info.file_name[0] @@ -1210,7 +1257,7 @@ extract_archive (void) /* Print the block from current_header and current_stat. */ if (verbose_option) - print_header (¤t_stat_info, -1); + print_header (¤t_stat_info, current_header, -1); /* Restore stats for all non-ancestor directories, unless it is an incremental archive. @@ -1359,18 +1406,3 @@ rename_directory (char *src, char *dst) } return true; } - -void -fatal_exit (void) -{ - extract_finish (); - error (TAREXIT_FAILURE, 0, _("Error is not recoverable: exiting now")); - abort (); -} - -void -xalloc_die (void) -{ - error (0, 0, "%s", _("memory exhausted")); - fatal_exit (); -} diff --git a/src/incremen.c b/src/incremen.c index cd32e196aed99bf5b17f55595387bb973f27d15c..dc880cd88ce32f27d00dea401d3d98309346a7b6 100644 --- a/src/incremen.c +++ b/src/incremen.c @@ -1,7 +1,7 @@ /* GNU dump extensions to tar. Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 @@ -73,6 +73,7 @@ struct directory the original directory structure */ const char *tagfile; /* Tag file, if the directory falls under exclusion_tag_under */ + char *caname; /* canonical name */ char *name; /* file name of directory */ }; @@ -212,19 +213,19 @@ static Hash_table *directory_meta_table; /* Calculate the hash of a directory. */ static size_t -hash_directory_name (void const *entry, size_t n_buckets) +hash_directory_canonical_name (void const *entry, size_t n_buckets) { struct directory const *directory = entry; - return hash_string (directory->name, n_buckets); + return hash_string (directory->caname, n_buckets); } /* Compare two directories for equality of their names. */ static bool -compare_directory_names (void const *entry1, void const *entry2) +compare_directory_canonical_names (void const *entry1, void const *entry2) { struct directory const *directory1 = entry1; struct directory const *directory2 = entry2; - return strcmp (directory1->name, directory2->name) == 0; + return strcmp (directory1->caname, directory2->caname) == 0; } static size_t @@ -245,9 +246,11 @@ compare_directory_meta (void const *entry1, void const *entry2) && directory1->inode_number == directory2->inode_number; } -/* Make a directory entry for given NAME */ +/* Make a directory entry for given relative NAME and canonical name CANAME. + The latter is "stolen", i.e. the returned directory contains pointer to + it. */ static struct directory * -make_directory (const char *name) +make_directory (const char *name, char *caname) { size_t namelen = strlen (name); struct directory *directory = xmalloc (sizeof (*directory)); @@ -260,6 +263,7 @@ make_directory (const char *name) directory->name = xmalloc (namelen + 1); memcpy (directory->name, name, namelen); directory->name[namelen] = 0; + directory->caname = caname; directory->tagfile = NULL; return directory; } @@ -267,6 +271,7 @@ make_directory (const char *name) static void free_directory (struct directory *dir) { + free (dir->caname); free (dir->name); free (dir); } @@ -274,7 +279,8 @@ free_directory (struct directory *dir) static struct directory * attach_directory (const char *name) { - struct directory *dir = make_directory (name); + char *cname = normalize_filename (name); + struct directory *dir = make_directory (name, cname); if (dirtail) dirtail->next = dir; else @@ -284,24 +290,6 @@ attach_directory (const char *name) } -static void -replace_prefix (char **pname, const char *samp, size_t slen, - const char *repl, size_t rlen) -{ - char *name = *pname; - size_t nlen = strlen (name); - if (nlen > slen && memcmp (name, samp, slen) == 0 && ISSLASH (name[slen])) - { - if (rlen > slen) - { - name = xrealloc (name, nlen - slen + rlen + 1); - *pname = name; - } - memmove (name + rlen, name + slen, nlen - slen + 1); - memcpy (name, repl, rlen); - } -} - void dirlist_replace_prefix (const char *pref, const char *repl) { @@ -338,8 +326,8 @@ note_directory (char const *name, struct timespec mtime, if (! ((directory_table || (directory_table = hash_initialize (0, 0, - hash_directory_name, - compare_directory_names, 0))) + hash_directory_canonical_name, + compare_directory_canonical_names, 0))) && hash_insert (directory_table, directory))) xalloc_die (); @@ -362,13 +350,38 @@ find_directory (const char *name) return 0; else { - struct directory *dir = make_directory (name); + char *caname = normalize_filename (name); + struct directory *dir = make_directory (name, caname); struct directory *ret = hash_lookup (directory_table, dir); free_directory (dir); return ret; } } +#if 0 +/* Remove directory entry for the given CANAME */ +void +remove_directory (const char *caname) +{ + struct directory *dir = make_directory (caname, xstrdup (caname)); + struct directory *ret = hash_delete (directory_table, dir); + if (ret) + free_directory (ret); + free_directory (dir); +} +#endif + +/* If first OLD_PREFIX_LEN bytes of DIR->NAME name match OLD_PREFIX, + replace them with NEW_PREFIX. */ +void +rebase_directory (struct directory *dir, + const char *old_prefix, size_t old_prefix_len, + const char *new_prefix, size_t new_prefix_len) +{ + replace_prefix (&dir->name, old_prefix, old_prefix_len, + new_prefix, new_prefix_len); +} + /* Return a directory entry for a given combination of device and inode numbers, or zero if none found. */ static struct directory * @@ -378,7 +391,7 @@ find_directory_meta (dev_t dev, ino_t ino) return 0; else { - struct directory *dir = make_directory (""); + struct directory *dir = make_directory ("", NULL); struct directory *ret; dir->device_number = dev; dir->inode_number = ino; @@ -400,19 +413,23 @@ update_parent_directory (const char *name) { struct stat st; if (deref_stat (dereference_option, p, &st) != 0) - stat_diag (name); + { + if (errno != ENOENT) + stat_diag (directory->name); + /* else: should have been already reported */ + } else directory->mtime = get_stat_mtime (&st); } free (p); } -#define PD_VERBOSE 0x10 -#define PD_FORCE_CHILDREN 0x20 +#define PD_FORCE_CHILDREN 0x10 +#define PD_FORCE_INIT 0x20 #define PD_CHILDREN(f) ((f) & 3) static struct directory * -procdir (char *name_buffer, struct stat *stat_data, +procdir (const char *name_buffer, struct stat *stat_data, dev_t device, int flag, char *entry) @@ -423,15 +440,31 @@ procdir (char *name_buffer, struct stat *stat_data, if ((directory = find_directory (name_buffer)) != NULL) { if (DIR_IS_INITED (directory)) - return directory; + { + if (flag & PD_FORCE_INIT) + { + assign_string (&directory->name, name_buffer); + } + else + { + *entry = 'N'; /* Avoid duplicating this directory */ + return directory; + } + } + if (strcmp (directory->name, name_buffer)) + { + *entry = 'N'; + return directory; + } + /* With NFS, the same file can have two different devices if an NFS directory is mounted in multiple locations, which is relatively common when automounting. To avoid spurious incremental redumping of directories, consider all NFS devices as equal, relying on the i-node to establish differences. */ - + if (! ((!check_device_option || (DIR_IS_NFS (directory) && nfs) || directory->device_number == stat_data->st_dev) @@ -444,10 +477,11 @@ procdir (char *name_buffer, struct stat *stat_data, { if (strcmp (d->name, name_buffer)) { - if (verbose_option) - WARN ((0, 0, _("%s: Directory has been renamed from %s"), - quotearg_colon (name_buffer), - quote_n (1, d->name))); + WARNOPT (WARN_RENAME_DIRECTORY, + (0, 0, + _("%s: Directory has been renamed from %s"), + quotearg_colon (name_buffer), + quote_n (1, d->name))); directory->orig = d; DIR_SET_FLAG (directory, DIRF_RENAMED); dirlist_replace_prefix (d->name, name_buffer); @@ -456,9 +490,9 @@ procdir (char *name_buffer, struct stat *stat_data, } else { - if (verbose_option) - WARN ((0, 0, _("%s: Directory has been renamed"), - quotearg_colon (name_buffer))); + WARNOPT (WARN_RENAME_DIRECTORY, + (0, 0, _("%s: Directory has been renamed"), + quotearg_colon (name_buffer))); directory->children = ALL_CHILDREN; directory->device_number = stat_data->st_dev; directory->inode_number = stat_data->st_ino; @@ -468,14 +502,14 @@ procdir (char *name_buffer, struct stat *stat_data, } else directory->children = CHANGED_CHILDREN; - + DIR_SET_FLAG (directory, DIRF_FOUND); } else { struct directory *d = find_directory_meta (stat_data->st_dev, stat_data->st_ino); - + directory = note_directory (name_buffer, get_stat_mtime(stat_data), stat_data->st_dev, @@ -488,10 +522,10 @@ procdir (char *name_buffer, struct stat *stat_data, { if (strcmp (d->name, name_buffer)) { - if (flag & PD_VERBOSE) - WARN ((0, 0, _("%s: Directory has been renamed from %s"), - quotearg_colon (name_buffer), - quote_n (1, d->name))); + WARNOPT (WARN_RENAME_DIRECTORY, + (0, 0, _("%s: Directory has been renamed from %s"), + quotearg_colon (name_buffer), + quote_n (1, d->name))); directory->orig = d; DIR_SET_FLAG (directory, DIRF_RENAMED); dirlist_replace_prefix (d->name, name_buffer); @@ -501,9 +535,9 @@ procdir (char *name_buffer, struct stat *stat_data, else { DIR_SET_FLAG (directory, DIRF_NEW); - if (flag & PD_VERBOSE) - WARN ((0, 0, _("%s: Directory is new"), - quotearg_colon (name_buffer))); + WARNOPT (WARN_NEW_DIRECTORY, + (0, 0, _("%s: Directory is new"), + quotearg_colon (name_buffer))); directory->children = (listed_incremental_option || (OLDER_STAT_TIME (*stat_data, m) @@ -519,6 +553,12 @@ procdir (char *name_buffer, struct stat *stat_data, if (one_file_system_option && device != stat_data->st_dev /* ... except if it was explicitely given in the command line */ && !is_individual_file (name_buffer)) + /* FIXME: + WARNOPT (WARN_XDEV, + (0, 0, + _("%s: directory is on a different filesystem; not dumped"), + quotearg_colon (directory->name))); + */ directory->children = NO_CHILDREN; else if (flag & PD_FORCE_CHILDREN) { @@ -541,8 +581,7 @@ procdir (char *name_buffer, struct stat *stat_data, an exclusion tag. */ exclusion_tag_warning (name_buffer, tag_file_name, _("directory not dumped")); - if (entry) - *entry = 'N'; + *entry = 'N'; directory->children = NO_CHILDREN; break; @@ -643,44 +682,47 @@ makedumpdir (struct directory *directory, const char *dir) free (array); } -/* Recursively scan the given directory. */ -static const char * -scan_directory (char *dir, dev_t device) +/* Recursively scan the given directory DIR. + DEVICE is the device number where DIR resides (for --one-file-system). + If CMDLINE is true, the directory name was explicitly listed in the + command line. + Unless *PDIR is NULL, store there a pointer to the struct directory + describing DIR. */ +struct directory * +scan_directory (char *dir, dev_t device, bool cmdline) { char *dirp = savedir (dir); /* for scanning directory */ - char *name_buffer; /* directory, `/', and directory member */ - size_t name_buffer_size; /* allocated size of name_buffer, minus 2 */ - size_t name_length; /* used length in name_buffer */ + namebuf_t nbuf; + char *tmp; struct stat stat_data; struct directory *directory; + char ch; if (! dirp) savedir_error (dir); - name_buffer_size = strlen (dir) + NAME_FIELD_SIZE; - name_buffer = xmalloc (name_buffer_size + 2); - strcpy (name_buffer, dir); - if (! ISSLASH (dir[strlen (dir) - 1])) - strcat (name_buffer, "/"); - name_length = strlen (name_buffer); - - if (deref_stat (dereference_option, name_buffer, &stat_data)) + tmp = xstrdup (dir); + zap_slashes (tmp); + + if (deref_stat (dereference_option, tmp, &stat_data)) { - stat_diag (name_buffer); - /* FIXME: used to be - children = CHANGED_CHILDREN; - but changed to: */ - free (name_buffer); + dir_removed_diag (tmp, cmdline, stat_diag); + free (tmp); free (dirp); return NULL; } - directory = procdir (name_buffer, &stat_data, device, 0, NULL); + directory = procdir (tmp, &stat_data, device, + (cmdline ? PD_FORCE_INIT : 0), + &ch); + + free (tmp); + + nbuf = namebuf_create (dir); if (dirp && directory->children != NO_CHILDREN) { char *entry; /* directory entry being scanned */ - size_t entrylen; /* length of directory entry */ dumpdir_iter_t itr; makedumpdir (directory, dirp); @@ -689,38 +731,30 @@ scan_directory (char *dir, dev_t device) entry; entry = dumpdir_next (itr)) { - entrylen = strlen (entry); - if (name_buffer_size <= entrylen - 1 + name_length) - { - do - name_buffer_size += NAME_FIELD_SIZE; - while (name_buffer_size <= entrylen - 1 + name_length); - name_buffer = xrealloc (name_buffer, name_buffer_size + 2); - } - strcpy (name_buffer + name_length, entry + 1); + char *full_name = namebuf_name (nbuf, entry + 1); if (*entry == 'I') /* Ignored entry */ *entry = 'N'; - else if (excluded_name (name_buffer)) + else if (excluded_name (full_name)) *entry = 'N'; else { - if (deref_stat (dereference_option, name_buffer, &stat_data)) + if (deref_stat (dereference_option, full_name, &stat_data)) { - stat_diag (name_buffer); + file_removed_diag (full_name, false, stat_diag); *entry = 'N'; continue; } if (S_ISDIR (stat_data.st_mode)) { - int pd_flag = (verbose_option ? PD_VERBOSE : 0); + int pd_flag = 0; if (!recursion_option) pd_flag |= PD_FORCE_CHILDREN | NO_CHILDREN; else if (directory->children == ALL_CHILDREN) pd_flag |= PD_FORCE_CHILDREN | ALL_CHILDREN; *entry = 'D'; - procdir (name_buffer, &stat_data, device, pd_flag, entry); + procdir (full_name, &stat_data, device, pd_flag, entry); } else if (one_file_system_option && device != stat_data.st_dev) @@ -742,17 +776,35 @@ scan_directory (char *dir, dev_t device) free (itr); } - free (name_buffer); + namebuf_free (nbuf); + if (dirp) free (dirp); - return directory->dump ? directory->dump->contents : NULL; + return directory; +} + +/* Return pointer to the contents of the directory DIR */ +const char * +directory_contents (struct directory *dir) +{ + if (!dir) + return NULL; + return dir->dump ? dir->dump->contents : NULL; } +/* A "safe" version of directory_contents, which never returns NULL. */ const char * -get_directory_contents (char *dir, dev_t device) +safe_directory_contents (struct directory *dir) +{ + const char *ret = directory_contents (dir); + return ret ? ret : "\0\0\0\0"; +} + +void +name_fill_directory (struct name *name, dev_t device, bool cmdline) { - return scan_directory (dir, device); + name->directory = scan_directory (name->name, device, cmdline); } @@ -815,17 +867,19 @@ store_rename (struct directory *dir, struct obstack *stk) } } -const char * -append_incremental_renames (const char *dump) +void +append_incremental_renames (struct directory *dir) { struct obstack stk; size_t size; struct directory *dp; + const char *dump; if (dirhead == NULL) - return dump; + return; obstack_init (&stk); + dump = directory_contents (dir); if (dump) { size = dumpdir_size (dump) - 1; @@ -840,11 +894,10 @@ append_incremental_renames (const char *dump) if (obstack_object_size (&stk) != size) { obstack_1grow (&stk, 0); - dump = obstack_finish (&stk); + dumpdir_free (dir->dump); + dir->dump = dumpdir_create (obstack_finish (&stk)); } - else - obstack_free (&stk, NULL); - return dump; + obstack_free (&stk, NULL); } @@ -869,8 +922,8 @@ read_incr_db_01 (int version, const char *initbuf) uintmax_t u; time_t sec; long int nsec; - char *buf = 0; - size_t bufsize; + char *buf = NULL; + size_t bufsize = 0; char *ebuf; long lineno = 1; @@ -1229,13 +1282,16 @@ void read_directory_file (void) { int fd; - char *buf = 0; - size_t bufsize; + char *buf = NULL; + size_t bufsize = 0; + int flags = O_RDWR | O_CREAT; + if (incremental_level == 0) + flags |= O_TRUNC; /* Open the file for both read and write. That way, we can write it later without having to reopen it, and don't have to worry if we chdir in the meantime. */ - fd = open (listed_incremental_option, O_RDWR | O_CREAT, MODE_RW); + fd = open (listed_incremental_option, flags, MODE_RW); if (fd < 0) { open_error (listed_incremental_option); @@ -1250,6 +1306,13 @@ read_directory_file (void) return; } + /* Consume the first name from the name list and reset the + list afterwards. This is done to change to the new + directory, if the first name is a chdir request (-C dir), + which is necessary to recreate absolute file names. */ + name_from_list (); + blank_name_list (); + if (0 < getline (&buf, &bufsize, listed_incremental_stream)) { char *ebuf; @@ -1347,7 +1410,7 @@ write_directory_file (void) if (! fp) return; - if (fseek (fp, 0L, SEEK_SET) != 0) + if (fseeko (fp, 0L, SEEK_SET) != 0) seek_error (listed_incremental_option); if (sys_truncate (fileno (fp)) != 0) truncate_error (listed_incremental_option); @@ -1504,7 +1567,8 @@ dumpdir_ok (char *dumpdir) } if (has_tempdir) - WARN ((0, 0, _("Malformed dumpdir: 'X' never used"))); + WARNOPT (WARN_BAD_DUMPDIR, + (0, 0, _("Malformed dumpdir: 'X' never used"))); return true; } diff --git a/src/list.c b/src/list.c index 98c1e396b3547cb22a5ac590bb24d03b03a9b521..716c0b4230a3e50c07dc7ec98afbf6d6aa56381f 100644 --- a/src/list.c +++ b/src/list.c @@ -1,7 +1,7 @@ /* List a tar archive, with support routines for reading a tar archive. Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, - 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + 2001, 2003, 2004, 2005, 2006, 2007, 2010 Free Software Foundation, Inc. Written by John Gilmore, on 1985-08-26. @@ -33,6 +33,7 @@ union block *recent_long_name; /* recent long name header and contents */ union block *recent_long_link; /* likewise, for long link */ size_t recent_long_name_blocks; /* number of blocks in recent_long_name */ size_t recent_long_link_blocks; /* likewise, for long link */ +union block *recent_global_header; /* Recent global header block */ static uintmax_t from_header (const char *, size_t, const char *, uintmax_t, uintmax_t, bool, bool); @@ -77,7 +78,8 @@ read_and (void (*do_something) (void)) prev_status = status; tar_stat_destroy (¤t_stat_info); - status = read_header (false); + status = read_header (¤t_header, ¤t_stat_info, + read_header_auto); switch (status) { case HEADER_STILL_UNREAD: @@ -138,11 +140,13 @@ read_and (void (*do_something) (void)) { char buf[UINTMAX_STRSIZE_BOUND]; - status = read_header (false); + status = read_header (¤t_header, ¤t_stat_info, + read_header_auto); if (status == HEADER_ZERO_BLOCK) break; - WARN ((0, 0, _("A lone zero block at %s"), - STRINGIFY_BIGINT (current_block_ordinal (), buf))); + WARNOPT (WARN_ALONE_ZERO_BLOCK, + (0, 0, _("A lone zero block at %s"), + STRINGIFY_BIGINT (current_block_ordinal (), buf))); break; } status = prev_status; @@ -204,11 +208,12 @@ void list_archive (void) { off_t block_ordinal = current_block_ordinal (); - /* Print the header block. */ + /* Print the header block. */ + decode_header (current_header, ¤t_stat_info, ¤t_format, 0); if (verbose_option) - print_header (¤t_stat_info, block_ordinal); + print_header (¤t_stat_info, current_header, block_ordinal); if (incremental_option) { @@ -279,20 +284,29 @@ tar_checksum (union block *header, bool silent) } /* Read a block that's supposed to be a header block. Return its - address in "current_header", and if it is good, the file's size - and names (file name, link name) in *info. + address in *RETURN_BLOCK, and if it is good, the file's size + and names (file name, link name) in *INFO. - Return 1 for success, 0 if the checksum is bad, EOF on eof, 2 for a - block full of zeros (EOF marker). + Return one of enum read_header describing the status of the + operation. - If RAW_EXTENDED_HEADERS is nonzero, do not automagically fold the - GNU long name and link headers into later headers. + The MODE parameter instructs read_header what to do with special + header blocks, i.e.: extended POSIX, GNU long name or long link, + etc.: - You must always set_next_block_after(current_header) to skip past + read_header_auto process them automatically, + read_header_x_raw when a special header is read, return + HEADER_SUCCESS_EXTENDED without actually + processing the header, + read_header_x_global when a POSIX global header is read, + decode it and return HEADER_SUCCESS_EXTENDED. + + You must always set_next_block_after(*return_block) to skip past the header which this routine reads. */ enum read_header -read_header_primitive (bool raw_extended_headers, struct tar_stat_info *info) +read_header (union block **return_block, struct tar_stat_info *info, + enum read_header_mode mode) { union block *header; union block *header_copy; @@ -309,7 +323,7 @@ read_header_primitive (bool raw_extended_headers, struct tar_stat_info *info) enum read_header status; header = find_next_block (); - current_header = header; + *return_block = header; if (!header) return HEADER_END_OF_FILE; @@ -329,7 +343,7 @@ read_header_primitive (bool raw_extended_headers, struct tar_stat_info *info) || header->header.typeflag == XGLTYPE || header->header.typeflag == SOLARIS_XHDTYPE) { - if (raw_extended_headers) + if (mode == read_header_x_raw) return HEADER_SUCCESS_EXTENDED; else if (header->header.typeflag == GNUTYPE_LONGNAME || header->header.typeflag == GNUTYPE_LONGLINK) @@ -391,11 +405,18 @@ read_header_primitive (bool raw_extended_headers, struct tar_stat_info *info) else if (header->header.typeflag == XGLTYPE) { struct xheader xhdr; + + if (!recent_global_header) + recent_global_header = xmalloc (sizeof *recent_global_header); + memcpy (recent_global_header, header, + sizeof *recent_global_header); memset (&xhdr, 0, sizeof xhdr); xheader_read (&xhdr, header, OFF_FROM_HEADER (header->header.size)); xheader_decode_global (&xhdr); xheader_destroy (&xhdr); + if (mode == read_header_x_global) + return HEADER_SUCCESS_EXTENDED; } /* Loop! */ @@ -404,7 +425,7 @@ read_header_primitive (bool raw_extended_headers, struct tar_stat_info *info) else { char const *name; - struct posix_header const *h = ¤t_header->header; + struct posix_header const *h = &header->header; char namebuf[sizeof h->prefix + 1 + NAME_FIELD_SIZE + 1]; if (recent_long_name) @@ -463,12 +484,6 @@ read_header_primitive (bool raw_extended_headers, struct tar_stat_info *info) } } -enum read_header -read_header (bool raw_extended_headers) -{ - return read_header_primitive (raw_extended_headers, ¤t_stat_info); -} - static char * decode_xform (char *file_name, void *data) { @@ -530,7 +545,9 @@ decode_header (union block *header, struct tar_stat_info *stat_info, enum archive_format *format_pointer, int do_user_group) { enum archive_format format; - + unsigned hbits; /* high bits of the file mode. */ + mode_t mode = MODE_FROM_HEADER (header->header.mode, &hbits); + if (strcmp (header->header.magic, TMAGIC) == 0) { if (header->star_header.prefix[130] == 0 @@ -545,12 +562,12 @@ decode_header (union block *header, struct tar_stat_info *stat_info, format = USTAR_FORMAT; } else if (strcmp (header->header.magic, OLDGNU_MAGIC) == 0) - format = OLDGNU_FORMAT; + format = hbits ? OLDGNU_FORMAT : GNU_FORMAT; else format = V7_FORMAT; *format_pointer = format; - stat_info->stat.st_mode = MODE_FROM_HEADER (header->header.mode); + stat_info->stat.st_mode = mode; stat_info->mtime.tv_sec = TIME_FROM_HEADER (header->header.mtime); stat_info->mtime.tv_nsec = 0; assign_string (&stat_info->uname, @@ -667,7 +684,8 @@ from_header (char const *where0, size_t digs, char const *type, { if (type && !silent) ERROR ((0, 0, - /* TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.) */ + /* TRANSLATORS: %s is type of the value (gid_t, uid_t, + etc.) */ _("Blanks in header where numeric %s value expected"), type)); return -1; @@ -884,25 +902,28 @@ minor_from_header (const char *p, size_t s) (uintmax_t) TYPE_MAXIMUM (minor_t), false, false); } +/* Convert P to the file mode, as understood by tar. + Store unrecognized mode bits (from 10th up) in HBITS. */ mode_t -mode_from_header (const char *p, size_t s) +mode_from_header (const char *p, size_t s, unsigned *hbits) { - /* Do not complain about unrecognized mode bits. */ unsigned u = from_header (p, s, "mode_t", - (uintmax_t) TYPE_MINIMUM (mode_t), TYPE_MAXIMUM (uintmax_t), false, false); - return ((u & TSUID ? S_ISUID : 0) - | (u & TSGID ? S_ISGID : 0) - | (u & TSVTX ? S_ISVTX : 0) - | (u & TUREAD ? S_IRUSR : 0) - | (u & TUWRITE ? S_IWUSR : 0) - | (u & TUEXEC ? S_IXUSR : 0) - | (u & TGREAD ? S_IRGRP : 0) - | (u & TGWRITE ? S_IWGRP : 0) - | (u & TGEXEC ? S_IXGRP : 0) - | (u & TOREAD ? S_IROTH : 0) - | (u & TOWRITE ? S_IWOTH : 0) - | (u & TOEXEC ? S_IXOTH : 0)); + mode_t mode = ((u & TSUID ? S_ISUID : 0) + | (u & TSGID ? S_ISGID : 0) + | (u & TSVTX ? S_ISVTX : 0) + | (u & TUREAD ? S_IRUSR : 0) + | (u & TUWRITE ? S_IWUSR : 0) + | (u & TUEXEC ? S_IXUSR : 0) + | (u & TGREAD ? S_IRGRP : 0) + | (u & TGWRITE ? S_IWGRP : 0) + | (u & TGEXEC ? S_IXGRP : 0) + | (u & TOREAD ? S_IROTH : 0) + | (u & TOWRITE ? S_IWOTH : 0) + | (u & TOEXEC ? S_IXOTH : 0)); + *hbits = mode ^ u; + return mode; } off_t @@ -1013,9 +1034,6 @@ tartime (struct timespec t, bool full_time) they shouldn't. Unix tar is pretty random here anyway. */ -/* FIXME: Note that print_header uses the globals HEAD, HSTAT, and - HEAD_STANDARD, which must be set up in advance. Not very clean.. */ - /* Width of "user/group size", with initial value chosen heuristically. This grows as needed, though this may cause some stairstepping in the output. Make it too small and the output will @@ -1028,8 +1046,11 @@ static int ugswidth = 19; USGWIDTH, some stairstepping may occur. */ static int datewidth = sizeof "YYYY-MM-DD HH:MM" - 1; -void -print_header (struct tar_stat_info *st, off_t block_ordinal) +static bool volume_label_printed = false; + +static void +simple_print_header (struct tar_stat_info *st, union block *blk, + off_t block_ordinal) { char modes[11]; char const *time_stamp; @@ -1045,9 +1066,6 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) int pad; int sizelen; - if (test_label_option && current_header->header.typeflag != GNUTYPE_VOLHDR) - return; - if (show_transformed_names_option) temp_name = st->file_name ? st->file_name : st->orig_file_name; else @@ -1074,9 +1092,10 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) /* File type and modes. */ modes[0] = '?'; - switch (current_header->header.typeflag) + switch (blk->header.typeflag) { case GNUTYPE_VOLHDR: + volume_label_printed = true; modes[0] = 'V'; break; @@ -1144,8 +1163,8 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) /* Try parsing it as an unsigned integer first, and as a uid_t if that fails. This method can list positive user ids that are too large to fit in a uid_t. */ - uintmax_t u = from_header (current_header->header.uid, - sizeof current_header->header.uid, 0, + uintmax_t u = from_header (blk->header.uid, + sizeof blk->header.uid, 0, (uintmax_t) 0, (uintmax_t) TYPE_MAXIMUM (uintmax_t), false, false); @@ -1154,7 +1173,7 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) else { sprintf (uform, "%ld", - (long) UID_FROM_HEADER (current_header->header.uid)); + (long) UID_FROM_HEADER (blk->header.uid)); user = uform; } } @@ -1169,8 +1188,8 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) /* Try parsing it as an unsigned integer first, and as a gid_t if that fails. This method can list positive group ids that are too large to fit in a gid_t. */ - uintmax_t g = from_header (current_header->header.gid, - sizeof current_header->header.gid, 0, + uintmax_t g = from_header (blk->header.gid, + sizeof blk->header.gid, 0, (uintmax_t) 0, (uintmax_t) TYPE_MAXIMUM (uintmax_t), false, false); @@ -1179,14 +1198,14 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) else { sprintf (gform, "%ld", - (long) GID_FROM_HEADER (current_header->header.gid)); + (long) GID_FROM_HEADER (blk->header.gid)); group = gform; } } /* Format the file size or major/minor device numbers. */ - switch (current_header->header.typeflag) + switch (blk->header.typeflag) { case CHRTYPE: case BLKTYPE: @@ -1216,7 +1235,7 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) fprintf (stdlis, " %s", quotearg (temp_name)); - switch (current_header->header.typeflag) + switch (blk->header.typeflag) { case SYMTYPE: fprintf (stdlis, " -> %s\n", quotearg (st->link_name)); @@ -1229,7 +1248,7 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) default: { char type_string[2]; - type_string[0] = current_header->header.typeflag; + type_string[0] = blk->header.typeflag; type_string[1] = '\0'; fprintf (stdlis, _(" unknown file type %s\n"), quote (type_string)); @@ -1263,7 +1282,7 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) case GNUTYPE_MULTIVOL: strcpy (size, STRINGIFY_BIGINT - (UINTMAX_FROM_HEADER (current_header->oldgnu_header.offset), + (UINTMAX_FROM_HEADER (blk->oldgnu_header.offset), uintbuf)); fprintf (stdlis, _("--Continued at byte %s--\n"), size); break; @@ -1272,6 +1291,40 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) fflush (stdlis); } + +void +print_volume_label () +{ + struct tar_stat_info vstat; + union block vblk; + enum archive_format dummy; + + memset (&vblk, 0, sizeof (vblk)); + vblk.header.typeflag = GNUTYPE_VOLHDR; + if (recent_global_header) + memcpy (vblk.header.mtime, recent_global_header->header.mtime, + sizeof vblk.header.mtime); + tar_stat_init (&vstat); + assign_string (&vstat.file_name, "."); + decode_header (&vblk, &vstat, &dummy, 0); + assign_string (&vstat.file_name, volume_label); + simple_print_header (&vstat, &vblk, 0); + tar_stat_destroy (&vstat); +} + +void +print_header (struct tar_stat_info *st, union block *blk, + off_t block_ordinal) +{ + if (current_format == POSIX_FORMAT && !volume_label_printed && volume_label) + { + print_volume_label (); + volume_label_printed = true; + } + + simple_print_header (st, blk, block_ordinal); +} + /* Print a similar line when we make a directory automatically. */ void print_for_mkdir (char *dirname, int length, mode_t mode) @@ -1348,3 +1401,33 @@ skip_member (void) mv_end (); } } + +void +test_archive_label () +{ + base64_init (); + name_gather (); + + open_archive (ACCESS_READ); + if (read_header (¤t_header, ¤t_stat_info, read_header_auto) + == HEADER_SUCCESS) + { + char *s = NULL; + + decode_header (current_header, + ¤t_stat_info, ¤t_format, 0); + if (current_header->header.typeflag == GNUTYPE_VOLHDR) + assign_string (&volume_label, current_header->header.name); + + if (volume_label + && (name_match (volume_label) + || (multi_volume_option + && (s = drop_volume_label_suffix (volume_label)) + && name_match (s)))) + if (verbose_option) + print_volume_label (); + free (s); + } + close_archive (); + names_notfound (); +} diff --git a/src/misc.c b/src/misc.c index 951449eb0c0b035246b02fc50f27d7a7c7e1a49f..f81111f197d53c53c4321668f13e58ca2b9c4324 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1,7 +1,7 @@ /* Miscellaneous functions, not really specific to GNU tar. Copyright (C) 1988, 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2009 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 @@ -25,6 +25,7 @@ #include <xgetcwd.h> #include <unlinkdir.h> #include <utimens.h> +#include <canonicalize.h> #if HAVE_STROPTS_H # include <stropts.h> @@ -214,6 +215,46 @@ unquote_string (char *string) *destination = '\0'; return result; } + +/* Zap trailing slashes. */ +char * +zap_slashes (char *name) +{ + char *q; + + if (!name || *name == 0) + return name; + q = name + strlen (name) - 1; + while (q > name && ISSLASH (*q)) + *q-- = '\0'; + return name; +} + +char * +normalize_filename (const char *name) +{ + return zap_slashes (canonicalize_filename_mode (name, CAN_MISSING)); +} + + +void +replace_prefix (char **pname, const char *samp, size_t slen, + const char *repl, size_t rlen) +{ + char *name = *pname; + size_t nlen = strlen (name); + if (nlen > slen && memcmp (name, samp, slen) == 0 && ISSLASH (name[slen])) + { + if (rlen > slen) + { + name = xrealloc (name, nlen - slen + rlen + 1); + *pname = name; + } + memmove (name + rlen, name + slen, nlen - slen + 1); + memcpy (name, repl, rlen); + } +} + /* Handling numbers. */ @@ -257,6 +298,10 @@ code_timespec (struct timespec t, char sbuf[TIMESPEC_STRSIZE_BOUND]) char *np; bool negative = s < 0; + /* ignore invalid values of ns */ + if (BILLION <= ns || ns < 0) + ns = 0; + if (negative && ns != 0) { s++; @@ -417,6 +462,15 @@ maybe_backup_file (const char *file_name, bool this_is_the_archive) { struct stat file_stat; + assign_string (&before_backup_name, file_name); + + /* A run situation may exist between Emacs or other GNU programs trying to + make a backup for the same file simultaneously. If theoretically + possible, real problems are unlikely. Doing any better would require a + convention, GNU-wide, for all programs doing backups. */ + + assign_string (&after_backup_name, 0); + /* Check if we really need to backup the file. */ if (this_is_the_archive && _remdev (file_name)) @@ -438,14 +492,6 @@ maybe_backup_file (const char *file_name, bool this_is_the_archive) && (S_ISBLK (file_stat.st_mode) || S_ISCHR (file_stat.st_mode))) return true; - assign_string (&before_backup_name, file_name); - - /* A run situation may exist between Emacs or other GNU programs trying to - make a backup for the same file simultaneously. If theoretically - possible, real problems are unlikely. Doing any better would require a - convention, GNU-wide, for all programs doing backups. */ - - assign_string (&after_backup_name, 0); after_backup_name = find_backup_file_name (file_name, backup_type); if (! after_backup_name) xalloc_die (); @@ -531,17 +577,25 @@ struct wd static struct wd *wd; /* The number of working directories in the vector. */ -static size_t wds; +static size_t wd_count; /* The allocated size of the vector. */ static size_t wd_alloc; +int +chdir_count () +{ + if (wd_count == 0) + return wd_count; + return wd_count - 1; +} + /* DIR is the operand of a -C option; add it to vector of chdir targets, and return the index of its location. */ int chdir_arg (char const *dir) { - if (wds == wd_alloc) + if (wd_count == wd_alloc) { if (wd_alloc == 0) { @@ -551,11 +605,11 @@ chdir_arg (char const *dir) else wd = x2nrealloc (wd, &wd_alloc, sizeof *wd); - if (! wds) + if (! wd_count) { - wd[wds].name = "."; - wd[wds].saved = 0; - wds++; + wd[wd_count].name = "."; + wd[wd_count].saved = 0; + wd_count++; } } @@ -567,12 +621,12 @@ chdir_arg (char const *dir) for (dir += 2; ISSLASH (*dir); dir++) continue; if (! dir[dir[0] == '.']) - return wds - 1; + return wd_count - 1; } - wd[wds].name = dir; - wd[wds].saved = 0; - return wds++; + wd[wd_count].name = dir; + wd[wd_count].saved = 0; + return wd_count++; } /* Change to directory I. If I is 0, change to the initial working @@ -695,6 +749,36 @@ stat_diag (char const *name) stat_error (name); } +void +file_removed_diag (const char *name, bool top_level, + void (*diagfn) (char const *name)) +{ + if (!top_level && errno == ENOENT) + { + WARNOPT (WARN_FILE_REMOVED, + (0, 0, _("%s: File removed before we read it"), + quotearg_colon (name))); + set_exit_status (TAREXIT_DIFFERS); + } + else + diagfn (name); +} + +void +dir_removed_diag (const char *name, bool top_level, + void (*diagfn) (char const *name)) +{ + if (!top_level && errno == ENOENT) + { + WARNOPT (WARN_FILE_REMOVED, + (0, 0, _("%s: Directory removed before we read it"), + quotearg_colon (name))); + set_exit_status (TAREXIT_DIFFERS); + } + else + diagfn (name); +} + void write_fatal_details (char const *name, ssize_t status, size_t size) { @@ -746,3 +830,45 @@ page_aligned_alloc (void **ptr, size_t size) *ptr = xmalloc (size1); return ptr_align (*ptr, alignment); } + + + +struct namebuf +{ + char *buffer; /* directory, `/', and directory member */ + size_t buffer_size; /* allocated size of name_buffer */ + size_t dir_length; /* length of directory part in buffer */ +}; + +namebuf_t +namebuf_create (const char *dir) +{ + namebuf_t buf = xmalloc (sizeof (*buf)); + buf->buffer_size = strlen (dir) + 2; + buf->buffer = xmalloc (buf->buffer_size); + strcpy (buf->buffer, dir); + buf->dir_length = strlen (buf->buffer); + if (!ISSLASH (buf->buffer[buf->dir_length - 1])) + buf->buffer[buf->dir_length++] = DIRECTORY_SEPARATOR; + return buf; +} + +void +namebuf_free (namebuf_t buf) +{ + free (buf->buffer); + free (buf); +} + +char * +namebuf_name (namebuf_t buf, const char *name) +{ + size_t len = strlen (name); + while (buf->dir_length + len + 1 >= buf->buffer_size) + buf->buffer = x2realloc (buf->buffer, &buf->buffer_size); + strcpy (buf->buffer + buf->dir_length, name); + return buf->buffer; +} + + + diff --git a/src/names.c b/src/names.c index 05f89b15d19ab615c793c7dcc4709a436c294ac0..1146020b2458f5a07fa5c534ea1511e596f3b703 100644 --- a/src/names.c +++ b/src/names.c @@ -1,7 +1,7 @@ /* Various processing of names. Copyright (C) 1988, 1992, 1994, 1996, 1997, 1998, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2009 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 @@ -178,11 +178,34 @@ gname_to_gid (char const *gname, gid_t *gidp) return 1; } + +struct name * +make_name (const char *file_name) +{ + struct name *p = xzalloc (sizeof (*p)); + if (!file_name) + file_name = ""; + p->name = xstrdup (file_name); + p->length = strlen (p->name); + return p; +} + +void +free_name (struct name *p) +{ + if (p) + { + free (p->name); + free (p->caname); + free (p); + } +} + /* Names from the command call. */ static struct name *namelist; /* first name in list, if any */ -static struct name **nametail = &namelist; /* end of name list */ +static struct name *nametail; /* end of name list */ /* File name arguments are processed in two stages: first a name_array (see below) is filled, then the names from it @@ -376,8 +399,7 @@ void name_gather (void) { /* Buffer able to hold a single name. */ - static struct name *buffer; - static size_t allocated_size; + static struct name *buffer = NULL; struct name_elt *ep; @@ -385,44 +407,25 @@ name_gather (void) { static int change_dir; - if (allocated_size == 0) - { - allocated_size = offsetof (struct name, name) + NAME_FIELD_SIZE + 1; - buffer = xzalloc (allocated_size); - } - while ((ep = name_next_elt (0)) && ep->type == NELT_CHDIR) change_dir = chdir_arg (xstrdup (ep->v.name)); if (ep) { - size_t needed_size; - - buffer->length = strlen (ep->v.name); - needed_size = offsetof (struct name, name) + buffer->length + 1; - if (allocated_size < needed_size) - { - do - { - allocated_size *= 2; - if (! allocated_size) - xalloc_die (); - } - while (allocated_size < needed_size); - - buffer = xrealloc (buffer, allocated_size); - } + free_name (buffer); + buffer = make_name (ep->v.name); buffer->change_dir = change_dir; - strcpy (buffer->name, ep->v.name); buffer->next = 0; buffer->found_count = 0; buffer->matching_flags = matching_flags; + buffer->directory = NULL; + buffer->parent = NULL; + buffer->cmdline = true; - namelist = buffer; - nametail = &namelist->next; + namelist = nametail = buffer; } else if (change_dir) - addname (0, change_dir); + addname (0, change_dir, false, NULL); } else { @@ -436,11 +439,11 @@ name_gather (void) change_dir = chdir_arg (xstrdup (ep->v.name)); if (ep) - addname (ep->v.name, change_dir); + addname (ep->v.name, change_dir, true, NULL); else { if (change_dir != change_dir0) - addname (0, change_dir); + addname (NULL, change_dir, false, NULL); break; } } @@ -449,25 +452,24 @@ name_gather (void) /* Add a name to the namelist. */ struct name * -addname (char const *string, int change_dir) +addname (char const *string, int change_dir, bool cmdline, struct name *parent) { - size_t length = string ? strlen (string) : 0; - struct name *name = xmalloc (offsetof (struct name, name) + length + 1); - - if (string) - strcpy (name->name, string); - else - name->name[0] = 0; + struct name *name = make_name (string); + name->prev = nametail; name->next = NULL; - name->length = length; name->found_count = 0; name->matching_flags = matching_flags; name->change_dir = change_dir; - name->dir_contents = NULL; + name->directory = NULL; + name->parent = parent; + name->cmdline = cmdline; - *nametail = name; - nametail = &name->next; + if (nametail) + nametail->next = name; + else + namelist = name; + nametail = name; return name; } @@ -488,6 +490,22 @@ namelist_match (char const *file_name, size_t length) return NULL; } +void +remname (struct name *name) +{ + struct name *p; + + if ((p = name->prev) != NULL) + p->next = name->next; + else + namelist = name->next; + + if ((p = name->next) != NULL) + p->prev = name->prev; + else + nametail = name->prev; +} + /* Return true if and only if name FILE_NAME (from an archive) matches any name from the namelist. */ bool @@ -505,8 +523,8 @@ name_match (const char *file_name) if (cursor->name[0] == 0) { chdir_do (cursor->change_dir); - namelist = 0; - nametail = &namelist; + namelist = NULL; + nametail = NULL; return true; } @@ -519,8 +537,8 @@ name_match (const char *file_name) if (starting_file_option) { free (namelist); - namelist = 0; - nametail = &namelist; + namelist = NULL; + nametail = NULL; } chdir_do (cursor->change_dir); @@ -559,8 +577,6 @@ all_names_found (struct tar_stat_info *p) struct name const *cursor; size_t len; - if (test_label_option) - return true; if (!p->file_name || occurrence_option == 0 || p->had_trailing_slash) return false; len = strlen (p->file_name); @@ -573,28 +589,19 @@ all_names_found (struct tar_stat_info *p) return true; } -static inline int -is_pattern (const char *string) -{ - return strchr (string, '*') || strchr (string, '[') || strchr (string, '?'); -} - static void regex_usage_warning (const char *name) { static int warned_once = 0; - if (warn_regex_usage && is_pattern (name)) + if (warn_regex_usage && fnmatch_pattern_has_wildcards (name, 0)) { warned_once = 1; WARN ((0, 0, - /* TRANSLATORS: The following three msgids form a single sentence. - */ - _("Pattern matching characters used in file names. Please,"))); - WARN ((0, 0, - _("use --wildcards to enable pattern matching, or --no-wildcards to"))); + _("Pattern matching characters used in file names"))); WARN ((0, 0, - _("suppress this warning."))); + _("Use --wildcards to enable pattern matching," + " or --no-wildcards to suppress this warning"))); } } @@ -617,8 +624,8 @@ names_notfound (void) } /* Don't bother freeing the name list; we're about to exit. */ - namelist = 0; - nametail = &namelist; + namelist = NULL; + nametail = NULL; if (same_order_option) { @@ -635,15 +642,18 @@ names_notfound (void) /* Sorting name lists. */ -/* Sort linked LIST of names, of given LENGTH, using COMPARE to order - names. Return the sorted list. Apart from the type `struct name' - and the definition of SUCCESSOR, this is a generic list-sorting - function, but it's too painful to make it both generic and portable +/* Sort *singly* linked LIST of names, of given LENGTH, using COMPARE + to order names. Return the sorted list. Note that after calling + this function, the `prev' links in list elements are messed up. + + Apart from the type `struct name' and the definition of SUCCESSOR, + this is a generic list-sorting function, but it's too painful to + make it both generic and portable in C. */ static struct name * -merge_sort (struct name *list, int length, - int (*compare) (struct name const*, struct name const*)) +merge_sort_sll (struct name *list, int length, + int (*compare) (struct name const*, struct name const*)) { struct name *first_list; struct name *second_list; @@ -681,8 +691,8 @@ merge_sort (struct name *list, int length, second_list = SUCCESSOR (cursor); SUCCESSOR (cursor) = 0; - first_list = merge_sort (first_list, first_length, compare); - second_list = merge_sort (second_list, second_length, compare); + first_list = merge_sort_sll (first_list, first_length, compare); + second_list = merge_sort_sll (second_list, second_length, compare); merge_point = &result; while (first_list && second_list) @@ -710,30 +720,53 @@ merge_sort (struct name *list, int length, #undef SUCCESSOR } +/* Sort doubly linked LIST of names, of given LENGTH, using COMPARE + to order names. Return the sorted list. */ +static struct name * +merge_sort (struct name *list, int length, + int (*compare) (struct name const*, struct name const*)) +{ + struct name *head, *p, *prev; + head = merge_sort_sll (list, length, compare); + /* Fixup prev pointers */ + for (prev = NULL, p = head; p; prev = p, p = p->next) + p->prev = prev; + return head; +} + /* A comparison function for sorting names. Put found names last; break ties by string comparison. */ static int -compare_names (struct name const *n1, struct name const *n2) +compare_names_found (struct name const *n1, struct name const *n2) { - int found_diff = WASFOUND(n2) - WASFOUND(n1); + int found_diff = WASFOUND (n2) - WASFOUND (n1); return found_diff ? found_diff : strcmp (n1->name, n2->name); } + +/* Simple comparison by names. */ +static int +compare_names (struct name const *n1, struct name const *n2) +{ + return strcmp (n1->name, n2->name); +} + /* Add all the dirs under NAME, which names a directory, to the namelist. If any of the files is a directory, recurse on the subdirectory. - DEVICE is the device not to leave, if the -l option is specified. */ + DEVICE is the device not to leave, if the -l option is specified. + CMDLINE is true, if the NAME appeared on the command line. */ static void -add_hierarchy_to_namelist (struct name *name, dev_t device) +add_hierarchy_to_namelist (struct name *name, dev_t device, bool cmdline) { - char *file_name = name->name; - const char *buffer = get_directory_contents (file_name, device); - - if (! buffer) - name->dir_contents = "\0\0\0\0"; - else + const char *buffer; + + name_fill_directory (name, device, cmdline); + buffer = directory_contents (name->directory); + if (buffer) { + struct name *child_head = NULL, *child_tail = NULL; size_t name_length = name->length; size_t allocated_length = (name_length >= NAME_FIELD_SIZE ? name_length + NAME_FIELD_SIZE @@ -744,8 +777,7 @@ add_hierarchy_to_namelist (struct name *name, dev_t device) size_t string_length; int change_dir = name->change_dir; - name->dir_contents = buffer; - strcpy (namebuf, file_name); + strcpy (namebuf, name->name); if (! ISSLASH (namebuf[name_length - 1])) { namebuf[name_length++] = '/'; @@ -772,15 +804,65 @@ add_hierarchy_to_namelist (struct name *name, dev_t device) namebuf = xrealloc (namebuf, allocated_length + 1); } strcpy (namebuf + name_length, string + 1); - np = addname (namebuf, change_dir); - add_hierarchy_to_namelist (np, device); + np = addname (namebuf, change_dir, false, name); + if (!child_head) + child_head = np; + else + child_tail->sibling = np; + child_tail = np; + add_hierarchy_to_namelist (np, device, false); } } free (namebuf); + name->child = child_head; } } +/* Auxiliary functions for hashed table of struct name's. */ + +static size_t +name_hash (void const *entry, size_t n_buckets) +{ + struct name const *name = entry; + return hash_string (name->caname, n_buckets); +} + +/* Compare two directories for equality of their names. */ +static bool +name_compare (void const *entry1, void const *entry2) +{ + struct name const *name1 = entry1; + struct name const *name2 = entry2; + return strcmp (name1->caname, name2->caname) == 0; +} + + +/* Rebase `name' member of CHILD and all its siblings to + the new PARENT. */ +static void +rebase_child_list (struct name *child, struct name *parent) +{ + size_t old_prefix_len = child->parent->length; + size_t new_prefix_len = parent->length; + char *new_prefix = parent->name; + + for (; child; child = child->sibling) + { + size_t size = child->length - old_prefix_len + new_prefix_len; + char *newp = xmalloc (size + 1); + strcpy (newp, new_prefix); + strcat (newp, child->name + old_prefix_len); + free (child->name); + child->name = newp; + child->length = size; + + rebase_directory (child->directory, + child->parent->name, old_prefix_len, + new_prefix, new_prefix_len); + } +} + /* Collect all the names from argv[] (or whatever), expand them into a directory tree, and sort them. This gets only subdirectories, not all files. */ @@ -789,28 +871,50 @@ void collect_and_sort_names (void) { struct name *name; - struct name *next_name; + struct name *next_name, *prev_name; int num_names; struct stat statbuf; - + Hash_table *nametab; + name_gather (); - if (listed_incremental_option) - read_directory_file (); - if (!namelist) - addname (".", 0); + addname (".", 0, false, NULL); - for (name = namelist; name; name = next_name) + if (listed_incremental_option) { - next_name = name->next; - if (name->found_count || name->dir_contents) + switch (chdir_count ()) + { + case 0: + break; + + case 1: + if (namelist->change_dir == 0) + USAGE_ERROR ((0, 0, + _("Using -C option inside file list is not " + "allowed with --listed-incremental"))); + break; + + default: + USAGE_ERROR ((0, 0, + _("Only one -C option is allowed with " + "--listed-incremental"))); + } + + read_directory_file (); + } + + num_names = 0; + for (name = namelist; name; name = name->next, num_names++) + { + if (name->found_count || name->directory) continue; if (name->matching_flags & EXCLUDE_WILDCARDS) /* NOTE: EXCLUDE_ANCHORED is not relevant here */ /* FIXME: just skip regexps for now */ continue; chdir_do (name->change_dir); + if (name->name[0] == 0) continue; @@ -822,24 +926,63 @@ collect_and_sort_names (void) if (S_ISDIR (statbuf.st_mode)) { name->found_count++; - add_hierarchy_to_namelist (name, statbuf.st_dev); + add_hierarchy_to_namelist (name, statbuf.st_dev, true); } } - num_names = 0; - for (name = namelist; name; name = name->next) - num_names++; namelist = merge_sort (namelist, num_names, compare_names); - for (name = namelist; name; name = name->next) - name->found_count = 0; + num_names = 0; + nametab = hash_initialize (0, 0, + name_hash, + name_compare, NULL); + for (name = namelist; name; name = next_name) + { + next_name = name->next; + name->caname = normalize_filename (name->name); + if (prev_name) + { + struct name *p = hash_lookup (nametab, name); + if (p) + { + /* Keep the one listed in the command line */ + if (!name->parent) + { + if (p->child) + rebase_child_list (p->child, name); + /* FIXME: remove_directory (p->caname); ? */ + remname (p); + free_name (p); + num_names--; + } + else + { + if (name->child) + rebase_child_list (name->child, p); + /* FIXME: remove_directory (name->caname); ? */ + remname (name); + free_name (name); + continue; + } + } + } + name->found_count = 0; + if (!hash_insert (nametab, name)) + xalloc_die (); + prev_name = name; + num_names++; + } + nametail = prev_name; + hash_free (nametab); + + namelist = merge_sort (namelist, num_names, compare_names_found); if (listed_incremental_option) { for (name = namelist; name && name->name[0] == 0; name++) ; if (name) - name->dir_contents = append_incremental_renames (name->dir_contents); + append_incremental_renames (name->directory); } } @@ -880,8 +1023,8 @@ name_scan (const char *file_name) find and return all the non-found names in the namelist. */ struct name *gnu_list_name; -char * -name_from_list (void) +struct name const * +name_from_list () { if (!gnu_list_name) gnu_list_name = namelist; @@ -892,9 +1035,9 @@ name_from_list (void) { gnu_list_name->found_count++; chdir_do (gnu_list_name->change_dir); - return gnu_list_name->name; + return gnu_list_name; } - return 0; + return NULL; } void @@ -928,24 +1071,6 @@ excluded_name (char const *name) { return excluded_file_name (excluded, name + FILE_SYSTEM_PREFIX_LEN (name)); } - -/* Names to avoid dumping. */ -static Hash_table *avoided_name_table; - -/* Remember to not archive NAME. */ -void -add_avoided_name (char const *name) -{ - hash_string_insert (&avoided_name_table, name); -} - -/* Should NAME be avoided when archiving? */ -bool -is_avoided_name (char const *name) -{ - return hash_string_lookup (avoided_name_table, name); -} - static Hash_table *individual_file_table; @@ -953,12 +1078,12 @@ static void register_individual_file (char const *name) { struct stat st; - + if (deref_stat (dereference_option, name, &st) != 0) return; /* Will be complained about later */ if (S_ISDIR (st.st_mode)) return; - + hash_string_insert (&individual_file_table, name); } diff --git a/src/suffix.c b/src/suffix.c index 6dbc68e2d5a516eddb26f737cda704b9031299ee..23868c914f8577edb9081c99bcc3275753f1e87b 100644 --- a/src/suffix.c +++ b/src/suffix.c @@ -26,26 +26,29 @@ struct compression_suffix const char *program; }; -struct compression_suffix compression_suffixes[] = { -#define S(s,p) #s, sizeof (#s) - 1, #p - { S(gz, gzip) }, - { S(tgz, gzip) }, - { S(taz, gzip) }, - { S(Z, compress) }, - { S(taZ, compress) }, - { S(bz2, bzip2) }, - { S(tbz, bzip2) }, - { S(tbz2, bzip2) }, - { S(tz2, bzip2) }, - { S(lzma, lzma) }, - { S(tlz, lzma) }, - { S(lzo, lzop) }, - { S(xz, xz) }, +static struct compression_suffix compression_suffixes[] = { +#define __CAT2__(a,b) a ## b +#define S(s,p) #s, sizeof (#s) - 1, __CAT2__(p,_PROGRAM) + { S(gz, GZIP) }, + { S(tgz, GZIP) }, + { S(taz, GZIP) }, + { S(Z, COMPRESS) }, + { S(taZ, COMPRESS) }, + { S(bz2, BZIP2) }, + { S(tbz, BZIP2) }, + { S(tbz2, BZIP2) }, + { S(tz2, BZIP2) }, + { S(lz, LZIP) }, + { S(lzma, LZMA) }, + { S(tlz, LZMA) }, + { S(lzo, LZOP) }, + { S(xz, XZ) }, #undef S +#undef __CAT2__ }; -int nsuffixes = sizeof (compression_suffixes) / - sizeof (compression_suffixes[0]); +static int nsuffixes = sizeof (compression_suffixes) / + sizeof (compression_suffixes[0]); static const char * find_compression_program (const char *name, const char *defprog) diff --git a/src/system.c b/src/system.c index c90a40d1217b0441571604ead5f9af839675793c..d646822c4a6ccc65ae0ad098b1b1f47956db6dd4 100644 --- a/src/system.c +++ b/src/system.c @@ -174,11 +174,11 @@ sys_wait_for_child (pid_t child_pid, bool eof) { int sig = WTERMSIG (wait_status); if (!(!eof && sig == SIGPIPE)) - ERROR ((0, 0, _("Child died with signal %d"), sig)); + FATAL_ERROR ((0, 0, _("Child died with signal %d"), sig)); } else if (WEXITSTATUS (wait_status) != 0) - ERROR ((0, 0, _("Child returned status %d"), - WEXITSTATUS (wait_status))); + FATAL_ERROR ((0, 0, _("Child returned status %d"), + WEXITSTATUS (wait_status))); } } @@ -283,6 +283,30 @@ xdup2 (int from, int into) } } +void wait_for_grandchild (pid_t pid) __attribute__ ((__noreturn__)); + +/* Propagate any failure of the grandchild back to the parent. */ +void +wait_for_grandchild (pid_t pid) +{ + int wait_status; + int exit_code = 0; + + while (waitpid (pid, &wait_status, 0) == -1) + if (errno != EINTR) + { + waitpid_error (use_compress_program_option); + break; + } + + if (WIFSIGNALED (wait_status)) + raise (WTERMSIG (wait_status)); + else if (WEXITSTATUS (wait_status) != 0) + exit_code = WEXITSTATUS (wait_status); + + exit (exit_code); +} + /* Set ARCHIVE for writing, then compressing an archive. */ pid_t sys_child_open_for_compress (void) @@ -291,7 +315,6 @@ sys_child_open_for_compress (void) int child_pipe[2]; pid_t grandchild_pid; pid_t child_pid; - int wait_status; xpipe (parent_pipe); child_pid = xfork (); @@ -307,8 +330,9 @@ sys_child_open_for_compress (void) /* The new born child tar is here! */ - program_name = _("tar (child)"); - + set_program_name (_("tar (child)")); + signal (SIGPIPE, SIG_DFL); + xdup2 (parent_pipe[PREAD], STDIN_FILENO); xclose (parent_pipe[PWRITE]); @@ -351,7 +375,7 @@ sys_child_open_for_compress (void) { /* The newborn grandchild tar is here! Launch the compressor. */ - program_name = _("tar (grandchild)"); + set_program_name (_("tar (grandchild)")); xdup2 (child_pipe[PWRITE], STDOUT_FILENO); xclose (child_pipe[PREAD]); @@ -424,24 +448,7 @@ sys_child_open_for_compress (void) archive_write_error (status); } - /* Propagate any failure of the grandchild back to the parent. */ - - while (waitpid (grandchild_pid, &wait_status, 0) == -1) - if (errno != EINTR) - { - waitpid_error (use_compress_program_option); - break; - } - - if (WIFSIGNALED (wait_status)) - { - kill (child_pid, WTERMSIG (wait_status)); - exit_status = TAREXIT_FAILURE; - } - else if (WEXITSTATUS (wait_status) != 0) - exit_status = WEXITSTATUS (wait_status); - - exit (exit_status); + wait_for_grandchild (grandchild_pid); } /* Set ARCHIVE for uncompressing, then reading an archive. */ @@ -452,7 +459,6 @@ sys_child_open_for_uncompress (void) int child_pipe[2]; pid_t grandchild_pid; pid_t child_pid; - int wait_status; xpipe (parent_pipe); child_pid = xfork (); @@ -468,8 +474,9 @@ sys_child_open_for_uncompress (void) /* The newborn child tar is here! */ - program_name = _("tar (child)"); - + set_program_name (_("tar (child)")); + signal (SIGPIPE, SIG_DFL); + xdup2 (parent_pipe[PWRITE], STDOUT_FILENO); xclose (parent_pipe[PREAD]); @@ -503,7 +510,7 @@ sys_child_open_for_uncompress (void) { /* The newborn grandchild tar is here! Launch the uncompressor. */ - program_name = _("tar (grandchild)"); + set_program_name (_("tar (grandchild)")); xdup2 (child_pipe[PREAD], STDIN_FILENO); xclose (child_pipe[PWRITE]); @@ -562,24 +569,7 @@ sys_child_open_for_uncompress (void) xclose (STDOUT_FILENO); - /* Propagate any failure of the grandchild back to the parent. */ - - while (waitpid (grandchild_pid, &wait_status, 0) == -1) - if (errno != EINTR) - { - waitpid_error (use_compress_program_option); - break; - } - - if (WIFSIGNALED (wait_status)) - { - kill (child_pid, WTERMSIG (wait_status)); - exit_status = TAREXIT_FAILURE; - } - else if (WEXITSTATUS (wait_status) != 0) - exit_status = WEXITSTATUS (wait_status); - - exit (exit_status); + wait_for_grandchild (grandchild_pid); } @@ -639,6 +629,12 @@ static void stat_to_env (char *name, char type, struct tar_stat_info *st) { str_to_env ("TAR_VERSION", PACKAGE_VERSION); + str_to_env ("TAR_ARCHIVE", *archive_name_cursor); + dec_to_env ("TAR_VOLUME", archive_name_cursor - archive_name_array + 1); + dec_to_env ("TAR_BLOCKING_FACTOR", blocking_factor); + str_to_env ("TAR_FORMAT", + archive_format_string (current_format == DEFAULT_FORMAT ? + archive_format : current_format)); chr_to_env ("TAR_FILETYPE", type); oct_to_env ("TAR_MODE", st->stat.st_mode); str_to_env ("TAR_FILENAME", name); diff --git a/src/tar.c b/src/tar.c index e10b80431c1c60ba5f7fa2ee04b9e0f07310970a..da124196ad48b5f74a209e0ae2fff475e2da480f 100644 --- a/src/tar.c +++ b/src/tar.c @@ -25,6 +25,7 @@ #include <argp.h> #include <argp-namefrob.h> #include <argp-fmtstream.h> +#include <argp-version-etc.h> #include <signal.h> #if ! defined SIGCHLD && defined SIGCLD @@ -50,6 +51,7 @@ #include <version-etc.h> #include <xstrtol.h> #include <stdopen.h> +#include <priv-set.h> /* Local declarations. */ @@ -212,18 +214,25 @@ subcommand_string (enum subcommand c) case UPDATE_SUBCOMMAND: return "-u"; - default: - abort (); + case TEST_LABEL_SUBCOMMAND: + return "--test-label"; } + abort (); } void -tar_list_quoting_styles (argp_fmtstream_t fs, char *prefix) +tar_list_quoting_styles (struct obstack *stk, char *prefix) { int i; - + size_t prefixlen = strlen (prefix); + for (i = 0; quoting_style_args[i]; i++) - argp_fmtstream_printf (fs, "%s%s\n", prefix, quoting_style_args[i]); + { + obstack_grow (stk, prefix, prefixlen); + obstack_grow (stk, quoting_style_args[i], + strlen (quoting_style_args[i])); + obstack_1grow (stk, '\n'); + } } void @@ -255,6 +264,7 @@ enum DELAY_DIRECTORY_RESTORE_OPTION, HARD_DEREFERENCE_OPTION, DELETE_OPTION, + EXCLUDE_BACKUPS_OPTION, EXCLUDE_CACHES_OPTION, EXCLUDE_CACHES_UNDER_OPTION, EXCLUDE_CACHES_ALL_OPTION, @@ -265,12 +275,13 @@ enum EXCLUDE_VCS_OPTION, FORCE_LOCAL_OPTION, GROUP_OPTION, - HANG_OPTION, IGNORE_CASE_OPTION, IGNORE_COMMAND_ERROR_OPTION, IGNORE_FAILED_READ_OPTION, INDEX_FILE_OPTION, KEEP_NEWER_FILES_OPTION, + LEVEL_OPTION, + LZIP_OPTION, LZMA_OPTION, LZOP_OPTION, MODE_OPTION, @@ -288,6 +299,7 @@ enum NO_RECURSION_OPTION, NO_SAME_OWNER_OPTION, NO_SAME_PERMISSIONS_OPTION, + NO_SEEK_OPTION, NO_UNQUOTE_OPTION, NO_WILDCARDS_MATCH_SLASH_OPTION, NO_WILDCARDS_OPTION, @@ -323,10 +335,9 @@ enum TO_COMMAND_OPTION, TRANSFORM_OPTION, UNQUOTE_OPTION, - USAGE_OPTION, UTC_OPTION, - VERSION_OPTION, VOLNO_FILE_OPTION, + WARNING_OPTION, WILDCARDS_MATCH_SLASH_OPTION, WILDCARDS_OPTION }; @@ -362,7 +373,12 @@ The version control may be set with --backup or VERSION_CONTROL, values are:\n\n [q alias for --occurrence=1 =/= this would better be used for quiet?] y per-file gzip compression - Y per-block gzip compression */ + Y per-block gzip compression. + + Additionally, the 'n' letter is assigned for option --seek, which + is probably not needed and should be marked as deprecated, so that + -n may become available in the future. +*/ static struct argp_option options[] = { #define GRID 10 @@ -404,6 +420,8 @@ static struct argp_option options[] = { N_("handle old GNU-format incremental backup"), GRID+1 }, {"listed-incremental", 'g', N_("FILE"), 0, N_("handle new GNU-format incremental backup"), GRID+1 }, + {"level", LEVEL_OPTION, N_("NUMBER"), 0, + N_("dump level for created listed-incremental archive"), GRID+1 }, {"ignore-failed-read", IGNORE_FAILED_READ_OPTION, 0, 0, N_("do not exit with nonzero on unreadable files"), GRID+1 }, {"occurrence", OCCURRENCE_OPTION, N_("NUMBER"), OPTION_ARG_OPTIONAL, @@ -414,6 +432,8 @@ static struct argp_option options[] = { " NUMBER defaults to 1"), GRID+1 }, {"seek", 'n', NULL, 0, N_("archive is seekable"), GRID+1 }, + {"no-seek", NO_SEEK_OPTION, NULL, 0, + N_("archive is not seekable"), GRID+1 }, {"no-check-device", NO_CHECK_DEVICE_OPTION, NULL, 0, N_("do not check device numbers when creating incremental archives"), GRID+1 }, @@ -481,9 +501,9 @@ static struct argp_option options[] = { {"touch", 'm', 0, 0, N_("don't extract file modified time"), GRID+1 }, {"same-owner", SAME_OWNER_OPTION, 0, 0, - N_("try extracting files with the same ownership"), GRID+1 }, + N_("try extracting files with the same ownership as exists in the archive (default for superuser)"), GRID+1 }, {"no-same-owner", NO_SAME_OWNER_OPTION, 0, 0, - N_("extract files as yourself"), GRID+1 }, + N_("extract files as yourself (default for ordinary users)"), GRID+1 }, {"numeric-owner", NUMERIC_OWNER_OPTION, 0, 0, N_("always use numbers for user/group names"), GRID+1 }, {"preserve-permissions", 'p', 0, 0, @@ -596,23 +616,19 @@ static struct argp_option options[] = { {"no-auto-compress", NO_AUTO_COMPRESS_OPTION, 0, 0, N_("do not use archive suffix to determine the compression program"), GRID+1 }, - {"bzip2", 'j', 0, 0, - N_("filter the archive through bzip2"), GRID+1 }, - {"gzip", 'z', 0, 0, - N_("filter the archive through gzip"), GRID+1 }, + {"use-compress-program", 'I', N_("PROG"), 0, + N_("filter through PROG (must accept -d)"), GRID+1 }, + /* Note: docstrings for the options below are generated by tar_help_filter */ + {"bzip2", 'j', 0, 0, NULL, GRID+1 }, + {"gzip", 'z', 0, 0, NULL, GRID+1 }, {"gunzip", 0, 0, OPTION_ALIAS, NULL, GRID+1 }, {"ungzip", 0, 0, OPTION_ALIAS, NULL, GRID+1 }, - {"compress", 'Z', 0, 0, - N_("filter the archive through compress"), GRID+1 }, + {"compress", 'Z', 0, 0, NULL, GRID+1 }, {"uncompress", 0, 0, OPTION_ALIAS, NULL, GRID+1 }, - {"lzma", LZMA_OPTION, 0, 0, - N_("filter the archive through lzma"), GRID+1 }, - {"lzop", LZOP_OPTION, 0, 0, - N_("filter the archive through lzop"), GRID+8 }, - {"xz", 'J', 0, 0, - N_("filter the archive through xz"), GRID+8 }, - {"use-compress-program", 'I', N_("PROG"), 0, - N_("filter through PROG (must accept -d)"), GRID+1 }, + {"lzip", LZIP_OPTION, 0, 0, NULL, GRID+1 }, + {"lzma", LZMA_OPTION, 0, 0, NULL, GRID+1 }, + {"lzop", LZOP_OPTION, 0, 0, NULL, GRID+1 }, + {"xz", 'J', 0, 0, NULL, GRID+1 }, #undef GRID #define GRID 100 @@ -654,6 +670,8 @@ static struct argp_option options[] = { N_("exclude directories containing FILE"), GRID+1 }, {"exclude-vcs", EXCLUDE_VCS_OPTION, NULL, 0, N_("exclude version control system directories"), GRID+1 }, + {"exclude-backups", EXCLUDE_BACKUPS_OPTION, NULL, 0, + N_("exclude backup and lock files"), GRID+1 }, {"no-recursion", NO_RECURSION_OPTION, 0, 0, N_("avoid descending automatically in directories"), GRID+1 }, {"one-file-system", ONE_FILE_SYSTEM_OPTION, 0, 0, @@ -718,6 +736,8 @@ static struct argp_option options[] = { {"verbose", 'v', 0, 0, N_("verbosely list files processed"), GRID+1 }, + {"warning", WARNING_OPTION, N_("KEYWORD"), 0, + N_("warning control"), GRID+1 }, {"checkpoint", CHECKPOINT_OPTION, N_("NUMBER"), OPTION_ARG_OPTIONAL, N_("display progress messages every NUMBERth record (default 10)"), GRID+1 }, @@ -770,14 +790,6 @@ static struct argp_option options[] = { {"restrict", RESTRICT_OPTION, 0, 0, N_("disable use of some potentially harmful options"), -1 }, - - {"help", '?', 0, 0, N_("give this help list"), -1}, - {"usage", USAGE_OPTION, 0, 0, N_("give a short usage message"), -1}, - {"version", VERSION_OPTION, 0, 0, N_("print program version"), -1}, - /* FIXME -V (--label) conflicts with the default short option for - --version */ - {"HANG", HANG_OPTION, "SECS", OPTION_ARG_OPTIONAL | OPTION_HIDDEN, - N_("hang for SECS seconds (default 3600)"), 0}, #undef GRID {0, 0, 0, 0, 0, 0} @@ -837,88 +849,83 @@ struct tar_args /* Variables used during option parsing */ | (args)->matching_flags \ | recursion_option) +static char const * const vcs_file_table[] = { + /* CVS: */ + "CVS", + ".cvsignore", + /* RCS: */ + "RCS", + /* SCCS: */ + "SCCS", + /* SVN: */ + ".svn", + /* git: */ + ".git", + ".gitignore", + /* Arch: */ + ".arch-ids", + "{arch}", + "=RELEASE-ID", + "=meta-update", + "=update", + /* Bazaar */ + ".bzr", + ".bzrignore", + ".bzrtags", + /* Mercurial */ + ".hg", + ".hgignore", + ".hgtags", + /* darcs */ + "_darcs", + NULL +}; + +static char const * const backup_file_table[] = { + ".#*", + "*~", + "#*#", + NULL +}; + void -exclude_vcs_files () +add_exclude_array (char const * const * fv) { int i; - static char *vcs_file[] = { - /* CVS: */ - "CVS", - ".cvsignore", - /* RCS: */ - "RCS", - /* SCCS: */ - "SCCS", - /* SVN: */ - ".svn", - /* git: */ - ".git", - ".gitignore", - /* Arch: */ - ".arch-ids", - "{arch}", - "=RELEASE-ID", - "=meta-update", - "=update", - /* Bazaar */ - ".bzr", - ".bzrignore", - ".bzrtags", - /* Mercurial */ - ".hg", - ".hgignore", - ".hgtags", - /* darcs */ - "_darcs", - NULL - }; - for (i = 0; vcs_file[i]; i++) - add_exclude (excluded, vcs_file[i], 0); + for (i = 0; fv[i]; i++) + add_exclude (excluded, fv[i], 0); } +static char * +format_default_settings (void) +{ + return xasprintf ( + "--format=%s -f%s -b%d --quoting-style=%s --rmt-command=%s" #ifdef REMOTE_SHELL -# define DECL_SHOW_DEFAULT_SETTINGS(stream, printer) \ -{ \ - printer (stream, \ - "--format=%s -f%s -b%d --quoting-style=%s --rmt-command=%s", \ - archive_format_string (DEFAULT_ARCHIVE_FORMAT), \ - DEFAULT_ARCHIVE, DEFAULT_BLOCKING, \ - quoting_style_args[DEFAULT_QUOTING_STYLE], \ - DEFAULT_RMT_COMMAND); \ - printer (stream, " --rsh-command=%s", REMOTE_SHELL); \ - printer (stream, "\n"); \ -} -#else -# define DECL_SHOW_DEFAULT_SETTINGS(stream, printer) \ -{ \ - printer (stream, \ - "--format=%s -f%s -b%d --quoting-style=%s --rmt-command=%s", \ - archive_format_string (DEFAULT_ARCHIVE_FORMAT), \ - DEFAULT_ARCHIVE, DEFAULT_BLOCKING, \ - quoting_style_args[DEFAULT_QUOTING_STYLE], \ - DEFAULT_RMT_COMMAND); \ - printer (stream, "\n"); \ -} + " --rsh-command=%s" #endif + , + archive_format_string (DEFAULT_ARCHIVE_FORMAT), + DEFAULT_ARCHIVE, DEFAULT_BLOCKING, + quoting_style_args[DEFAULT_QUOTING_STYLE], + DEFAULT_RMT_COMMAND +#ifdef REMOTE_SHELL + , REMOTE_SHELL +#endif + ); +} -static void -show_default_settings (FILE *fp) - DECL_SHOW_DEFAULT_SETTINGS(fp, fprintf) - -static void -show_default_settings_fs (argp_fmtstream_t fs) - DECL_SHOW_DEFAULT_SETTINGS(fs, argp_fmtstream_printf) - + static void set_subcommand_option (enum subcommand subcommand) { if (subcommand_option != UNKNOWN_SUBCOMMAND && subcommand_option != subcommand) USAGE_ERROR ((0, 0, - _("You may not specify more than one `-Acdtrux' option"))); - + _("You may not specify more than one `-Acdtrux' or `--test-label' option"))); + subcommand_option = subcommand; } @@ -928,7 +935,7 @@ set_use_compress_program_option (const char *string) if (use_compress_program_option && strcmp (use_compress_program_option, string) != 0) USAGE_ERROR ((0, 0, _("Conflicting compression options"))); - + use_compress_program_option = string; } @@ -990,12 +997,12 @@ set_stat_signal (const char *name) struct textual_date { struct textual_date *next; - struct timespec *ts; + struct timespec ts; const char *option; - const char *date; + char *date; }; -static void +static int get_date_or_file (struct tar_args *args, const char *option, const char *str, struct timespec *ts) { @@ -1018,17 +1025,19 @@ get_date_or_file (struct tar_args *args, const char *option, WARN ((0, 0, _("Substituting %s for unknown date format %s"), tartime (*ts, false), quote (str))); ts->tv_nsec = 0; + return 1; } else { struct textual_date *p = xmalloc (sizeof (*p)); - p->ts = ts; + p->ts = *ts; p->option = option; - p->date = str; + p->date = xstrdup (str); p->next = args->textual_date; args->textual_date = p; } } + return 0; } static void @@ -1038,17 +1047,20 @@ report_textual_dates (struct tar_args *args) for (p = args->textual_date; p; ) { struct textual_date *next = p->next; - char const *treated_as = tartime (*p->ts, true); - if (strcmp (p->date, treated_as) != 0) - WARN ((0, 0, _("Option %s: Treating date `%s' as %s"), - p->option, p->date, treated_as)); + if (verbose_option) + { + char const *treated_as = tartime (p->ts, true); + if (strcmp (p->date, treated_as) != 0) + WARN ((0, 0, _("Option %s: Treating date `%s' as %s"), + p->option, p->date, treated_as)); + } + free (p->date); free (p); p = next; } } -static volatile int _argp_hang; /* Either NL or NUL, as decided by the --null option. */ static char filename_terminator; @@ -1081,7 +1093,7 @@ read_name_from_file (FILE *fp, struct obstack *stk, int term) obstack_1grow (stk, c); counter++; } - + if (counter == 0 && c != EOF) return file_list_skip; @@ -1165,7 +1177,7 @@ update_argv (const char *filename, struct argp_state *state) if ((fp = fopen (filename, "r")) == NULL) open_fatal (filename); } - + while ((read_state = read_name_from_file (fp, &argv_stk, term)) != file_list_end) { @@ -1174,17 +1186,18 @@ update_argv (const char *filename, struct argp_state *state) case file_list_success: count++; break; - + case file_list_end: /* won't happen, just to pacify gcc */ break; - + case file_list_zero: { size_t size; - - WARN ((0, 0, N_("%s: file name read contains nul character"), - quotearg_colon (filename))); - + + WARNOPT (WARN_FILENAME_WITH_NULS, + (0, 0, N_("%s: file name read contains nul character"), + quotearg_colon (filename))); + /* Prepare new stack contents */ size = obstack_object_size (&argv_stk); p = obstack_finish (&argv_stk); @@ -1199,34 +1212,34 @@ update_argv (const char *filename, struct argp_state *state) term = 0; break; } - + case file_list_skip: break; } } - + if (!is_stdin) fclose (fp); - + if (count == 0) return; - + start = obstack_finish (&argv_stk); - + if (term == 0) for (p = start; *p; p += strlen (p) + 1) if (p[0] == '-') count++; - + new_argc = state->argc + count; new_argv = xmalloc (sizeof (state->argv[0]) * (new_argc + 1)); memcpy (new_argv, state->argv, sizeof (state->argv[0]) * (state->argc + 1)); state->argv = new_argv; memmove (&state->argv[state->next + count], &state->argv[state->next], (state->argc - state->next + 1) * sizeof (state->argv[0])); - + state->argc = new_argc; - + for (i = state->next, p = start; *p; p += strlen (p) + 1, i++) { if (term == 0 && p[0] == '-') @@ -1236,27 +1249,113 @@ update_argv (const char *filename, struct argp_state *state) } -static void -tar_help (struct argp_state *state) +static char * +tar_help_filter (int key, const char *text, void *input) { - argp_fmtstream_t fs; - state->flags |= ARGP_NO_EXIT; - argp_state_help (state, state->out_stream, - ARGP_HELP_STD_HELP & ~ARGP_HELP_BUG_ADDR); - /* FIXME: use struct uparams.rmargin (from argp-help.c) instead of 79 */ - fs = argp_make_fmtstream (state->out_stream, 0, 79, 0); - - argp_fmtstream_printf (fs, "\n%s\n\n", - _("Valid arguments for --quoting-style options are:")); - tar_list_quoting_styles (fs, " "); - - argp_fmtstream_puts (fs, _("\n*This* tar defaults to:\n")); - show_default_settings_fs (fs); - argp_fmtstream_putc (fs, '\n'); - argp_fmtstream_printf (fs, _("Report bugs to %s.\n"), - argp_program_bug_address); - argp_fmtstream_free (fs); + struct obstack stk; + char *s; + + switch (key) + { + default: + s = (char*) text; + break; + + case 'j': + s = xasprintf (_("filter the archive through %s"), BZIP2_PROGRAM); + break; + + case 'z': + s = xasprintf (_("filter the archive through %s"), GZIP_PROGRAM); + break; + + case 'Z': + s = xasprintf (_("filter the archive through %s"), COMPRESS_PROGRAM); + break; + + case LZIP_OPTION: + s = xasprintf (_("filter the archive through %s"), LZIP_PROGRAM); + break; + + case LZMA_OPTION: + s = xasprintf (_("filter the archive through %s"), LZMA_PROGRAM); + break; + + case 'J': + s = xasprintf (_("filter the archive through %s"), XZ_PROGRAM); + break; + + case ARGP_KEY_HELP_EXTRA: + obstack_init (&stk); + s = _("Valid arguments for the --quoting-style option are:"); + obstack_grow (&stk, s, strlen (s)); + obstack_grow (&stk, "\n\n", 2); + tar_list_quoting_styles (&stk, " "); + s = _("\n*This* tar defaults to:\n"); + obstack_grow (&stk, s, strlen (s)); + s = format_default_settings (); + obstack_grow (&stk, s, strlen (s)); + obstack_1grow (&stk, '\n'); + obstack_1grow (&stk, 0); + s = xstrdup (obstack_finish (&stk)); + obstack_free (&stk, NULL); + } + return s; +} + +static char * +expand_pax_option (struct tar_args *targs, const char *arg) +{ + struct obstack stk; + char *res; + + obstack_init (&stk); + while (*arg) + { + size_t seglen = strcspn (arg, ","); + char *p = memchr (arg, '=', seglen); + if (p) + { + size_t len = p - arg + 1; + obstack_grow (&stk, arg, len); + len = seglen - len; + for (++p; *p && isspace ((unsigned char) *p); p++) + len--; + if (*p == '{' && p[len-1] == '}') + { + struct timespec ts; + char *tmp = xmalloc (len); + memcpy (tmp, p + 1, len-2); + tmp[len-2] = 0; + if (get_date_or_file (targs, "--pax-option", tmp, &ts) == 0) + { + char buf[UINTMAX_STRSIZE_BOUND], *s; + s = umaxtostr (ts.tv_sec, buf); + obstack_grow (&stk, s, strlen (s)); + } + else + obstack_grow (&stk, p, len); + free (tmp); + } + else + obstack_grow (&stk, p, len); + } + else + obstack_grow (&stk, arg, seglen); + + arg += seglen; + if (*arg) + { + obstack_1grow (&stk, *arg); + arg++; + } + } + obstack_1grow (&stk, 0); + res = xstrdup (obstack_finish (&stk)); + obstack_free (&stk, NULL); + return res; } + static error_t parse_opt (int key, char *arg, struct argp_state *state) @@ -1270,15 +1369,15 @@ parse_opt (int key, char *arg, struct argp_state *state) name_add_name (arg, MAKE_INCL_OPTIONS (args)); args->input_files = true; break; - + case 'A': set_subcommand_option (CAT_SUBCOMMAND); break; - + case 'a': args->compress_autodetect = true; break; - + case NO_AUTO_COMPRESS_OPTION: args->compress_autodetect = false; break; @@ -1294,65 +1393,65 @@ parse_opt (int key, char *arg, struct argp_state *state) _("Invalid blocking factor"))); } break; - + case 'B': /* Try to reblock input records. For reading 4.2BSD pipes. */ - + /* It would surely make sense to exchange -B and -R, but it seems that -B has been used for a long while in Sun tar and most BSD-derived systems. This is a consequence of the block/record terminology confusion. */ - + read_full_records_option = true; break; - + case 'c': set_subcommand_option (CREATE_SUBCOMMAND); break; - + case 'C': name_add_dir (arg); break; - + case 'd': set_subcommand_option (DIFF_SUBCOMMAND); break; - + case 'f': if (archive_names == allocated_archive_names) archive_name_array = x2nrealloc (archive_name_array, &allocated_archive_names, sizeof (archive_name_array[0])); - + archive_name_array[archive_names++] = arg; break; - + case 'F': /* Since -F is only useful with -M, make it implied. Run this script at the end of each tape. */ - + info_script_option = arg; multi_volume_option = true; break; - + case 'g': listed_incremental_option = arg; after_date_option = true; /* Fall through. */ - + case 'G': /* We are making an incremental dump (FIXME: are we?); save directories at the beginning of the archive, and include in each directory its contents. */ - + incremental_option = true; break; - + case 'h': /* Follow symbolic links. */ dereference_option = true; break; - + case HARD_DEREFERENCE_OPTION: hard_dereference_option = true; break; @@ -1361,38 +1460,38 @@ parse_opt (int key, char *arg, struct argp_state *state) /* Ignore zero blocks (eofs). This can't be the default, because Unix tar writes two blocks of zeros, then pads out the record with garbage. */ - + ignore_zeros_option = true; break; - + case 'j': - set_use_compress_program_option ("bzip2"); + set_use_compress_program_option (BZIP2_PROGRAM); break; - + case 'J': - set_use_compress_program_option ("xz"); + set_use_compress_program_option (XZ_PROGRAM); break; case 'k': /* Don't replace existing files. */ old_files_option = KEEP_OLD_FILES; break; - + case 'K': starting_file_option = true; - addname (arg, 0); + addname (arg, 0, true, NULL); break; - + case ONE_FILE_SYSTEM_OPTION: /* When dumping directories, don't dump files/subdirectories that are on other filesystems. */ one_file_system_option = true; break; - + case 'l': check_links_option = 1; break; - + case 'L': { uintmax_t u; @@ -1403,88 +1502,105 @@ parse_opt (int key, char *arg, struct argp_state *state) multi_volume_option = true; } break; - + + case LEVEL_OPTION: + { + char *p; + incremental_level = strtoul (arg, &p, 10); + if (*p) + USAGE_ERROR ((0, 0, _("Invalid incremental level value"))); + } + break; + + case LZIP_OPTION: + set_use_compress_program_option (LZIP_PROGRAM); + break; + case LZMA_OPTION: - set_use_compress_program_option ("lzma"); + set_use_compress_program_option (LZMA_PROGRAM); break; case LZOP_OPTION: - set_use_compress_program_option ("lzop"); + set_use_compress_program_option (LZOP_PROGRAM); break; case 'm': touch_option = true; break; - + case 'M': /* Make multivolume archive: when we can't write any more into the archive, re-open it, and continue writing. */ - + multi_volume_option = true; break; - + case MTIME_OPTION: get_date_or_file (args, "--mtime", arg, &mtime_option); set_mtime_option = true; break; - + case 'n': - seekable_archive = true; + seek_option = 1; break; - + + case NO_SEEK_OPTION: + seek_option = 0; + break; + case 'N': after_date_option = true; /* Fall through. */ - + case NEWER_MTIME_OPTION: if (NEWER_OPTION_INITIALIZED (newer_mtime_option)) USAGE_ERROR ((0, 0, _("More than one threshold date"))); get_date_or_file (args, key == NEWER_MTIME_OPTION ? "--newer-mtime" - : "--after-date", arg, &newer_mtime_option); + : "--after-date", arg, &newer_mtime_option); break; - + case 'o': args->o_option = true; break; - + case 'O': to_stdout_option = true; break; - + case 'p': same_permissions_option = true; break; - + case 'P': absolute_names_option = true; break; - + case 'r': set_subcommand_option (APPEND_SUBCOMMAND); break; - + case 'R': /* Print block numbers for debugging bad tar archives. */ - + /* It would surely make sense to exchange -B and -R, but it seems that -B has been used for a long while in Sun tar and most BSD-derived systems. This is a consequence of the block/record terminology confusion. */ - + block_number_option = true; break; - + case 's': /* Names to extract are sorted. */ - + same_order_option = true; break; - + case 'S': sparse_option = true; break; - + case SPARSE_VERSION_OPTION: sparse_option = true; { @@ -1500,17 +1616,16 @@ parse_opt (int key, char *arg, struct argp_state *state) } } break; - + case 't': set_subcommand_option (LIST_SUBCOMMAND); verbose_option++; break; - + case TEST_LABEL_OPTION: - set_subcommand_option (LIST_SUBCOMMAND); - test_label_option = true; + set_subcommand_option (TEST_LABEL_SUBCOMMAND); break; - + case 'T': update_argv (arg, state); /* Indicate we've been given -T option. This is for backward @@ -1518,39 +1633,40 @@ parse_opt (int key, char *arg, struct argp_state *state) succeed */ files_from_option = true; break; - + case 'u': set_subcommand_option (UPDATE_SUBCOMMAND); break; - + case 'U': old_files_option = UNLINK_FIRST_OLD_FILES; break; - + case UTC_OPTION: utc_option = true; break; - + case 'v': verbose_option++; + warning_option |= WARN_VERBOSE_WARNINGS; break; - + case 'V': volume_label_option = arg; break; - + case 'w': interactive_option = true; break; - + case 'W': verify_option = true; break; - + case 'x': set_subcommand_option (EXTRACT_SUBCOMMAND); break; - + case 'X': if (add_exclude_file (add_exclude, excluded, arg, MAKE_EXCL_OPTIONS (args), '\n') @@ -1560,19 +1676,19 @@ parse_opt (int key, char *arg, struct argp_state *state) FATAL_ERROR ((0, e, "%s", quotearg_colon (arg))); } break; - + case 'z': - set_use_compress_program_option ("gzip"); + set_use_compress_program_option (GZIP_PROGRAM); break; - + case 'Z': - set_use_compress_program_option ("compress"); + set_use_compress_program_option (COMPRESS_PROGRAM); break; - + case ANCHORED_OPTION: args->matching_flags |= EXCLUDE_ANCHORED; break; - + case ATIME_PRESERVE_OPTION: atime_preserve_option = (arg @@ -1584,7 +1700,7 @@ parse_opt (int key, char *arg, struct argp_state *state) _("--atime-preserve='system' is not supported" " on this platform"))); break; - + case CHECK_DEVICE_OPTION: check_device_option = true; break; @@ -1597,7 +1713,7 @@ parse_opt (int key, char *arg, struct argp_state *state) if (arg) { char *p; - + if (*arg == '.') { checkpoint_compile_action ("."); @@ -1611,7 +1727,7 @@ parse_opt (int key, char *arg, struct argp_state *state) else checkpoint_option = DEFAULT_CHECKPOINT; break; - + case CHECKPOINT_ACTION_OPTION: checkpoint_compile_action (arg); break; @@ -1621,82 +1737,86 @@ parse_opt (int key, char *arg, struct argp_state *state) if (arg) args->version_control_string = arg; break; - + case DELAY_DIRECTORY_RESTORE_OPTION: delay_directory_restore_option = true; break; - + case NO_DELAY_DIRECTORY_RESTORE_OPTION: delay_directory_restore_option = false; break; - + case DELETE_OPTION: set_subcommand_option (DELETE_SUBCOMMAND); break; - + + case EXCLUDE_BACKUPS_OPTION: + add_exclude_array (backup_file_table); + break; + case EXCLUDE_OPTION: add_exclude (excluded, arg, MAKE_EXCL_OPTIONS (args)); break; - + case EXCLUDE_CACHES_OPTION: add_exclusion_tag ("CACHEDIR.TAG", exclusion_tag_contents, cachedir_file_p); break; - + case EXCLUDE_CACHES_UNDER_OPTION: add_exclusion_tag ("CACHEDIR.TAG", exclusion_tag_under, cachedir_file_p); break; - + case EXCLUDE_CACHES_ALL_OPTION: add_exclusion_tag ("CACHEDIR.TAG", exclusion_tag_all, cachedir_file_p); break; - + case EXCLUDE_TAG_OPTION: add_exclusion_tag (arg, exclusion_tag_contents, NULL); break; - + case EXCLUDE_TAG_UNDER_OPTION: add_exclusion_tag (arg, exclusion_tag_under, NULL); break; - + case EXCLUDE_TAG_ALL_OPTION: add_exclusion_tag (arg, exclusion_tag_all, NULL); break; - + case EXCLUDE_VCS_OPTION: - exclude_vcs_files (); + add_exclude_array (vcs_file_table); break; case FORCE_LOCAL_OPTION: force_local_option = true; break; - + case 'H': set_archive_format (arg); break; - + case INDEX_FILE_OPTION: index_file_name = arg; break; - + case IGNORE_CASE_OPTION: args->matching_flags |= FNM_CASEFOLD; break; - + case IGNORE_COMMAND_ERROR_OPTION: ignore_command_error_option = true; break; - + case IGNORE_FAILED_READ_OPTION: ignore_failed_read_option = true; break; - + case KEEP_NEWER_FILES_OPTION: old_files_option = KEEP_NEWER_FILES; break; - + case GROUP_OPTION: if (! (strlen (arg) < GNAME_FIELD_SIZE && gname_to_gid (arg, &group_option))) @@ -1707,10 +1827,10 @@ parse_opt (int key, char *arg, struct argp_state *state) group_option = g; else FATAL_ERROR ((0, 0, "%s: %s", quotearg_colon (arg), - _("%s: Invalid group"))); + _("Invalid group"))); } break; - + case MODE_OPTION: mode_option = mode_compile (arg); if (!mode_option) @@ -1718,49 +1838,49 @@ parse_opt (int key, char *arg, struct argp_state *state) initial_umask = umask (0); umask (initial_umask); break; - + case NO_ANCHORED_OPTION: args->include_anchored = 0; /* Clear the default for comman line args */ args->matching_flags &= ~ EXCLUDE_ANCHORED; break; - + case NO_IGNORE_CASE_OPTION: args->matching_flags &= ~ FNM_CASEFOLD; break; - + case NO_IGNORE_COMMAND_ERROR_OPTION: ignore_command_error_option = false; break; - + case NO_OVERWRITE_DIR_OPTION: old_files_option = NO_OVERWRITE_DIR_OLD_FILES; break; - + case NO_QUOTE_CHARS_OPTION: for (;*arg; arg++) set_char_quoting (NULL, *arg, 0); break; - + case NO_WILDCARDS_OPTION: args->wildcards = disable_wildcards; break; - + case NO_WILDCARDS_MATCH_SLASH_OPTION: args->matching_flags |= FNM_FILE_NAME; break; - + case NULL_OPTION: filename_terminator = '\0'; break; - + case NO_NULL_OPTION: filename_terminator = '\n'; break; - + case NUMERIC_OWNER_OPTION: numeric_owner_option = true; break; - + case OCCURRENCE_OPTION: if (!arg) occurrence_option = 1; @@ -1774,15 +1894,15 @@ parse_opt (int key, char *arg, struct argp_state *state) _("Invalid number"))); } break; - + case OVERWRITE_DIR_OPTION: old_files_option = DEFAULT_OLD_FILES; break; - + case OVERWRITE_OPTION: old_files_option = OVERWRITE_OLD_FILES; break; - + case OWNER_OPTION: if (! (strlen (arg) < UNAME_FIELD_SIZE && uname_to_uid (arg, &owner_option))) @@ -1796,25 +1916,29 @@ parse_opt (int key, char *arg, struct argp_state *state) _("Invalid owner"))); } break; - + case QUOTE_CHARS_OPTION: for (;*arg; arg++) set_char_quoting (NULL, *arg, 1); break; - + case QUOTING_STYLE_OPTION: tar_set_quoting_style (arg); break; - + case PAX_OPTION: - args->pax_option = true; - xheader_set_option (arg); + { + char *tmp = expand_pax_option (args, arg); + args->pax_option = true; + xheader_set_option (tmp); + free (tmp); + } break; - + case POSIX_OPTION: set_archive_format ("posix"); break; - + case PRESERVE_OPTION: /* FIXME: What it is good for? */ same_permissions_option = true; @@ -1822,7 +1946,7 @@ parse_opt (int key, char *arg, struct argp_state *state) WARN ((0, 0, _("The --preserve option is deprecated, " "use --preserve-permissions --preserve-order instead"))); break; - + case RECORD_SIZE_OPTION: { uintmax_t u; @@ -1837,32 +1961,36 @@ parse_opt (int key, char *arg, struct argp_state *state) blocking_factor = record_size / BLOCKSIZE; } break; - + case RECURSIVE_UNLINK_OPTION: recursive_unlink_option = true; break; - + case REMOVE_FILES_OPTION: remove_files_option = true; break; - + case RESTRICT_OPTION: restrict_option = true; break; - + case RMT_COMMAND_OPTION: rmt_command = arg; break; - + case RSH_COMMAND_OPTION: rsh_command_option = arg; break; - + case SHOW_DEFAULTS_OPTION: - show_default_settings (stdout); - close_stdout (); - exit (0); - + { + char *s = format_default_settings (); + printf ("%s\n", s); + close_stdout (); + free (s); + exit (0); + } + case STRIP_COMPONENTS_OPTION: { uintmax_t u; @@ -1948,6 +2076,10 @@ parse_opt (int key, char *arg, struct argp_state *state) unquote_option = false; break; + case WARNING_OPTION: + set_warning_option (arg); + break; + case '0': case '1': case '2': @@ -2012,28 +2144,6 @@ parse_opt (int key, char *arg, struct argp_state *state) #endif /* not DEVICE_PREFIX */ - case '?': - tar_help (state); - close_stdout (); - exit (0); - - case USAGE_OPTION: - argp_state_help (state, state->out_stream, ARGP_HELP_USAGE); - close_stdout (); - exit (0); - - case VERSION_OPTION: - version_etc (state->out_stream, "tar", PACKAGE_NAME, VERSION, - "John Gilmore", "Jay Fenlason", (char *) NULL); - close_stdout (); - exit (0); - - case HANG_OPTION: - _argp_hang = atoi (arg ? arg : "3600"); - while (_argp_hang-- > 0) - sleep (1); - break; - default: return ARGP_ERR_UNKNOWN; } @@ -2046,7 +2156,7 @@ static struct argp argp = { N_("[FILE]..."), doc, NULL, - NULL, + tar_help_filter, NULL }; @@ -2074,12 +2184,20 @@ find_argp_option (struct argp_option *o, int letter) return NULL; } +static const char *tar_authors[] = { + "John Gilmore", + "Jay Fenlason", + NULL +}; + static void decode_options (int argc, char **argv) { int idx; struct tar_args args; + argp_version_setup ("tar", tar_authors); + /* Set some default option values. */ args.textual_date = NULL; args.wildcards = default_wildcards; @@ -2108,6 +2226,10 @@ decode_options (int argc, char **argv) group_option = -1; check_device_option = true; + + incremental_level = -1; + + seek_option = -1; /* Convert old-style tar call by exploding option element and rearranging options accordingly. */ @@ -2170,8 +2292,7 @@ decode_options (int argc, char **argv) prepend_default_options (getenv ("TAR_OPTIONS"), &argc, &argv); - if (argp_parse (&argp, argc, argv, ARGP_IN_ORDER|ARGP_NO_HELP, - &idx, &args)) + if (argp_parse (&argp, argc, argv, ARGP_IN_ORDER, &idx, &args)) exit (TAREXIT_FAILURE); @@ -2240,18 +2361,6 @@ decode_options (int argc, char **argv) _("--occurrence cannot be used in the requested operation mode"))); } - if (seekable_archive && subcommand_option == DELETE_SUBCOMMAND) - { - /* The current code in delete.c is based on the assumption that - skip_member() reads all data from the archive. So, we should - make sure it won't use seeks. On the other hand, the same code - depends on the ability to backspace a record in the archive, - so setting seekable_archive to false is technically incorrect. - However, it is tested only in skip_member(), so it's not a - problem. */ - seekable_archive = false; - } - if (archive_names == 0) { /* If no archive file name given, try TAPE from the environment, or @@ -2273,7 +2382,10 @@ decode_options (int argc, char **argv) && NEWER_OPTION_INITIALIZED (newer_mtime_option)) USAGE_ERROR ((0, 0, _("Cannot combine --listed-incremental with --newer"))); - + if (incremental_level != -1 && !listed_incremental_option) + WARN ((0, 0, + _("--level is meaningless without --listed-incremental"))); + if (volume_label_option) { if (archive_format == GNU_FORMAT || archive_format == OLDGNU_FORMAT) @@ -2335,7 +2447,7 @@ decode_options (int argc, char **argv) old_files_option = UNLINK_FIRST_OLD_FILES; - if (test_label_option) + if (subcommand_option == TEST_LABEL_SUBCOMMAND) { /* --test-label is silent if the user has specified the label name to compare against. */ @@ -2370,6 +2482,7 @@ decode_options (int argc, char **argv) case EXTRACT_SUBCOMMAND: case LIST_SUBCOMMAND: case DIFF_SUBCOMMAND: + case TEST_LABEL_SUBCOMMAND: for (archive_name_cursor = archive_name_array; archive_name_cursor < archive_name_array + archive_names; archive_name_cursor++) @@ -2419,8 +2532,7 @@ decode_options (int argc, char **argv) checkpoint_finish_compile (); - if (verbose_option) - report_textual_dates (&args); + report_textual_dates (&args); } @@ -2431,7 +2543,7 @@ int main (int argc, char **argv) { set_start_time (); - program_name = argv[0]; + set_program_name (argv[0]); setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); @@ -2455,10 +2567,13 @@ main (int argc, char **argv) obstack_init (&argv_stk); /* Ensure default behavior for some signals */ - signal (SIGPIPE, SIG_DFL); + signal (SIGPIPE, SIG_IGN); /* System V fork+wait does not work if SIGCHLD is ignored. */ signal (SIGCHLD, SIG_DFL); + /* Try to disable the ability to unlink a directory. */ + priv_set_remove_linkdir (); + /* Decode options. */ decode_options (argc, argv); @@ -2474,7 +2589,7 @@ main (int argc, char **argv) { case UNKNOWN_SUBCOMMAND: USAGE_ERROR ((0, 0, - _("You must specify one of the `-Acdtrux' options"))); + _("You must specify one of the `-Acdtrux' or `--test-label' options"))); case CAT_SUBCOMMAND: case UPDATE_SUBCOMMAND: @@ -2508,6 +2623,9 @@ main (int argc, char **argv) diff_init (); read_and (diff_archive); break; + + case TEST_LABEL_SUBCOMMAND: + test_archive_label (); } if (totals_option) @@ -2530,7 +2648,7 @@ main (int argc, char **argv) if (stdlis == stdout) close_stdout (); else if (ferror (stderr) || fclose (stderr) != 0) - exit_status = TAREXIT_FAILURE; + set_exit_status (TAREXIT_FAILURE); return exit_status; } @@ -2568,3 +2686,13 @@ tar_timespec_cmp (struct timespec a, struct timespec b) a.tv_nsec = b.tv_nsec = 0; return timespec_cmp (a, b); } + +/* Set tar exit status to VAL, unless it is already indicating + a more serious condition. This relies on the fact that the + values of TAREXIT_ constants are ranged by severity. */ +void +set_exit_status (int val) +{ + if (val > exit_status) + exit_status = val; +} diff --git a/src/transform.c b/src/transform.c index 2e0de318618bf2236d0bc624c5d6be863079b5cc..03c06f6496e6715a7a176ae1af120433bf60fed1 100644 --- a/src/transform.c +++ b/src/transform.c @@ -430,21 +430,21 @@ run_case_conv (enum case_ctl_type case_ctl, char *ptr, size_t size) switch (case_ctl) { case ctl_upcase_next: - case_ctl_buffer[0] = toupper (case_ctl_buffer[0]); + case_ctl_buffer[0] = toupper ((unsigned char) case_ctl_buffer[0]); break; case ctl_locase_next: - case_ctl_buffer[0] = tolower (case_ctl_buffer[0]); + case_ctl_buffer[0] = tolower ((unsigned char) case_ctl_buffer[0]); break; case ctl_upcase: for (p = case_ctl_buffer; p < case_ctl_buffer + size; p++) - *p = toupper (*p); + *p = toupper ((unsigned char) *p); break; case ctl_locase: for (p = case_ctl_buffer; p < case_ctl_buffer + size; p++) - *p = tolower (*p); + *p = tolower ((unsigned char) *p); break; case ctl_stop: @@ -628,4 +628,3 @@ transform_name (char **pinput, int type) { return transform_name_fp (pinput, type, NULL, NULL); } - diff --git a/src/unlink.c b/src/unlink.c new file mode 100644 index 0000000000000000000000000000000000000000..2af6f9957b2887eea74b9fe0b394207d60937e32 --- /dev/null +++ b/src/unlink.c @@ -0,0 +1,158 @@ +/* This file is part of GNU tar. + Copyright (C) 2009 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, 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#include <system.h> +#include "common.h" +#include <quotearg.h> + +struct deferred_unlink + { + struct deferred_unlink *next; /* Next unlink in the queue */ + char *file_name; /* Absolute name of the file to unlink */ + bool is_dir; /* True if file_name is a directory */ + off_t records_written; /* Number of records written when this + entry got added to the queue */ + }; + +/* The unlink queue */ +static struct deferred_unlink *dunlink_head, *dunlink_tail; + +/* Number of entries in the queue */ +static size_t dunlink_count; + +/* List of entries available for allocation */ +static struct deferred_unlink *dunlink_avail; + +/* Delay (number of records written) between adding entry to the + list and its actual removal. */ +size_t deferred_unlink_delay = 0; + +static struct deferred_unlink * +dunlink_alloc () +{ + struct deferred_unlink *p; + if (dunlink_avail) + { + p = dunlink_avail; + dunlink_avail = p->next; + p->next = NULL; + } + else + p = xmalloc (sizeof (*p)); + return p; +} + +static void +dunlink_reclaim (struct deferred_unlink *p) +{ + free (p->file_name); + p->next = dunlink_avail; + dunlink_avail = p; +} + +static void +flush_deferred_unlinks (bool force) +{ + struct deferred_unlink *p, *prev = NULL; + + for (p = dunlink_head; p; ) + { + struct deferred_unlink *next = p->next; + if (force + || records_written > p->records_written + deferred_unlink_delay) + { + if (p->is_dir) + { + if (rmdir (p->file_name) != 0) + { + switch (errno) + { + case ENOENT: + /* nothing to worry about */ + break; + case ENOTEMPTY: + if (!force) + { + /* Keep the record in list, in the hope we'll + be able to remove it later */ + prev = p; + p = next; + continue; + } + /* fall through */ + default: + rmdir_error (p->file_name); + } + } + } + else + { + if (unlink (p->file_name) != 0 && errno != ENOENT) + unlink_error (p->file_name); + } + dunlink_reclaim (p); + dunlink_count--; + p = next; + if (prev) + prev->next = p; + else + dunlink_head = p; + } + else + { + prev = p; + p = next; + } + } + if (!dunlink_head) + dunlink_tail = NULL; +} + +void +finish_deferred_unlinks () +{ + flush_deferred_unlinks (true); + while (dunlink_avail) + { + struct deferred_unlink *next = dunlink_avail->next; + free (dunlink_avail); + dunlink_avail = next; + } +} + +void +queue_deferred_unlink (const char *name, bool is_dir) +{ + struct deferred_unlink *p; + + if (dunlink_head + && records_written > dunlink_head->records_written + deferred_unlink_delay) + flush_deferred_unlinks (false); + + p = dunlink_alloc (); + p->next = NULL; + p->file_name = normalize_filename (name); + p->is_dir = is_dir; + p->records_written = records_written; + + if (dunlink_tail) + dunlink_tail->next = p; + else + dunlink_head = p; + dunlink_tail = p; + dunlink_count++; +} diff --git a/src/update.c b/src/update.c index fa161935aee190e20a34b29d4e9d9dd0c54f6a56..b0151759d9b0430b34086d013a29efae722d99ce 100644 --- a/src/update.c +++ b/src/update.c @@ -1,7 +1,7 @@ /* Update a tar archive. Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2001, 2003, - 2004, 2005, 2007 Free Software Foundation, Inc. + 2004, 2005, 2007, 2010 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 @@ -114,7 +114,9 @@ update_archive (void) while (!found_end) { - enum read_header status = read_header (false); + enum read_header status = read_header (¤t_header, + ¤t_stat_info, + read_header_auto); switch (status) { @@ -137,13 +139,35 @@ update_archive (void) chdir_do (name->change_dir); if (deref_stat (dereference_option, - current_stat_info.file_name, &s) == 0 - && (tar_timespec_cmp (get_stat_mtime (&s), - current_stat_info.mtime) - <= 0)) - add_avoided_name (current_stat_info.file_name); + current_stat_info.file_name, &s) == 0) + { + if (S_ISDIR (s.st_mode)) + { + char *p, *dirp; + dirp = savedir (name->name); + if (!dirp) + savedir_error (name->name); + else + { + namebuf_t nbuf = namebuf_create (name->name); + + for (p = dirp; *p; p += strlen (p) + 1) + addname (namebuf_name (nbuf, p), + 0, false, NULL); + + namebuf_free (nbuf); + free (dirp); + + remname (name); + } + } + else if (tar_timespec_cmp (get_stat_mtime (&s), + current_stat_info.mtime) + <= 0) + remname (name); + } } - + skip_member (); break; } @@ -189,10 +213,10 @@ update_archive (void) output_start = current_block->buffer; { - char *file_name; - - while ((file_name = name_from_list ()) != NULL) + struct name const *p; + while ((p = name_from_list ()) != NULL) { + char *file_name = p->name; if (excluded_name (file_name)) continue; if (interactive_option && !confirm ("add", file_name)) diff --git a/src/warning.c b/src/warning.c new file mode 100644 index 0000000000000000000000000000000000000000..a9cbccb72e287bb3d9dd30bee76226835e5e692c --- /dev/null +++ b/src/warning.c @@ -0,0 +1,98 @@ +/* This file is part of GNU tar. + + Copyright (C) 2009 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, 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/>. */ + +#include <system.h> +#include <argmatch.h> + +#include "common.h" + +static char const *const warning_args[] = { + "all", + "alone-zero-block", + "bad-dumpdir", + "cachedir", + "contiguous-cast", + "file-changed", + "file-ignored", + "file-removed", + "file-shrank", + "file-unchanged", + "filename-with-nuls", + "ignore-archive", + "ignore-newer", + "new-directory", + "rename-directory", + "symlink-cast", + "timestamp", + "unknown-cast", + "unknown-keyword", + "xdev", + NULL +}; + +static int warning_types[] = { + WARN_ALL, + WARN_ALONE_ZERO_BLOCK, + WARN_BAD_DUMPDIR, + WARN_CACHEDIR, + WARN_CONTIGUOUS_CAST, + WARN_FILE_CHANGED, + WARN_FILE_IGNORED, + WARN_FILE_REMOVED, + WARN_FILE_SHRANK, + WARN_FILE_UNCHANGED, + WARN_FILENAME_WITH_NULS, + WARN_IGNORE_ARCHIVE, + WARN_IGNORE_NEWER, + WARN_NEW_DIRECTORY, + WARN_RENAME_DIRECTORY, + WARN_SYMLINK_CAST, + WARN_TIMESTAMP, + WARN_UNKNOWN_CAST, + WARN_UNKNOWN_KEYWORD, + WARN_XDEV +}; + +ARGMATCH_VERIFY (warning_args, warning_types); + +int warning_option = WARN_ALL; + +void +set_warning_option (const char *arg) +{ + int negate = 0; + int option; + + if (strcmp (arg, "none") == 0) + { + warning_option = 0; + return; + } + if (strlen (arg) > 2 && memcmp (arg, "no-", 3) == 0) + { + negate = 1; + arg += 3; + } + + option = XARGMATCH ("--warning", arg, + warning_args, warning_types); + if (negate) + warning_option &= ~option; + else + warning_option |= option; +} + diff --git a/src/xheader.c b/src/xheader.c index 919ecd393b21a69f3572aee138ce3c95d0b3c06c..b5c9869c91dcb7b092b7544b437df9e5d9f3031b 100644 --- a/src/xheader.c +++ b/src/xheader.c @@ -1,6 +1,7 @@ /* POSIX extended headers for tar. - Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010 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 @@ -96,9 +97,15 @@ static struct keyword_list *global_header_override_list; /* Template for the name field of an 'x' type header */ static char *exthdr_name; +static char *exthdr_mtime_option; +static time_t exthdr_mtime; + /* Template for the name field of a 'g' type header */ static char *globexthdr_name; +static char *globexthdr_mtime_option; +static time_t globexthdr_mtime; + bool xheader_keyword_deleted_p (const char *kw) { @@ -156,6 +163,21 @@ xheader_set_single_keyword (char *kw) USAGE_ERROR ((0, 0, _("Keyword %s is unknown or not yet implemented"), kw)); } +static void +assign_time_option (char **sval, time_t *tval, const char *input) +{ + uintmax_t u; + char *p; + time_t t = u = strtoumax (input, &p, 10); + if (t != u || *p || errno == ERANGE) + ERROR ((0, 0, _("Time stamp is out of allowed range"))); + else + { + *tval = t; + assign_string (sval, input); + } +} + static void xheader_set_keyword_equal (char *kw, char *eq) { @@ -168,12 +190,12 @@ xheader_set_keyword_equal (char *kw, char *eq) global = false; } - while (p > kw && isspace (*p)) + while (p > kw && isspace ((unsigned char) *p)) p--; *p = 0; - for (p = eq + 1; *p && isspace (*p); p++) + for (p = eq + 1; *p && isspace ((unsigned char) *p); p++) ; if (strcmp (kw, "delete") == 0) @@ -186,6 +208,10 @@ xheader_set_keyword_equal (char *kw, char *eq) assign_string (&exthdr_name, p); else if (strcmp (kw, "globexthdr.name") == 0) assign_string (&globexthdr_name, p); + else if (strcmp (kw, "exthdr.mtime") == 0) + assign_time_option (&exthdr_mtime_option, &exthdr_mtime, p); + else if (strcmp (kw, "globexthdr.mtime") == 0) + assign_time_option (&globexthdr_mtime_option, &globexthdr_mtime, p); else { if (xheader_protected_keyword_p (kw)) @@ -364,14 +390,26 @@ xheader_ghdr_name (void) } void -xheader_write (char type, char *name, struct xheader *xhdr) +xheader_write (char type, char *name, time_t t, struct xheader *xhdr) { union block *header; size_t size; char *p; size = xhdr->size; - header = start_private_header (name, size); + switch (type) + { + case XGLTYPE: + if (globexthdr_mtime_option) + t = globexthdr_mtime; + break; + + case XHDTYPE: + if (exthdr_mtime_option) + t = exthdr_mtime; + break; + } + header = start_private_header (name, size, t); header->header.typeflag = type; simple_finish_header (header); @@ -403,30 +441,37 @@ xheader_write (char type, char *name, struct xheader *xhdr) void xheader_write_global (struct xheader *xhdr) { - char *name; - struct keyword_list *kp; - - if (!keyword_global_override_list) - return; + if (keyword_global_override_list) + { + struct keyword_list *kp; - xheader_init (xhdr); - for (kp = keyword_global_override_list; kp; kp = kp->next) - code_string (kp->value, kp->pattern, xhdr); - xheader_finish (xhdr); - xheader_write (XGLTYPE, name = xheader_ghdr_name (), xhdr); - free (name); + xheader_init (xhdr); + for (kp = keyword_global_override_list; kp; kp = kp->next) + code_string (kp->value, kp->pattern, xhdr); + } + if (xhdr->stk) + { + char *name; + + xheader_finish (xhdr); + xheader_write (XGLTYPE, name = xheader_ghdr_name (), time (NULL), xhdr); + free (name); + } } /* General Interface */ +#define XHDR_PROTECTED 0x01 +#define XHDR_GLOBAL 0x02 + struct xhdr_tab { char const *keyword; void (*coder) (struct tar_stat_info const *, char const *, struct xheader *, void const *data); void (*decoder) (struct tar_stat_info *, char const *, char const *, size_t); - bool protect; + int flags; }; /* This declaration must be extern, because ISO C99 section 6.9.2 @@ -454,7 +499,7 @@ xheader_protected_pattern_p (const char *pattern) struct xhdr_tab const *p; for (p = xhdr_tab; p->keyword; p++) - if (p->protect && fnmatch (pattern, p->keyword, 0) == 0) + if ((p->flags & XHDR_PROTECTED) && fnmatch (pattern, p->keyword, 0) == 0) return true; return false; } @@ -465,7 +510,7 @@ xheader_protected_keyword_p (const char *keyword) struct xhdr_tab const *p; for (p = xhdr_tab; p->keyword; p++) - if (p->protect && strcmp (p->keyword, keyword) == 0) + if ((p->flags & XHDR_PROTECTED) && strcmp (p->keyword, keyword) == 0) return true; return false; } @@ -571,8 +616,9 @@ decx (void *data, char const *keyword, char const *value, size_t size) if (t) t->decoder (st, keyword, value, size); else - WARN((0, 0, _("Ignoring unknown extended header keyword `%s'"), - keyword)); + WARNOPT (WARN_UNKNOWN_KEYWORD, + (0, 0, _("Ignoring unknown extended header keyword `%s'"), + keyword)); } void @@ -595,7 +641,11 @@ decg (void *data, char const *keyword, char const *value, size_t size __attribute__((unused))) { struct keyword_list **kwl = data; - xheader_list_append (kwl, keyword, value); + struct xhdr_tab const *tab = locate_handler (keyword); + if (tab && (tab->flags & XHDR_GLOBAL)) + tab->decoder (data, keyword, value, size); + else + xheader_list_append (kwl, keyword, value); } void @@ -644,7 +694,6 @@ xheader_read (struct xheader *xhdr, union block *p, size_t size) { size_t j = 0; - xheader_init (xhdr); size += BLOCKSIZE; xhdr->size = size; xhdr->buffer = xmalloc (size + 1); @@ -657,6 +706,9 @@ xheader_read (struct xheader *xhdr, union block *p, size_t size) if (len > BLOCKSIZE) len = BLOCKSIZE; + if (!p) + FATAL_ERROR ((0, 0, _("Unexpected EOF in archive"))); + memcpy (&xhdr->buffer[j], p->buffer, len); set_next_block_after (p); @@ -1453,51 +1505,53 @@ sparse_minor_decoder (struct tar_stat_info *st, } struct xhdr_tab const xhdr_tab[] = { - { "atime", atime_coder, atime_decoder, false }, - { "comment", dummy_coder, dummy_decoder, false }, - { "charset", dummy_coder, dummy_decoder, false }, - { "ctime", ctime_coder, ctime_decoder, false }, - { "gid", gid_coder, gid_decoder, false }, - { "gname", gname_coder, gname_decoder, false }, - { "linkpath", linkpath_coder, linkpath_decoder, false }, - { "mtime", mtime_coder, mtime_decoder, false }, - { "path", path_coder, path_decoder, false }, - { "size", size_coder, size_decoder, false }, - { "uid", uid_coder, uid_decoder, false }, - { "uname", uname_coder, uname_decoder, false }, + { "atime", atime_coder, atime_decoder, 0 }, + { "comment", dummy_coder, dummy_decoder, 0 }, + { "charset", dummy_coder, dummy_decoder, 0 }, + { "ctime", ctime_coder, ctime_decoder, 0 }, + { "gid", gid_coder, gid_decoder, 0 }, + { "gname", gname_coder, gname_decoder, 0 }, + { "linkpath", linkpath_coder, linkpath_decoder, 0 }, + { "mtime", mtime_coder, mtime_decoder, 0 }, + { "path", path_coder, path_decoder, 0 }, + { "size", size_coder, size_decoder, 0 }, + { "uid", uid_coder, uid_decoder, 0 }, + { "uname", uname_coder, uname_decoder, 0 }, /* Sparse file handling */ { "GNU.sparse.name", path_coder, path_decoder, - true }, + XHDR_PROTECTED }, { "GNU.sparse.major", sparse_major_coder, sparse_major_decoder, - true }, + XHDR_PROTECTED }, { "GNU.sparse.minor", sparse_minor_coder, sparse_minor_decoder, - true }, + XHDR_PROTECTED }, { "GNU.sparse.realsize", sparse_size_coder, sparse_size_decoder, - true }, + XHDR_PROTECTED }, { "GNU.sparse.numblocks", sparse_numblocks_coder, sparse_numblocks_decoder, - true }, + XHDR_PROTECTED }, /* tar 1.14 - 1.15.90 keywords. */ - { "GNU.sparse.size", sparse_size_coder, sparse_size_decoder, true }, + { "GNU.sparse.size", sparse_size_coder, sparse_size_decoder, + XHDR_PROTECTED }, /* tar 1.14 - 1.15.1 keywords. Multiple instances of these appeared in 'x' headers, and each of them was meaningful. It confilcted with POSIX specs, which requires that "when extended header records conflict, the last one given in the header shall take precedence." */ { "GNU.sparse.offset", sparse_offset_coder, sparse_offset_decoder, - true }, + XHDR_PROTECTED }, { "GNU.sparse.numbytes", sparse_numbytes_coder, sparse_numbytes_decoder, - true }, + XHDR_PROTECTED }, /* tar 1.15.90 keyword, introduced to remove the above-mentioned conflict. */ { "GNU.sparse.map", NULL /* Unused, see pax_dump_header() */, - sparse_map_decoder, false }, + sparse_map_decoder, 0 }, { "GNU.dumpdir", dumpdir_coder, dumpdir_decoder, - true }, + XHDR_PROTECTED }, /* Keeps the tape/volume label. May be present only in the global headers. Equivalent to GNUTYPE_VOLHDR. */ - { "GNU.volume.label", volume_label_coder, volume_label_decoder, true }, + { "GNU.volume.label", volume_label_coder, volume_label_decoder, + XHDR_PROTECTED | XHDR_GLOBAL }, /* These may be present in a first global header of the archive. They provide the same functionality as GNUTYPE_MULTIVOL header. @@ -1506,9 +1560,11 @@ struct xhdr_tab const xhdr_tab[] = { GNU.volume.offset keeps the offset of the start of this volume, otherwise kept in oldgnu_header.offset. */ { "GNU.volume.filename", volume_label_coder, volume_filename_decoder, - true }, - { "GNU.volume.size", volume_size_coder, volume_size_decoder, true }, - { "GNU.volume.offset", volume_offset_coder, volume_offset_decoder, true }, + XHDR_PROTECTED | XHDR_GLOBAL }, + { "GNU.volume.size", volume_size_coder, volume_size_decoder, + XHDR_PROTECTED | XHDR_GLOBAL }, + { "GNU.volume.offset", volume_offset_coder, volume_offset_decoder, + XHDR_PROTECTED | XHDR_GLOBAL }, - { NULL, NULL, NULL, false } + { NULL, NULL, NULL, 0 } }; diff --git a/tests/Makefile.am b/tests/Makefile.am index cad0dfed275f16174671303ac58ce7e0ac6b16cb..e9b753c50a17a0507ff43bf06897f37a6823c357 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,7 +1,7 @@ # Makefile for GNU tar regression tests. # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007 Free Software Foundation, Inc. +# 2006, 2007, 2009 Free Software Foundation, Inc. # François Pinard <pinard@iro.umontreal.ca>, 1988. # Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004. @@ -52,6 +52,7 @@ TESTSUITE_AT = \ append.at\ append01.at\ append02.at\ + backup01.at\ chtype.at\ comprec.at\ delete01.at\ @@ -60,6 +61,11 @@ TESTSUITE_AT = \ delete04.at\ delete05.at\ exclude.at\ + exclude01.at\ + exclude02.at\ + exclude03.at\ + exclude04.at\ + exclude05.at\ extrac01.at\ extrac02.at\ extrac03.at\ @@ -67,6 +73,9 @@ TESTSUITE_AT = \ extrac05.at\ extrac06.at\ extrac07.at\ + extrac08.at\ + filerem01.at\ + filerem02.at\ gzip.at\ grow.at\ incremental.at\ @@ -74,9 +83,15 @@ TESTSUITE_AT = \ incr02.at\ incr03.at\ incr04.at\ + incr05.at\ + incr06.at\ indexfile.at\ ignfail.at\ + label01.at\ + label02.at\ link01.at\ + link02.at\ + link03.at\ listed01.at\ listed02.at\ long01.at\ @@ -90,6 +105,7 @@ TESTSUITE_AT = \ multiv04.at\ multiv05.at\ multiv06.at\ + multiv07.at\ old.at\ options.at\ options02.at\ @@ -100,6 +116,8 @@ TESTSUITE_AT = \ rename03.at\ rename04.at\ rename05.at\ + remfiles01.at\ + remfiles02.at\ same-order01.at\ same-order02.at\ shortfile.at\ @@ -115,10 +133,13 @@ TESTSUITE_AT = \ spmvp10.at\ truncate.at\ update.at\ + update01.at\ + update02.at\ volsize.at\ volume.at\ verbose.at\ version.at\ + xform-h.at\ star/gtarfail.at\ star/gtarfail2.at\ star/multi-fail.at\ @@ -140,7 +161,7 @@ clean-local: test ! -f $(TESTSUITE) || $(SHELL) $(TESTSUITE) --clean check-local: atconfig atlocal $(TESTSUITE) - $(SHELL) $(TESTSUITE) + $(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS) check-full: FULL_TEST=1 $(MAKE) check @@ -149,7 +170,7 @@ check-full: # Run the test suite on the *installed* tree. installcheck-local: - $(SHELL) $(TESTSUITE) AUTOTEST_PATH=$(exec_prefix)/bin + $(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS) AUTOTEST_PATH=$(exec_prefix)/bin ## ------------ ## @@ -161,6 +182,6 @@ check_PROGRAMS = genfile genfile_SOURCES = genfile.c argcv.c argcv.h localedir = $(datadir)/locale -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/src +INCLUDES = -I$(top_srcdir)/gnu -I../gnu -I$(top_srcdir)/gnu -I$(top_srcdir)/lib AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -LDADD = ../lib/libtar.a $(LIBINTL) $(LIB_CLOCK_GETTIME) +LDADD = ../gnu/libgnu.a $(LIBINTL) $(LIB_CLOCK_GETTIME) diff --git a/tests/Makefile.in b/tests/Makefile.in index d2ecc245b9f5753c7333f0c23ef63686a3c4c8d9..5def22e0640f853ab6e16666612afa5f7f15e5b4 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,14 +18,15 @@ # Makefile for GNU tar regression tests. # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007 Free Software Foundation, Inc. +# 2006, 2007, 2009 Free Software Foundation, Inc. # François Pinard <pinard@iro.umontreal.ca>, 1988. # Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004. VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c @@ -48,63 +50,71 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \ $(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \ $(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \ - $(top_srcdir)/m4/canonicalize-lgpl.m4 \ + $(top_srcdir)/m4/canonicalize.m4 \ $(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \ $(top_srcdir)/m4/clock_time.m4 \ $(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \ $(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \ - $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent_h.m4 \ - $(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \ - $(top_srcdir)/m4/dos.m4 $(top_srcdir)/m4/double-slash-root.m4 \ - $(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/eealloc.m4 \ - $(top_srcdir)/m4/environ.m4 $(top_srcdir)/m4/errno_h.m4 \ - $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/exclude.m4 \ - $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/d-ino.m4 $(top_srcdir)/m4/dirent-safer.m4 \ + $(top_srcdir)/m4/dirent_h.m4 $(top_srcdir)/m4/dirfd.m4 \ + $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \ $(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \ - $(top_srcdir)/m4/fcntl-safer.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \ + $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \ $(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/float_h.m4 \ $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/ftruncate.m4 \ $(top_srcdir)/m4/getcwd-abort-bug.m4 \ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \ $(top_srcdir)/m4/getdate.m4 $(top_srcdir)/m4/getdelim.m4 \ - $(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \ - $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \ - $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \ - $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getline.m4 \ + $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettime.m4 \ + $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \ $(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \ $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \ - $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/lchown.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \ $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lseek.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/malloca.m4 $(top_srcdir)/m4/mbchar.m4 \ $(top_srcdir)/m4/mbiter.m4 $(top_srcdir)/m4/mbrtowc.m4 \ - $(top_srcdir)/m4/mbscasecmp.m4 $(top_srcdir)/m4/mbsinit.m4 \ - $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/mempcpy.m4 \ - $(top_srcdir)/m4/memrchr.m4 $(top_srcdir)/m4/mkdtemp.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/modechange.m4 \ - $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \ - $(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/paxutils.m4 \ - $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbsrtowcs.m4 \ + $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \ + $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \ + $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/modechange.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nl_langinfo.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/realloc.m4 \ - $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmt.m4 \ - $(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \ - $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rmdir.m4 \ + $(top_srcdir)/m4/rmt.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/rtapelib.m4 $(top_srcdir)/m4/safe-read.m4 \ + $(top_srcdir)/m4/safe-write.m4 $(top_srcdir)/m4/same.m4 \ $(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ $(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \ @@ -120,35 +130,51 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utime.m4 \ - $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \ - $(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/wchar.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/vasnprintf.m4 $(top_srcdir)/m4/vasprintf.m4 \ + $(top_srcdir)/m4/version-etc.m4 $(top_srcdir)/m4/vsnprintf.m4 \ + $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ - $(top_srcdir)/m4/wctype.m4 $(top_srcdir)/m4/wcwidth.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wcwidth.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/write.m4 \ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xgetcwd.m4 \ $(top_srcdir)/m4/xsize.m4 $(top_srcdir)/m4/xstrndup.m4 \ - $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/xstrtol.m4 $(top_srcdir)/m4/xvasprintf.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = atlocal +CONFIG_CLEAN_VPATH_FILES = am_genfile_OBJECTS = genfile.$(OBJEXT) argcv.$(OBJEXT) genfile_OBJECTS = $(am_genfile_OBJECTS) genfile_LDADD = $(LDADD) am__DEPENDENCIES_1 = -genfile_DEPENDENCIES = ../lib/libtar.a $(am__DEPENDENCIES_1) \ +genfile_DEPENDENCIES = ../gnu/libgnu.a $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles +am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(genfile_SOURCES) DIST_SOURCES = $(genfile_SOURCES) ETAGS = etags @@ -158,6 +184,7 @@ ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -186,7 +213,6 @@ DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@ DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRENT_H = @DIRENT_H@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ @@ -199,7 +225,6 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ -FCNTL_H = @FCNTL_H@ FLOAT_H = @FLOAT_H@ FNMATCH_H = @FNMATCH_H@ GETOPT_H = @GETOPT_H@ @@ -211,45 +236,59 @@ GNULIB_ALPHASORT = @GNULIB_ALPHASORT@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ +GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DIRFD = @GNULIB_DIRFD@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP2 = @GNULIB_DUP2@ +GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ +GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ +GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ +GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ +GNULIB_FCNTL = @GNULIB_FCNTL@ +GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ +GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ +GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ +GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ +GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ +GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ +GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ @@ -272,15 +311,31 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ +GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ +GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ +GNULIB_MKFIFO = @GNULIB_MKFIFO@ +GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ +GNULIB_MKNOD = @GNULIB_MKNOD@ +GNULIB_MKNODAT = @GNULIB_MKNODAT@ +GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ +GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ +GNULIB_MKTIME = @GNULIB_MKTIME@ +GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ +GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ +GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PERROR = @GNULIB_PERROR@ +GNULIB_PIPE2 = @GNULIB_PIPE2@ +GNULIB_POPEN = @GNULIB_POPEN@ +GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PUTC = @GNULIB_PUTC@ @@ -290,13 +345,20 @@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READLINK = @GNULIB_READLINK@ +GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ +GNULIB_REALPATH = @GNULIB_REALPATH@ +GNULIB_REMOVE = @GNULIB_REMOVE@ +GNULIB_RENAME = @GNULIB_RENAME@ +GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ +GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANDIR = @GNULIB_SCANDIR@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ +GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ @@ -307,6 +369,7 @@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ +GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ @@ -317,8 +380,16 @@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ +GNULIB_SYMLINK = @GNULIB_SYMLINK@ +GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ +GNULIB_TIMEGM = @GNULIB_TIMEGM@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ +GNULIB_UNLINK = @GNULIB_UNLINK@ +GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ +GNULIB_USLEEP = @GNULIB_USLEEP@ +GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ @@ -338,8 +409,11 @@ HAVE_ALPHASORT = @HAVE_ALPHASORT@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ @@ -364,37 +438,68 @@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ +HAVE_DUP3 = @HAVE_DUP3@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ -HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDOPENDIR = @HAVE_FDOPENDIR@ +HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ -HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_PREAD = @HAVE_PREAD@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SCANDIR = @HAVE_SCANDIR@ HAVE_SETENV = @HAVE_SETENV@ @@ -408,7 +513,6 @@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASECMP = @HAVE_STRCASECMP@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ -HAVE_STRNDUP = @HAVE_STRNDUP@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ @@ -417,6 +521,8 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ @@ -425,11 +531,15 @@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNSETENV = @HAVE_UNSETENV@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -447,16 +557,14 @@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ -INTTYPES_H = @INTTYPES_H@ LDFLAGS = @LDFLAGS@ +LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ +LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTAR_LIBDEPS = @LIBTAR_LIBDEPS@ -LIBTAR_LTLIBDEPS = @LIBTAR_LTLIBDEPS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LIB_CLOSE = @LIB_CLOSE@ LIB_SETSOCKOPT = @LIB_SETSOCKOPT@ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ LOCALE_FR = @LOCALE_FR@ @@ -471,12 +579,36 @@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ +NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ @@ -505,25 +637,40 @@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ PU_RMT_PROG = @PU_RMT_PROG@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_FCHDIR = @REPLACE_FCHDIR@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ @@ -533,26 +680,53 @@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_OPENDIR = @REPLACE_OPENDIR@ REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRPTIME = @REPLACE_STRPTIME@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ @@ -560,6 +734,7 @@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ @@ -570,22 +745,20 @@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYSEXITS_H = @SYSEXITS_H@ -SYS_STAT_H = @SYS_STAT_H@ -SYS_TIME_H = @SYS_TIME_H@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -VOID_UNSETENV = @VOID_UNSETENV@ -WCHAR_H = @WCHAR_H@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ -WCTYPE_H = @WCTYPE_H@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ @@ -643,6 +816,7 @@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 star/README star/quicktest.sh @@ -657,6 +831,7 @@ TESTSUITE_AT = \ append.at\ append01.at\ append02.at\ + backup01.at\ chtype.at\ comprec.at\ delete01.at\ @@ -665,6 +840,11 @@ TESTSUITE_AT = \ delete04.at\ delete05.at\ exclude.at\ + exclude01.at\ + exclude02.at\ + exclude03.at\ + exclude04.at\ + exclude05.at\ extrac01.at\ extrac02.at\ extrac03.at\ @@ -672,6 +852,9 @@ TESTSUITE_AT = \ extrac05.at\ extrac06.at\ extrac07.at\ + extrac08.at\ + filerem01.at\ + filerem02.at\ gzip.at\ grow.at\ incremental.at\ @@ -679,9 +862,15 @@ TESTSUITE_AT = \ incr02.at\ incr03.at\ incr04.at\ + incr05.at\ + incr06.at\ indexfile.at\ ignfail.at\ + label01.at\ + label02.at\ link01.at\ + link02.at\ + link03.at\ listed01.at\ listed02.at\ long01.at\ @@ -695,6 +884,7 @@ TESTSUITE_AT = \ multiv04.at\ multiv05.at\ multiv06.at\ + multiv07.at\ old.at\ options.at\ options02.at\ @@ -705,6 +895,8 @@ TESTSUITE_AT = \ rename03.at\ rename04.at\ rename05.at\ + remfiles01.at\ + remfiles02.at\ same-order01.at\ same-order02.at\ shortfile.at\ @@ -720,10 +912,13 @@ TESTSUITE_AT = \ spmvp10.at\ truncate.at\ update.at\ + update01.at\ + update02.at\ volsize.at\ volume.at\ verbose.at\ version.at\ + xform-h.at\ star/gtarfail.at\ star/gtarfail2.at\ star/multi-fail.at\ @@ -734,9 +929,9 @@ TESTSUITE_AT = \ TESTSUITE = $(srcdir)/testsuite AUTOTEST = $(AUTOM4TE) --language=autotest genfile_SOURCES = genfile.c argcv.c argcv.h -INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/src +INCLUDES = -I$(top_srcdir)/gnu -I../gnu -I$(top_srcdir)/gnu -I$(top_srcdir)/lib AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -LDADD = ../lib/libtar.a $(LIBINTL) $(LIB_CLOCK_GETTIME) +LDADD = ../gnu/libgnu.a $(LIBINTL) $(LIB_CLOCK_GETTIME) all: all-am .SUFFIXES: @@ -745,14 +940,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits tests/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -770,6 +965,7 @@ $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): atlocal: $(top_builddir)/config.status $(srcdir)/atlocal.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ @@ -777,7 +973,7 @@ clean-checkPROGRAMS: -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) genfile$(EXEEXT): $(genfile_OBJECTS) $(genfile_DEPENDENCIES) @rm -f genfile$(EXEEXT) - $(LINK) $(genfile_OBJECTS) $(genfile_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(genfile_OBJECTS) $(genfile_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -789,15 +985,17 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genfile.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` @@ -807,14 +1005,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -822,29 +1020,34 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -865,13 +1068,17 @@ distdir: $(DISTFILES) if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -901,6 +1108,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @@ -923,6 +1131,8 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: @@ -931,18 +1141,28 @@ install-data-am: install-dvi: install-dvi-am +install-dvi-am: + install-exec-am: install-html: install-html-am +install-html-am: + install-info: install-info-am +install-info-am: + install-man: install-pdf: install-pdf-am +install-pdf-am: + install-ps: install-ps-am +install-ps-am: + installcheck-am: installcheck-local maintainer-clean: maintainer-clean-am @@ -964,7 +1184,7 @@ ps-am: uninstall-am: -.MAKE: install-am install-strip +.MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \ clean-checkPROGRAMS clean-generic clean-local ctags distclean \ @@ -1000,7 +1220,7 @@ clean-local: test ! -f $(TESTSUITE) || $(SHELL) $(TESTSUITE) --clean check-local: atconfig atlocal $(TESTSUITE) - $(SHELL) $(TESTSUITE) + $(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS) check-full: FULL_TEST=1 $(MAKE) check @@ -1009,7 +1229,8 @@ check-full: # Run the test suite on the *installed* tree. installcheck-local: - $(SHELL) $(TESTSUITE) AUTOTEST_PATH=$(exec_prefix)/bin + $(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS) AUTOTEST_PATH=$(exec_prefix)/bin + # 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. .NOEXPORT: diff --git a/tests/append02.at b/tests/append02.at index 0986e51f703977585bf50884b280164b48a91501..7b8e07d3b527bd7c5e3e89bb2a997370d5ae8f0d 100644 --- a/tests/append02.at +++ b/tests/append02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2009 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 @@ -26,13 +26,27 @@ # tar rf archive file1 # tar rt archive file2 # -# produced different archives (GNU format is assumed). Namely, in the -# second case the mode field of all members, except the first, was truncated -# to lower 3 octets (& 0777). +# produced different archives (GNU format is assumed). It was reported +# by TAMUKI Shoichi on 2006-07-21 [1]. +# +# The bug was due to tar being unable to discern between GNU and OLDGNU +# formats and always assuming the latter. The main difference between +# the two is that OLDGNU preserves all bits in the mode field, whereas +# GNU format keeps only the lower 9 ones (mode & 0777). +# +# This was fixed on 2006-07-24 (commit f4e4adea80a) by making tar truncate +# the mode field even in OLDGNU format. Obviously, the fix broke the +# format backward compatibility, but it went unnoticed until 2009-10-03 +# (after all, the OLDGNU format is not in much use nowadays), when +# Igor Zhbanov reported it [2]. +# +# The final fix was applied on 2009-10-04. # # References: -# <200607210526.AA03440@tamuki.linet.gr.jp> -# http://lists.gnu.org/archive/html/bug-tar/2006-07/msg00029.html +# [1] <200607210526.AA03440@tamuki.linet.gr.jp> +# http://lists.gnu.org/archive/html/bug-tar/2006-07/msg00029.html +# [2] <f44001920910020335v4cadfesf54f6593d5124814@mail.gmail.com> +# http://lists.gnu.org/archive/html/bug-tar/2009-10/msg00006.html # The test case below verifies that the equivalent create and append commands # produce binary equivalent archives for all formats. diff --git a/tests/argcv.c b/tests/argcv.c index c9f274322922edac1e03fa0507a28a4a51bc06f2..dfde2ff3315f28d3100ea926bb73a1ad0fb53aef 100644 --- a/tests/argcv.c +++ b/tests/argcv.c @@ -1,5 +1,6 @@ /* argcv.c - simple functions for parsing input based on whitespace - Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2007, 2009, 2010 Free Software + Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -15,6 +16,9 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif #include <ctype.h> #include <argcv.h> @@ -153,7 +157,7 @@ escaped_length (const char *str, int *quote) len += 2; *quote = 1; } - else if (isprint (*str)) + else if (isprint ((unsigned char) *str)) len++; else if (argcv_escape_char (*str) != -1) len += 2; @@ -249,7 +253,7 @@ escape_copy (char *dst, const char *src) *dst++ = '\\'; *dst++ = '"'; } - else if (*src != '\t' && isprint(*src)) + else if (*src != '\t' && isprint ((unsigned char) *src)) *dst++ = *src; else { @@ -368,7 +372,7 @@ argcv_string (int argc, char **argv, char **pstring) buffer[j++] = '"'; } - for (; j > 0 && isspace (buffer[j-1]); j--) + for (; j > 0 && isspace ((unsigned char) buffer[j - 1]); j--) ; buffer[j] = 0; if (pstring) diff --git a/tests/backup01.at b/tests/backup01.at new file mode 100644 index 0000000000000000000000000000000000000000..538dd3d9fc8141844e6e0d36b1da353f25561c7c --- /dev/null +++ b/tests/backup01.at @@ -0,0 +1,49 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Description: +# When extracting, tar (<1.22) sometimes renamed a backup back to the +# original name (overwriting the newly-extracted file) for no good reason. +# +# Reported by: Carl Worth <cworth@cworth.org>, +# Eric Lammerts <eric@lammerts.org> +# +# References: <1249419998.4905.84.camel@yoom.home.cworth.org> +# http://lists.gnu.org/archive/html/bug-tar/2009-08/msg00005.html +# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508199 +# + +AT_SETUP([extracting existing dir with --backup]) +AT_KEYWORDS([extract backup backup01]) + +AT_TAR_CHECK([ +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +], +[0], +[dir1/ +dir1/file1 +Renaming `dir1/file1' to `dir1/file1~' +dir2/ +]) + +AT_CLEANUP \ No newline at end of file diff --git a/tests/exclude01.at b/tests/exclude01.at new file mode 100644 index 0000000000000000000000000000000000000000..778a7fc822ca42acb664118013b0e1c0aed0d9a8 --- /dev/null +++ b/tests/exclude01.at @@ -0,0 +1,69 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# Copyright (C) 2009 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, 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/>. + +AT_SETUP([exclude wildcards]) +AT_KEYWORDS([exclude exclude01]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +], +[0], +[testdir/ +testdir/dir1/ +testdir/dir2/ +testdir/dir2/file2 +testdir/dir3/ +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +testdir/dir1/file1 +]) + +AT_CLEANUP diff --git a/tests/exclude02.at b/tests/exclude02.at new file mode 100644 index 0000000000000000000000000000000000000000..7996d168a3bb1e8ecdb1b5a290c4f0efd75b725b --- /dev/null +++ b/tests/exclude02.at @@ -0,0 +1,77 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# Copyright (C) 2009 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, 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/>. + +AT_SETUP([exclude: anchoring]) +AT_KEYWORDS([exclude exclude02]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + +], +[0], +[testdir/ +testdir/file2 +SUB 1 +testdir/ +testdir/file2 +SUB 2 +testdir/ +testdir/file1.txt +testdir/file2 +SUB 3 +file1.txt +SUB 4 +file1.txt +testdir/file1.txt +SUB 5 +file1.txt +]) + +AT_CLEANUP diff --git a/tests/exclude03.at b/tests/exclude03.at new file mode 100644 index 0000000000000000000000000000000000000000..d592109e532ebaffc6b3d957399ffb7a44a7dba6 --- /dev/null +++ b/tests/exclude03.at @@ -0,0 +1,73 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# Copyright (C) 2009 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, 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/>. + +AT_SETUP([exclude: wildcards match slash]) +AT_KEYWORDS([exclude exclude03]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +], +[0], +[testdir/ +testdir/dir1/ +testdir/dir1/* +testdir/dir2/ +testdir/dir2/* +testdir/dir2/file2 +testdir/dir3/ +testdir/dir3/* +NEXT +testdir/*f*1 +testdir/dir1/file1 +NEXT +testdir/*f*1 +NEXT +testdir/*f*1 +testdir/dir1/file1 +]) + +AT_CLEANUP diff --git a/tests/exclude04.at b/tests/exclude04.at new file mode 100644 index 0000000000000000000000000000000000000000..c6f03cba00ba329cdc6de6a998b55cb7d8ca77a9 --- /dev/null +++ b/tests/exclude04.at @@ -0,0 +1,73 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# Copyright (C) 2009 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, 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/>. + +AT_SETUP([exclude: case insensitive]) +AT_KEYWORDS([exclude exclude04]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +], +[0], +[testdir/ +testdir/dir/ +testdir/dir/File1 +testdir/dir/File2 +testdir/dir/File4 +testdir/file2 +SUB 1 +testdir/dir/File2 +SUB 2 +testdir/dir/File2 +testdir/file2 +SUB 3 +testdir/dir/File2 +]) + +AT_CLEANUP diff --git a/tests/exclude05.at b/tests/exclude05.at new file mode 100644 index 0000000000000000000000000000000000000000..30e922e775de702b011e6c6a63c1c04c9c9fc78d --- /dev/null +++ b/tests/exclude05.at @@ -0,0 +1,59 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# Copyright (C) 2009, 2010 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, 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/>. + +# Test the functioning of many items in an exclude list (should run quickly) + +AT_SETUP([exclude: lots of excludes]) +AT_KEYWORDS([exclude exclude05]) + +AT_TAR_CHECK([ +AT_SORT_PREREQ + +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + +], +[0], +[testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +NEXT +testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +]) + +AT_CLEANUP diff --git a/tests/extrac05.at b/tests/extrac05.at index a0f7c700ca0a3c55cd49a5ebc031437652607c55..82c2ed3517e590f15ed54f61ba696455e1eeb955 100644 --- a/tests/extrac05.at +++ b/tests/extrac05.at @@ -36,10 +36,10 @@ cztery ]) AT_TAR_CHECK([ +genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || AT_SKIP_TEST genfile --length 118 --file jeden genfile --length 223 --file dwa genfile --length 517 --file trzy -genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL genfile --length 110 --file cztery tar cf archive jeden dwa trzy cztery || exit 1 diff --git a/tests/extrac08.at b/tests/extrac08.at new file mode 100644 index 0000000000000000000000000000000000000000..6ca33bddebe51471b0194c878cc1620938047e19 --- /dev/null +++ b/tests/extrac08.at @@ -0,0 +1,52 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Description: +# When extracting, tar (<1.22) did not restore directory permissions on +# existing directories. +# This was discovered when fixing debian bug #508199. See also backup01.at. +# +# Reported by: Carl Worth <cworth@cworth.org>, +# +# References: <1249419998.4905.84.camel@yoom.home.cworth.org> +# http://lists.gnu.org/archive/html/bug-tar/2009-08/msg00005.html +# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508199 +# + +AT_SETUP([restoring mode on existing directory]) +AT_KEYWORDS([extract extrac08]) + +AT_TAR_CHECK([ +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +], +[0], +[dir/ +dir/file +755 +]) + +AT_CLEANUP \ No newline at end of file diff --git a/tests/filerem01.at b/tests/filerem01.at new file mode 100644 index 0000000000000000000000000000000000000000..70f47bf0e816d83055af39749014c92d2b7707e8 --- /dev/null +++ b/tests/filerem01.at @@ -0,0 +1,101 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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/>. + +# Description: when a file in a deep directory disappeared during creation +# of incremental dump, tar v. <1.23 would exit with TAREXIT_FAILURE (2). +# However, such events are quite common and don't necessarily constitute +# an error. Exiting with code 2 in such cases makes it impossible to +# distinguish serious errors from benign ones. +# +# Starting from tar 1.22.90, tar exits with TAREXIT_DIFFERS (1) +# instead. +# +# Reported by: Solar Designer <solar@openwall.com> +# +# References: <20090228235820.GA13362@openwall.com> +# http://lists.gnu.org/archive/html/bug-tar/2009-03/msg00000.html +# + +AT_SETUP([file removed as we read it (ca. 22 seconds)]) +AT_KEYWORDS([create incremental filechange filerem filerem01]) + +AT_TAR_CHECK([ +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +genfile --run --checkpoint=3 --unlink dir/file1 -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v dir >/dev/null +], +[1], +[ignore], +[tar: dir: Directory is new +tar: dir/sub: Directory is new +tar: dir/file1: File removed before we read it +],[],[],[gnu, posix]) + +# Timing information: +# +# For -Hgnu the above command line takes about 8 seconds to execute and +# produces: +# +# tar: dir: Directory is new +# tar: dir/sub: Directory is new +# dir/ +# tar: Write checkpoint 1 +# tar: Write checkpoint 2 +# dir/sub/ +# tar: Write checkpoint 3 +# tar: Write checkpoint 4 +# dir/file1 +# tar: Write checkpoint 5 +# dir/sub/file2 +# tar: Write checkpoint 6 +# tar: Write checkpoint 7 +# tar: Write checkpoint 8 +# +# For -Hposix the above command line takes about 14 seconds to execute and +# produces: +# +# ./tar: dir: Directory is new +# ./tar: dir/sub: Directory is new +# dir/ +# ./tar: Write checkpoint 1 +# ./tar: Write checkpoint 2 +# ./tar: Write checkpoint 3 +# dir/sub/ +# ./tar: Write checkpoint 4 +# ./tar: Write checkpoint 5 +# ./tar: Write checkpoint 6 +# dir/file1 +# ./tar: Write checkpoint 7 +# ./tar: Write checkpoint 8 +# ./tar: Write checkpoint 9 +# dir/sub/file2 +# ./tar: Write checkpoint 10 +# ./tar: Write checkpoint 11 +# ./tar: Write checkpoint 12 +# ./tar: Write checkpoint 13 +# ./tar: Write checkpoint 14 + + +AT_CLEANUP + diff --git a/tests/filerem02.at b/tests/filerem02.at new file mode 100644 index 0000000000000000000000000000000000000000..8d7005a35a1b822bf0fca451719e51f7c29dee53 --- /dev/null +++ b/tests/filerem02.at @@ -0,0 +1,50 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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/>. + +# Description: see filerem01.at +# This test case checks if the tar exit code is still 2 if a +# file or directory disappears that is explicitly mentioned +# in the command line. + +AT_SETUP([toplevel file removed (ca. 24 seconds)]) +AT_KEYWORDS([create incremental filechange filerem filerem02]) + +AT_TAR_CHECK([ +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 +mkdir dir2 +genfile --file dir2/file1 + +genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null +], +[2], +[ignore], +[tar: dir2: Cannot stat: No such file or directory +tar: dir2/file1: File removed before we read it +tar: Exiting with failure status due to previous errors +],[],[],[gnu, posix]) + +# Timing information: see filerem01.at + +AT_CLEANUP + diff --git a/tests/genfile.c b/tests/genfile.c index 1b338bce2f95a77635abe7f7f6926b53802d4395..7ebeddfd269ff17e46c772f49969f3deb31b3ff4 100644 --- a/tests/genfile.c +++ b/tests/genfile.c @@ -2,7 +2,7 @@ Print statistics for existing files. Copyright (C) 1995, 1996, 1997, 2001, 2003, 2004, 2005, 2006, 2007, - 2008 Free Software Foundation, Inc. + 2008, 2009 Free Software Foundation, Inc. François Pinard <pinard@iro.umontreal.ca>, 1995. Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004, 2005, 2006, 2007, 2008. @@ -99,6 +99,7 @@ char *buffer; /* Number of arguments and argument vector for mode == mode_exec */ int exec_argc; char **exec_argv; +char *checkpoint_option; /* Time for --touch option */ struct timespec touch_time; @@ -119,6 +120,7 @@ static char doc[] = N_("genfile manipulates data files for GNU paxutils test sui #define OPT_DATE 261 #define OPT_VERBOSE 262 #define OPT_SEEK 263 +#define OPT_UNLINK 264 static struct argp_option options[] = { #define GRP 0 @@ -159,8 +161,8 @@ static struct argp_option options[] = { {NULL, 0, NULL, 0, N_("Synchronous execution options:"), GRP}, - {"run", 'r', N_("COMMAND"), 0, - N_("Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"), + {"run", 'r', N_("OPTION"), OPTION_ARG_OPTIONAL, + N_("Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"), GRP+1 }, {"checkpoint", OPT_CHECKPOINT, N_("NUMBER"), 0, N_("Perform given action (see below) upon reaching checkpoint NUMBER"), @@ -189,6 +191,9 @@ static struct argp_option options[] = { {"exec", OPT_EXEC, N_("COMMAND"), 0, N_("Execute COMMAND"), GRP+1 }, + {"unlink", OPT_UNLINK, N_("FILE"), 0, + N_("Unlink FILE"), + GRP+1 }, #undef GRP { NULL, } }; @@ -333,7 +338,11 @@ parse_opt (int key, char *arg, struct argp_state *state) case 'r': mode = mode_exec; - argcv_get (arg, "", NULL, &exec_argc, &exec_argv); + if (arg) + { + argcv_get (arg, "", NULL, &exec_argc, &exec_argv); + checkpoint_option = "--checkpoint"; + } break; case 'T': @@ -363,6 +372,7 @@ parse_opt (int key, char *arg, struct argp_state *state) case OPT_TRUNCATE: case OPT_TOUCH: case OPT_EXEC: + case OPT_UNLINK: reg_action (key, arg); break; @@ -574,7 +584,7 @@ print_stat (const char *name) { mode_t mask = ~0; - if (ispunct (p[4])) + if (ispunct ((unsigned char) p[4])) { char *q; @@ -685,6 +695,11 @@ exec_checkpoint (struct action *p) system (p->name); break; + case OPT_UNLINK: + if (unlink (p->name)) + error (0, errno, _("cannot unlink `%s'"), p->name); + break; + default: abort (); } @@ -730,11 +745,17 @@ exec_command (void) /* Insert --checkpoint option. FIXME: This assumes that exec_argv does not use traditional tar options - (without dash) */ - exec_argc++; - exec_argv = xrealloc (exec_argv, (exec_argc + 1) * sizeof (*exec_argv)); - memmove (exec_argv+2, exec_argv+1, (exec_argc - 1) * sizeof (*exec_argv)); - exec_argv[1] = "--checkpoint"; + (without dash). + FIXME: There is no way to set checkpoint argument (granularity). + */ + if (checkpoint_option) + { + exec_argc++; + exec_argv = xrealloc (exec_argv, (exec_argc + 1) * sizeof (*exec_argv)); + memmove (exec_argv+2, exec_argv+1, + (exec_argc - 1) * sizeof (*exec_argv)); + exec_argv[1] = checkpoint_option; + } #ifdef SIGCHLD /* System V fork+wait does not work if SIGCHLD is ignored. */ @@ -760,7 +781,7 @@ exec_command (void) setenv ("LC_ALL", "POSIX", 1); execvp (exec_argv[0], exec_argv); - error (EXIT_FAILURE, errno, "execvp"); + error (EXIT_FAILURE, errno, "execvp %s", exec_argv[0]); } /* Master */ @@ -771,12 +792,12 @@ exec_command (void) while ((p = fgets (buf, sizeof buf, fp))) { - while (*p && !isspace (*p) && *p != ':') + while (*p && !isspace ((unsigned char) *p) && *p != ':') p++; if (*p == ':') { - for (p++; *p && isspace (*p); p++) + for (p++; *p && isspace ((unsigned char) *p); p++) ; if (*p @@ -784,7 +805,7 @@ exec_command (void) { char *end; size_t n = strtoul (p + sizeof CHECKPOINT_TEXT - 1, &end, 10); - if (!(*end && !isspace (*end))) + if (!(*end && !isspace ((unsigned char) *end))) { process_checkpoint (n); continue; @@ -872,6 +893,13 @@ main (int argc, char **argv) break; case mode_exec: + if (!checkpoint_option) + { + exec_argc = argc; + exec_argv = argv; + } + else if (argc) + error (EXIT_FAILURE, 0, _("too many arguments")); exec_command (); break; diff --git a/tests/grow.at b/tests/grow.at index 6f71cc9c3ac73de03737a6ad04de0957560b9f2c..27a5fbaa313191a068c1102d14206a8c7360a63a 100644 --- a/tests/grow.at +++ b/tests/grow.at @@ -27,8 +27,7 @@ AT_KEYWORDS([grow filechange]) AT_TAR_CHECK([ genfile --file foo --length 50000k genfile --file baz -genfile --run 'tar -vcf bar foo baz' --checkpoint 10 --length 1024 \ - --append foo +genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz ], [1], [foo diff --git a/tests/gzip.at b/tests/gzip.at index eb4303050abeab69d8a7be736c712e4ed546ac1d..38d353877a4b21a6453b5d91f9f8aa895a63b7bb 100644 --- a/tests/gzip.at +++ b/tests/gzip.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2004, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2007, 2009 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 @@ -28,14 +28,13 @@ unset TAR_OPTIONS AT_CHECK([ AT_GZIP_PREREQ tar xfvz /dev/null -test $? = 2 || exit 1 ], -[0], +[2], [], [ gzip: stdin: unexpected end of file tar: Child returned status 1 -tar: Exiting with failure status due to previous errors +tar: Error is not recoverable: exiting now ], [],[]) diff --git a/tests/incr03.at b/tests/incr03.at index 08421bbcfcf68744444974a2ace7216f29b52245..673191ec98513bfb32ad1c699124021e1e936886 100644 --- a/tests/incr03.at +++ b/tests/incr03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2009 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 @@ -39,6 +39,7 @@ sleep 1 tar -cf archive.1 -g db directory mv directory/x directory/z +cp db db.old tar -cf archive.2 -g db directory mv directory orig diff --git a/tests/incr04.at b/tests/incr04.at index 885b0ef6894b1e019ef76a27849b0d53edbb0e22..5658ac9da1e91533ad3bf4604b6a28bd32aa87a3 100644 --- a/tests/incr04.at +++ b/tests/incr04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2009 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 @@ -56,7 +56,8 @@ Incremental dump a/ a/c/ ], -[tar: a/b: Directory is new +[tar: a: Directory is new +tar: a/b: Directory is new tar: a/c: Directory has been renamed from `a/b' ],[],[],[gnu, oldgnu, posix]) diff --git a/tests/incr05.at b/tests/incr05.at new file mode 100644 index 0000000000000000000000000000000000000000..098c52e25d113d6ae92e59b1811e401aa23fc2d7 --- /dev/null +++ b/tests/incr05.at @@ -0,0 +1,47 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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/>. + +AT_SETUP([incremental dumps with -C]) +AT_KEYWORDS([incremental incr05]) + +AT_TAR_CHECK([ +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +], +[0], +[Level 0 +./ +./sub/ +./file1 +./sub/file2 +Level 1 +./ +./sub/ +./file3 +],[],[],[],[gnu, oldgnu, posix]) + +AT_CLEANUP diff --git a/tests/incr06.at b/tests/incr06.at new file mode 100644 index 0000000000000000000000000000000000000000..7efd3f2eff4cf157783037ee435d16d8edf3f418 --- /dev/null +++ b/tests/incr06.at @@ -0,0 +1,79 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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/>. + +AT_SETUP([incremental dumps of nested directories]) +AT_KEYWORDS([incremental incr06]) + +AT_TAR_CHECK([ +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +], +[0], +[Level 0 . sub +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 0 sub . +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 1 . sub +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +Level 1 sub . +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +],[],[],[],[gnu, oldgnu, posix]) + +AT_CLEANUP + + diff --git a/tests/label01.at b/tests/label01.at new file mode 100644 index 0000000000000000000000000000000000000000..933682b81711dae532cca63bccf50b1c4d4bebc6 --- /dev/null +++ b/tests/label01.at @@ -0,0 +1,35 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2010 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, 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/>. + +AT_SETUP([single-volume label]) +AT_KEYWORDS([label label01]) + +AT_TAR_CHECK([ +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +], +[0], +[Test +foo +bar +], +[],[],[],[gnu,oldgnu,posix]) + +AT_CLEANUP diff --git a/tests/label02.at b/tests/label02.at new file mode 100644 index 0000000000000000000000000000000000000000..3aa5ce71b4abad65279f42462906e9def9609cff --- /dev/null +++ b/tests/label02.at @@ -0,0 +1,38 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2010 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, 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/>. + +AT_SETUP([multi-volume label]) +AT_KEYWORDS([label label02 multi-label multivolume multiv]) + +AT_TAR_CHECK([ +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +], +[0], +[Test Volume 1 +foo +bar +baz +], +[],[],[],[gnu,oldgnu,posix]) + +AT_CLEANUP diff --git a/tests/link01.at b/tests/link01.at index 2bec558c2e1a55fe8484e3a0993c417af660aad7..5faf42e0a2e050af1d2c2da99a46eb32d7db19b7 100644 --- a/tests/link01.at +++ b/tests/link01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2004, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2007, 2009 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 @@ -31,7 +31,7 @@ # http://lists.gnu.org/archive/html/bug-tar/2004-07/msg00009.html AT_SETUP([link count gt 2]) -AT_KEYWORDS([link01]) +AT_KEYWORDS([hardlinks link01]) AT_TAR_CHECK([ mkdir directory diff --git a/tests/link02.at b/tests/link02.at new file mode 100644 index 0000000000000000000000000000000000000000..756d48fa8c07e0c4d64ac3aa32953fd4f1906411 --- /dev/null +++ b/tests/link02.at @@ -0,0 +1,52 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Tar 1.22 failed to recognize last hard link when creating an archive with +# the --remove-files option. +# +# Reported by: "Theodore Y. Ts'o" <tytso@mit.edu>, +# Carl Worth <cworth@cworth.org> +# References: +# <E194EAe-0001lE-00@think.thunk.org> +# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=188663 +# <1248955024.1545.1.camel@yoom.home.cworth.org> +# http://lists.gnu.org/archive/html/bug-tar/2009-07/msg00015.html + +AT_SETUP([preserve hard links with --remove-files]) +AT_KEYWORDS([hardlinks link02]) + +AT_TAR_CHECK([ +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[[2-4]] link to //p' +], +[0], +[file1 +file1 +file1 +]) + +AT_CLEANUP + +# End of link02.at + diff --git a/tests/link03.at b/tests/link03.at new file mode 100644 index 0000000000000000000000000000000000000000..af5b97c5b988f2ab092626b917d2293d5e4dff19 --- /dev/null +++ b/tests/link03.at @@ -0,0 +1,56 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Make sure -l option works correctly in conjunction with --remove-files +# See also link02.at + +AT_SETUP([working -l with --remove-files]) +AT_KEYWORDS([hardlinks link03]) + +m4_define([create_files],[ +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +]) + +AT_TAR_CHECK([ +create_files +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 +create_files +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[[2-3]] link to //p' +], +[0], +[archive.1 +archive.2 +testing archive.2 +file1 +file1 +], +[tar: Missing links to `file1'. +]) + +AT_CLEANUP + + diff --git a/tests/listed01.at b/tests/listed01.at index b9fc2e40b136c37c16da8193e9a3e210e42e2411..5884f8cfc0bed34fba1ff170a98bfae96d4cf604 100644 --- a/tests/listed01.at +++ b/tests/listed01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2006, 2007, 2009 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 @@ -44,7 +44,7 @@ sleep 2 genfile --length 10240 --pattern zeros --file directory/file2 echo "separator" - +cp listing listing.old tar --create \ --file=archive.2 \ --listed-incremental=listing \ diff --git a/tests/listed02.at b/tests/listed02.at index 3ab19a8c1f41dcf60ac868213f2516eee31291e5..2f1f0704eef979496f3b15c3932a8567b0363a24 100644 --- a/tests/listed02.at +++ b/tests/listed02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2006, 2007, 2009 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 @@ -47,6 +47,7 @@ done sleep 1 echo Creating main archive +echo >&2 "Creating main archive" tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 # The above prints two lines to stderr announcing the new directories c0 and c1. @@ -66,6 +67,7 @@ find tart -print | sort 2>/dev/null sleep 1 echo Creating incremental archive +echo >&2 "Creating incremental archive" cp -p tart.incr1 tart.incr2 tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 @@ -73,6 +75,7 @@ sleep 1 rm -rf tart/* echo Extracting main archive +echo >&2 "Extracting main archive" tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 echo Extracting incremental archive # This command should produce three messages about deletion @@ -141,9 +144,13 @@ tart/c2/ca1 tart/c2/ca2 tart/c2/ca3 ], -[tar: tart/c0: Directory is new +[Creating main archive +tar: tart/c0: Directory is new tar: tart/c1: Directory is new +tar: tart: Directory is new +Creating incremental archive tar: tart/c2: Directory has been renamed from `tart/c1' +Extracting main archive ], [],[],[gnu, oldgnu]) diff --git a/tests/multiv01.at b/tests/multiv01.at index 5c37e03ef9c39117f9bcbe8fe0eeee0354776025..2b3955884a26ba48d2d7186681a86e0a6a7324c8 100644 --- a/tests/multiv01.at +++ b/tests/multiv01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2006, 2007, 2009 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 @@ -46,7 +46,6 @@ else fi tar -c --multi-volume --tape-length=$TAPE_LENGTH \ - --listed-incremental=t.snar \ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe diff --git a/tests/multiv07.at b/tests/multiv07.at new file mode 100644 index 0000000000000000000000000000000000000000..ff965d6c1aea1ec59650a7e5aeb8eb7605953f27 --- /dev/null +++ b/tests/multiv07.at @@ -0,0 +1,43 @@ +# Test suite for GNU tar. -*- Autotest -*- +# Copyright (C) 2010 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, 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/>. + +# Description: When creating POSIX multivolume archives, tar may in +# some cases write an extended header at the end of one volume, and +# the corresponding ustar header at the beginning of the next volume. +# Such archives do not fully comply with the POSIX specs, but tar must +# be able to read them anyway. This is what this script tests. +# +# See function try_new_volume, in file src/buffer.c near line 1227 +# for additional details. + +AT_SETUP([volumes split at an extended header]) +AT_KEYWORDS([multivolume multiv multiv07 xsplit]) + +AT_CHECK([ +AT_XFAIL_IF(test -f $[]XFAILFILE) +AT_TARBALL_PREREQ([xsplit-1.tar],[0e008c84c517e48fbf23ca6a7033cde6]) +AT_TARBALL_PREREQ([xsplit-2.tar],[03150b9852d285458f43734e9e0b9a45]) + +cd $TEST_DATA_DIR +tar -t -M -fxsplit-1.tar -fxsplit-2.tar +], +[0], +[Archive volumes split at an extended header Volume 1 +foo +bar +]) + +AT_CLEANUP diff --git a/tests/package.m4 b/tests/package.m4 index 30f5c907d8e3115b5eb8cd8022aaa15483f88ee0..34a1e204813e0ed723e3ec1c378f35cf1d04609e 100644 --- a/tests/package.m4 +++ b/tests/package.m4 @@ -1,6 +1,6 @@ # Signature of the current package. m4_define([AT_PACKAGE_NAME], [GNU tar]) m4_define([AT_PACKAGE_TARNAME], [tar]) -m4_define([AT_PACKAGE_VERSION], [1.22]) -m4_define([AT_PACKAGE_STRING], [GNU tar 1.22]) +m4_define([AT_PACKAGE_VERSION], [1.23]) +m4_define([AT_PACKAGE_STRING], [GNU tar 1.23]) m4_define([AT_PACKAGE_BUGREPORT], [bug-tar@gnu.org]) diff --git a/tests/pipe.at b/tests/pipe.at index be992126288bb6ae8a9f2a8dc67b201719e4e96b..833e1342992811cd852985596fc2ed1bdfd88e6d 100644 --- a/tests/pipe.at +++ b/tests/pipe.at @@ -1,7 +1,8 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2006, 2007, 2008, +# 2009 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 @@ -30,16 +31,15 @@ AT_SETUP([decompressing from stdin]) AT_KEYWORDS([pipe]) -AT_TAR_WITH_HOOK([TAR_IGNREC_HOOK], -[AT_TAR_CHECK([ +AT_TAR_CHECK([ AT_SORT_PREREQ mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig -cat archive | tar xfv - | sort +cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" @@ -50,7 +50,6 @@ directory/file1 directory/file2 separator separator -], -[stderr])]) +]) AT_CLEANUP diff --git a/tests/remfiles01.at b/tests/remfiles01.at new file mode 100644 index 0000000000000000000000000000000000000000..940fd953af79f1f154f103d83fced9f0429468d6 --- /dev/null +++ b/tests/remfiles01.at @@ -0,0 +1,66 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Description: When called with --create --remove-files and a compression +# options tar (v. <= 1.22.90) would remove files even if it had failed +# to store them in the archive. +# +# References: <77cb99c00910020940k6ce15da4wb564d2418ec52cfb@mail.gmail.com> +# http://lists.gnu.org/archive/html/bug-tar/2009-10/msg00005.html + +AT_SETUP([remove-files with compression]) +AT_KEYWORDS([create remove-files remfiles01 gzip]) + +unset TAR_OPTIONS +AT_CHECK([ +AT_GZIP_PREREQ +AT_SORT_PREREQ + +mkdir dir +cd dir +genfile --file a --length 0 +chmod 0 a +genfile --file b +mkdir c + +# Depending on when the SIGPIPE gets delivered, the invocation below +# may finish with either +# tar: a: Cannot write: Broken pipe +# or +# tar: Child returned status 2 + +tar -c -f a -z --remove-files b c 2>err +EC=$? +sed -n '/(child)/p' err >&2 +rm err +find . | sort +exit $EC +], +[2], +[. +./a +./b +./c +], +[tar (child): a: Cannot open: Permission denied +tar (child): Error is not recoverable: exiting now +]) + +AT_CLEANUP diff --git a/tests/remfiles02.at b/tests/remfiles02.at new file mode 100644 index 0000000000000000000000000000000000000000..31dc3ade9b9bb323685bb1c5bb3ca5b793de169c --- /dev/null +++ b/tests/remfiles02.at @@ -0,0 +1,59 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2009 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, 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Description: When called with --create --remove-files and a compression +# options tar (v. <= 1.22.90) would remove files even if it had failed +# to store them in the archive. +# +# References: <77cb99c00910020940k6ce15da4wb564d2418ec52cfb@mail.gmail.com> +# http://lists.gnu.org/archive/html/bug-tar/2009-10/msg00005.html + +AT_SETUP([remove-files with compression: grand-child]) +AT_KEYWORDS([create remove-files remfiles02 gzip]) + +unset TAR_OPTIONS +AT_CHECK([ +AT_GZIP_PREREQ +AT_SORT_PREREQ + +mkdir dir +cd dir +mkdir a +genfile --file b +mkdir c + +tar -c -f a -z --remove-files b c 2>err +EC=$? +sed -n '/(child)/p' err >&2 +rm err +find . | sort +exit $EC +], +[2], +[. +./a +./b +./c +], +[tar (child): a: Cannot open: Is a directory +tar (child): Error is not recoverable: exiting now +]) + +AT_CLEANUP diff --git a/tests/rename01.at b/tests/rename01.at index 4e2a6aaf19180069aa725fe1001cd0f608d98236..30d135078e512cd3a0c307131bffad71ae900aa9 100644 --- a/tests/rename01.at +++ b/tests/rename01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2009 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 @@ -79,7 +79,8 @@ foo/file1 foo/file2 End directory listing 2 ], -[tar: foo/bar: Directory is new +[tar: foo: Directory is new +tar: foo/bar: Directory is new tar: foo/baz: Directory has been renamed from `foo/bar' ], [],[],[gnu, oldgnu, posix]) diff --git a/tests/rename02.at b/tests/rename02.at index 2c8ca0d555f33608b301d90d671123ae442e4920..d20f2b0823cf8c2291b627546f920d4bc610e74e 100644 --- a/tests/rename02.at +++ b/tests/rename02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2009 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 @@ -93,7 +93,8 @@ foo/file1 foo/file2 End directory listing 2 ], -[tar: foo/bar: Directory is new +[tar: foo: Directory is new +tar: foo/bar: Directory is new tar: foo/bar/baz: Directory is new tar: foo/baz: Directory has been renamed from `foo/bar/baz' ], diff --git a/tests/rename03.at b/tests/rename03.at index d08c9fc86ac1c83c8cf2f229a4cd3924a75d27ca..c79df8b5cd83cd894720df91e6fe40afda127291 100644 --- a/tests/rename03.at +++ b/tests/rename03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2009 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 @@ -116,6 +116,7 @@ End directory listing 2 tar: foo/a: Directory is new tar: foo/b: Directory is new tar: foo/c: Directory is new +tar: foo: Directory is new Second dump tar: foo/a: Directory has been renamed from `foo/c' tar: foo/b: Directory has been renamed from `foo/a' diff --git a/tests/shortrec.at b/tests/shortrec.at index 179f36564cfe9a976624bbfd8a26c485ccfdadd0..69dec89981053ef078b4bbe6d7f806ee7d28698a 100644 --- a/tests/shortrec.at +++ b/tests/shortrec.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2005, 2007, 2008, 2009 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 @@ -25,20 +25,15 @@ AT_SETUP([short records]) AT_KEYWORDS([shortrec]) -AT_TAR_WITH_HOOK([TAR_IGNREC_HOOK], -[AT_TAR_CHECK([ +AT_TAR_CHECK([ mkdir directory (cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - +tar -c -b 1 -f - directory | tar -t -f - > /dev/null tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null rm -r directory -], -[0], -[ignore], -[stderr]) ]) AT_CLEANUP diff --git a/tests/sparsemvp.at b/tests/sparsemvp.at index 2edd823320002bfb9b907a8f4cd7cb871ecf8edc..1ab8bf19cc26116a4f631c48bcc6c378a6289e3a 100644 --- a/tests/sparsemvp.at +++ b/tests/sparsemvp.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2005, 2006, 2007, 2008, 2009 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 @@ -56,7 +56,5 @@ Test archive sparsefile Compare archive ], -[tar: Record size = 12 blocks -tar: Record size = 12 blocks -],[],[],[pax])]) +[],[],[],[pax])]) diff --git a/tests/testsuite b/tests/testsuite index a9b869c38cf562e2658907f5574d1f703289ed88..f846810c31dddc8043d025c5ffcfa4e7e28255d1 100755 --- a/tests/testsuite +++ b/tests/testsuite @@ -1,7 +1,8 @@ #! /bin/sh +# Generated from testsuite.at by GNU Autoconf 2.63. # -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software -# Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. # This test suite is free software; the Free Software Foundation gives # unlimited permission to copy, distribute and modify it. ## --------------------- ## @@ -13,7 +14,7 @@ DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -35,17 +36,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - PATH_SEPARATOR=: + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi # Support unset when possible. @@ -61,8 +90,6 @@ fi # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -85,7 +112,7 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi @@ -98,17 +125,10 @@ PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && @@ -130,7 +150,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -156,7 +176,7 @@ else as_have_required=no fi - if test $as_have_required = yes && (eval ": + if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } @@ -238,7 +258,7 @@ IFS=$as_save_IFS if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -259,7 +279,7 @@ _ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -339,10 +359,10 @@ fi if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi @@ -411,9 +431,10 @@ fi test \$exitcode = 0") || { echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. } @@ -449,7 +470,8 @@ test \$exitcode = 0") || { s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { { $as_echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +$as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems @@ -477,7 +499,6 @@ case `echo -n x` in *) ECHO_N='-n';; esac - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -490,19 +511,22 @@ if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -527,10 +551,10 @@ else as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else case $1 in - -*)set "./$1";; + -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi @@ -547,32 +571,13 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + SHELL=${CONFIG_SHELL-/bin/sh} # How were we run? at_cli_args="$@" -# Load the config file. -for at_file in atconfig atlocal -do - test -r $at_file || continue - . ./$at_file || { echo "$as_me: error: invalid content: $at_file" >&2 - { (exit 1); exit 1; }; } -done - -# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: -: ${at_top_build_prefix=$at_top_builddir} - -# atconfig delivers names relative to the directory the test suite is -# in, but the groups themselves are run in testsuite-dir/group-dir. -if test -n "$at_top_srcdir"; then - builddir=../.. - for at_dir in srcdir top_srcdir top_build_prefix - do - at_val=`eval echo '${'at_$at_dir'}'` - eval "$at_dir=\$at_val/../.." - done -fi # Not all shells have the 'times' builtin; the subshell is needed to make # sure we discard the 'times: not found' message from the shell. @@ -583,9 +588,9 @@ at_times_p=false at_debug_args= # -e sets to true at_errexit_p=false -# Shall we be verbose? +# Shall we be verbose? ':' means no, empty means yes. at_verbose=: -at_quiet=echo +at_quiet= # Shall we keep the debug scripts? Must be `:' when the suite is # run by a debug script, so that the script doesn't remove itself. @@ -596,115 +601,156 @@ at_help_p=false at_version_p=false # List test groups? at_list_p=false +# --clean +at_clean=false # Test groups to run at_groups= +# Whether a write failure occurred +at_write_fail=0 -# The directory we are in. +# The directory we run the suite in. Default to . if no -C option. at_dir=`pwd` -# The directory the whole suite works in. -# Should be absolutely to let the user `cd' at will. -at_suite_dir=$at_dir/$as_me.dir -# The file containing the suite. -at_suite_log=$at_dir/$as_me.log -# The file containing the location of the last AT_CHECK. -at_check_line_file=$at_suite_dir/at-check-line -# The file containing the exit status of the last command. -at_status_file=$at_suite_dir/at-status -# The files containing the output of the tested commands. -at_stdout=$at_suite_dir/at-stdout -at_stder1=$at_suite_dir/at-stder1 -at_stderr=$at_suite_dir/at-stderr -# The file containing dates. -at_times_file=$at_suite_dir/at-times +# An absolute reference to this testsuite script. +case $as_myself in + [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;; + * ) at_myself=$at_dir/$as_myself ;; +esac +# Whether -C is in effect. +at_change_dir=false # List of the tested programs. at_tested='tar' # List of the all the test groups. -at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77' +at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98' # As many question marks as there are digits in the last test group number. # Used to normalize the test group numbers so that `ls' lists them in # numerical order. at_format='??' # Description of all the test groups. at_help_all="1;version.at:19;tar version;; -2;pipe.at:29;decompressing from stdin;pipe; +2;pipe.at:30;decompressing from stdin;pipe; 3;options.at:24;mixing options;options options00; 4;options02.at:26;interspersed options;options options02; 5;T-empty.at:26;files-from: empty entries;files-from empty; -6;T-null.at:21;files-from: 0-separated file without -0;files-from null T-null; -7;indexfile.at:26;tar --index-file=this_is_a_very_long_file_name_which_raises_issues.c --file=-;stdout indexfile; +6;T-null.at:21;files-from: 0-separated file without -0;files-from null t-null; +7;indexfile.at:26;tar --index-file=FILE --file=-;stdout indexfile; 8;verbose.at:26;tar cvf -;stdout verbose; 9;append.at:21;append;append append00; 10;append01.at:29;appending files with long names;append append01; -11;append02.at:40;append vs. create;append append02 append-gnu; -12;exclude.at:23;exclude;exclude; -13;delete01.at:23;deleting a member after a big one;delete delete01; -14;delete02.at:23;deleting a member from stdin archive;delete delete02; -15;delete03.at:21;deleting members with long names;delete delete03; -16;delete04.at:23;deleting a large last member;delete delete04; -17;delete05.at:27;deleting non-existing member;delete delete05; -18;extrac01.at:23;extract over an existing directory;extract extract01; -19;extrac02.at:23;extracting symlinks over an existing file;extract extract02 symlink; -20;extrac03.at:23;extraction loops;extract extract03; -21;extrac04.at:23;extract + fnmatch;extract extract04 fnmatch; -22;extrac05.at:30;extracting selected members from pax;extract extract05; -23;extrac06.at:33;mode of extracted directories;extract extract06 directory mode; -24;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink; -25;gzip.at:23;gzip;gzip; -26;incremental.at:23;incremental;incremental incr00; -27;incr01.at:27;restore broken symlinks from incremental;incremental incr01; -28;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02; -29;listed01.at:26;--listed for individual files;listed incremental listed01; -30;listed02.at:28;working --listed;listed incremental listed02; -31;incr03.at:28;renamed files in incrementals;incremental incr03 rename; -32;incr04.at:29;proper icontents initialization;incremental incr04 icontents; -33;rename01.at:24;renamed dirs in incrementals;incremental rename rename01; -34;rename02.at:24;move between hierarchies;incremental rename rename02; -35;rename03.at:23;cyclic renames;incremental rename rename03 cyclic-rename; -36;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename; -37;rename05.at:24;renamed subdirectories;incremental rename05 rename; -38;chtype.at:27;changed file types in incrementals;incremental chtype; -39;ignfail.at:23;ignfail;ignfail; -40;link01.at:33;link count gt 2;link01; -41;longv7.at:24;long names in V7 archives;longname longv7; -42;long01.at:28;long file names divisible by block size;longname long512; -43;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01; -44;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02; -45;lustar03.at:21;ustar: splitting long names;longname ustar lustar03; -46;multiv01.at:23;multivolume dumps from pipes;multivolume multiv multiv01; -47;multiv02.at:28;skipping a straddling member;multivolume multiv multiv02; -48;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03; -49;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental multiv04; -50;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync; -51;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06; -52;old.at:23;old archives;old; -53;recurse.at:21;recurse;recurse; -54;same-order01.at:26;working -C with --same-order;same-order same-order01; -55;same-order02.at:25;multiple -C options;same-order same-order02; -56;shortrec.at:25;short records;shortrec; -57;sparse01.at:21;sparse files;sparse sparse01; -58;sparse02.at:21;extracting sparse file over a pipe;sparse sparse02; -59;sparse03.at:21;storing sparse files > 8G;sparse sparse03; -60;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv; -61;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multiv sparsemvp sparsemvp00; -62;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01; -63;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multiv sparsemvp sparsemvp10; -64;update.at:27;update unchanged directories;update; -65;volume.at:23;volume;volume volcheck; -66;volsize.at:29;volume header size;volume volsize; -67;comprec.at:21;compressed format recognition;comprec; -68;shortfile.at:26;short input files;shortfile shortfile0; -69;shortupd.at:29;updating short archives;shortfile shortfile1 shortupd; -70;truncate.at:29;truncate;truncate filechange; -71;grow.at:24;grow;grow filechange; -72;gtarfail.at:21;gtarfail;star gtarfail; -73;gtarfail2.at:21;gtarfail2;star gtarfail2; -74;multi-fail.at:21;multi-fail;star multivolume multiv multi-fail; -75;ustar-big-2g.at:21;ustar-big-2g;star ustar-big-2g; -76;ustar-big-8g.at:21;ustar-big-8g;star ustar-big-8g; -77;pax-big-10g.at:21;pax-big-10g;star pax-big-10g; +11;append02.at:54;append vs. create;append append02 append-gnu; +12;xform-h.at:30;transforming hard links on create;transform xform xform-h; +13;exclude.at:23;exclude;exclude; +14;exclude01.at:17;exclude wildcards;exclude exclude01; +15;exclude02.at:17;exclude: anchoring;exclude exclude02; +16;exclude03.at:17;exclude: wildcards match slash;exclude exclude03; +17;exclude04.at:17;exclude: case insensitive;exclude exclude04; +18;exclude05.at:19;exclude: lots of excludes;exclude exclude05; +19;delete01.at:23;deleting a member after a big one;delete delete01; +20;delete02.at:23;deleting a member from stdin archive;delete delete02; +21;delete03.at:21;deleting members with long names;delete delete03; +22;delete04.at:23;deleting a large last member;delete delete04; +23;delete05.at:27;deleting non-existing member;delete delete05; +24;extrac01.at:23;extract over an existing directory;extract extract01; +25;extrac02.at:23;extracting symlinks over an existing file;extract extract02 symlink; +26;extrac03.at:23;extraction loops;extract extract03; +27;extrac04.at:23;extract + fnmatch;extract extract04 fnmatch; +28;extrac05.at:30;extracting selected members from pax;extract extract05; +29;extrac06.at:33;mode of extracted directories;extract extract06 directory mode; +30;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink; +31;extrac08.at:33;restoring mode on existing directory;extract extrac08; +32;label01.at:19;single-volume label;label label01; +33;label02.at:19;multi-volume label;label label02 multi-label multivolume multiv; +34;backup01.at:33;extracting existing dir with --backup;extract backup backup01; +35;gzip.at:23;gzip;gzip; +36;incremental.at:23;incremental;incremental incr00; +37;incr01.at:27;restore broken symlinks from incremental;incremental incr01; +38;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02; +39;listed01.at:26;--listed for individual files;listed incremental listed01; +40;listed02.at:28;working --listed;listed incremental listed02; +41;incr03.at:28;renamed files in incrementals;incremental incr03 rename; +42;incr04.at:29;proper icontents initialization;incremental incr04 icontents; +43;incr05.at:19;incremental dumps with -C;incremental incr05; +44;incr06.at:19;incremental dumps of nested directories;incremental incr06; +45;filerem01.at:34;file removed as we read it (ca. 22 seconds);create incremental filechange filerem filerem01; +46;filerem02.at:24;toplevel file removed (ca. 24 seconds);create incremental filechange filerem filerem02; +47;rename01.at:24;renamed dirs in incrementals;incremental rename rename01; +48;rename02.at:24;move between hierarchies;incremental rename rename02; +49;rename03.at:23;cyclic renames;incremental rename rename03 cyclic-rename; +50;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename; +51;rename05.at:24;renamed subdirectories;incremental rename05 rename; +52;chtype.at:27;changed file types in incrementals;incremental chtype; +53;ignfail.at:23;ignfail;ignfail; +54;link01.at:33;link count gt 2;hardlinks link01; +55;link02.at:32;preserve hard links with --remove-files;hardlinks link02; +56;link03.at:24;working -l with --remove-files;hardlinks link03; +57;longv7.at:24;long names in V7 archives;longname longv7; +58;long01.at:28;long file names divisible by block size;longname long512; +59;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01; +60;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02; +61;lustar03.at:21;ustar: splitting long names;longname ustar lustar03; +62;multiv01.at:23;multivolume dumps from pipes;multivolume multiv multiv01; +63;multiv02.at:28;skipping a straddling member;multivolume multiv multiv02; +64;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03; +65;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental multiv04; +66;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync; +67;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06; +68;multiv07.at:26;volumes split at an extended header;multivolume multiv multiv07 xsplit; +69;old.at:23;old archives;old; +70;recurse.at:21;recurse;recurse; +71;same-order01.at:26;working -C with --same-order;same-order same-order01; +72;same-order02.at:25;multiple -C options;same-order same-order02; +73;shortrec.at:25;short records;shortrec; +74;sparse01.at:21;sparse files;sparse sparse01; +75;sparse02.at:21;extracting sparse file over a pipe;sparse sparse02; +76;sparse03.at:21;storing sparse files > 8G;sparse sparse03; +77;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv; +78;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multiv sparsemvp sparsemvp00; +79;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01; +80;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multiv sparsemvp sparsemvp10; +81;update.at:28;update unchanged directories;update update00; +82;update01.at:29;update directories;update update01; +83;update02.at:26;update changed files;update update02; +84;volume.at:23;volume;volume volcheck; +85;volsize.at:29;volume header size;volume volsize; +86;comprec.at:21;compressed format recognition;comprec; +87;shortfile.at:26;short input files;shortfile shortfile0; +88;shortupd.at:29;updating short archives;shortfile shortfile1 shortupd; +89;truncate.at:29;truncate;truncate filechange; +90;grow.at:24;grow;grow filechange; +91;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip; +92;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip; +93;gtarfail.at:21;gtarfail;star gtarfail; +94;gtarfail2.at:21;gtarfail2;star gtarfail2; +95;multi-fail.at:21;multi-fail;star multivolume multiv multi-fail; +96;ustar-big-2g.at:21;ustar-big-2g;star ustar-big-2g; +97;ustar-big-8g.at:21;ustar-big-8g;star ustar-big-8g; +98;pax-big-10g.at:21;pax-big-10g;star pax-big-10g; " +# at_func_validate_ranges [NAME...] +# --------------------------------- +# Validate and normalize the test group number contained in each +# variable NAME. Leading zeroes are treated as decimal. +at_func_validate_ranges () +{ + for at_grp + do + eval at_value=\$$at_grp + if test $at_value -lt 1 || test $at_value -gt 98; then + $as_echo "invalid test group: $at_value" >&2 + exit 1 + fi + case $at_value in + 0*) # We want to treat leading 0 as decimal, like expr and test, but + # at_func_arith treats it as octal if it uses $(( )). + # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the + # expr fork, but it is not worth the effort to determine if the + # shell supports XSI when the user can just avoid leading 0. + eval $at_grp='`expr $at_value + 0`' ;; + esac + done +} + at_prev= for at_option do @@ -735,10 +781,7 @@ do ;; --clean | -c ) - test -d "$at_suite_dir" && - find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; - rm -f -r "$at_suite_dir" "$at_suite_log" - exit 0 + at_clean=: ;; --debug | -d ) @@ -751,7 +794,7 @@ do ;; --verbose | -v ) - at_verbose=echo; at_quiet=: + at_verbose=; at_quiet=: ;; --trace | -x ) @@ -759,20 +802,23 @@ do ;; [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) + at_func_validate_ranges at_option at_groups="$at_groups$at_option " ;; # Ranges [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-) at_range_start=`echo $at_option |tr -d X-` - at_range=`echo " $at_groups_all " | \ + at_func_validate_ranges at_range_start + at_range=`$as_echo " $at_groups_all " | \ sed -e 's/^.* \('$at_range_start' \)/\1/'` at_groups="$at_groups$at_range " ;; -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]) at_range_end=`echo $at_option |tr -d X-` - at_range=`echo " $at_groups_all " | \ + at_func_validate_ranges at_range_end + at_range=`$as_echo " $at_groups_all " | \ sed -e 's/\( '$at_range_end'\) .*$/\1/'` at_groups="$at_groups$at_range " ;; @@ -790,12 +836,22 @@ do at_range_end=$at_range_start at_range_start=$at_tmp fi - at_range=`echo " $at_groups_all " | \ + at_func_validate_ranges at_range_start at_range_end + at_range=`$as_echo " $at_groups_all " | \ sed -e 's/^.*\( '$at_range_start' \)/\1/' \ -e 's/\( '$at_range_end'\) .*$/\1/'` at_groups="$at_groups$at_range " ;; + # Directory selection. + --directory | -C ) + at_prev=--directory + ;; + --directory=* ) + at_change_dir=: + at_dir=$at_optarg + ;; + # Keywords. --keywords | -k ) at_prev=--keywords @@ -817,68 +873,57 @@ do ;; esac # It is on purpose that we match the test group titles too. - at_groups_selected=`echo "$at_groups_selected" | + at_groups_selected=`$as_echo "$at_groups_selected" | grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` done - at_groups_selected=`echo "$at_groups_selected" | sed 's/;.*//'` # Smash the newlines. - at_groups="$at_groups`echo $at_groups_selected` " + at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//' | + tr "$as_nl" ' ' + ` + at_groups="$at_groups$at_groups_selected " ;; *=*) at_envvar=`expr "x$at_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. - expr "x$at_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $at_envvar" >&2 - { (exit 1); exit 1; }; } - at_value=`echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$at_envvar='$at_value'" + case $at_envvar in + '' | [0-9]* | *[!_$as_cr_alnum]* ) + { { $as_echo "$as_me:$LINENO: error: invalid variable name: $at_envvar" >&5 +$as_echo "$as_me: error: invalid variable name: $at_envvar" >&2;} + { (exit 1); exit 1; }; } ;; + esac + at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` + # Export now, but save eval for later and for debug scripts. export $at_envvar - # Propagate to debug scripts. at_debug_args="$at_debug_args $at_envvar='$at_value'" ;; - *) echo "$as_me: invalid option: $at_option" >&2 - echo "Try \`$0 --help' for more information." >&2 + *) $as_echo "$as_me: invalid option: $at_option" >&2 + $as_echo "Try \`$0 --help' for more information." >&2 exit 1 ;; esac done +# Verify our last option didn't require an argument +if test -n "$at_prev"; then + { { $as_echo "$as_me:$LINENO: error: \`$at_prev' requires an argument." >&5 +$as_echo "$as_me: error: \`$at_prev' requires an argument." >&2;} + { (exit 1); exit 1; }; } +fi + + # Selected test groups. if test -z "$at_groups"; then at_groups=$at_groups_all else - # Sort the tests, removing duplicates: - at_groups=`echo $at_groups | tr ' ' "$as_nl" | sort -nu` - # and add banners. (Passing at_groups_all is tricky--see the comment - # starting with "Passing at_groups is tricky.") - at_groups=`echo "$at_groups$as_nl $at_groups_all" | - awk 'BEGIN { FS = "@" } # Effectively switch off field splitting. - /^$/ { next } # Ignore the empty line. - !/ / { groups++; selected[$ 0] = 1; next } - # The last line, containing at_groups_all. - { - n = split($ 0, a, " ") - # If there are several tests, select their banners: - if (groups > 1) { - for (i = 1; i <= n; i++) { - if (a[i] ~ /^banner-/) - banner = a[i] - else if (banner != "" && selected[a[i]] == 1) - selected[banner] = 1 - } - } - for (i = 1; i <= n; i++) - if (selected[a[i]] == 1) - list = list " " a[i] - print list - }'` + # Sort the tests, removing duplicates. + at_groups=`$as_echo "$at_groups" | tr ' ' "$as_nl" | sort -nu` fi # Help message. if $at_help_p; then - cat <<_ATEOF + cat <<_ATEOF || at_write_fail=1 Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS] Run all the tests, or the selected TESTS, given by numeric ranges, and @@ -895,7 +940,7 @@ possibly amounts into PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH _ATEOF -cat <<_ATEOF +cat <<_ATEOF || at_write_fail=1 Operation modes: -h, --help print the help message, then exit @@ -903,30 +948,32 @@ Operation modes: -c, --clean remove all the files this test suite might create and exit -l, --list describes all the tests, or the selected TESTS _ATEOF -cat <<_ATEOF +cat <<_ATEOF || at_write_fail=1 Execution tuning: + -C, --directory=DIR + change to directory DIR before starting -k, --keywords=KEYWORDS - select the tests matching all the comma-separated KEYWORDS - multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD + select the tests matching all the comma-separated KEYWORDS + multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD -e, --errexit abort as soon as a test fails; implies --debug -v, --verbose force more detailed output - default for debugging scripts + default for debugging scripts -d, --debug inhibit clean up and top-level logging - default for debugging scripts + default for debugging scripts -x, --trace enable tests shell tracing _ATEOF -cat <<_ATEOF +cat <<_ATEOF || at_write_fail=1 Report bugs to <bug-tar@gnu.org>. _ATEOF - exit 0 + exit $at_write_fail fi # List of tests. if $at_list_p; then - cat <<_ATEOF -GNU tar 1.22 test suite test groups: + cat <<_ATEOF || at_write_fail=1 +GNU tar 1.23 test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS @@ -935,7 +982,12 @@ _ATEOF # Passing at_groups is tricky. We cannot use it to form a literal string # or regexp because of the limitation of AIX awk. And Solaris' awk # doesn't grok more than 99 fields in a record, so we have to use `split'. - echo "$at_groups$as_nl$at_help_all" | + # at_groups needs to be space-separated for this script to work. + case $at_groups in + *"$as_nl"* ) + at_groups=`$as_echo "$at_groups" | tr "$as_nl" ' '` ;; + esac + $as_echo "$at_groups$as_nl$at_help_all" | awk 'BEGIN { FS = ";" } NR == 1 { for (n = split($ 0, a, " "); n; n--) selected[a[n]] = 1 @@ -946,29 +998,129 @@ _ATEOF printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3 if ($ 4) printf " %s\n", $ 4 } - }' - exit 0 + }' || at_write_fail=1 + exit $at_write_fail fi if $at_version_p; then - echo "$as_me (GNU tar 1.22)" - cat <<\_ACEOF + $as_echo "$as_me (GNU tar 1.23)" && + cat <<\_ACEOF || at_write_fail=1 -Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software -Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +Free Software Foundation, Inc. This test suite is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF - exit 0 + exit $at_write_fail +fi + +# Should we print banners? at_groups is space-separated for entire test, +# newline-separated if only a subset of the testsuite is run. +case $at_groups in + *' '*' '* | *"$as_nl"*"$as_nl"* ) + at_print_banners=: ;; + * ) at_print_banners=false ;; +esac +# Text for banner N, set to empty once printed. + +# Take any -C into account. +if $at_change_dir ; then + if test x- = "x$at_dir" ; then + at_dir=./- + fi + test x != "x$at_dir" && cd "$at_dir" \ + || { { $as_echo "$as_me:$LINENO: error: unable to change directory" >&5 +$as_echo "$as_me: error: unable to change directory" >&2;} + { (exit 1); exit 1; }; } + at_dir=`pwd` +fi + +# Load the config files for any default variable assignments. +for at_file in atconfig atlocal +do + test -r $at_file || continue + . ./$at_file || { { $as_echo "$as_me:$LINENO: error: invalid content: $at_file" >&5 +$as_echo "$as_me: error: invalid content: $at_file" >&2;} + { (exit 1); exit 1; }; } +done + +# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: +: ${at_top_build_prefix=$at_top_builddir} + +# Perform any assignments requested during argument parsing. +eval "$at_debug_args" + +# atconfig delivers names relative to the directory the test suite is +# in, but the groups themselves are run in testsuite-dir/group-dir. +if test -n "$at_top_srcdir"; then + builddir=../.. + for at_dir_var in srcdir top_srcdir top_build_prefix + do + at_val=`eval 'as_val=${'at_$at_dir_var'} + $as_echo "$as_val"'` + case $at_val in + [\\/$]* | ?:[\\/]* ) at_prefix= ;; + *) at_prefix=../../ ;; + esac + eval "$at_dir_var=\$at_prefix\$at_val" + done +fi + +## ------------------- ## +## Directory structure ## +## ------------------- ## + +# This is the set of directories and files used by this script +# (non-literals are capitalized): +# +# TESTSUITE - the testsuite +# TESTSUITE.log - summarizes the complete testsuite run +# TESTSUITE.dir/ - created during a run, remains after -d or failed test +# + at-groups/ - during a run: status of all groups in run +# | + NNN/ - during a run: meta-data about test group NNN +# | | + check-line - location (source file and line) of current AT_CHECK +# | | + status - exit status of current AT_CHECK +# | | + stdout - stdout of current AT_CHECK +# | | + stder1 - stderr, including trace +# | | + stderr - stderr, with trace filtered out +# | | + test-source - portion of testsuite that defines group +# | | + times - timestamps for computing duration +# | | + pass - created if group passed +# | | + xpass - created if group xpassed +# | | + fail - created if group failed +# | | + xfail - created if group xfailed +# | | + skip - created if group skipped +# + at-stop - during a run: end the run if this file exists +# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction +# + 0..NNN/ - created for each group NNN, remains after -d or failed test +# | + TESTSUITE.log - summarizes the group results +# | + ... - files created during the group + +# The directory the whole suite works in. +# Should be absolute to let the user `cd' at will. +at_suite_dir=$at_dir/$as_me.dir +# The file containing the suite. +at_suite_log=$at_dir/$as_me.log +# The directory containing helper files per test group. +at_helper_dir=$at_suite_dir/at-groups +# Stop file: if it exists, do not start new jobs. +at_stop_file=$at_suite_dir/at-stop + +if $at_clean; then + test -d "$at_suite_dir" && + find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -f -r "$at_suite_dir" "$at_suite_log" + exit $? fi # Don't take risks: use only absolute directories in PATH. # -# For stand-alone test suites, AUTOTEST_PATH is relative to `.'. +# For stand-alone test suites (ie. atconfig was not found), +# AUTOTEST_PATH is relative to `.'. # # For embedded test suites, AUTOTEST_PATH is relative to the top level # of the package. Then expand it into build/src parts, since users # may create executables in both places. -AUTOTEST_PATH=`echo $AUTOTEST_PATH | sed "s&:&$PATH_SEPARATOR&g"` +AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"` at_path= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $AUTOTEST_PATH $PATH @@ -999,31 +1151,30 @@ IFS=$as_save_IFS # # There might be directories that don't exist, but don't redirect # builtins' (eg., cd) stderr directly: Ultrix's sh hates that. -PATH= +at_new_path= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $at_path do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` -test -d "$as_dir" || continue -case $PATH in - $as_dir | \ - $as_dir$PATH_SEPARATOR* | \ - *$PATH_SEPARATOR$as_dir | \ - *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR* ) ;; - - '') PATH=$as_dir ;; - *) PATH=$PATH$PATH_SEPARATOR$as_dir ;; + test -d "$as_dir" || continue +case $as_dir in + [\\/]* | ?:[\\/]* ) ;; + * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; +esac +case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in + *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;; + $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;; + *) at_new_path=$at_new_path$PATH_SEPARATOR$as_dir ;; esac done IFS=$as_save_IFS +PATH=$at_new_path export PATH # Setting up the FDs. # 5 is the log file. Not to be overwritten if `-d'. - if $at_debug_p; then at_suite_log=/dev/null else @@ -1034,25 +1185,27 @@ exec 5>>"$at_suite_log" # Banners and logs. cat <<\_ASBOX ## ------------------------ ## -## GNU tar 1.22 test suite. ## +## GNU tar 1.23 test suite. ## ## ------------------------ ## _ASBOX { cat <<\_ASBOX ## ------------------------ ## -## GNU tar 1.22 test suite. ## +## GNU tar 1.23 test suite. ## ## ------------------------ ## _ASBOX echo - echo "$as_me: command line was:" - echo " $ $0 $at_cli_args" + $as_echo "$as_me: command line was:" + $as_echo " \$ $0 $at_cli_args" echo # Try to find a few ChangeLogs in case it might help determining the # exact version. Use the relative dir: if the top dir is a symlink, # find will not follow it (and options to follow the links are not - # portable), which would result in no output here. + # portable), which would result in no output here. Prune directories + # matching the package tarname, since they tend to be leftovers from + # `make dist' or `make distcheck' and contain redundant or stale logs. if test -n "$at_top_srcdir"; then cat <<\_ASBOX ## ----------- ## @@ -1060,14 +1213,16 @@ _ASBOX ## ----------- ## _ASBOX echo - for at_file in `find "$at_top_srcdir" -name ChangeLog -print` + for at_file in `find "$at_top_srcdir" -name "tar-*" -prune -o -name ChangeLog -print` do - echo "$as_me: $at_file:" + $as_echo "$as_me: $at_file:" sed 's/^/| /;10q' $at_file echo done - { + fi + + { cat <<_ASUNAME ## --------- ## ## Platform. ## @@ -1097,23 +1252,162 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" + $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } - echo - fi + echo # Contents of the config files. for at_file in atconfig atlocal do test -r $at_file || continue - echo "$as_me: $at_file:" + $as_echo "$as_me: $at_file:" sed 's/^/| /' $at_file echo done +} >&5 + + +## --------------- ## +## Shell functions ## +## --------------- ## + +# at_func_banner NUMBER +# --------------------- +# Output banner NUMBER, provided the testsuite is running multiple groups +# and this particular banner has not yet been printed. +at_func_banner () +{ + $at_print_banners || return 0 + eval at_banner_text=\$at_banner_text_$1 + test "x$at_banner_text" = x && return 0 + eval at_banner_text_$1= + $as_echo "$as_nl$at_banner_text$as_nl" +} # at_func_banner + +# at_func_check_newline COMMAND +# ----------------------------- +# Test if COMMAND includes a newline and, if so, print a message and return +# exit code 1 +at_func_check_newline () +{ + case "$1" in + *' +'*) echo 'Not enabling shell tracing (command contains an embedded newline)' + return 1 ;; + *) return 0 ;; + esac +} + +# at_func_filter_trace EXIT-CODE +# ------------------------------ +# Split the contents of file "$at_stder1" into the "set -x" trace (on stderr) +# and the other lines (on file "$at_stderr"). Return the exit code EXIT-CODE. +at_func_filter_trace () +{ + grep '^ *+' "$at_stder1" >&2 + grep -v '^ *+' "$at_stder1" >"$at_stderr" + return $1 +} + +# at_func_log_failure FILE-LIST +# ----------------------------- +# Copy the files in the list on stdout with a "> " prefix, and exit the shell +# with a failure exit code. +at_func_log_failure () +{ + for file + do $as_echo "$file:"; sed 's/^/> /' "$file"; done + echo 1 > "$at_status_file" + exit 1 +} + +# at_func_check_skip EXIT-CODE +# ---------------------------- +# Check whether EXIT-CODE is the special exit code 77, and if so exit the shell +# with that same exit code. +at_func_check_skip () +{ + case $1 in + 77) echo 77 > "$at_status_file"; exit 77;; + esac +} + +# at_func_check_status EXPECTED EXIT-CODE LINE +# -------------------------------------------- +# Check whether EXIT-CODE is the expected exit code, and if so do nothing. +# Otherwise, if it is 77 exit the shell with that same exit code; if it is +# anything else print an error message and fail the test. +at_func_check_status () +{ + case $2 in + $1 ) ;; + 77) echo 77 > "$at_status_file"; exit 77;; + *) $as_echo "$3: exit code was $2, expected $1" + at_failed=:;; + esac +} + +# at_func_diff_devnull FILE +# ------------------------- +# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless +# diff invocations. +at_func_diff_devnull () +{ + test -s "$1" || return 0 + $at_diff "$at_devnull" "$1" +} + +# at_func_test NUMBER +# ------------------- +# Parse out test NUMBER from the tail of this file. +at_func_test () +{ + eval at_sed=\$at_sed$1 + sed "$at_sed" "$at_myself" > "$at_test_source" +} + +# at_func_create_debugging_script +# ------------------------------- +# Create the debugging script $at_group_dir/run which will reproduce the +# current test group. +at_func_create_debugging_script () +{ + { + echo "#! /bin/sh" && + echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' && + $as_echo "cd '$at_dir'" && + $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" && + echo 'exit 1' + } >"$at_group_dir/run" && + chmod +x "$at_group_dir/run" +} + +# at_func_arith +# ------------- +# Arithmetic evaluation, avoids expr if the shell is sane. The +# interpretation of leading zeroes is unspecified. +# +# subshell and eval are needed to keep Solaris sh from bailing out: +if ( eval 'test $(( 1 + 1 )) = 2' ) 2>/dev/null; then + # With "$@", bash does not split positional parameters: + eval 'at_func_arith () + { + at_func_arith_result=$(( $* )) + }' +else + at_func_arith () + { + at_func_arith_result=`expr "$@"` + } +fi +## ---------------------- ## +## End of shell functions ## +## ---------------------- ## +{ cat <<\_ASBOX ## ---------------- ## ## Tested programs. ## @@ -1137,13 +1431,13 @@ IFS=$as_save_IFS if test -f "$as_dir/$at_program"; then { - echo "$at_srcdir/testsuite.at:104: $as_dir/$at_program --version" - "$as_dir/$at_program" --version + $as_echo "$at_srcdir/testsuite.at:104: $as_dir/$at_program --version" + "$as_dir/$at_program" --version </dev/null echo } >&5 2>&1 else - { { echo "$as_me:$LINENO: error: cannot find $at_program" >&5 -echo "$as_me: error: cannot find $at_program" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find $at_program" >&5 +$as_echo "$as_me: error: cannot find $at_program" >&2;} { (exit 1); exit 1; }; } fi done @@ -1158,19 +1452,13 @@ _ASBOX at_start_date=`date` at_start_time=`date +%s 2>/dev/null` -echo "$as_me: starting at: $at_start_date" >&5 -at_xpass_list= -at_xfail_list= -at_pass_list= -at_fail_list= -at_skip_list= -at_group_count=0 +$as_echo "$as_me: starting at: $at_start_date" >&5 # Create the master directory if it doesn't already exist. test -d "$at_suite_dir" || mkdir "$at_suite_dir" || - { { echo "$as_me:$LINENO: error: cannot create '$at_suite_dir'" >&5 -echo "$as_me: error: cannot create '$at_suite_dir'" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot create '$at_suite_dir'" >&5 +$as_echo "$as_me: error: cannot create '$at_suite_dir'" >&2;} { (exit 1); exit 1; }; } # Can we diff with `/dev/null'? DU 5.0 refuses. @@ -1189,37 +1477,87 @@ else at_diff=diff fi +# Get the last needed group. +for at_group in : $at_groups; do :; done + +# Extract the start and end lines of each test group at the tail +# of this file +awk ' +BEGIN { FS="" } +/^#AT_START_/ { + start = NR +} +/^#AT_STOP_/ { + test = substr ($ 0, 10) + print "at_sed" test "=\"1," start "d;" (NR-1) "q\"" + if (test == "'"$at_group"'") exit +}' "$at_myself" > "$at_suite_dir/at-source-lines" && +. "$at_suite_dir/at-source-lines" || + { { $as_echo "$as_me:$LINENO: error: cannot create test line number cache" >&5 +$as_echo "$as_me: error: cannot create test line number cache" >&2;} + { (exit 1); exit 1; }; } +rm -f "$at_suite_dir/at-source-lines" + +# Set up helper dirs. +rm -rf "$at_helper_dir" && +mkdir "$at_helper_dir" && +cd "$at_helper_dir" && +{ test -z "$at_groups" || mkdir $at_groups; } || +{ { $as_echo "$as_me:$LINENO: error: testsuite directory setup failed" >&5 +$as_echo "$as_me: error: testsuite directory setup failed" >&2;} + { (exit 1); exit 1; }; } + +# Functions for running a test group. We leave the actual +# test group execution outside of a shell function in order +# to avoid hitting zsh 4.x exit status bugs. + +# at_func_group_prepare +# --------------------- +# Prepare running a test group +at_func_group_prepare () +{ + # The directory for additional per-group helper files. + at_job_dir=$at_helper_dir/$at_group + # The file containing the location of the last AT_CHECK. + at_check_line_file=$at_job_dir/check-line + # The file containing the exit status of the last command. + at_status_file=$at_job_dir/status + # The files containing the output of the tested commands. + at_stdout=$at_job_dir/stdout + at_stder1=$at_job_dir/stder1 + at_stderr=$at_job_dir/stderr + # The file containing the code for a test group. + at_test_source=$at_job_dir/test-source + # The file containing dates. + at_times_file=$at_job_dir/times -for at_group in $at_groups -do # Be sure to come back to the top test directory. cd "$at_suite_dir" - case $at_group in - banner-*) - at_group_log=$at_suite_log - ;; + # Clearly separate the test groups when verbose. + $at_first || $at_verbose echo - *) - at_group_normalized=$at_group + at_group_normalized=$at_group - while :; do + eval 'while :; do case $at_group_normalized in #( - $at_format*) break;; + '"$at_format"'*) break;; esac at_group_normalized=0$at_group_normalized - done + done' - # Create a fresh directory for the next test group, and enter. - at_group_dir=$at_suite_dir/$at_group_normalized - at_group_log=$at_group_dir/$as_me.log - if test -d "$at_group_dir"; then - find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; - rm -fr "$at_group_dir" - fi - # Be tolerant if the above `rm' was not able to remove the directory. - { as_dir=$at_group_dir + # Create a fresh directory for the next test group, and enter. + at_group_dir=$at_suite_dir/$at_group_normalized + at_group_log=$at_group_dir/$as_me.log + if test -d "$at_group_dir"; then + find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -fr "$at_group_dir" || + { $as_echo "$as_me:$LINENO: WARNING: test directory for $at_group_normalized could not be cleaned." >&5 +$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned." >&2;} + fi + # Be tolerant if the above `rm' was not able to remove the directory. + { as_dir="$at_group_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac @@ -1227,7 +1565,7 @@ do as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -1236,7 +1574,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1257,142 +1595,447 @@ echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - cd $at_group_dir - ;; - esac echo 0 > "$at_status_file" - # Clearly separate the test groups when verbose. - test $at_group_count != 0 && $at_verbose - # In verbose mode, append to the log file *and* show on - # the standard output; in quiet mode only write to the log - if test $at_verbose = echo; then + # the standard output; in quiet mode only write to the log. + if test -z "$at_verbose"; then at_tee_pipe='tee -a "$at_group_log"' else at_tee_pipe='cat >> "$at_group_log"' fi +} - case $at_group in - 1 ) # 1. version.at:19: tar version - at_setup_line='version.at:19' - at_desc="tar version" - $at_quiet $ECHO_N " 1: tar version $ECHO_C" - at_xfail=no - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "1. version.at:19: testing ..." - $at_traceon - - -$at_traceoff -echo "$at_srcdir/version.at:21: tar --version | sed 1q" -echo version.at:21 >"$at_check_line_file" +# at_func_group_postprocess +# ------------------------- +at_func_group_postprocess () +{ + # Be sure to come back to the suite directory, in particular + # since below we might `rm' the group directory we are in currently. + cd "$at_suite_dir" -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi + if test ! -f "$at_check_line_file"; then + sed "s/^ */$as_me: WARNING: /" <<_ATEOF + A failure happened in a test group before any test could be + run. This means that test suite is improperly designed. Please + report this failure to <bug-tar@gnu.org>. +_ATEOF + $as_echo "$at_setup_line" >"$at_check_line_file" + fi + $at_verbose $as_echo_n "$at_group. $at_setup_line: " + $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log" + case $at_xfail:$at_status in + yes:0) + at_msg="UNEXPECTED PASS" + at_res=xpass + at_errexit=$at_errexit_p + ;; + no:0) + at_msg="ok" + at_res=pass + at_errexit=false + ;; + *:77) + at_msg='skipped ('`cat "$at_check_line_file"`')' + at_res=skip + at_errexit=false + ;; + yes:*) + at_msg='expected failure ('`cat "$at_check_line_file"`')' + at_res=xfail + at_errexit=false + ;; + no:*) + at_msg='FAILED ('`cat "$at_check_line_file"`')' + at_res=fail + at_errexit=$at_errexit_p + ;; + esac + echo "$at_res" > "$at_job_dir/$at_res" + # Make sure there is a separator even with long titles. + $as_echo " $at_msg" + at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" + case $at_status in + 0|77) + # $at_times_file is only available if the group succeeded. + # We're not including the group log, so the success message + # is written in the global log separately. But we also + # write to the group log in case they're using -d. + if test -f "$at_times_file"; then + at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')' + rm -f "$at_times_file" + fi + $as_echo "$at_log_msg" >> "$at_group_log" + $as_echo "$at_log_msg" >&5 -if test -n "$at_trace_this"; then - ( $at_traceon; tar --version | sed 1q ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; tar --version | sed 1q ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi + # Cleanup the group directory, unless the user wants the files. + if $at_debug_p; then + at_func_create_debugging_script + else + if test -d "$at_group_dir"; then + find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -fr "$at_group_dir" + fi + rm -f "$at_test_source" + fi + ;; + *) + # Upon failure, include the log into the testsuite's global + # log. The failure message is written in the group log. It + # is later included in the global log. + $as_echo "$at_log_msg" >> "$at_group_log" + + # Upon failure, keep the group directory for autopsy, and create + # the debugging script. With -e, do not start any further tests. + at_func_create_debugging_script + if $at_errexit; then + echo stop > "$at_stop_file" + fi + ;; + esac +} -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "tar (GNU tar) 1.22 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/version.at:21: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - cat >$XFAILFILE <<'_EOT' -============================================================== -WARNING: Not using the proper version, *all* checks dubious... -============================================================== -_EOT +## ------------ ## +## Driver loop. ## +## ------------ ## +rm -f "$at_stop_file" +at_first=: - echo 1 > "$at_status_file" - exit 1 -else - rm -f $XFAILFILE -fi +for at_group in $at_groups; do + at_func_group_prepare + if cd "$at_group_dir" && + at_func_test $at_group && + . "$at_test_source"; then :; else + { $as_echo "$as_me:$LINENO: WARNING: unable to parse test group: $at_group" >&5 +$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} + at_failed=: + fi + at_func_group_postprocess + test -f "$at_stop_file" && break + at_first=false +done -$at_traceon +# Wrap up the test suite with summary statistics. +cd "$at_helper_dir" + +# Use ?..???? when the list must remain sorted, the faster * otherwise. +at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'` +at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'` +at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'` +at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do + echo $f; done | sed '/?/d; s,/xpass,,'` +at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do + echo $f; done | sed '/?/d; s,/fail,,'` + +set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list +shift; at_group_count=$# +set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$* +set X $at_xfail_list; shift; at_xfail_count=$# +set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$* +set X $at_skip_list; shift; at_skip_count=$# + +at_func_arith $at_group_count - $at_skip_count +at_run_count=$at_func_arith_result +at_func_arith $at_xpass_count + $at_fail_count +at_unexpected_count=$at_func_arith_result +at_func_arith $at_xfail_count + $at_fail_count +at_total_fail_count=$at_func_arith_result +# Back to the top directory. +cd "$at_dir" +rm -rf "$at_helper_dir" - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` +# Compute the duration of the suite. +at_stop_date=`date` +at_stop_time=`date +%s 2>/dev/null` +$as_echo "$as_me: ending at: $at_stop_date" >&5 +case $at_start_time,$at_stop_time in + [0-9]*,[0-9]*) + at_func_arith $at_stop_time - $at_start_time + at_duration_s=$at_func_arith_result + at_func_arith $at_duration_s / 60 + at_duration_m=$at_func_arith_result + at_func_arith $at_duration_m / 60 + at_duration_h=$at_func_arith_result + at_func_arith $at_duration_s % 60 + at_duration_s=$at_func_arith_result + at_func_arith $at_duration_m % 60 + at_duration_m=$at_func_arith_result + at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s" + $as_echo "$as_me: test suite duration: $at_duration" >&5 ;; +esac - 2 ) # 2. pipe.at:29: decompressing from stdin - at_setup_line='pipe.at:29' - at_desc="decompressing from stdin" - $at_quiet $ECHO_N " 2: decompressing from stdin $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "2. pipe.at:29: testing ..." - $at_traceon - - - - - - - - - $at_traceoff -echo "$at_srcdir/pipe.at:33: -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H v7\" -export TAR_OPTIONS -rm -rf * - - -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo +cat <<\_ASBOX +## ------------- ## +## Test results. ## +## ------------- ## +_ASBOX +echo +{ + echo + cat <<\_ASBOX +## ------------- ## +## Test results. ## +## ------------- ## +_ASBOX + echo +} >&5 + +if test $at_run_count = 1; then + at_result="1 test" + at_were=was +else + at_result="$at_run_count tests" + at_were=were +fi +if $at_errexit_p && test $at_unexpected_count != 0; then + if test $at_xpass_count = 1; then + at_result="$at_result $at_were run, one passed" + else + at_result="$at_result $at_were run, one failed" + fi + at_result="$at_result unexpectedly and inhibited subsequent tests." +else + # Don't you just love exponential explosion of the number of cases? + case $at_xpass_count:$at_fail_count:$at_xfail_count in + # So far, so good. + 0:0:0) at_result="$at_result $at_were successful." ;; + 0:0:*) at_result="$at_result behaved as expected." ;; + + # Some unexpected failures + 0:*:0) at_result="$at_result $at_were run, +$at_fail_count failed unexpectedly." ;; + + # Some failures, both expected and unexpected + 0:*:1) at_result="$at_result $at_were run, +$at_total_fail_count failed ($at_xfail_count expected failure)." ;; + 0:*:*) at_result="$at_result $at_were run, +$at_total_fail_count failed ($at_xfail_count expected failures)." ;; + + # No unexpected failures, but some xpasses + *:0:*) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly." ;; + + # No expected failures, but failures and xpasses + *:1:0) at_result="$at_result $at_were run, +$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; + *:*:0) at_result="$at_result $at_were run, +$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; + + # All of them. + *:*:1) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly, +$at_total_fail_count failed ($at_xfail_count expected failure)." ;; + *:*:*) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly, +$at_total_fail_count failed ($at_xfail_count expected failures)." ;; + esac + + if test $at_skip_count = 0 && test $at_run_count -gt 1; then + at_result="All $at_result" + fi +fi + +# Now put skips in the mix. +case $at_skip_count in + 0) ;; + 1) at_result="$at_result +1 test was skipped." ;; + *) at_result="$at_result +$at_skip_count tests were skipped." ;; +esac + +if test $at_unexpected_count = 0; then + echo "$at_result" + echo "$at_result" >&5 +else + echo "ERROR: $at_result" >&2 + echo "ERROR: $at_result" >&5 + { + echo + cat <<\_ASBOX +## ------------------------ ## +## Summary of the failures. ## +## ------------------------ ## +_ASBOX + + # Summary of failed and skipped tests. + if test $at_fail_count != 0; then + echo "Failed tests:" + $SHELL "$at_myself" $at_fail_list --list + echo + fi + if test $at_skip_count != 0; then + echo "Skipped tests:" + $SHELL "$at_myself" $at_skip_list --list + echo + fi + if test $at_xpass_count != 0; then + echo "Unexpected passes:" + $SHELL "$at_myself" $at_xpass_list --list + echo + fi + if test $at_fail_count != 0; then + cat <<\_ASBOX +## ---------------------- ## +## Detailed failed tests. ## +## ---------------------- ## +_ASBOX + echo + for at_group in $at_fail_list + do + at_group_normalized=$at_group + + eval 'while :; do + case $at_group_normalized in #( + '"$at_format"'*) break;; + esac + at_group_normalized=0$at_group_normalized + done' + + cat "$at_suite_dir/$at_group_normalized/$as_me.log" + echo + done + echo + fi + if test -n "$at_top_srcdir"; then + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## ${at_top_build_prefix}config.log ## +_ASBOX + sed 's/^/| /' ${at_top_build_prefix}config.log + echo + fi + } >&5 + + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## $as_me.log was created. ## +_ASBOX + + echo + $as_echo "Please send \`${at_testdir+${at_testdir}/}$as_me.log' and all information you think might help: + + To: <bug-tar@gnu.org> + Subject: [GNU tar 1.23] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} +" + if test $at_debug_p = false; then + echo + echo 'You may investigate any problem if you feel able to do so, in which' + echo 'case the test suite provides a good starting point. Its output may' + $as_echo "be found below \`${at_testdir+${at_testdir}/}$as_me.dir'." + echo + fi + exit 1 +fi + +exit 0 + +## ------------- ## +## Actual tests. ## +## ------------- ## +#AT_START_1 +# 1. version.at:19: tar version +at_setup_line='version.at:19' +at_desc="tar version" +$at_quiet $as_echo_n " 1: $at_desc " +at_xfail=no +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "1. version.at:19: testing ..." + $at_traceon + + +{ $at_traceoff +$as_echo "$at_srcdir/version.at:21: tar --version | sed 1q" +echo version.at:21 >"$at_check_line_file" + +if test -n "$at_traceon"; then + ( $at_traceon; tar --version | sed 1q ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; tar --version | sed 1q ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "tar (GNU tar) 1.23 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/version.at:21" +if $at_failed; then + cat >$XFAILFILE <<'_EOT' + +============================================================== +WARNING: Not using the proper version, *all* checks dubious... +============================================================== +_EOT + +else + rm -f $XFAILFILE +fi + +$at_failed && at_func_log_failure +$at_traceon; } + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_1 +#AT_START_2 +# 2. pipe.at:30: decompressing from stdin +at_setup_line='pipe.at:30' +at_desc="decompressing from stdin" +$at_quiet $as_echo_n " 2: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "2. pipe.at:30: testing ..." + $at_traceon + + + + + + + { $at_traceoff +$as_echo "$at_srcdir/pipe.at:34: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo pipe.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -1408,18 +2051,16 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -1435,79 +2076,31 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo >>"$at_stdout"; echo "directory/ +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ directory/file1 directory/file2 separator separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - $at_traceoff -echo "$at_srcdir/pipe.at:33: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } -$at_traceoff -echo "$at_srcdir/pipe.at:33: + { $at_traceoff +$as_echo "$at_srcdir/pipe.at:34: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -1523,22 +2116,18 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo pipe.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -1554,18 +2143,16 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -1581,79 +2168,31 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo >>"$at_stdout"; echo "directory/ +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ directory/file1 directory/file2 separator separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - $at_traceoff -echo "$at_srcdir/pipe.at:33: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } -$at_traceoff -echo "$at_srcdir/pipe.at:33: + { $at_traceoff +$as_echo "$at_srcdir/pipe.at:34: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -1669,22 +2208,18 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo pipe.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -1700,18 +2235,16 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -1727,79 +2260,31 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo >>"$at_stdout"; echo "directory/ +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ directory/file1 directory/file2 separator separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - $at_traceoff -echo "$at_srcdir/pipe.at:33: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } -$at_traceoff -echo "$at_srcdir/pipe.at:33: + { $at_traceoff +$as_echo "$at_srcdir/pipe.at:34: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -1815,22 +2300,18 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo pipe.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -1846,18 +2327,16 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -1873,79 +2352,31 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo >>"$at_stdout"; echo "directory/ +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ directory/file1 directory/file2 separator separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - $at_traceoff -echo "$at_srcdir/pipe.at:33: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } -$at_traceoff -echo "$at_srcdir/pipe.at:33: + { $at_traceoff +$as_echo "$at_srcdir/pipe.at:34: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -1961,22 +2392,18 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo pipe.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -1992,18 +2419,16 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -2019,236 +2444,154 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir directory genfile --length 10240 --pattern zeros --file directory/file1 genfile --length 13 --file directory/file2 -tar cf archive directory|sort +tar cf archive directory mv directory orig cat archive | tar xfv - | sort echo "separator" cmp orig/file1 directory/file1 echo "separator" cmp orig/file2 directory/file2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo >>"$at_stdout"; echo "directory/ +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ directory/file1 directory/file2 separator separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/pipe.at:34" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon $at_traceoff -echo "$at_srcdir/pipe.at:33: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo pipe.at:33 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/pipe.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 3 ) # 3. options.at:24: mixing options - at_setup_line='options.at:24' - at_desc="mixing options" - $at_quiet $ECHO_N " 3: mixing options $ECHO_C" - at_xfail=no - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "3. options.at:24: testing ..." - $at_traceon + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_2 +#AT_START_3 +# 3. options.at:24: mixing options +at_setup_line='options.at:24' +at_desc="mixing options" +$at_quiet $as_echo_n " 3: $at_desc " +at_xfail=no +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "3. options.at:24: testing ..." + $at_traceon -$at_traceoff -echo "$at_srcdir/options.at:27: +{ $at_traceoff +$as_echo "$at_srcdir/options.at:27: echo > file1 TAR_OPTIONS=--numeric-owner tar chof archive file1 tar tf archive " echo options.at:27 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; echo > file1 TAR_OPTIONS=--numeric-owner tar chof archive file1 tar tf archive ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; echo > file1 TAR_OPTIONS=--numeric-owner tar chof archive file1 tar tf archive ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/options.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/options.at:27" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 4 ) # 4. options02.at:26: interspersed options - at_setup_line='options02.at:26' - at_desc="interspersed options" - $at_quiet $ECHO_N " 4: interspersed options $ECHO_C" - at_xfail=no - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "4. options02.at:26: testing ..." - $at_traceon + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_3 +#AT_START_4 +# 4. options02.at:26: interspersed options +at_setup_line='options02.at:26' +at_desc="interspersed options" +$at_quiet $as_echo_n " 4: $at_desc " +at_xfail=no +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "4. options02.at:26: testing ..." + $at_traceon -$at_traceoff -echo "$at_srcdir/options02.at:29: +{ $at_traceoff +$as_echo "$at_srcdir/options02.at:29: echo > file1 tar c file1 -f archive tar tf archive " echo options02.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; echo > file1 tar c file1 -f archive tar tf archive ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; echo > file1 tar c file1 -f archive tar tf archive ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/options02.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/options02.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 5 ) # 5. T-empty.at:26: files-from: empty entries - at_setup_line='T-empty.at:26' - at_desc="files-from: empty entries" - $at_quiet $ECHO_N " 5: files-from: empty entries $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_4 +#AT_START_5 +# 5. T-empty.at:26: files-from: empty entries +at_setup_line='T-empty.at:26' +at_desc="files-from: empty entries" +$at_quiet $as_echo_n " 5: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "5. T-empty.at:26: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "5. T-empty.at:26: testing ..." + $at_traceon @@ -2262,8 +2605,8 @@ _ATEOF - $at_traceoff -echo "$at_srcdir/T-empty.at:36: + { $at_traceoff +$as_echo "$at_srcdir/T-empty.at:36: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2284,13 +2627,9 @@ tar cfvT archive ../file-list | sort )" echo T-empty.at:36 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2309,11 +2648,9 @@ genfile --file trzy tar cfvT archive ../file-list | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2332,49 +2669,39 @@ genfile --file trzy tar cfvT archive ../file-list | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "dwa +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dwa jeden trzy -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/T-empty.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/T-empty.at:36" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } # Testing one format is enough - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 6 ) # 6. T-null.at:21: files-from: 0-separated file without -0 - at_setup_line='T-null.at:21' - at_desc="files-from: 0-separated file without -0" - $at_quiet $ECHO_N " 6: files-from: 0-separated file without -0 $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_5 +#AT_START_6 +# 6. T-null.at:21: files-from: 0-separated file without -0 +at_setup_line='T-null.at:21' +at_desc="files-from: 0-separated file without -0" +$at_quiet $as_echo_n " 6: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "6. T-null.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "6. T-null.at:21: testing ..." + $at_traceon @@ -2386,8 +2713,8 @@ _ATEOF - $at_traceoff -echo "$at_srcdir/T-null.at:28: + { $at_traceoff +$as_echo "$at_srcdir/T-null.at:28: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2414,13 +2741,9 @@ tar cfTv archive file-list | sort )" echo T-null.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2445,11 +2768,9 @@ genfile -f trzy tar cfTv archive file-list | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2474,54 +2795,44 @@ genfile -f trzy tar cfTv archive file-list | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: file-list: file name read contains nul character -" | $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stderr"; $as_echo "tar: file-list: file name read contains nul character +" | \ + $at_diff - "$at_stderr" || at_failed=: $at_diff expout "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/T-null.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_check_status 0 $at_status "$at_srcdir/T-null.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } # Testing one format is enough - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 7 ) # 7. indexfile.at:26: tar --index-file=FILE --file=- - at_setup_line='indexfile.at:26' - at_desc="tar --index-file=FILE --file=-" - $at_quiet $ECHO_N " 7: tar --index-file=FILE --file=- $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_6 +#AT_START_7 +# 7. indexfile.at:26: tar --index-file=FILE --file=- +at_setup_line='indexfile.at:26' +at_desc="tar --index-file=FILE --file=-" +$at_quiet $as_echo_n " 7: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "7. indexfile.at:26: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "7. indexfile.at:26: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/indexfile.at:29: + { $at_traceoff +$as_echo "$at_srcdir/indexfile.at:29: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -2542,13 +2853,9 @@ tar -tf archive )" echo indexfile.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -2567,11 +2874,9 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -2590,33 +2895,23 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive directory/ directory/a -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/indexfile.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/indexfile.at:29: + { $at_traceoff +$as_echo "$at_srcdir/indexfile.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -2637,13 +2932,9 @@ tar -tf archive )" echo indexfile.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -2662,11 +2953,9 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -2685,33 +2974,23 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive directory/ directory/a -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/indexfile.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/indexfile.at:29: + { $at_traceoff +$as_echo "$at_srcdir/indexfile.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2732,13 +3011,9 @@ tar -tf archive )" echo indexfile.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2757,11 +3032,9 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2780,33 +3053,23 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive directory/ directory/a -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/indexfile.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/indexfile.at:29: + { $at_traceoff +$as_echo "$at_srcdir/indexfile.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -2827,13 +3090,9 @@ tar -tf archive )" echo indexfile.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -2852,11 +3111,9 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -2875,33 +3132,23 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive directory/ directory/a -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/indexfile.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/indexfile.at:29: + { $at_traceoff +$as_echo "$at_srcdir/indexfile.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -2922,13 +3169,9 @@ tar -tf archive )" echo indexfile.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -2947,11 +3190,9 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -2970,57 +3211,47 @@ tar -c -v -f - --index-file=idx directory > archive echo "Testing the archive" tar -tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive directory/ directory/a -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/indexfile.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/indexfile.at:29" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 8 ) # 8. verbose.at:26: tar cvf - - at_setup_line='verbose.at:26' - at_desc="tar cvf -" - $at_quiet $ECHO_N " 8: tar cvf - $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_7 +#AT_START_8 +# 8. verbose.at:26: tar cvf - +at_setup_line='verbose.at:26' +at_desc="tar cvf -" +$at_quiet $as_echo_n " 8: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "8. verbose.at:26: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "8. verbose.at:26: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/verbose.at:29: + { $at_traceoff +$as_echo "$at_srcdir/verbose.at:29: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -3037,13 +3268,9 @@ tar tf archive )" echo verbose.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -3058,11 +3285,9 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -3077,33 +3302,24 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "file -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +echo >>"$at_stderr"; $as_echo "file +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/verbose.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/verbose.at:29: + { $at_traceoff +$as_echo "$at_srcdir/verbose.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3120,13 +3336,9 @@ tar tf archive )" echo verbose.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3141,11 +3353,9 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3160,33 +3370,24 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "file -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +echo >>"$at_stderr"; $as_echo "file +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/verbose.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/verbose.at:29: + { $at_traceoff +$as_echo "$at_srcdir/verbose.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3203,13 +3404,9 @@ tar tf archive )" echo verbose.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3224,11 +3421,9 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3243,33 +3438,24 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "file -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +echo >>"$at_stderr"; $as_echo "file +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/verbose.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/verbose.at:29: + { $at_traceoff +$as_echo "$at_srcdir/verbose.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -3286,13 +3472,9 @@ tar tf archive )" echo verbose.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -3307,11 +3489,9 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -3326,33 +3506,24 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "file -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +echo >>"$at_stderr"; $as_echo "file +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/verbose.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/verbose.at:29: + { $at_traceoff +$as_echo "$at_srcdir/verbose.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -3369,13 +3540,9 @@ tar tf archive )" echo verbose.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -3390,11 +3557,9 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -3409,57 +3574,48 @@ tar cvf - file > archive echo Testing the archive tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "file -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating the archive +echo >>"$at_stderr"; $as_echo "file +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating the archive Testing the archive file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/verbose.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/verbose.at:29" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 9 ) # 9. append.at:21: append - at_setup_line='append.at:21' - at_desc="append" - $at_quiet $ECHO_N " 9: append $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_8 +#AT_START_9 +# 9. append.at:21: append +at_setup_line='append.at:21' +at_desc="append" +$at_quiet $as_echo_n " 9: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "9. append.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "9. append.at:21: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/append.at:24: + { $at_traceoff +$as_echo "$at_srcdir/append.at:24: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -3474,13 +3630,9 @@ touch file1 tar tf archive)" echo append.at:24 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -3493,11 +3645,9 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -3510,31 +3660,21 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append.at:24" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - $at_traceoff -echo "$at_srcdir/append.at:24: + { $at_traceoff +$as_echo "$at_srcdir/append.at:24: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3549,13 +3689,9 @@ touch file1 tar tf archive)" echo append.at:24 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3568,11 +3704,9 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3585,31 +3719,21 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append.at:24" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append.at:24: + { $at_traceoff +$as_echo "$at_srcdir/append.at:24: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3624,13 +3748,9 @@ touch file1 tar tf archive)" echo append.at:24 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3643,11 +3763,9 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3660,31 +3778,21 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append.at:24" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - $at_traceoff -echo "$at_srcdir/append.at:24: + { $at_traceoff +$as_echo "$at_srcdir/append.at:24: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -3699,13 +3807,9 @@ touch file1 tar tf archive)" echo append.at:24 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -3718,11 +3822,9 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -3735,31 +3837,21 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append.at:24" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append.at:24: + { $at_traceoff +$as_echo "$at_srcdir/append.at:24: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -3774,13 +3866,9 @@ touch file1 tar tf archive)" echo append.at:24 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -3793,11 +3881,9 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -3810,48 +3896,38 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append.at:24" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 10 ) # 10. append01.at:29: appending files with long names - at_setup_line='append01.at:29' - at_desc="appending files with long names" - $at_quiet $ECHO_N " 10: appending files with long names $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_9 +#AT_START_10 +# 10. append01.at:29: appending files with long names +at_setup_line='append01.at:29' +at_desc="appending files with long names" +$at_quiet $as_echo_n " 10: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "10. append01.at:29: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "10. append01.at:29: testing ..." + $at_traceon @@ -3859,8 +3935,8 @@ $at_traceon - $at_traceoff -echo "$at_srcdir/append01.at:34: + { $at_traceoff +$as_echo "$at_srcdir/append01.at:34: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3877,13 +3953,9 @@ tar tf archive )" echo append01.at:34 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3898,11 +3970,9 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -3917,31 +3987,21 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append01.at:34: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append01.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append01.at:34: + { $at_traceoff +$as_echo "$at_srcdir/append01.at:34: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3958,13 +4018,9 @@ tar tf archive )" echo append01.at:34 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3979,11 +4035,9 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -3998,31 +4052,21 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append01.at:34: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append01.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append01.at:34: + { $at_traceoff +$as_echo "$at_srcdir/append01.at:34: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -4039,13 +4083,9 @@ tar tf archive )" echo append01.at:34 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -4060,11 +4100,9 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -4079,31 +4117,21 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append01.at:34: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append01.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append01.at:34: + { $at_traceoff +$as_echo "$at_srcdir/append01.at:34: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -4120,13 +4148,9 @@ tar tf archive )" echo append01.at:34 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -4141,11 +4165,9 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -4160,55 +4182,45 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append01.at:34: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append01.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 11 ) # 11. append02.at:40: append vs. create - at_setup_line='append02.at:40' - at_desc="append vs. create" - $at_quiet $ECHO_N " 11: append vs. create $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_10 +#AT_START_11 +# 11. append02.at:54: append vs. create +at_setup_line='append02.at:54' +at_desc="append vs. create" +$at_quiet $as_echo_n " 11: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "11. append02.at:40: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "11. append02.at:54: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/append02.at:43: + { $at_traceoff +$as_echo "$at_srcdir/append02.at:57: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -4240,15 +4252,11 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -echo append02.at:43 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo append02.at:57 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -4280,11 +4288,9 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -4316,32 +4322,22 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating archive.1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating archive.1 Creating archive.2 Comparing archives -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append02.at:43: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append02.at:57" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append02.at:43: + { $at_traceoff +$as_echo "$at_srcdir/append02.at:57: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -4373,15 +4369,11 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -echo append02.at:43 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo append02.at:57 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -4413,11 +4405,9 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -4449,32 +4439,22 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating archive.1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating archive.1 Creating archive.2 Comparing archives -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append02.at:43: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append02.at:57" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append02.at:43: + { $at_traceoff +$as_echo "$at_srcdir/append02.at:57: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -4506,15 +4486,11 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -echo append02.at:43 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo append02.at:57 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -4546,11 +4522,9 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -4582,32 +4556,22 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating archive.1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating archive.1 Creating archive.2 Comparing archives -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append02.at:43: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append02.at:57" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append02.at:43: + { $at_traceoff +$as_echo "$at_srcdir/append02.at:57: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -4639,15 +4603,11 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -echo append02.at:43 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo append02.at:57 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -4679,11 +4639,9 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -4715,32 +4673,22 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating archive.1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating archive.1 Creating archive.2 Comparing archives -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append02.at:43: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append02.at:57" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/append02.at:43: + { $at_traceoff +$as_echo "$at_srcdir/append02.at:57: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -4772,15 +4720,11 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -echo append02.at:43 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo append02.at:57 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -4812,11 +4756,9 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -4848,515 +4790,303 @@ tar $MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating archive.1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating archive.1 Creating archive.2 Comparing archives -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/append02.at:43: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/append02.at:57" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_11 +#AT_START_12 +# 12. xform-h.at:30: transforming hard links on create +at_setup_line='xform-h.at:30' +at_desc="transforming hard links on create" +$at_quiet $as_echo_n " 12: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "12. xform-h.at:30: testing ..." + $at_traceon - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 12 ) # 12. exclude.at:23: exclude - at_setup_line='exclude.at:23' - at_desc="exclude" - $at_quiet $ECHO_N " 12: exclude $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "12. exclude.at:23: testing ..." - $at_traceon - $at_traceoff -echo "$at_srcdir/exclude.at:26: -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar + { $at_traceoff +$as_echo "$at_srcdir/xform-h.at:39: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H ustar\" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * +mkdir basedir +echo \"hello\" > basedir/test +ln basedir/test basedir/test_link -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -mkdir dir -echo blues > dir/blues -echo jazz > dir/jazz -mkdir dir/folk -echo tagfile > dir/folk/tagfile -echo sanjuan > dir/folk/sanjuan -mkdir dir/rock -echo \"Signature: 8a477f597d28d172789f06886806bc55\" > dir/rock/CACHEDIR.TAG -echo \"test\" > dir/rock/file -for option in exclude-caches exclude-caches-under exclude-caches-all -do - echo OPTION \$option - tar -cf archive.tar --\$option -v dir 2>err | sort - cat err - echo ARCHIVE - tar tf archive.tar | sort -done +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -for option in exclude-tag exclude-tag-under exclude-tag-all -do - echo OPTION \$option - tar -cf archive.tar --\${option}=tagfile -v dir 2>err | sort - cat err - echo ARCHIVE - tar tf archive.tar | sort -done -)" -echo exclude.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' -fi +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar +)" +echo xform-h.at:39 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H ustar" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -mkdir dir -echo blues > dir/blues -echo jazz > dir/jazz -mkdir dir/folk -echo tagfile > dir/folk/tagfile -echo sanjuan > dir/folk/sanjuan -mkdir dir/rock -echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG -echo "test" > dir/rock/file -for option in exclude-caches exclude-caches-under exclude-caches-all -do - echo OPTION $option - tar -cf archive.tar --$option -v dir 2>err | sort - cat err - echo ARCHIVE - tar tf archive.tar | sort -done +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -for option in exclude-tag exclude-tag-under exclude-tag-all -do - echo OPTION $option - tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort - cat err - echo ARCHIVE - tar tf archive.tar | sort -done ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H ustar" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -mkdir dir -echo blues > dir/blues -echo jazz > dir/jazz -mkdir dir/folk -echo tagfile > dir/folk/tagfile -echo sanjuan > dir/folk/sanjuan -mkdir dir/rock -echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG -echo "test" > dir/rock/file -for option in exclude-caches exclude-caches-under exclude-caches-all -do - echo OPTION $option - tar -cf archive.tar --$option -v dir 2>err | sort - cat err - echo ARCHIVE - tar tf archive.tar | sort -done +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -for option in exclude-tag exclude-tag-under exclude-tag-all -do - echo OPTION $option - tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort - cat err - echo ARCHIVE - tar tf archive.tar | sort -done ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "OPTION exclude-caches -dir/ -dir/blues -dir/folk/ -dir/folk/sanjuan -dir/folk/tagfile -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped -ARCHIVE -dir/ -dir/blues -dir/folk/ -dir/folk/sanjuan -dir/folk/tagfile -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -OPTION exclude-caches-under -dir/ -dir/blues -dir/folk/ -dir/folk/sanjuan -dir/folk/tagfile -dir/jazz -dir/rock/ -tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped -ARCHIVE -dir/ -dir/blues -dir/folk/ -dir/folk/sanjuan -dir/folk/tagfile -dir/jazz -dir/rock/ -OPTION exclude-caches-all -dir/ -dir/blues -dir/folk/ -dir/folk/sanjuan -dir/folk/tagfile -dir/jazz -tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; directory not dumped -ARCHIVE -dir/ -dir/blues -dir/folk/ -dir/folk/sanjuan -dir/folk/tagfile -dir/jazz -OPTION exclude-tag -dir/ -dir/blues -dir/folk/ -dir/folk/tagfile -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -dir/rock/file -tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped -ARCHIVE -dir/ -dir/blues -dir/folk/ -dir/folk/tagfile -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -dir/rock/file -OPTION exclude-tag-under -dir/ -dir/blues -dir/folk/ -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -dir/rock/file -tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped -ARCHIVE -dir/ -dir/blues -dir/folk/ -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -dir/rock/file -OPTION exclude-tag-all -dir/ -dir/blues -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -dir/rock/file -tar: dir/folk/: contains a cache directory tag tagfile; directory not dumped -ARCHIVE -dir/ -dir/blues -dir/jazz -dir/rock/ -dir/rock/CACHEDIR.TAG -dir/rock/file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/exclude.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Default transform scope +test +Transforming hard links +test +Not transforming hard links +basedir/test +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/xform-h.at:39: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * +mkdir basedir +echo \"hello\" > basedir/test +ln basedir/test basedir/test_link - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - 13 ) # 13. delete01.at:23: deleting a member after a big one - at_setup_line='delete01.at:23' - at_desc="deleting a member after a big one" - $at_quiet $ECHO_N " 13: deleting a member after a big one $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "13. delete01.at:23: testing ..." - $at_traceon +)" +echo xform-h.at:39 >"$at_check_line_file" +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - $at_traceoff -echo "$at_srcdir/delete01.at:26: -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H v7\" -export TAR_OPTIONS -rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive)" -echo delete01.at:26 >"$at_check_line_file" +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 -export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" -export TAR_OPTIONS -rm -rf * +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - $at_traceoff -echo "$at_srcdir/delete01.at:26: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" -export TAR_OPTIONS -rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive)" -echo delete01.at:26 >"$at_check_line_file" +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' +) ) >"$at_stdout" 2>"$at_stderr" fi - -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu -export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" -export TAR_OPTIONS -rm -rf * - -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Default transform scope +test +Transforming hard links +test +Not transforming hard links +basedir/test +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/xform-h.at:39: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +mkdir basedir +echo \"hello\" > basedir/test +ln basedir/test basedir/test_link -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - $at_traceoff -echo "$at_srcdir/delete01.at:26: -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H ustar\" -export TAR_OPTIONS -rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive)" -echo delete01.at:26 >"$at_check_line_file" +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +)" +echo xform-h.at:39 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -5365,16 +5095,29 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link + + +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -5383,35 +5126,45 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + - $at_traceoff -echo "$at_srcdir/delete01.at:26: +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Default transform scope +test +Transforming hard links +test +Not transforming hard links +basedir/test +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/xform-h.at:39: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -5420,20 +5173,31 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive)" -echo delete01.at:26 >"$at_check_line_file" +mkdir basedir +echo \"hello\" > basedir/test +ln basedir/test basedir/test_link -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + +)" +echo xform-h.at:39 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -5442,16 +5206,29 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link + + +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -5460,35 +5237,45 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + - $at_traceoff -echo "$at_srcdir/delete01.at:26: +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Default transform scope +test +Transforming hard links +test +Not transforming hard links +basedir/test +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/xform-h.at:39: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -5497,20 +5284,31 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive)" -echo delete01.at:26 >"$at_check_line_file" +mkdir basedir +echo \"hello\" > basedir/test +ln basedir/test basedir/test_link -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + +)" +echo xform-h.at:39 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -5519,16 +5317,29 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link + + +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + + +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' + +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -5537,287 +5348,157 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 50000 --file file1 -genfile -l 1024 --file file2 -tar cf archive file1 file2 -tar f archive --delete file2 -tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +mkdir basedir +echo "hello" > basedir/test +ln basedir/test basedir/test_link -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "Default transform scope" +tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +echo "Transforming hard links" +tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' +echo "Not transforming hard links" +tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link +tar tvf archive | sed -n 's/.*test_link link to //p' +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Default transform scope +test +Transforming hard links +test +Not transforming hard links +basedir/test +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/xform-h.at:39" - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +$at_failed && at_func_log_failure +$at_traceon; } - 14 ) # 14. delete02.at:23: deleting a member from stdin archive - at_setup_line='delete02.at:23' - at_desc="deleting a member from stdin archive" - $at_quiet $ECHO_N " 14: deleting a member from stdin archive $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "14. delete02.at:23: testing ..." - $at_traceon + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_12 +#AT_START_13 +# 13. exclude.at:23: exclude +at_setup_line='exclude.at:23' +at_desc="exclude" +$at_quiet $as_echo_n " 13: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "13. exclude.at:23: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/delete02.at:26: -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H v7\" -export TAR_OPTIONS -rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2)" -echo delete02.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 + { $at_traceoff +$as_echo "$at_srcdir/exclude.at:26: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" +TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 -export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" -export TAR_OPTIONS -rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "1 -2 -3 -separator -1 -3 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete02.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - $at_traceoff -echo "$at_srcdir/delete02.at:26: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" -export TAR_OPTIONS -rm -rf * - -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2)" -echo delete02.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu -export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" -export TAR_OPTIONS -rm -rf * - -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu -export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" -export TAR_OPTIONS -rm -rf * - -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "1 -2 -3 -separator -1 -3 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete02.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +mkdir dir +echo blues > dir/blues +echo jazz > dir/jazz +mkdir dir/folk +echo tagfile > dir/folk/tagfile +echo sanjuan > dir/folk/sanjuan +mkdir dir/rock +echo \"Signature: 8a477f597d28d172789f06886806bc55\" > dir/rock/CACHEDIR.TAG +echo \"test\" > dir/rock/file - echo 1 > "$at_status_file" - exit 1 -fi +for option in exclude-caches exclude-caches-under exclude-caches-all +do + echo OPTION \$option + tar -cf archive.tar --\$option -v dir 2>err | sort + cat err + echo ARCHIVE + tar tf archive.tar | sort +done -$at_traceon +for option in exclude-tag exclude-tag-under exclude-tag-all +do + echo OPTION \$option + tar -cf archive.tar --\${option}=tagfile -v dir 2>err | sort + cat err + echo ARCHIVE + tar tf archive.tar | sort +done +)" +echo exclude.at:26 >"$at_check_line_file" - $at_traceoff -echo "$at_srcdir/delete02.at:26: +if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H ustar\" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2)" -echo delete02.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar -export TEST_TAR_FORMAT -TAR_OPTIONS="-H ustar" -export TAR_OPTIONS -rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +mkdir dir +echo blues > dir/blues +echo jazz > dir/jazz +mkdir dir/folk +echo tagfile > dir/folk/tagfile +echo sanjuan > dir/folk/sanjuan +mkdir dir/rock +echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG +echo "test" > dir/rock/file + +for option in exclude-caches exclude-caches-under exclude-caches-all +do + echo OPTION $option + tar -cf archive.tar --$option -v dir 2>err | sort + cat err + echo ARCHIVE + tar tf archive.tar | sort +done + +for option in exclude-tag exclude-tag-under exclude-tag-all +do + echo OPTION $option + tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort + cat err + echo ARCHIVE + tar tf archive.tar | sort +done +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -5826,572 +5507,1011 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "1 -2 -3 -separator -1 -3 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete02.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - echo 1 > "$at_status_file" - exit 1 -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -$at_traceon - $at_traceoff -echo "$at_srcdir/delete02.at:26: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" -export TAR_OPTIONS -rm -rf * +mkdir dir +echo blues > dir/blues +echo jazz > dir/jazz +mkdir dir/folk +echo tagfile > dir/folk/tagfile +echo sanjuan > dir/folk/sanjuan +mkdir dir/rock +echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG +echo "test" > dir/rock/file -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2)" -echo delete02.at:26 >"$at_check_line_file" +for option in exclude-caches exclude-caches-under exclude-caches-all +do + echo OPTION $option + tar -cf archive.tar --$option -v dir 2>err | sort + cat err + echo ARCHIVE + tar tf archive.tar | sort +done -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' +for option in exclude-tag exclude-tag-under exclude-tag-all +do + echo OPTION $option + tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort + cat err + echo ARCHIVE + tar tf archive.tar | sort +done +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "OPTION exclude-caches +dir/ +dir/blues +dir/folk/ +dir/folk/sanjuan +dir/folk/tagfile +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped +ARCHIVE +dir/ +dir/blues +dir/folk/ +dir/folk/sanjuan +dir/folk/tagfile +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +OPTION exclude-caches-under +dir/ +dir/blues +dir/folk/ +dir/folk/sanjuan +dir/folk/tagfile +dir/jazz +dir/rock/ +tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped +ARCHIVE +dir/ +dir/blues +dir/folk/ +dir/folk/sanjuan +dir/folk/tagfile +dir/jazz +dir/rock/ +OPTION exclude-caches-all +dir/ +dir/blues +dir/folk/ +dir/folk/sanjuan +dir/folk/tagfile +dir/jazz +tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; directory not dumped +ARCHIVE +dir/ +dir/blues +dir/folk/ +dir/folk/sanjuan +dir/folk/tagfile +dir/jazz +OPTION exclude-tag +dir/ +dir/blues +dir/folk/ +dir/folk/tagfile +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +dir/rock/file +tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped +ARCHIVE +dir/ +dir/blues +dir/folk/ +dir/folk/tagfile +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +dir/rock/file +OPTION exclude-tag-under +dir/ +dir/blues +dir/folk/ +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +dir/rock/file +tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped +ARCHIVE +dir/ +dir/blues +dir/folk/ +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +dir/rock/file +OPTION exclude-tag-all +dir/ +dir/blues +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +dir/rock/file +tar: dir/folk/: contains a cache directory tag tagfile; directory not dumped +ARCHIVE +dir/ +dir/blues +dir/jazz +dir/rock/ +dir/rock/CACHEDIR.TAG +dir/rock/file +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude.at:26" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix -export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" -export TAR_OPTIONS -rm -rf * - -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix -export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" -export TAR_OPTIONS -rm -rf * - -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +$at_failed && at_func_log_failure +$at_traceon; } -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "1 -2 -3 -separator -1 -3 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete02.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_13 +#AT_START_14 +# 14. exclude01.at:17: exclude wildcards +at_setup_line='exclude01.at:17' +at_desc="exclude wildcards" +$at_quiet $as_echo_n " 14: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "14. exclude01.at:17: testing ..." + $at_traceon + - $at_traceoff -echo "$at_srcdir/delete02.at:26: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + + + + { $at_traceoff +$as_echo "$at_srcdir/exclude01.at:20: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2)" -echo delete02.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude=testdir/dir1/\\* \\ + --no-wildcards \\ + --exclude=testdir/dir2/\\* \\ + --wildcards \\ + --exclude=testdir/dir3/\\* \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir/dir1 +tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards \"testdir/dir1/*\" -f archive | sort + +rm -rf testdir +)" +echo exclude01.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 3073 -p zeros --file 1 -cp 1 2 -cp 2 3 -tar cf archive 1 2 3 -tar tf archive -cat archive | tar f - --delete 2 > archive2 -echo separator -tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "1 -2 -3 -separator -1 -3 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete02.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir2/ +testdir/dir2/file2 +testdir/dir3/ +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude01.at:20: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * -$at_traceon +test -z "`sort < /dev/null 2>&1`" || exit 77 +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude=testdir/dir1/\\* \\ + --no-wildcards \\ + --exclude=testdir/dir2/\\* \\ + --wildcards \\ + --exclude=testdir/dir3/\\* \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir/dir1 +tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards \"testdir/dir1/*\" -f archive | sort + +rm -rf testdir +)" +echo exclude01.at:20 >"$at_check_line_file" - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * - 15 ) # 15. delete03.at:21: deleting members with long names - at_setup_line='delete03.at:21' - at_desc="deleting members with long names" - $at_quiet $ECHO_N " 15: deleting members with long names $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "15. delete03.at:21: testing ..." - $at_traceon +test -z "`sort < /dev/null 2>&1`" || exit 77 +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * +test -z "`sort < /dev/null 2>&1`" || exit 77 - $at_traceoff -echo "$at_srcdir/delete03.at:26: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir2/ +testdir/dir2/file2 +testdir/dir3/ +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude01.at:20: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f \$prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch \$prefix\$i -done -tar -cf archive ./\$prefix* && - tar --delete -f archive ./\${prefix}5 && - tar -tf archive -)" -echo delete03.at:26 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude=testdir/dir1/\\* \\ + --no-wildcards \\ + --exclude=testdir/dir2/\\* \\ + --wildcards \\ + --exclude=testdir/dir3/\\* \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir/dir1 +tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards \"testdir/dir1/*\" -f archive | sort + +rm -rf testdir +)" +echo exclude01.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f $prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch $prefix$i -done -tar -cf archive ./$prefix* && - tar --delete -f archive ./${prefix}5 && - tar -tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f $prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch $prefix$i -done -tar -cf archive ./$prefix* && - tar --delete -f archive ./${prefix}5 && - tar -tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +) ) >"$at_stdout" 2>"$at_stderr" fi - -$at_traceon - - $at_traceoff -echo "$at_srcdir/delete03.at:26: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir2/ +testdir/dir2/file2 +testdir/dir3/ +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude01.at:20: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f \$prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch \$prefix\$i -done -tar -cf archive ./\$prefix* && - tar --delete -f archive ./\${prefix}5 && - tar -tf archive -)" -echo delete03.at:26 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude=testdir/dir1/\\* \\ + --no-wildcards \\ + --exclude=testdir/dir2/\\* \\ + --wildcards \\ + --exclude=testdir/dir3/\\* \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir/dir1 +tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards \"testdir/dir1/*\" -f archive | sort + +rm -rf testdir +)" +echo exclude01.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f $prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch $prefix$i -done -tar -cf archive ./$prefix* && - tar --delete -f archive ./${prefix}5 && - tar -tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f $prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch $prefix$i -done -tar -cf archive ./$prefix* && - tar --delete -f archive ./${prefix}5 && - tar -tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +) ) >"$at_stdout" 2>"$at_stderr" fi - -$at_traceon - - $at_traceoff -echo "$at_srcdir/delete03.at:26: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir2/ +testdir/dir2/file2 +testdir/dir3/ +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude01.at:20: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" +TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f \$prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch \$prefix\$i -done -tar -cf archive ./\$prefix* && - tar --delete -f archive ./\${prefix}5 && - tar -tf archive -)" -echo delete03.at:26 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude=testdir/dir1/\\* \\ + --no-wildcards \\ + --exclude=testdir/dir2/\\* \\ + --wildcards \\ + --exclude=testdir/dir3/\\* \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir/dir1 +tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards \"testdir/dir1/*\" -f archive | sort + +rm -rf testdir +)" +echo exclude01.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f $prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch $prefix$i -done -tar -cf archive ./$prefix* && - tar --delete -f archive ./${prefix}5 && - tar -tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX -rm -f $prefix* -for i in 1 2 3 4 5 6 7 8 9 -do touch $prefix$i -done -tar -cf archive ./$prefix* && - tar --delete -f archive ./${prefix}5 && - tar -tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8 -./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude=testdir/dir1/\* \ + --no-wildcards \ + --exclude=testdir/dir2/\* \ + --wildcards \ + --exclude=testdir/dir3/\* \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir/dir1 +tar t --no-wildcards "testdir/dir1/*" -f archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards "testdir/dir1/*" -f archive | sort + +rm -rf testdir +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir2/ +testdir/dir2/file2 +testdir/dir3/ +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +NEXT +testdir/dir1/* +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude01.at:20" -$at_traceon - +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 16 ) # 16. delete04.at:23: deleting a large last member - at_setup_line='delete04.at:23' - at_desc="deleting a large last member" - $at_quiet $ECHO_N " 16: deleting a large last member $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_14 +#AT_START_15 +# 15. exclude02.at:17: exclude: anchoring +at_setup_line='exclude02.at:17' +at_desc="exclude: anchoring" +$at_quiet $as_echo_n " 15: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "16. delete04.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "15. exclude02.at:17: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/delete04.at:26: + { $at_traceoff +$as_echo "$at_srcdir/exclude02.at:20: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -6400,29 +6520,50 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -)" -echo delete04.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive --no-anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 2\" +tar cf archive --anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 3\" +tar cf archive testdir file1.txt +tar t \"file1.txt\" -f archive | sort -if test -n "$at_trace_this"; then - ( $at_traceon; +echo \"SUB 4\" +tar t --no-anchored \"file1.txt\" -f archive | sort + +echo \"SUB 5\" +tar t --anchored \"file1.txt\" -f archive | sort + +rm -rf testdir file1.txt + +)" +echo exclude02.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -6431,25 +6572,48 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -6458,52 +6622,74 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -file2 -file3 -file4 -file5 -file6 -file7 -file8 -file9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort -$at_traceon +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort - $at_traceoff -echo "$at_srcdir/delete04.at:26: +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file2 +SUB 1 +testdir/ +testdir/file2 +SUB 2 +testdir/ +testdir/file1.txt +testdir/file2 +SUB 3 +file1.txt +SUB 4 +file1.txt +testdir/file1.txt +SUB 5 +file1.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude02.at:20: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -6512,29 +6698,50 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -)" -echo delete04.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -if test -n "$at_trace_this"; then - ( $at_traceon; + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive --no-anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 2\" +tar cf archive --anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 3\" +tar cf archive testdir file1.txt +tar t \"file1.txt\" -f archive | sort + +echo \"SUB 4\" +tar t --no-anchored \"file1.txt\" -f archive | sort + +echo \"SUB 5\" +tar t --anchored \"file1.txt\" -f archive | sort + +rm -rf testdir file1.txt + +)" +echo exclude02.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -6543,25 +6750,48 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -6570,52 +6800,74 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -file2 -file3 -file4 -file5 -file6 -file7 -file8 -file9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort -$at_traceon +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort - $at_traceoff -echo "$at_srcdir/delete04.at:26: +rm -rf testdir file1.txt + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file2 +SUB 1 +testdir/ +testdir/file2 +SUB 2 +testdir/ +testdir/file1.txt +testdir/file2 +SUB 3 +file1.txt +SUB 4 +file1.txt +testdir/file1.txt +SUB 5 +file1.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude02.at:20: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -6624,29 +6876,50 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -)" -echo delete04.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 -if test -n "$at_trace_this"; then - ( $at_traceon; +tar cf archive --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive --no-anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 2\" +tar cf archive --anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 3\" +tar cf archive testdir file1.txt +tar t \"file1.txt\" -f archive | sort + +echo \"SUB 4\" +tar t --no-anchored \"file1.txt\" -f archive | sort + +echo \"SUB 5\" +tar t --anchored \"file1.txt\" -f archive | sort + +rm -rf testdir file1.txt + +)" +echo exclude02.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -6655,25 +6928,48 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -6682,52 +6978,74 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -file2 -file3 -file4 -file5 -file6 -file7 -file8 -file9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort -$at_traceon +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort - $at_traceoff -echo "$at_srcdir/delete04.at:26: +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file2 +SUB 1 +testdir/ +testdir/file2 +SUB 2 +testdir/ +testdir/file1.txt +testdir/file2 +SUB 3 +file1.txt +SUB 4 +file1.txt +testdir/file1.txt +SUB 5 +file1.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude02.at:20: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -6736,29 +7054,50 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -)" -echo delete04.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive --no-anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort -if test -n "$at_trace_this"; then - ( $at_traceon; +echo \"SUB 2\" +tar cf archive --anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 3\" +tar cf archive testdir file1.txt +tar t \"file1.txt\" -f archive | sort + +echo \"SUB 4\" +tar t --no-anchored \"file1.txt\" -f archive | sort + +echo \"SUB 5\" +tar t --anchored \"file1.txt\" -f archive | sort + +rm -rf testdir file1.txt + +)" +echo exclude02.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -6767,25 +7106,48 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -6794,52 +7156,74 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -file2 -file3 -file4 -file5 -file6 -file7 -file8 -file9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort -$at_traceon +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort - $at_traceoff -echo "$at_srcdir/delete04.at:26: +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file2 +SUB 1 +testdir/ +testdir/file2 +SUB 2 +testdir/ +testdir/file1.txt +testdir/file2 +SUB 3 +file1.txt +SUB 4 +file1.txt +testdir/file1.txt +SUB 5 +file1.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude02.at:20: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -6848,29 +7232,50 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -)" -echo delete04.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive --no-anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 2\" +tar cf archive --anchored \\ + --exclude=\"file1.txt\" \\ + testdir +tar tf archive | sort + +echo \"SUB 3\" +tar cf archive testdir file1.txt +tar t \"file1.txt\" -f archive | sort -if test -n "$at_trace_this"; then - ( $at_traceon; +echo \"SUB 4\" +tar t --no-anchored \"file1.txt\" -f archive | sort + +echo \"SUB 5\" +tar t --anchored \"file1.txt\" -f archive | sort + +rm -rf testdir file1.txt + +)" +echo exclude02.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -6879,25 +7284,48 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 + +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort + +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort + +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort + +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -6906,76 +7334,98 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 3 -f file1 -genfile -l 5 -f file2 -genfile -l 3 -f file3 -genfile -l 6 -f file4 -genfile -l 24 -f file5 -genfile -l 13 -f file6 -genfile -l 1385 -f file7 -genfile -l 30 -f file8 -genfile -l 10 -f file9 -genfile -l 256000 -f file10 -tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 -tar f archive --delete file10 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -file2 -file3 -file4 -file5 -file6 -file7 -file8 -file9 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir +touch file1.txt +touch testdir/file1.txt +touch testdir/file2 -$at_traceon +tar cf archive --exclude="file1.txt" \ + testdir +tar tf archive | sort +echo "SUB 1" +tar cf archive --no-anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort +echo "SUB 2" +tar cf archive --anchored \ + --exclude="file1.txt" \ + testdir +tar tf archive | sort +echo "SUB 3" +tar cf archive testdir file1.txt +tar t "file1.txt" -f archive | sort - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +echo "SUB 4" +tar t --no-anchored "file1.txt" -f archive | sort - 17 ) # 17. delete05.at:27: deleting non-existing member - at_setup_line='delete05.at:27' - at_desc="deleting non-existing member" - $at_quiet $ECHO_N " 17: deleting non-existing member $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "17. delete05.at:27: testing ..." - $at_traceon +echo "SUB 5" +tar t --anchored "file1.txt" -f archive | sort + +rm -rf testdir file1.txt +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file2 +SUB 1 +testdir/ +testdir/file2 +SUB 2 +testdir/ +testdir/file1.txt +testdir/file2 +SUB 3 +file1.txt +SUB 4 +file1.txt +testdir/file1.txt +SUB 5 +file1.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude02.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } $at_traceoff -echo "$at_srcdir/delete05.at:30: + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_15 +#AT_START_16 +# 16. exclude03.at:17: exclude: wildcards match slash +at_setup_line='exclude03.at:17' +at_desc="exclude: wildcards match slash" +$at_quiet $as_echo_n " 16: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "16. exclude03.at:17: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/exclude03.at:20: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -6984,24 +7434,46 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -)" -echo delete05.at:30 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\\*f\\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude='testdir*f*1' \\ + --no-wildcards-match-slash \\ + --exclude='testdir*f*2' \\ + --wildcards-match-slash \\ + --exclude='testdir*f*3' \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +)" +echo exclude03.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7010,20 +7482,44 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7032,42 +7528,70 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: tre: Not found in archive -tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "en -to -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete05.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* - echo 1 > "$at_status_file" - exit 1 -fi +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort -$at_traceon +rm -rf testdir - $at_traceoff -echo "$at_srcdir/delete05.at:30: +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir1/* +testdir/dir2/ +testdir/dir2/* +testdir/dir2/file2 +testdir/dir3/ +testdir/dir3/* +NEXT +testdir/*f*1 +testdir/dir1/file1 +NEXT +testdir/*f*1 +NEXT +testdir/*f*1 +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude03.at:20: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7076,24 +7600,46 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -)" -echo delete05.at:30 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\\*f\\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude='testdir*f*1' \\ + --no-wildcards-match-slash \\ + --exclude='testdir*f*2' \\ + --wildcards-match-slash \\ + --exclude='testdir*f*3' \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +)" +echo exclude03.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7102,20 +7648,44 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7124,42 +7694,70 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: tre: Not found in archive -tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "en -to -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete05.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* - echo 1 > "$at_status_file" - exit 1 -fi +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort -$at_traceon +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort - $at_traceoff -echo "$at_srcdir/delete05.at:30: +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir1/* +testdir/dir2/ +testdir/dir2/* +testdir/dir2/file2 +testdir/dir3/ +testdir/dir3/* +NEXT +testdir/*f*1 +testdir/dir1/file1 +NEXT +testdir/*f*1 +NEXT +testdir/*f*1 +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude03.at:20: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7168,24 +7766,46 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -)" -echo delete05.at:30 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\\*f\\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude='testdir*f*1' \\ + --no-wildcards-match-slash \\ + --exclude='testdir*f*2' \\ + --wildcards-match-slash \\ + --exclude='testdir*f*3' \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +)" +echo exclude03.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7194,20 +7814,44 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7216,42 +7860,70 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: tre: Not found in archive -tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "en -to -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete05.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* - echo 1 > "$at_status_file" - exit 1 -fi +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort -$at_traceon +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort - $at_traceoff -echo "$at_srcdir/delete05.at:30: +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir1/* +testdir/dir2/ +testdir/dir2/* +testdir/dir2/file2 +testdir/dir3/ +testdir/dir3/* +NEXT +testdir/*f*1 +testdir/dir1/file1 +NEXT +testdir/*f*1 +NEXT +testdir/*f*1 +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude03.at:20: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -7260,24 +7932,46 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -)" -echo delete05.at:30 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\\*f\\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude='testdir*f*1' \\ + --no-wildcards-match-slash \\ + --exclude='testdir*f*2' \\ + --wildcards-match-slash \\ + --exclude='testdir*f*3' \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +)" +echo exclude03.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -7286,20 +7980,44 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -7308,42 +8026,70 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: tre: Not found in archive -tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "en -to -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete05.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* - echo 1 > "$at_status_file" - exit 1 -fi +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort -$at_traceon +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort - $at_traceoff -echo "$at_srcdir/delete05.at:30: +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir1/* +testdir/dir2/ +testdir/dir2/* +testdir/dir2/file2 +testdir/dir3/ +testdir/dir3/* +NEXT +testdir/*f*1 +testdir/dir1/file1 +NEXT +testdir/*f*1 +NEXT +testdir/*f*1 +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude03.at:20: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -7352,24 +8098,46 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -)" -echo delete05.at:30 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\\*f\\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\\* +touch testdir/dir2/file2 +touch testdir/dir2/\\* +touch testdir/dir3/file3 +touch testdir/dir3/\\* + +tar cf archive --exclude='testdir*f*1' \\ + --no-wildcards-match-slash \\ + --exclude='testdir*f*2' \\ + --wildcards-match-slash \\ + --exclude='testdir*f*3' \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo \"NEXT\" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +)" +echo exclude03.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -7378,20 +8146,44 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* + +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -7400,66 +8192,94 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f en -genfile -l 1024 -f to -tar cf archive en to -# Make sure we don't use bogus blocking factor. -# GNU tar up to and including 1.14.91 produced an empty archive this way: -tar --file archive --blocking-factor=20 --delete tre -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: tre: Not found in archive -tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "en -to -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/delete05.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +rm -rf testdir +mkdir -p testdir/dir1 testdir/dir2 testdir/dir3 +touch testdir/\*f\*1 +touch testdir/dir1/file1 +touch testdir/dir1/\* +touch testdir/dir2/file2 +touch testdir/dir2/\* +touch testdir/dir3/file3 +touch testdir/dir3/\* - echo 1 > "$at_status_file" - exit 1 -fi +tar cf archive --exclude='testdir*f*1' \ + --no-wildcards-match-slash \ + --exclude='testdir*f*2' \ + --wildcards-match-slash \ + --exclude='testdir*f*3' \ + testdir +tar tf archive | sort -$at_traceon +echo "NEXT" +tar cf archive testdir +tar t --wildcards 'testdir/*f*1' -f archive | sort +echo "NEXT" +tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort + +echo "NEXT" +tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort + +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir1/ +testdir/dir1/* +testdir/dir2/ +testdir/dir2/* +testdir/dir2/file2 +testdir/dir3/ +testdir/dir3/* +NEXT +testdir/*f*1 +testdir/dir1/file1 +NEXT +testdir/*f*1 +NEXT +testdir/*f*1 +testdir/dir1/file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude03.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 18 ) # 18. extrac01.at:23: extract over an existing directory - at_setup_line='extrac01.at:23' - at_desc="extract over an existing directory" - $at_quiet $ECHO_N " 18: extract over an existing directory $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_16 +#AT_START_17 +# 17. exclude04.at:17: exclude: case insensitive +at_setup_line='exclude04.at:17' +at_desc="exclude: case insensitive" +$at_quiet $as_echo_n " 17: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "18. extrac01.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "17. exclude04.at:17: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/extrac01.at:26: + { $at_traceoff +$as_echo "$at_srcdir/exclude04.at:20: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7468,38 +8288,98 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -)" -echo extrac01.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 -export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" -export TAR_OPTIONS -rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \\ + --exclude=file1 \\ + --ignore-case \\ + --exclude=file3 \\ + --no-ignore-case \\ + --exclude=FILE2 \\ + --exclude=file4 \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo \"SUB 2\" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo \"SUB 3\" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +)" +echo exclude04.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7508,34 +8388,70 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort -$at_traceon +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort - $at_traceoff -echo "$at_srcdir/extrac01.at:26: +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir/ +testdir/dir/File1 +testdir/dir/File2 +testdir/dir/File4 +testdir/file2 +SUB 1 +testdir/dir/File2 +SUB 2 +testdir/dir/File2 +testdir/file2 +SUB 3 +testdir/dir/File2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude04.at:20: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7544,20 +8460,49 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -)" -echo extrac01.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \\ + --exclude=file1 \\ + --ignore-case \\ + --exclude=file3 \\ + --no-ignore-case \\ + --exclude=FILE2 \\ + --exclude=file4 \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo \"SUB 2\" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort -if test -n "$at_trace_this"; then - ( $at_traceon; +echo \"SUB 3\" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +)" +echo exclude04.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7566,16 +8511,47 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7584,34 +8560,70 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 -$at_traceon +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort - $at_traceoff -echo "$at_srcdir/extrac01.at:26: +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir/ +testdir/dir/File1 +testdir/dir/File2 +testdir/dir/File4 +testdir/file2 +SUB 1 +testdir/dir/File2 +SUB 2 +testdir/dir/File2 +testdir/file2 +SUB 3 +testdir/dir/File2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude04.at:20: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7620,20 +8632,49 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -)" -echo extrac01.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -if test -n "$at_trace_this"; then - ( $at_traceon; + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \\ + --exclude=file1 \\ + --ignore-case \\ + --exclude=file3 \\ + --no-ignore-case \\ + --exclude=FILE2 \\ + --exclude=file4 \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo \"SUB 2\" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo \"SUB 3\" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +)" +echo exclude04.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7642,16 +8683,47 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7660,34 +8732,70 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort -$at_traceon +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort - $at_traceoff -echo "$at_srcdir/extrac01.at:26: +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir/ +testdir/dir/File1 +testdir/dir/File2 +testdir/dir/File4 +testdir/file2 +SUB 1 +testdir/dir/File2 +SUB 2 +testdir/dir/File2 +testdir/file2 +SUB 3 +testdir/dir/File2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude04.at:20: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -7696,20 +8804,49 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -)" -echo extrac01.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \\ + --exclude=file1 \\ + --ignore-case \\ + --exclude=file3 \\ + --no-ignore-case \\ + --exclude=FILE2 \\ + --exclude=file4 \\ + testdir +tar tf archive | sort -if test -n "$at_trace_this"; then - ( $at_traceon; +echo \"SUB 1\" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo \"SUB 2\" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo \"SUB 3\" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +)" +echo exclude04.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -7718,16 +8855,47 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -7736,34 +8904,70 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort -$at_traceon +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort - $at_traceoff -echo "$at_srcdir/extrac01.at:26: +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir/ +testdir/dir/File1 +testdir/dir/File2 +testdir/dir/File4 +testdir/file2 +SUB 1 +testdir/dir/File2 +SUB 2 +testdir/dir/File2 +testdir/file2 +SUB 3 +testdir/dir/File2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude04.at:20: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -7772,20 +8976,49 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -)" -echo extrac01.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \\ + --exclude=file1 \\ + --ignore-case \\ + --exclude=file3 \\ + --no-ignore-case \\ + --exclude=FILE2 \\ + --exclude=file4 \\ + testdir +tar tf archive | sort + +echo \"SUB 1\" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo \"SUB 2\" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo \"SUB 3\" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir + +)" +echo exclude04.at:20 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -7794,16 +9027,47 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 + +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort + +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort + +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort + +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort + +rm -rf testdir + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -7812,60 +9076,94 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar cf archive directory || exit 1 -tar xf archive || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac01.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir +mkdir -p testdir/dir +touch testdir/file1 +touch testdir/file2 +touch testdir/file3 +touch testdir/file4 +touch testdir/dir/File1 +touch testdir/dir/File2 +touch testdir/dir/File3 +touch testdir/dir/File4 -$at_traceon +tar cf archive --exclude=FILE2 \ + --exclude=file1 \ + --ignore-case \ + --exclude=file3 \ + --no-ignore-case \ + --exclude=FILE2 \ + --exclude=file4 \ + testdir +tar tf archive | sort +echo "SUB 1" +tar cf archive testdir +tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort +echo "SUB 2" +tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort +echo "SUB 3" +tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +rm -rf testdir - 19 ) # 19. extrac02.at:23: extracting symlinks over an existing file - at_setup_line='extrac02.at:23' - at_desc="extracting symlinks over an existing file" - $at_quiet $ECHO_N " 19: extracting symlinks over an existing file $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "19. extrac02.at:23: testing ..." - $at_traceon +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/dir/ +testdir/dir/File1 +testdir/dir/File2 +testdir/dir/File4 +testdir/file2 +SUB 1 +testdir/dir/File2 +SUB 2 +testdir/dir/File2 +testdir/file2 +SUB 3 +testdir/dir/File2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude04.at:20" + +$at_failed && at_func_log_failure +$at_traceon; } -# FIXME: Skip if symlinks are not supported on the system + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_17 +#AT_START_18 +# 18. exclude05.at:19: exclude: lots of excludes +at_setup_line='exclude05.at:19' +at_desc="exclude: lots of excludes" +$at_quiet $as_echo_n " 18: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "18. exclude05.at:19: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/extrac02.at:28: + + + { $at_traceoff +$as_echo "$at_srcdir/exclude05.at:22: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7874,22 +9172,37 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -)" -echo extrac02.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\ + while read name + do + genfile --file \$name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + +)" +echo exclude05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7898,18 +9211,35 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7918,36 +9248,54 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort -$at_traceon +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort - $at_traceoff -echo "$at_srcdir/extrac02.at:28: +rm -rf testdir exclfile + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +NEXT +testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude05.at:22: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7956,22 +9304,37 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -)" -echo extrac02.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\ + while read name + do + genfile --file \$name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + +)" +echo exclude05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7980,18 +9343,35 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8000,36 +9380,54 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort -$at_traceon +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort - $at_traceoff -echo "$at_srcdir/extrac02.at:28: +rm -rf testdir exclfile + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +NEXT +testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude05.at:22: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8038,22 +9436,37 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -)" -echo extrac02.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\ + while read name + do + genfile --file \$name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + +)" +echo exclude05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8062,18 +9475,35 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8082,36 +9512,54 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort -$at_traceon +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort - $at_traceoff -echo "$at_srcdir/extrac02.at:28: +rm -rf testdir exclfile + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +NEXT +testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude05.at:22: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8120,22 +9568,37 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -)" -echo extrac02.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\ + while read name + do + genfile --file \$name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + +)" +echo exclude05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8144,18 +9607,35 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8164,36 +9644,54 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort -$at_traceon +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort - $at_traceoff -echo "$at_srcdir/extrac02.at:28: +rm -rf testdir exclfile + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +NEXT +testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/exclude05.at:22: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8202,22 +9700,37 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -)" -echo extrac02.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 + -if test -n "$at_trace_this"; then - ( $at_traceon; +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\ + while read name + do + genfile --file \$name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +echo \"NEXT\" +tar cf archive --exclude-from=exclfile \\ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + +)" +echo exclude05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8226,18 +9739,35 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done + +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile + +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort + +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort + +rm -rf testdir exclfile + ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8246,60 +9776,78 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -touch file -ln -s file link 2> /dev/null || ln file link -tar cf archive link -rm link -touch link -tar xf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +rm -rf testdir exclfile +mkdir -p testdir +awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \ + while read name + do + genfile --file $name + done -$at_traceon +awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile +tar cf archive --anchored --exclude-from=exclfile \ + testdir +tar tf archive | sort +echo "NEXT" +tar cf archive --exclude-from=exclfile \ + testdir +tar tf archive | sort +rm -rf testdir exclfile + +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +NEXT +testdir/ +testdir/file10 +testdir/file11 +testdir/file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/exclude05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 20 ) # 20. extrac03.at:23: extraction loops - at_setup_line='extrac03.at:23' - at_desc="extraction loops" - $at_quiet $ECHO_N " 20: extraction loops $ECHO_C" - at_xfail=no + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_18 +#AT_START_19 +# 19. delete01.at:23: deleting a member after a big one +at_setup_line='delete01.at:23' +at_desc="deleting a member after a big one" +$at_quiet $as_echo_n " 19: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "20. extrac03.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "19. delete01.at:23: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/extrac03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete01.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8308,19 +9856,16 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive)" -echo extrac03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive)" +echo delete01.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8329,15 +9874,14 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8346,36 +9890,25 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/../directory/ -separator -directory/../directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete01.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8384,19 +9917,16 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive)" -echo extrac03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive)" +echo delete01.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8405,15 +9935,14 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8422,36 +9951,25 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/../directory/ -separator -directory/../directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete01.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8460,19 +9978,16 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive)" -echo extrac03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive)" +echo delete01.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8481,15 +9996,14 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8498,36 +10012,25 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/../directory/ -separator -directory/../directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete01.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8536,19 +10039,16 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive)" -echo extrac03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive)" +echo delete01.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8557,15 +10057,14 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8574,36 +10073,25 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/../directory/ -separator -directory/../directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - $at_traceoff -echo "$at_srcdir/extrac03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete01.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8612,19 +10100,16 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive)" -echo extrac03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive)" +echo delete01.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8633,15 +10118,14 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8650,60 +10134,49 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -tar -cPvf archive directory/../directory -echo separator -tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 50000 --file file1 +genfile -l 1024 --file file2 +tar cf archive file1 file2 +tar f archive --delete file2 +tar tf archive) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/../directory/ -separator -directory/../directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete01.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 21 ) # 21. extrac04.at:23: extract + fnmatch - at_setup_line='extrac04.at:23' - at_desc="extract + fnmatch" - $at_quiet $ECHO_N " 21: extract + fnmatch $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_19 +#AT_START_20 +# 20. delete02.at:23: deleting a member from stdin archive +at_setup_line='delete02.at:23' +at_desc="deleting a member from stdin archive" +$at_quiet $as_echo_n " 20: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "21. extrac04.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "20. delete02.at:23: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/extrac04.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete02.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8712,31 +10185,19 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2)" +echo delete02.at:26 >"$at_check_line_file" -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \\ - --exclude='./*1' \\ - --exclude='d*/*1' \\ - --exclude='d*/s*/*2' | sort -)" -echo extrac04.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8745,27 +10206,17 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8774,48 +10225,33 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/file2 -directory/subdirectory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +2 +3 +separator +1 +3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac04.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete02.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8824,31 +10260,19 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2)" +echo delete02.at:26 >"$at_check_line_file" -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \\ - --exclude='./*1' \\ - --exclude='d*/*1' \\ - --exclude='d*/s*/*2' | sort -)" -echo extrac04.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8857,27 +10281,17 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8886,48 +10300,33 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/file2 -directory/subdirectory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +2 +3 +separator +1 +3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac04.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete02.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8936,31 +10335,19 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2)" +echo delete02.at:26 >"$at_check_line_file" -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \\ - --exclude='./*1' \\ - --exclude='d*/*1' \\ - --exclude='d*/s*/*2' | sort -)" -echo extrac04.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8969,27 +10356,17 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8998,48 +10375,33 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/file2 -directory/subdirectory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +2 +3 +separator +1 +3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac04.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete02.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9048,31 +10410,19 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2)" +echo delete02.at:26 >"$at_check_line_file" -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \\ - --exclude='./*1' \\ - --exclude='d*/*1' \\ - --exclude='d*/s*/*2' | sort -)" -echo extrac04.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9081,27 +10431,17 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9110,48 +10450,33 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/file2 -directory/subdirectory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +2 +3 +separator +1 +3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac04.at:26: + { $at_traceoff +$as_echo "$at_srcdir/delete02.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -9160,31 +10485,19 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2)" +echo delete02.at:26 >"$at_check_line_file" -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \\ - --exclude='./*1' \\ - --exclude='d*/*1' \\ - --exclude='d*/s*/*2' | sort -)" -echo extrac04.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -9193,27 +10506,17 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -9222,138 +10525,269 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - -touch file1 -mkdir directory -mkdir directory/subdirectory -touch directory/file1 -touch directory/file2 -touch directory/subdirectory/file1 -touch directory/subdirectory/file2 -tar -cf archive ./file1 directory -tar -tf archive \ - --exclude='./*1' \ - --exclude='d*/*1' \ - --exclude='d*/s*/*2' | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +genfile -l 3073 -p zeros --file 1 +cp 1 2 +cp 2 3 +tar cf archive 1 2 3 +tar tf archive +cat archive | tar f - --delete 2 > archive2 +echo separator +tar tf archive2) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/file2 -directory/subdirectory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac04.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "1 +2 +3 +separator +1 +3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete02.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 22 ) # 22. extrac05.at:30: extracting selected members from pax - at_setup_line='extrac05.at:30' - at_desc="extracting selected members from pax" - $at_quiet $ECHO_N " 22: extracting selected members from pax $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_20 +#AT_START_21 +# 21. delete03.at:21: deleting members with long names +at_setup_line='delete03.at:21' +at_desc="deleting members with long names" +$at_quiet $as_echo_n " 21: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "22. extrac05.at:30: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "21. delete03.at:21: testing ..." + $at_traceon -cat >list <<'_ATEOF' -jeden -cztery -_ATEOF - $at_traceoff -echo "$at_srcdir/extrac05.at:38: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + { $at_traceoff +$as_echo "$at_srcdir/delete03.at:26: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" +TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -genfile --length 118 --file jeden -genfile --length 223 --file dwa -genfile --length 517 --file trzy -genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL -genfile --length 110 --file cztery -tar cf archive jeden dwa trzy cztery || exit 1 +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f \$prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch \$prefix\$i +done +tar -cf archive ./\$prefix* && + tar --delete -f archive ./\${prefix}5 && + tar -tf archive +)" +echo delete03.at:26 >"$at_check_line_file" -mkdir dir -cd dir +if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * -tar xvfT ../archive ../../list || exit 1 -cd .. +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f $prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch $prefix$i +done +tar -cf archive ./$prefix* && + tar --delete -f archive ./${prefix}5 && + tar -tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f $prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch $prefix$i +done +tar -cf archive ./$prefix* && + tar --delete -f archive ./${prefix}5 && + tar -tf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete03.at:26" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/delete03.at:26: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + + +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f \$prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch \$prefix\$i +done +tar -cf archive ./\$prefix* && + tar --delete -f archive ./\${prefix}5 && + tar -tf archive )" -echo extrac05.at:38 >"$at_check_line_file" +echo delete03.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' +if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f $prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch $prefix$i +done +tar -cf archive ./$prefix* && + tar --delete -f archive ./${prefix}5 && + tar -tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f $prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch $prefix$i +done +tar -cf archive ./$prefix* && + tar --delete -f archive ./${prefix}5 && + tar -tf archive +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete03.at:26" + +$at_failed && at_func_log_failure +$at_traceon; } -if test -n "$at_trace_this"; then - ( $at_traceon; + { $at_traceoff +$as_echo "$at_srcdir/delete03.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -genfile --length 118 --file jeden -genfile --length 223 --file dwa -genfile --length 517 --file trzy -genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL -genfile --length 110 --file cztery -tar cf archive jeden dwa trzy cztery || exit 1 +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f \$prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch \$prefix\$i +done +tar -cf archive ./\$prefix* && + tar --delete -f archive ./\${prefix}5 && + tar -tf archive +)" +echo delete03.at:26 >"$at_check_line_file" -mkdir dir -cd dir +if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * -tar xvfT ../archive ../../list || exit 1 -cd .. +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f $prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch $prefix$i +done +tar -cf archive ./$prefix* && + tar --delete -f archive ./${prefix}5 && + tar -tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9362,70 +10796,61 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile --length 118 --file jeden -genfile --length 223 --file dwa -genfile --length 517 --file trzy -genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL -genfile --length 110 --file cztery - -tar cf archive jeden dwa trzy cztery || exit 1 - -mkdir dir -cd dir - -tar xvfT ../archive ../../list || exit 1 -cd .. +prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX +rm -f $prefix* +for i in 1 2 3 4 5 6 7 8 9 +do touch $prefix$i +done +tar -cf archive ./$prefix* && + tar --delete -f archive ./${prefix}5 && + tar -tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "jeden -cztery -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac05.at:38: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8 +./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete03.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 23 ) # 23. extrac06.at:33: mode of extracted directories - at_setup_line='extrac06.at:33' - at_desc="mode of extracted directories" - $at_quiet $ECHO_N " 23: mode of extracted directories $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_21 +#AT_START_22 +# 22. delete04.at:23: deleting a large last member +at_setup_line='delete04.at:23' +at_desc="deleting a large last member" +$at_quiet $as_echo_n " 22: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "23. extrac06.at:33: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "22. delete04.at:23: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/extrac06.at:36: + { $at_traceoff +$as_echo "$at_srcdir/delete04.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -9434,43 +10859,25 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive )" -echo extrac06.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete04.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -9479,102 +10886,67 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 -export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" -export TAR_OPTIONS -rm -rf * - - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "777 -755 -755 -755 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac06.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +file3 +file4 +file5 +file6 +file7 +file8 +file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac06.at:36: + { $at_traceoff +$as_echo "$at_srcdir/delete04.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -9583,43 +10955,25 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive )" -echo extrac06.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete04.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -9628,39 +10982,23 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -9669,61 +11007,42 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "777 -755 -755 -755 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac06.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +file3 +file4 +file5 +file6 +file7 +file8 +file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac06.at:36: + { $at_traceoff +$as_echo "$at_srcdir/delete04.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -9732,43 +11051,25 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive +)" +echo delete04.at:26 >"$at_check_line_file" -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 -)" -echo extrac06.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -9777,39 +11078,23 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -9818,61 +11103,42 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "777 -755 -755 -755 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac06.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +file3 +file4 +file5 +file6 +file7 +file8 +file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac06.at:36: + { $at_traceoff +$as_echo "$at_srcdir/delete04.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9881,43 +11147,25 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive )" -echo extrac06.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete04.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9926,39 +11174,23 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9967,61 +11199,42 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "777 -755 -755 -755 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac06.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +file3 +file4 +file5 +file6 +file7 +file8 +file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac06.at:36: + { $at_traceoff +$as_echo "$at_srcdir/delete04.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10030,43 +11243,25 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive )" -echo extrac06.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete04.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10075,39 +11270,23 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10116,85 +11295,66 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * - -# Force umask -umask 022 - -# Make sure user's umask is honored, even if we are superuser -TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - -# Create a directory -mkdir directory -chmod 777 directory -genfile --stat=mode:777 directory - -# Archive it -tar cf arc directory - -# Change its permissions ... -chmod 755 directory -genfile --stat=mode:777 directory - -# ... and attempt to restore it twice -tar xf arc directory -genfile --stat=mode:777 directory - -tar xf arc directory -genfile --stat=mode:777 directory - -# After both restores, the directory mode should be 755 +genfile -l 3 -f file1 +genfile -l 5 -f file2 +genfile -l 3 -f file3 +genfile -l 6 -f file4 +genfile -l 24 -f file5 +genfile -l 13 -f file6 +genfile -l 1385 -f file7 +genfile -l 30 -f file8 +genfile -l 10 -f file9 +genfile -l 256000 -f file10 +tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 +tar f archive --delete file10 +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "777 -755 -755 -755 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac06.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +file3 +file4 +file5 +file6 +file7 +file8 +file9 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete04.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 24 ) # 24. extrac07.at:27: extracting symlinks to a read-only dir - at_setup_line='extrac07.at:27' - at_desc="extracting symlinks to a read-only dir" - $at_quiet $ECHO_N " 24: extracting symlinks to a read-only dir $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_22 +#AT_START_23 +# 23. delete05.at:27: deleting non-existing member +at_setup_line='delete05.at:27' +at_desc="deleting non-existing member" +$at_quiet $as_echo_n " 23: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "24. extrac07.at:27: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "23. delete05.at:27: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/extrac07.at:30: + { $at_traceoff +$as_echo "$at_srcdir/delete05.at:30: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -10203,32 +11363,20 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive )" -echo extrac07.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete05.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -10237,28 +11385,18 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -10267,53 +11405,33 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Prepare the directory -Create the archive -Extract -dir/ -dir/foo -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac07.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -else - ustar -fi +echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive +tar: Exiting with failure status due to previous errors +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "en +to +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac07.at:30: + { $at_traceoff +$as_echo "$at_srcdir/delete05.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -10322,32 +11440,20 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive )" -echo extrac07.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete05.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -10356,28 +11462,18 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -10386,53 +11482,33 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Prepare the directory -Create the archive -Extract -dir/ -dir/foo -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac07.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -else - ustar -fi +echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive +tar: Exiting with failure status due to previous errors +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "en +to +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac07.at:30: + { $at_traceoff +$as_echo "$at_srcdir/delete05.at:30: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -10441,32 +11517,20 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive )" -echo extrac07.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete05.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -10475,28 +11539,18 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -10505,53 +11559,33 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Prepare the directory -Create the archive -Extract -dir/ -dir/foo -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac07.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -else - ustar -fi +echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive +tar: Exiting with failure status due to previous errors +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "en +to +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/extrac07.at:30: + { $at_traceoff +$as_echo "$at_srcdir/delete05.at:30: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -10560,32 +11594,20 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive )" -echo extrac07.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete05.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -10594,28 +11616,18 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -10624,53 +11636,33 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Prepare the directory -Create the archive -Extract -dir/ -dir/foo -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac07.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive +tar: Exiting with failure status due to previous errors +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "en +to +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -else - ustar -fi - -$at_traceon - - $at_traceoff -echo "$at_srcdir/extrac07.at:30: + { $at_traceoff +$as_echo "$at_srcdir/delete05.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10679,32 +11671,20 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive )" -echo extrac07.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo delete05.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10713,28 +11693,18 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10743,241 +11713,327 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -echo Prepare the directory -mkdir dir -genfile -f foo -cd dir -ln -s ../foo . -cd .. -chmod -w dir - -echo Create the archive -tar cf archive dir || exit 1 - -chmod +w dir +genfile -l 1024 -f en +genfile -l 1024 -f to -echo Extract -mkdir out -tar -C out -xvf archive +tar cf archive en to +# Make sure we don't use bogus blocking factor. +# GNU tar up to and including 1.14.91 produced an empty archive this way: +tar --file archive --blocking-factor=20 --delete tre +tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Prepare the directory -Create the archive -Extract -dir/ -dir/foo -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/extrac07.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -else - ustar -fi - -$at_traceon - +echo >>"$at_stderr"; $as_echo "tar: tre: Not found in archive +tar: Exiting with failure status due to previous errors +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "en +to +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/delete05.at:30" - # Testing one format is enough +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 25 ) # 25. gzip.at:23: gzip - at_setup_line='gzip.at:23' - at_desc="gzip" - $at_quiet $ECHO_N " 25: gzip $ECHO_C" - at_xfail=no - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "25. gzip.at:23: testing ..." - $at_traceon + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_23 +#AT_START_24 +# 24. extrac01.at:23: extract over an existing directory +at_setup_line='extrac01.at:23' +at_desc="extract over an existing directory" +$at_quiet $as_echo_n " 24: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "24. extrac01.at:23: testing ..." + $at_traceon -unset TAR_OPTIONS -$at_traceoff -echo "$at_srcdir/gzip.at:28: -cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 -tar xfvz /dev/null -test \$? = 2 || exit 1 -" -echo gzip.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi + { $at_traceoff +$as_echo "$at_srcdir/extrac01.at:26: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" +export TAR_OPTIONS +rm -rf * -if test -n "$at_trace_this"; then - ( $at_traceon; +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +)" +echo extrac01.at:26 >"$at_check_line_file" -cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -tar xfvz /dev/null -test $? = 2 || exit 1 - ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; - -cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -tar xfvz /dev/null -test $? = 2 || exit 1 - ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo " -gzip: stdin: unexpected end of file -tar: Child returned status 1 -tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/gzip.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi + { $at_traceoff +$as_echo "$at_srcdir/extrac01.at:26: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * -$at_traceon +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +)" +echo extrac01.at:26 >"$at_check_line_file" +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * - 26 ) # 26. incremental.at:23: incremental - at_setup_line='incremental.at:23' - at_desc="incremental" - $at_quiet $ECHO_N " 26: incremental $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "26. incremental.at:23: testing ..." - $at_traceon +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26" +$at_failed && at_func_log_failure +$at_traceon; } + { $at_traceoff +$as_echo "$at_srcdir/extrac01.at:26: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +)" +echo extrac01.at:26 >"$at_check_line_file" +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * - $at_traceoff -echo "$at_srcdir/incremental.at:26: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26" -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null +$at_failed && at_func_log_failure +$at_traceon; } -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created \`on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 + { $at_traceoff +$as_echo "$at_srcdir/extrac01.at:26: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 )" -echo incremental.at:26 >"$at_check_line_file" +echo extrac01.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26" -if test -n "$at_trace_this"; then - ( $at_traceon; +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/extrac01.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file - -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 +)" +echo extrac01.at:26 >"$at_check_line_file" -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created `on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10986,206 +12042,244 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file - -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null - -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created `on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 - -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +mkdir directory +touch directory/file +tar cf archive directory || exit 1 +tar xf archive || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "structure/ -separator -structure/ -structure/file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incremental.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac01.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/incremental.at:26: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" -export TAR_OPTIONS -rm -rf * -mkdir structure -echo x >structure/file + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_24 +#AT_START_25 +# 25. extrac02.at:23: extracting symlinks over an existing file +at_setup_line='extrac02.at:23' +at_desc="extracting symlinks over an existing file" +$at_quiet $as_echo_n " 25: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "25. extrac02.at:23: testing ..." + $at_traceon -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created \`on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure -)" -echo incremental.at:26 >"$at_check_line_file" +# FIXME: Skip if symlinks are not supported on the system -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + + { $at_traceoff +$as_echo "$at_srcdir/extrac02.at:28: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file - -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +)" +echo extrac02.at:28 >"$at_check_line_file" -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created `on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * + +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/extrac02.at:28: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +)" +echo extrac02.at:28 >"$at_check_line_file" -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created `on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "structure/ -separator -structure/ -structure/file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incremental.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 + { $at_traceoff +$as_echo "$at_srcdir/extrac02.at:28: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * + +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +)" +echo extrac02.at:28 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * + +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * + +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/incremental.at:26: + { $at_traceoff +$as_echo "$at_srcdir/extrac02.at:28: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -11194,42 +12288,18 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file - -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null - -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created \`on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 - -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive )" -echo incremental.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo extrac02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -11238,38 +12308,16 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file - -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null - -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created `on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 - -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -11278,84 +12326,25 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir structure -echo x >structure/file - -# On Nextstep (and perhaps other 4.3BSD systems), -# a newly created file's ctime isn't updated -# until the next sync or stat operation on the file. -ls -l structure/file >/dev/null - -# If the time of an initial backup and the creation time of a file contained -# in that backup are the same, the file will be backed up again when an -# incremental backup is done, because the incremental backup backs up -# files created `on or after' the initial backup time. Without the sleep -# command, behaviour of tar becomes variable, depending whether the system -# clock ticked over to the next second between creating the file and -# backing it up. -sleep 1 - -tar cf archive --listed=list structure -tar cfv archive --listed=list structure -echo separator -# ReiserFS often offsets the timestamps of newly created files -# 1 second to the past. Try to compensate for it, until a better -# solution is found. -sleep 2 -echo y >structure/file -tar cfv archive --listed=list structure +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "structure/ -separator -structure/ -structure/file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incremental.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 27 ) # 27. incr01.at:27: restore broken symlinks from incremental - at_setup_line='incr01.at:27' - at_desc="restore broken symlinks from incremental" - $at_quiet $ECHO_N " 27: restore broken symlinks from incremental $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "27. incr01.at:27: testing ..." - $at_traceon - - - - - - $at_traceoff -echo "$at_srcdir/incr01.at:30: + { $at_traceoff +$as_echo "$at_srcdir/extrac02.at:28: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -11364,28 +12353,18 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir directory -\$as_ln_s foo directory/bar - -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +)" +echo extrac02.at:28 >"$at_check_line_file" -mv directory orig - -tar xvfg archive.0 /dev/null -echo separator -tar xvfg archive.1 /dev/null -)" -echo incr01.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -11394,24 +12373,16 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -$as_ln_s foo directory/bar - -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory - -mv directory orig - -tar xvfg archive.0 /dev/null -echo separator -tar xvfg archive.1 /dev/null +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -11420,47 +12391,109 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -$as_ln_s foo directory/bar +touch file +ln -s file link 2> /dev/null || ln file link +tar cf archive link +rm link +touch link +tar xf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac02.at:28" -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory +$at_failed && at_func_log_failure +$at_traceon; } -mv directory orig -tar xvfg archive.0 /dev/null + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_25 +#AT_START_26 +# 26. extrac03.at:23: extraction loops +at_setup_line='extrac03.at:23' +at_desc="extraction loops" +$at_quiet $as_echo_n " 26: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "26. extrac03.at:23: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/extrac03.at:26: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +tar -cPvf archive directory/../directory echo separator -tar xvfg archive.1 /dev/null -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +tar -xPvf archive)" +echo extrac03.at:26 >"$at_check_line_file" -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/bar -separator -directory/ -tar: Deleting \`directory/bar' -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr01.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * +mkdir directory +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * - echo 1 > "$at_status_file" - exit 1 +mkdir directory +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/../directory/ +separator +directory/../directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/incr01.at:30: + { $at_traceoff +$as_echo "$at_srcdir/extrac03.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -11470,27 +12503,14 @@ export TAR_OPTIONS rm -rf * mkdir directory -\$as_ln_s foo directory/bar - -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory - -mv directory orig - -tar xvfg archive.0 /dev/null +tar -cPvf archive directory/../directory echo separator -tar xvfg archive.1 /dev/null -)" -echo incr01.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +tar -xPvf archive)" +echo extrac03.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -11500,23 +12520,12 @@ export TAR_OPTIONS rm -rf * mkdir directory -$as_ln_s foo directory/bar - -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory - -mv directory orig - -tar xvfg archive.0 /dev/null +tar -cPvf archive directory/../directory echo separator -tar xvfg archive.1 /dev/null -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -11526,46 +12535,85 @@ export TAR_OPTIONS rm -rf * mkdir directory -$as_ln_s foo directory/bar +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/../directory/ +separator +directory/../directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26" -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory +$at_failed && at_func_log_failure +$at_traceon; } -mv directory orig + { $at_traceoff +$as_echo "$at_srcdir/extrac03.at:26: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * -tar xvfg archive.0 /dev/null +mkdir directory +tar -cPvf archive directory/../directory echo separator -tar xvfg archive.1 /dev/null -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +tar -xPvf archive)" +echo extrac03.at:26 >"$at_check_line_file" -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/bar -separator -directory/ -tar: Deleting \`directory/bar' -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr01.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * +mkdir directory +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * - echo 1 > "$at_status_file" - exit 1 +mkdir directory +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/../directory/ +separator +directory/../directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/incr01.at:30: + { $at_traceoff +$as_echo "$at_srcdir/extrac03.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -11575,27 +12623,14 @@ export TAR_OPTIONS rm -rf * mkdir directory -\$as_ln_s foo directory/bar - -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory - -mv directory orig - -tar xvfg archive.0 /dev/null +tar -cPvf archive directory/../directory echo separator -tar xvfg archive.1 /dev/null -)" -echo incr01.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +tar -xPvf archive)" +echo extrac03.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -11605,23 +12640,12 @@ export TAR_OPTIONS rm -rf * mkdir directory -$as_ln_s foo directory/bar - -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory - -mv directory orig - -tar xvfg archive.0 /dev/null +tar -cPvf archive directory/../directory echo separator -tar xvfg archive.1 /dev/null -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -11631,70 +12655,25 @@ export TAR_OPTIONS rm -rf * mkdir directory -$as_ln_s foo directory/bar - -tar -cf archive.0 -g db directory -rm directory/bar -tar -cf archive.1 -g db directory - -mv directory orig - -tar xvfg archive.0 /dev/null +tar -cPvf archive directory/../directory echo separator -tar xvfg archive.1 /dev/null -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/bar +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/../directory/ separator -directory/ -tar: Deleting \`directory/bar' -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr01.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +directory/../directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 28 ) # 28. incr02.at:32: restoring timestamps from incremental - at_setup_line='incr02.at:32' - at_desc="restoring timestamps from incremental" - $at_quiet $ECHO_N " 28: restoring timestamps from incremental $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "28. incr02.at:32: testing ..." - $at_traceon - - - - - - $at_traceoff -echo "$at_srcdir/incr02.at:35: + { $at_traceoff +$as_echo "$at_srcdir/extrac03.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -11703,51 +12682,15 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file - -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts - -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, \`dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. - -tar -cf archive -g db dir - -# Move away the directory -mv dir orig - -# Wait enough time for timestamps to differ in case of failure. -sleep 5 - -# Restore the directory -tar -xf archive dir - -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - -)" -echo incr02.at:35 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi +mkdir directory +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive)" +echo extrac03.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -11756,47 +12699,13 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file - -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts - -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, `dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. - -tar -cf archive -g db dir - -# Move away the directory -mv dir orig - -# Wait enough time for timestamps to differ in case of failure. -sleep 5 - -# Restore the directory -tar -xf archive dir - -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +mkdir directory +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -11805,167 +12714,202 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file - -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts - -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, `dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. +mkdir directory +tar -cPvf archive directory/../directory +echo separator +tar -xPvf archive) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/../directory/ +separator +directory/../directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac03.at:26" -tar -cf archive -g db dir +$at_failed && at_func_log_failure +$at_traceon; } -# Move away the directory -mv dir orig -# Wait enough time for timestamps to differ in case of failure. -sleep 5 -# Restore the directory -tar -xf archive dir -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_26 +#AT_START_27 +# 27. extrac04.at:23: extract + fnmatch +at_setup_line='extrac04.at:23' +at_desc="extract + fnmatch" +$at_quiet $as_echo_n " 27: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "27. extrac04.at:23: testing ..." + $at_traceon -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr02.at:35: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/incr02.at:35: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + { $at_traceoff +$as_echo "$at_srcdir/extrac04.at:26: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, \`dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \\ + --exclude='./*1' \\ + --exclude='d*/*1' \\ + --exclude='d*/s*/*2' | sort +)" +echo extrac04.at:26 >"$at_check_line_file" -tar -cf archive -g db dir +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -# Move away the directory -mv dir orig -# Wait enough time for timestamps to differ in case of failure. -sleep 5 +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Restore the directory -tar -xf archive dir +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - -)" -echo incr02.at:35 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' +test -z "`sort < /dev/null 2>&1`" || exit 77 + +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/file2 +directory/subdirectory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26" -if test -n "$at_trace_this"; then - ( $at_traceon; +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/extrac04.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts - -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, `dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. +test -z "`sort < /dev/null 2>&1`" || exit 77 -tar -cf archive -g db dir +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \\ + --exclude='./*1' \\ + --exclude='d*/*1' \\ + --exclude='d*/s*/*2' | sort +)" +echo extrac04.at:26 >"$at_check_line_file" -# Move away the directory -mv dir orig +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * -# Wait enough time for timestamps to differ in case of failure. -sleep 5 -# Restore the directory -tar -xf archive dir +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -11974,65 +12918,134 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, `dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/file2 +directory/subdirectory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26" -tar -cf archive -g db dir +$at_failed && at_func_log_failure +$at_traceon; } -# Move away the directory -mv dir orig + { $at_traceoff +$as_echo "$at_srcdir/extrac04.at:26: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * -# Wait enough time for timestamps to differ in case of failure. -sleep 5 -# Restore the directory -tar -xf archive dir +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \\ + --exclude='./*1' \\ + --exclude='d*/*1' \\ + --exclude='d*/s*/*2' | sort +)" +echo extrac04.at:26 >"$at_check_line_file" -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr02.at:35: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * - echo 1 > "$at_status_file" - exit 1 +test -z "`sort < /dev/null 2>&1`" || exit 77 + +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/file2 +directory/subdirectory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/incr02.at:35: + { $at_traceoff +$as_echo "$at_srcdir/extrac04.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -12041,51 +13054,27 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file - -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts - -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, \`dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. - -tar -cf archive -g db dir - -# Move away the directory -mv dir orig - -# Wait enough time for timestamps to differ in case of failure. -sleep 5 -# Restore the directory -tar -xf archive dir +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \\ + --exclude='./*1' \\ + --exclude='d*/*1' \\ + --exclude='d*/s*/*2' | sort )" -echo incr02.at:35 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi +echo extrac04.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -12094,47 +13083,25 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, `dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. - -tar -cf archive -g db dir - -# Move away the directory -mv dir orig - -# Wait enough time for timestamps to differ in case of failure. -sleep 5 - -# Restore the directory -tar -xf archive dir - -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -12143,89 +13110,38 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -# Create directory structure -mkdir dir -mkdir dir/subdir1 -mkdir dir/subdir2 -genfile --length 10 --file dir/subdir1/file - -# Save mtime for later comparison -genfile --stat=mtime dir/subdir1 > ts - -# Create an archive. Using incremental mode makes sure the -# archive will have a directory-first member ordering, -# i.e.: -# dir/ -# dir/subdir1/ -# dir/subdir2/ -# dir/subdir1/foofile -# -# When restoring from this directory structure, `dir/subdir2/' used to -# trigger apply_nonancestor_delayed_set_stat() which restored stats for -# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the -# latter clobbered the directory timestamp. - -tar -cf archive -g db dir - -# Move away the directory -mv dir orig -# Wait enough time for timestamps to differ in case of failure. -sleep 5 - -# Restore the directory -tar -xf archive dir +test -z "`sort < /dev/null 2>&1`" || exit 77 -# Check the timestamp -genfile --stat=mtime dir/subdir1 | diff ts - +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr02.at:35: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 29 ) # 29. listed01.at:26: --listed for individual files - at_setup_line='listed01.at:26' - at_desc="--listed for individual files" - $at_quiet $ECHO_N " 29: --listed for individual files $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "29. listed01.at:26: testing ..." - $at_traceon - - - +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/file2 +directory/subdirectory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/listed01.at:29: + { $at_traceoff +$as_echo "$at_srcdir/extrac04.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -12234,40 +13150,27 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -# Let the things settle -sleep 1 - -tar --create \\ - --file=archive.1 \\ - --listed-incremental=listing \\ - directory/file* - -tar tf archive.1 || exit 1 - -sleep 2 - -genfile --length 10240 --pattern zeros --file directory/file2 - -echo \"separator\" -tar --create \\ - --file=archive.2 \\ - --listed-incremental=listing \\ - directory/file* || exit 1 +test -z "`sort < /dev/null 2>&1`" || exit 77 -tar tf archive.2 || exit 1 +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \\ + --exclude='./*1' \\ + --exclude='d*/*1' \\ + --exclude='d*/s*/*2' | sort )" -echo listed01.at:29 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo extrac04.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -12276,36 +13179,25 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -# Let the things settle -sleep 1 - -tar --create \ - --file=archive.1 \ - --listed-incremental=listing \ - directory/file* - -tar tf archive.1 || exit 1 - -sleep 2 - -genfile --length 10240 --pattern zeros --file directory/file2 - -echo "separator" -tar --create \ - --file=archive.2 \ - --listed-incremental=listing \ - directory/file* || exit 1 +test -z "`sort < /dev/null 2>&1`" || exit 77 -tar tf archive.2 || exit 1 +touch file1 +mkdir directory +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -12314,820 +13206,716 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +touch file1 mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -# Let the things settle -sleep 1 +mkdir directory/subdirectory +touch directory/file1 +touch directory/file2 +touch directory/subdirectory/file1 +touch directory/subdirectory/file2 +tar -cf archive ./file1 directory +tar -tf archive \ + --exclude='./*1' \ + --exclude='d*/*1' \ + --exclude='d*/s*/*2' | sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/file2 +directory/subdirectory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac04.at:26" -tar --create \ - --file=archive.1 \ - --listed-incremental=listing \ - directory/file* +$at_failed && at_func_log_failure +$at_traceon; } -tar tf archive.1 || exit 1 -sleep 2 -genfile --length 10240 --pattern zeros --file directory/file2 -echo "separator" + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_27 +#AT_START_28 +# 28. extrac05.at:30: extracting selected members from pax +at_setup_line='extrac05.at:30' +at_desc="extracting selected members from pax" +$at_quiet $as_echo_n " 28: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "28. extrac05.at:30: testing ..." + $at_traceon -tar --create \ - --file=archive.2 \ - --listed-incremental=listing \ - directory/file* || exit 1 -tar tf archive.2 || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/file1 -separator -directory/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/listed01.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +cat >list <<'_ATEOF' +jeden +cztery +_ATEOF - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/listed01.at:29: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + { $at_traceoff +$as_echo "$at_srcdir/extrac05.at:38: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -# Let the things settle -sleep 1 - -tar --create \\ - --file=archive.1 \\ - --listed-incremental=listing \\ - directory/file* +genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77 +genfile --length 118 --file jeden +genfile --length 223 --file dwa +genfile --length 517 --file trzy +genfile --length 110 --file cztery -tar tf archive.1 || exit 1 +tar cf archive jeden dwa trzy cztery || exit 1 -sleep 2 +mkdir dir +cd dir -genfile --length 10240 --pattern zeros --file directory/file2 +tar xvfT ../archive ../../list || exit 1 -echo \"separator\" +cd .. +)" +echo extrac05.at:38 >"$at_check_line_file" -tar --create \\ - --file=archive.2 \\ - --listed-incremental=listing \\ - directory/file* || exit 1 - -tar tf archive.2 || exit 1 -)" -echo listed01.at:29 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -# Let the things settle -sleep 1 - -tar --create \ - --file=archive.1 \ - --listed-incremental=listing \ - directory/file* - -tar tf archive.1 || exit 1 - -sleep 2 +genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77 +genfile --length 118 --file jeden +genfile --length 223 --file dwa +genfile --length 517 --file trzy +genfile --length 110 --file cztery -genfile --length 10240 --pattern zeros --file directory/file2 +tar cf archive jeden dwa trzy cztery || exit 1 -echo "separator" +mkdir dir +cd dir -tar --create \ - --file=archive.2 \ - --listed-incremental=listing \ - directory/file* || exit 1 +tar xvfT ../archive ../../list || exit 1 -tar tf archive.2 || exit 1 +cd .. ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -# Let the things settle -sleep 1 - -tar --create \ - --file=archive.1 \ - --listed-incremental=listing \ - directory/file* - -tar tf archive.1 || exit 1 - -sleep 2 +genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77 +genfile --length 118 --file jeden +genfile --length 223 --file dwa +genfile --length 517 --file trzy +genfile --length 110 --file cztery -genfile --length 10240 --pattern zeros --file directory/file2 +tar cf archive jeden dwa trzy cztery || exit 1 -echo "separator" +mkdir dir +cd dir -tar --create \ - --file=archive.2 \ - --listed-incremental=listing \ - directory/file* || exit 1 +tar xvfT ../archive ../../list || exit 1 -tar tf archive.2 || exit 1 +cd .. ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/file1 -separator -directory/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/listed01.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "jeden +cztery +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac05.at:38" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 30 ) # 30. listed02.at:28: working --listed - at_setup_line='listed02.at:28' - at_desc="working --listed" - $at_quiet $ECHO_N " 30: working --listed $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_28 +#AT_START_29 +# 29. extrac06.at:33: mode of extracted directories +at_setup_line='extrac06.at:33' +at_desc="mode of extracted directories" +$at_quiet $as_echo_n " 29: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "30. listed02.at:28: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "29. extrac06.at:33: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/listed02.at:31: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + { $at_traceoff +$as_echo "$at_srcdir/extrac06.at:36: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 +# Force umask +umask 022 -echo Create directories +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" -mkdir tart -sleep 1 -mkdir tart/c0 -sleep 1 -mkdir tart/c1 -sleep 1 +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 -do - echo File \$file > \$file - sleep 1 -done +# Archive it +tar cf arc directory -sleep 1 -echo Creating main archive -tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -# The above prints two lines to stderr announcing the new directories c0 and c1. -# Ensure that they appear in this script's stderr in sorted order. -sort err 1>&2; rm -f err +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -sleep 1 -echo Modifying filesystem -rm tart/a1 +tar xf arc directory +genfile --stat=mode:777 directory -mv tart/b1 tart/b2 -mv tart/c1 tart/c2 -touch tart/c2/ca3 +# After both restores, the directory mode should be 755 +)" +echo extrac06.at:36 >"$at_check_line_file" -echo Directory contents -find tart -print | sort 2>/dev/null +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -sleep 1 -echo Creating incremental archive -cp -p tart.incr1 tart.incr2 -tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 -sleep 1 +# Force umask +umask 022 -rm -rf tart/* -echo Extracting main archive -tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 -echo Extracting incremental archive -# This command should produce three messages about deletion -# of the existing files, that may appear in any order. Piping -# to sort makes sure we don't depend on any particular ordering. -tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -echo Final files: -find tart -print | sort 2>/dev/null -)" -echo listed02.at:31 >"$at_check_line_file" +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +# Archive it +tar cf arc directory -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory + +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory + +tar xf arc directory +genfile --stat=mode:777 directory + +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 +# Force umask +umask 022 -echo Create directories +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -mkdir tart -sleep 1 -mkdir tart/c0 -sleep 1 -mkdir tart/c1 -sleep 1 +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 -do - echo File $file > $file - sleep 1 -done +# Archive it +tar cf arc directory -sleep 1 -echo Creating main archive -tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -# The above prints two lines to stderr announcing the new directories c0 and c1. -# Ensure that they appear in this script's stderr in sorted order. -sort err 1>&2; rm -f err +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -sleep 1 -echo Modifying filesystem -rm tart/a1 +tar xf arc directory +genfile --stat=mode:777 directory -mv tart/b1 tart/b2 -mv tart/c1 tart/c2 -touch tart/c2/ca3 - -echo Directory contents -find tart -print | sort 2>/dev/null - -sleep 1 -echo Creating incremental archive -cp -p tart.incr1 tart.incr2 -tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 - -sleep 1 +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "777 +755 +755 +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36" -rm -rf tart/* -echo Extracting main archive -tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 -echo Extracting incremental archive -# This command should produce three messages about deletion -# of the existing files, that may appear in any order. Piping -# to sort makes sure we don't depend on any particular ordering. -tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null +$at_failed && at_func_log_failure +$at_traceon; } -echo Final files: -find tart -print | sort 2>/dev/null -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + { $at_traceoff +$as_echo "$at_srcdir/extrac06.at:36: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 +# Force umask +umask 022 -echo Create directories +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" -mkdir tart -sleep 1 -mkdir tart/c0 -sleep 1 -mkdir tart/c1 -sleep 1 +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 -do - echo File $file > $file - sleep 1 -done +# Archive it +tar cf arc directory -sleep 1 -echo Creating main archive -tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -# The above prints two lines to stderr announcing the new directories c0 and c1. -# Ensure that they appear in this script's stderr in sorted order. -sort err 1>&2; rm -f err +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -sleep 1 -echo Modifying filesystem -rm tart/a1 +tar xf arc directory +genfile --stat=mode:777 directory -mv tart/b1 tart/b2 -mv tart/c1 tart/c2 -touch tart/c2/ca3 +# After both restores, the directory mode should be 755 +)" +echo extrac06.at:36 >"$at_check_line_file" -echo Directory contents -find tart -print | sort 2>/dev/null +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * -sleep 1 -echo Creating incremental archive -cp -p tart.incr1 tart.incr2 -tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 -sleep 1 +# Force umask +umask 022 -rm -rf tart/* -echo Extracting main archive -tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 -echo Extracting incremental archive -# This command should produce three messages about deletion -# of the existing files, that may appear in any order. Piping -# to sort makes sure we don't depend on any particular ordering. -tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -echo Final files: -find tart -print | sort 2>/dev/null -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -at_failed=false -echo >>"$at_stderr"; echo "tar: tart/c0: Directory is new -tar: tart/c1: Directory is new -tar: tart/c2: Directory has been renamed from \`tart/c1' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Create directories -Creating main archive -tart/ -tart/c0/ -tart/c1/ -tart/a1 -tart/b1 -tart/c0/cq1 -tart/c0/cq2 -tart/c1/ca1 -tart/c1/ca2 -Modifying filesystem -Directory contents -tart -tart/b2 -tart/c0 -tart/c0/cq1 -tart/c0/cq2 -tart/c2 -tart/c2/ca1 -tart/c2/ca2 -tart/c2/ca3 -Creating incremental archive -tart/ -tart/c0/ -tart/c2/ -tart/b2 -tart/c2/ca3 -Extracting main archive -tart/ -tart/c0/ -tart/c1/ -tart/a1 -tart/b1 -tart/c0/cq1 -tart/c0/cq2 -tart/c1/ca1 -tart/c1/ca2 -Extracting incremental archive -tar: Deleting \`tart/a1' -tar: Deleting \`tart/b1' -tart/ -tart/b2 -tart/c0/ -tart/c2/ -tart/c2/ca3 -Final files: -tart -tart/b2 -tart/c0 -tart/c0/cq1 -tart/c0/cq2 -tart/c2 -tart/c2/ca1 -tart/c2/ca2 -tart/c2/ca3 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/listed02.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +# Archive it +tar cf arc directory +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory - echo 1 > "$at_status_file" - exit 1 -fi +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -$at_traceon +tar xf arc directory +genfile --stat=mode:777 directory - $at_traceoff -echo "$at_srcdir/listed02.at:31: +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 - -echo Create directories +# Force umask +umask 022 -mkdir tart -sleep 1 -mkdir tart/c0 -sleep 1 -mkdir tart/c1 -sleep 1 +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 -do - echo File \$file > \$file - sleep 1 -done +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -sleep 1 -echo Creating main archive -tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 +# Archive it +tar cf arc directory -# The above prints two lines to stderr announcing the new directories c0 and c1. -# Ensure that they appear in this script's stderr in sorted order. -sort err 1>&2; rm -f err +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -sleep 1 -echo Modifying filesystem -rm tart/a1 +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -mv tart/b1 tart/b2 -mv tart/c1 tart/c2 -touch tart/c2/ca3 +tar xf arc directory +genfile --stat=mode:777 directory -echo Directory contents -find tart -print | sort 2>/dev/null +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "777 +755 +755 +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36" -sleep 1 -echo Creating incremental archive -cp -p tart.incr1 tart.incr2 -tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 +$at_failed && at_func_log_failure +$at_traceon; } -sleep 1 + { $at_traceoff +$as_echo "$at_srcdir/extrac06.at:36: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * -rm -rf tart/* -echo Extracting main archive -tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 -echo Extracting incremental archive -# This command should produce three messages about deletion -# of the existing files, that may appear in any order. Piping -# to sort makes sure we don't depend on any particular ordering. -tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null -echo Final files: -find tart -print | sort 2>/dev/null -)" -echo listed02.at:31 >"$at_check_line_file" +# Force umask +umask 022 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory + +# Archive it +tar cf arc directory + +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory + +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory + +tar xf arc directory +genfile --stat=mode:777 directory + +# After both restores, the directory mode should be 755 +)" +echo extrac06.at:36 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 +# Force umask +umask 022 -echo Create directories +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -mkdir tart -sleep 1 -mkdir tart/c0 -sleep 1 -mkdir tart/c1 -sleep 1 +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 -do - echo File $file > $file - sleep 1 -done +# Archive it +tar cf arc directory -sleep 1 -echo Creating main archive -tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -# The above prints two lines to stderr announcing the new directories c0 and c1. -# Ensure that they appear in this script's stderr in sorted order. -sort err 1>&2; rm -f err +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -sleep 1 -echo Modifying filesystem -rm tart/a1 +tar xf arc directory +genfile --stat=mode:777 directory -mv tart/b1 tart/b2 -mv tart/c1 tart/c2 -touch tart/c2/ca3 +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * -echo Directory contents -find tart -print | sort 2>/dev/null -sleep 1 -echo Creating incremental archive -cp -p tart.incr1 tart.incr2 -tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 +# Force umask +umask 022 -sleep 1 +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -rm -rf tart/* -echo Extracting main archive -tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 -echo Extracting incremental archive -# This command should produce three messages about deletion -# of the existing files, that may appear in any order. Piping -# to sort makes sure we don't depend on any particular ordering. -tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -echo Final files: -find tart -print | sort 2>/dev/null -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +# Archive it +tar cf arc directory + +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory + +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory + +tar xf arc directory +genfile --stat=mode:777 directory + +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "777 +755 +755 +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/extrac06.at:36: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 +# Force umask +umask 022 -echo Create directories +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" -mkdir tart -sleep 1 -mkdir tart/c0 -sleep 1 -mkdir tart/c1 -sleep 1 +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 -do - echo File $file > $file - sleep 1 -done +# Archive it +tar cf arc directory -sleep 1 -echo Creating main archive -tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -# The above prints two lines to stderr announcing the new directories c0 and c1. -# Ensure that they appear in this script's stderr in sorted order. -sort err 1>&2; rm -f err +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -sleep 1 -echo Modifying filesystem -rm tart/a1 +tar xf arc directory +genfile --stat=mode:777 directory -mv tart/b1 tart/b2 -mv tart/c1 tart/c2 -touch tart/c2/ca3 +# After both restores, the directory mode should be 755 +)" +echo extrac06.at:36 >"$at_check_line_file" -echo Directory contents -find tart -print | sort 2>/dev/null +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * -sleep 1 -echo Creating incremental archive -cp -p tart.incr1 tart.incr2 -tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 -sleep 1 +# Force umask +umask 022 -rm -rf tart/* -echo Extracting main archive -tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 -echo Extracting incremental archive -# This command should produce three messages about deletion -# of the existing files, that may appear in any order. Piping -# to sort makes sure we don't depend on any particular ordering. -tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -echo Final files: -find tart -print | sort 2>/dev/null -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -at_failed=false -echo >>"$at_stderr"; echo "tar: tart/c0: Directory is new -tar: tart/c1: Directory is new -tar: tart/c2: Directory has been renamed from \`tart/c1' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Create directories -Creating main archive -tart/ -tart/c0/ -tart/c1/ -tart/a1 -tart/b1 -tart/c0/cq1 -tart/c0/cq2 -tart/c1/ca1 -tart/c1/ca2 -Modifying filesystem -Directory contents -tart -tart/b2 -tart/c0 -tart/c0/cq1 -tart/c0/cq2 -tart/c2 -tart/c2/ca1 -tart/c2/ca2 -tart/c2/ca3 -Creating incremental archive -tart/ -tart/c0/ -tart/c2/ -tart/b2 -tart/c2/ca3 -Extracting main archive -tart/ -tart/c0/ -tart/c1/ -tart/a1 -tart/b1 -tart/c0/cq1 -tart/c0/cq2 -tart/c1/ca1 -tart/c1/ca2 -Extracting incremental archive -tar: Deleting \`tart/a1' -tar: Deleting \`tart/b1' -tart/ -tart/b2 -tart/c0/ -tart/c2/ -tart/c2/ca3 -Final files: -tart -tart/b2 -tart/c0 -tart/c0/cq1 -tart/c0/cq2 -tart/c2 -tart/c2/ca1 -tart/c2/ca2 -tart/c2/ca3 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/listed02.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +# Archive it +tar cf arc directory +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory - echo 1 > "$at_status_file" - exit 1 -fi +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -$at_traceon +tar xf arc directory +genfile --stat=mode:777 directory +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * +# Force umask +umask 022 - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" - 31 ) # 31. incr03.at:28: renamed files in incrementals - at_setup_line='incr03.at:28' - at_desc="renamed files in incrementals" - $at_quiet $ECHO_N " 31: renamed files in incrementals $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "31. incr03.at:28: testing ..." - $at_traceon +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory + +# Archive it +tar cf arc directory + +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory +tar xf arc directory +genfile --stat=mode:777 directory +# After both restores, the directory mode should be 755 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "777 +755 +755 +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/incr03.at:31: + { $at_traceoff +$as_echo "$at_srcdir/extrac06.at:36: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -13137,43 +13925,38 @@ export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y +# Force umask +umask 022 -sleep 1 +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\" -tar -cf archive.1 -g db directory +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -mv directory/x directory/z -tar -cf archive.2 -g db directory +# Archive it +tar cf arc directory -mv directory orig +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +tar xf arc directory +genfile --stat=mode:777 directory -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort +# After both restores, the directory mode should be 755 )" -echo incr03.at:31 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo extrac06.at:36 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -13183,39 +13966,36 @@ export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y +# Force umask +umask 022 -sleep 1 +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -tar -cf archive.1 -g db directory +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -mv directory/x directory/z -tar -cf archive.2 -g db directory +# Archive it +tar cf arc directory -mv directory orig +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +tar xf arc directory +genfile --stat=mode:777 directory -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort +# After both restores, the directory mode should be 755 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -13225,160 +14005,238 @@ export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y +# Force umask +umask 022 -sleep 1 +# Make sure user's umask is honored, even if we are superuser +TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions" -tar -cf archive.1 -g db directory +# Create a directory +mkdir directory +chmod 777 directory +genfile --stat=mode:777 directory -mv directory/x directory/z -tar -cf archive.2 -g db directory +# Archive it +tar cf arc directory -mv directory orig +# Change its permissions ... +chmod 755 directory +genfile --stat=mode:777 directory -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +# ... and attempt to restore it twice +tar xf arc directory +genfile --stat=mode:777 directory -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +tar xf arc directory +genfile --stat=mode:777 directory -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort +# After both restores, the directory mode should be 755 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Listing of archive.1 -directory/ -directory/x -directory/y -Listing of archive.2 -directory/ -directory/z -Directory after first restore -directory -directory/x -directory/y -Directory after second restore -directory -directory/y -directory/z -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr03.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "777 +755 +755 +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac06.at:36" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/incr03.at:31: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu -export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_29 +#AT_START_30 +# 30. extrac07.at:27: extracting symlinks to a read-only dir +at_setup_line='extrac07.at:27' +at_desc="extracting symlinks to a read-only dir" +$at_quiet $as_echo_n " 30: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "30. extrac07.at:27: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/extrac07.at:30: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo Create the archive +tar cf archive dir || exit 1 -mkdir directory -genfile --file=directory/x -genfile --file=directory/y +chmod +w dir -sleep 1 +echo Extract +mkdir out +tar -C out -xvf archive +)" +echo extrac07.at:30 >"$at_check_line_file" -tar -cf archive.1 -g db directory +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -mv directory/x directory/z -tar -cf archive.2 -g db directory +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -mv directory orig +echo Create the archive +tar cf archive dir || exit 1 -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +chmod +w dir -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +echo Extract +mkdir out +tar -C out -xvf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort -)" -echo incr03.at:31 >"$at_check_line_file" +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' +echo Create the archive +tar cf archive dir || exit 1 + +chmod +w dir + +echo Extract +mkdir out +tar -C out -xvf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Prepare the directory +Create the archive +Extract +dir/ +dir/foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac07.at:30" +if $at_failed; then + : +else + ustar fi -if test -n "$at_trace_this"; then - ( $at_traceon; +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/extrac07.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y +echo Create the archive +tar cf archive dir || exit 1 -sleep 1 +chmod +w dir -tar -cf archive.1 -g db directory +echo Extract +mkdir out +tar -C out -xvf archive +)" +echo extrac07.at:30 >"$at_check_line_file" -mv directory/x directory/z -tar -cf archive.2 -g db directory +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * -mv directory orig +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +echo Create the archive +tar cf archive dir || exit 1 -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +chmod +w dir -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort +echo Extract +mkdir out +tar -C out -xvf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -13387,161 +14245,210 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y - -sleep 1 - -tar -cf archive.1 -g db directory - -mv directory/x directory/z -tar -cf archive.2 -g db directory - -mv directory orig - -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +echo Create the archive +tar cf archive dir || exit 1 -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +chmod +w dir -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort +echo Extract +mkdir out +tar -C out -xvf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Listing of archive.1 -directory/ -directory/x -directory/y -Listing of archive.2 -directory/ -directory/z -Directory after first restore -directory -directory/x -directory/y -Directory after second restore -directory -directory/y -directory/z -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr03.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Prepare the directory +Create the archive +Extract +dir/ +dir/foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac07.at:30" if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 + : +else + ustar fi -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/incr03.at:31: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + { $at_traceoff +$as_echo "$at_srcdir/extrac07.at:30: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" +TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y +echo Create the archive +tar cf archive dir || exit 1 -sleep 1 +chmod +w dir -tar -cf archive.1 -g db directory +echo Extract +mkdir out +tar -C out -xvf archive +)" +echo extrac07.at:30 >"$at_check_line_file" -mv directory/x directory/z -tar -cf archive.2 -g db directory +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * -mv directory orig +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +echo Create the archive +tar cf archive dir || exit 1 -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +chmod +w dir -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort -)" -echo incr03.at:31 >"$at_check_line_file" +echo Extract +mkdir out +tar -C out -xvf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir + +echo Create the archive +tar cf archive dir || exit 1 + +chmod +w dir + +echo Extract +mkdir out +tar -C out -xvf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Prepare the directory +Create the archive +Extract +dir/ +dir/foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac07.at:30" +if $at_failed; then + : +else + ustar fi -if test -n "$at_trace_this"; then - ( $at_traceon; +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/extrac07.at:30: mkdir posix (cd posix TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y +echo Create the archive +tar cf archive dir || exit 1 -sleep 1 +chmod +w dir -tar -cf archive.1 -g db directory +echo Extract +mkdir out +tar -C out -xvf archive +)" +echo extrac07.at:30 >"$at_check_line_file" -mv directory/x directory/z -tar -cf archive.2 -g db directory +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * -mv directory orig +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +echo Create the archive +tar cf archive dir || exit 1 -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +chmod +w dir -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort +echo Extract +mkdir out +tar -C out -xvf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -13550,99 +14457,46 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir directory -genfile --file=directory/x -genfile --file=directory/y - -sleep 1 - -tar -cf archive.1 -g db directory - -mv directory/x directory/z -tar -cf archive.2 -g db directory - -mv directory orig - -echo Listing of archive.1 -tar -tf archive.1 | sort -echo Listing of archive.2 -tar -tf archive.2 | sort +echo Create the archive +tar cf archive dir || exit 1 -echo Directory after first restore -tar -xf archive.1 -g db -find directory | sort +chmod +w dir -echo Directory after second restore -tar -xf archive.2 -g db -find directory | sort +echo Extract +mkdir out +tar -C out -xvf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Listing of archive.1 -directory/ -directory/x -directory/y -Listing of archive.2 -directory/ -directory/z -Directory after first restore -directory -directory/x -directory/y -Directory after second restore -directory -directory/y -directory/z -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr03.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Prepare the directory +Create the archive +Extract +dir/ +dir/foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac07.at:30" if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 + : +else + ustar fi -$at_traceon - - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 32 ) # 32. incr04.at:29: proper icontents initialization - at_setup_line='incr04.at:29' - at_desc="proper icontents initialization" - $at_quiet $ECHO_N " 32: proper icontents initialization $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "32. incr04.at:29: testing ..." - $at_traceon - - - - +$at_failed && at_func_log_failure +$at_traceon; } - - - $at_traceoff -echo "$at_srcdir/incr04.at:34: + { $at_traceoff +$as_echo "$at_srcdir/extrac07.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -13651,30 +14505,28 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i); - }' < /dev/null | genfile --files-from - +echo Create the archive +tar cf archive dir || exit 1 -sleep 1 +chmod +w dir -echo \"Initial dump\" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo \"Incremental dump\" -tar cvf a1.tar -g a.sna a +echo Extract +mkdir out +tar -C out -xvf archive )" -echo incr04.at:34 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo extrac07.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -13683,26 +14535,26 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf("a/b/one_31_chars_long_file_name_%03d\n", i); - }' < /dev/null | genfile --files-from - +echo Create the archive +tar cf archive dir || exit 1 -sleep 1 +chmod +w dir -echo "Initial dump" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo "Incremental dump" -tar cvf a1.tar -g a.sna a +echo Extract +mkdir out +tar -C out -xvf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -13711,254 +14563,187 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * +echo Prepare the directory +mkdir dir +genfile -f foo +cd dir +ln -s ../foo . +cd .. +chmod -w dir -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf("a/b/one_31_chars_long_file_name_%03d\n", i); - }' < /dev/null | genfile --files-from - +echo Create the archive +tar cf archive dir || exit 1 -sleep 1 +chmod +w dir -echo "Initial dump" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo "Incremental dump" -tar cvf a1.tar -g a.sna a +echo Extract +mkdir out +tar -C out -xvf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: a/b: Directory is new -tar: a/c: Directory has been renamed from \`a/b' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Initial dump -a/ -a/b/ -a/b/one_31_chars_long_file_name_001 -a/b/one_31_chars_long_file_name_002 -a/b/one_31_chars_long_file_name_003 -a/b/one_31_chars_long_file_name_004 -a/b/one_31_chars_long_file_name_005 -a/b/one_31_chars_long_file_name_006 -a/b/one_31_chars_long_file_name_007 -a/b/one_31_chars_long_file_name_008 -a/b/one_31_chars_long_file_name_009 -a/b/one_31_chars_long_file_name_010 -a/b/one_31_chars_long_file_name_011 -a/b/one_31_chars_long_file_name_012 -a/b/one_31_chars_long_file_name_013 -a/b/one_31_chars_long_file_name_014 -a/b/one_31_chars_long_file_name_015 -a/b/one_31_chars_long_file_name_016 -a/b/one_31_chars_long_file_name_017 -a/b/one_31_chars_long_file_name_018 -a/b/one_31_chars_long_file_name_019 -a/b/one_31_chars_long_file_name_020 -a/b/one_31_chars_long_file_name_021 -a/b/one_31_chars_long_file_name_022 -a/b/one_31_chars_long_file_name_023 -a/b/one_31_chars_long_file_name_024 -a/b/one_31_chars_long_file_name_025 -a/b/one_31_chars_long_file_name_026 -a/b/one_31_chars_long_file_name_027 -a/b/one_31_chars_long_file_name_028 -a/b/one_31_chars_long_file_name_029 -a/b/one_31_chars_long_file_name_030 -a/b/one_31_chars_long_file_name_031 -a/b/one_31_chars_long_file_name_032 -a/b/one_31_chars_long_file_name_033 -a/b/one_31_chars_long_file_name_034 -a/b/one_31_chars_long_file_name_035 -a/b/one_31_chars_long_file_name_036 -a/b/one_31_chars_long_file_name_037 -a/b/one_31_chars_long_file_name_038 -a/b/one_31_chars_long_file_name_039 -a/b/one_31_chars_long_file_name_040 -a/b/one_31_chars_long_file_name_041 -a/b/one_31_chars_long_file_name_042 -a/b/one_31_chars_long_file_name_043 -a/b/one_31_chars_long_file_name_044 -a/b/one_31_chars_long_file_name_045 -a/b/one_31_chars_long_file_name_046 -a/b/one_31_chars_long_file_name_047 -a/b/one_31_chars_long_file_name_048 -a/b/one_31_chars_long_file_name_049 -a/b/one_31_chars_long_file_name_050 -a/b/one_31_chars_long_file_name_051 -a/b/one_31_chars_long_file_name_052 -a/b/one_31_chars_long_file_name_053 -a/b/one_31_chars_long_file_name_054 -a/b/one_31_chars_long_file_name_055 -a/b/one_31_chars_long_file_name_056 -a/b/one_31_chars_long_file_name_057 -a/b/one_31_chars_long_file_name_058 -a/b/one_31_chars_long_file_name_059 -a/b/one_31_chars_long_file_name_060 -a/b/one_31_chars_long_file_name_061 -a/b/one_31_chars_long_file_name_062 -a/b/one_31_chars_long_file_name_063 -a/b/one_31_chars_long_file_name_064 -a/b/one_31_chars_long_file_name_065 -a/b/one_31_chars_long_file_name_066 -a/b/one_31_chars_long_file_name_067 -a/b/one_31_chars_long_file_name_068 -a/b/one_31_chars_long_file_name_069 -a/b/one_31_chars_long_file_name_070 -a/b/one_31_chars_long_file_name_071 -a/b/one_31_chars_long_file_name_072 -a/b/one_31_chars_long_file_name_073 -a/b/one_31_chars_long_file_name_074 -a/b/one_31_chars_long_file_name_075 -a/b/one_31_chars_long_file_name_076 -a/b/one_31_chars_long_file_name_077 -a/b/one_31_chars_long_file_name_078 -a/b/one_31_chars_long_file_name_079 -a/b/one_31_chars_long_file_name_080 -a/b/one_31_chars_long_file_name_081 -a/b/one_31_chars_long_file_name_082 -a/b/one_31_chars_long_file_name_083 -a/b/one_31_chars_long_file_name_084 -a/b/one_31_chars_long_file_name_085 -a/b/one_31_chars_long_file_name_086 -a/b/one_31_chars_long_file_name_087 -a/b/one_31_chars_long_file_name_088 -a/b/one_31_chars_long_file_name_089 -a/b/one_31_chars_long_file_name_090 -a/b/one_31_chars_long_file_name_091 -a/b/one_31_chars_long_file_name_092 -a/b/one_31_chars_long_file_name_093 -a/b/one_31_chars_long_file_name_094 -a/b/one_31_chars_long_file_name_095 -a/b/one_31_chars_long_file_name_096 -a/b/one_31_chars_long_file_name_097 -a/b/one_31_chars_long_file_name_098 -a/b/one_31_chars_long_file_name_099 -a/b/one_31_chars_long_file_name_100 -a/b/one_31_chars_long_file_name_101 -a/b/one_31_chars_long_file_name_102 -a/b/one_31_chars_long_file_name_103 -a/b/one_31_chars_long_file_name_104 -a/b/one_31_chars_long_file_name_105 -a/b/one_31_chars_long_file_name_106 -a/b/one_31_chars_long_file_name_107 -a/b/one_31_chars_long_file_name_108 -a/b/one_31_chars_long_file_name_109 -a/b/one_31_chars_long_file_name_110 -a/b/one_31_chars_long_file_name_111 -a/b/one_31_chars_long_file_name_112 -a/b/one_31_chars_long_file_name_113 -a/b/one_31_chars_long_file_name_114 -a/b/one_31_chars_long_file_name_115 -a/b/one_31_chars_long_file_name_116 -a/b/one_31_chars_long_file_name_117 -a/b/one_31_chars_long_file_name_118 -a/b/one_31_chars_long_file_name_119 -a/b/one_31_chars_long_file_name_120 -a/b/one_31_chars_long_file_name_121 -a/b/one_31_chars_long_file_name_122 -a/b/one_31_chars_long_file_name_123 -a/b/one_31_chars_long_file_name_124 -a/b/one_31_chars_long_file_name_125 -a/b/one_31_chars_long_file_name_126 -a/b/one_31_chars_long_file_name_127 -a/b/one_31_chars_long_file_name_128 -a/b/one_31_chars_long_file_name_129 -a/b/one_31_chars_long_file_name_130 -a/b/one_31_chars_long_file_name_131 -a/b/one_31_chars_long_file_name_132 -a/b/one_31_chars_long_file_name_133 -a/b/one_31_chars_long_file_name_134 -a/b/one_31_chars_long_file_name_135 -a/b/one_31_chars_long_file_name_136 -a/b/one_31_chars_long_file_name_137 -a/b/one_31_chars_long_file_name_138 -a/b/one_31_chars_long_file_name_139 -a/b/one_31_chars_long_file_name_140 -a/b/one_31_chars_long_file_name_141 -a/b/one_31_chars_long_file_name_142 -Incremental dump -a/ -a/c/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr04.at:34: exit code was $at_status, expected 0" - at_failed=:;; -esac +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Prepare the directory +Create the archive +Extract +dir/ +dir/foo +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac07.at:30" if $at_failed; then + : +else + ustar +fi +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon + # Testing one format is enough - $at_traceoff -echo "$at_srcdir/incr04.at:34: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_30 +#AT_START_31 +# 31. extrac08.at:33: restoring mode on existing directory +at_setup_line='extrac08.at:33' +at_desc="restoring mode on existing directory" +$at_quiet $as_echo_n " 31: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "31. extrac08.at:33: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/extrac08.at:36: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +)" +echo extrac08.at:36 >"$at_check_line_file" -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i); - }' < /dev/null | genfile --files-from - - -sleep 1 +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -echo \"Initial dump\" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo \"Incremental dump\" -tar cvf a1.tar -g a.sna a -)" -echo incr04.at:34 >"$at_check_line_file" +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir/ +dir/file +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } -if test -n "$at_trace_this"; then - ( $at_traceon; + { $at_traceoff +$as_echo "$at_srcdir/extrac08.at:36: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +)" +echo extrac08.at:36 >"$at_check_line_file" -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf("a/b/one_31_chars_long_file_name_%03d\n", i); - }' < /dev/null | genfile --files-from - - -sleep 1 +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * -echo "Initial dump" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo "Incremental dump" -tar cvf a1.tar -g a.sna a +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -13967,194 +14752,106 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir/ +dir/file +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36" -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf("a/b/one_31_chars_long_file_name_%03d\n", i); - }' < /dev/null | genfile --files-from - +$at_failed && at_func_log_failure +$at_traceon; } -sleep 1 + { $at_traceoff +$as_echo "$at_srcdir/extrac08.at:36: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * -echo "Initial dump" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo "Incremental dump" -tar cvf a1.tar -g a.sna a -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +)" +echo extrac08.at:36 >"$at_check_line_file" -at_failed=false -echo >>"$at_stderr"; echo "tar: a/b: Directory is new -tar: a/c: Directory has been renamed from \`a/b' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Initial dump -a/ -a/b/ -a/b/one_31_chars_long_file_name_001 -a/b/one_31_chars_long_file_name_002 -a/b/one_31_chars_long_file_name_003 -a/b/one_31_chars_long_file_name_004 -a/b/one_31_chars_long_file_name_005 -a/b/one_31_chars_long_file_name_006 -a/b/one_31_chars_long_file_name_007 -a/b/one_31_chars_long_file_name_008 -a/b/one_31_chars_long_file_name_009 -a/b/one_31_chars_long_file_name_010 -a/b/one_31_chars_long_file_name_011 -a/b/one_31_chars_long_file_name_012 -a/b/one_31_chars_long_file_name_013 -a/b/one_31_chars_long_file_name_014 -a/b/one_31_chars_long_file_name_015 -a/b/one_31_chars_long_file_name_016 -a/b/one_31_chars_long_file_name_017 -a/b/one_31_chars_long_file_name_018 -a/b/one_31_chars_long_file_name_019 -a/b/one_31_chars_long_file_name_020 -a/b/one_31_chars_long_file_name_021 -a/b/one_31_chars_long_file_name_022 -a/b/one_31_chars_long_file_name_023 -a/b/one_31_chars_long_file_name_024 -a/b/one_31_chars_long_file_name_025 -a/b/one_31_chars_long_file_name_026 -a/b/one_31_chars_long_file_name_027 -a/b/one_31_chars_long_file_name_028 -a/b/one_31_chars_long_file_name_029 -a/b/one_31_chars_long_file_name_030 -a/b/one_31_chars_long_file_name_031 -a/b/one_31_chars_long_file_name_032 -a/b/one_31_chars_long_file_name_033 -a/b/one_31_chars_long_file_name_034 -a/b/one_31_chars_long_file_name_035 -a/b/one_31_chars_long_file_name_036 -a/b/one_31_chars_long_file_name_037 -a/b/one_31_chars_long_file_name_038 -a/b/one_31_chars_long_file_name_039 -a/b/one_31_chars_long_file_name_040 -a/b/one_31_chars_long_file_name_041 -a/b/one_31_chars_long_file_name_042 -a/b/one_31_chars_long_file_name_043 -a/b/one_31_chars_long_file_name_044 -a/b/one_31_chars_long_file_name_045 -a/b/one_31_chars_long_file_name_046 -a/b/one_31_chars_long_file_name_047 -a/b/one_31_chars_long_file_name_048 -a/b/one_31_chars_long_file_name_049 -a/b/one_31_chars_long_file_name_050 -a/b/one_31_chars_long_file_name_051 -a/b/one_31_chars_long_file_name_052 -a/b/one_31_chars_long_file_name_053 -a/b/one_31_chars_long_file_name_054 -a/b/one_31_chars_long_file_name_055 -a/b/one_31_chars_long_file_name_056 -a/b/one_31_chars_long_file_name_057 -a/b/one_31_chars_long_file_name_058 -a/b/one_31_chars_long_file_name_059 -a/b/one_31_chars_long_file_name_060 -a/b/one_31_chars_long_file_name_061 -a/b/one_31_chars_long_file_name_062 -a/b/one_31_chars_long_file_name_063 -a/b/one_31_chars_long_file_name_064 -a/b/one_31_chars_long_file_name_065 -a/b/one_31_chars_long_file_name_066 -a/b/one_31_chars_long_file_name_067 -a/b/one_31_chars_long_file_name_068 -a/b/one_31_chars_long_file_name_069 -a/b/one_31_chars_long_file_name_070 -a/b/one_31_chars_long_file_name_071 -a/b/one_31_chars_long_file_name_072 -a/b/one_31_chars_long_file_name_073 -a/b/one_31_chars_long_file_name_074 -a/b/one_31_chars_long_file_name_075 -a/b/one_31_chars_long_file_name_076 -a/b/one_31_chars_long_file_name_077 -a/b/one_31_chars_long_file_name_078 -a/b/one_31_chars_long_file_name_079 -a/b/one_31_chars_long_file_name_080 -a/b/one_31_chars_long_file_name_081 -a/b/one_31_chars_long_file_name_082 -a/b/one_31_chars_long_file_name_083 -a/b/one_31_chars_long_file_name_084 -a/b/one_31_chars_long_file_name_085 -a/b/one_31_chars_long_file_name_086 -a/b/one_31_chars_long_file_name_087 -a/b/one_31_chars_long_file_name_088 -a/b/one_31_chars_long_file_name_089 -a/b/one_31_chars_long_file_name_090 -a/b/one_31_chars_long_file_name_091 -a/b/one_31_chars_long_file_name_092 -a/b/one_31_chars_long_file_name_093 -a/b/one_31_chars_long_file_name_094 -a/b/one_31_chars_long_file_name_095 -a/b/one_31_chars_long_file_name_096 -a/b/one_31_chars_long_file_name_097 -a/b/one_31_chars_long_file_name_098 -a/b/one_31_chars_long_file_name_099 -a/b/one_31_chars_long_file_name_100 -a/b/one_31_chars_long_file_name_101 -a/b/one_31_chars_long_file_name_102 -a/b/one_31_chars_long_file_name_103 -a/b/one_31_chars_long_file_name_104 -a/b/one_31_chars_long_file_name_105 -a/b/one_31_chars_long_file_name_106 -a/b/one_31_chars_long_file_name_107 -a/b/one_31_chars_long_file_name_108 -a/b/one_31_chars_long_file_name_109 -a/b/one_31_chars_long_file_name_110 -a/b/one_31_chars_long_file_name_111 -a/b/one_31_chars_long_file_name_112 -a/b/one_31_chars_long_file_name_113 -a/b/one_31_chars_long_file_name_114 -a/b/one_31_chars_long_file_name_115 -a/b/one_31_chars_long_file_name_116 -a/b/one_31_chars_long_file_name_117 -a/b/one_31_chars_long_file_name_118 -a/b/one_31_chars_long_file_name_119 -a/b/one_31_chars_long_file_name_120 -a/b/one_31_chars_long_file_name_121 -a/b/one_31_chars_long_file_name_122 -a/b/one_31_chars_long_file_name_123 -a/b/one_31_chars_long_file_name_124 -a/b/one_31_chars_long_file_name_125 -a/b/one_31_chars_long_file_name_126 -a/b/one_31_chars_long_file_name_127 -a/b/one_31_chars_long_file_name_128 -a/b/one_31_chars_long_file_name_129 -a/b/one_31_chars_long_file_name_130 -a/b/one_31_chars_long_file_name_131 -a/b/one_31_chars_long_file_name_132 -a/b/one_31_chars_long_file_name_133 -a/b/one_31_chars_long_file_name_134 -a/b/one_31_chars_long_file_name_135 -a/b/one_31_chars_long_file_name_136 -a/b/one_31_chars_long_file_name_137 -a/b/one_31_chars_long_file_name_138 -a/b/one_31_chars_long_file_name_139 -a/b/one_31_chars_long_file_name_140 -a/b/one_31_chars_long_file_name_141 -a/b/one_31_chars_long_file_name_142 -Incremental dump -a/ -a/c/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr04.at:34: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * - echo 1 > "$at_status_file" - exit 1 +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir/ +dir/file +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/incr04.at:34: + { $at_traceoff +$as_echo "$at_srcdir/extrac08.at:36: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -14163,30 +14860,40 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * - -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i); - }' < /dev/null | genfile --files-from - - -sleep 1 - -echo \"Initial dump\" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo \"Incremental dump\" -tar cvf a1.tar -g a.sna a +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir )" -echo incr04.at:34 >"$at_check_line_file" +echo extrac08.at:36 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * -if test -n "$at_trace_this"; then - ( $at_traceon; +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -14195,26 +14902,6399 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir/ +dir/file +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/extrac08.at:36: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +)" +echo extrac08.at:36 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +umask 000 +mkdir dir +chmod 755 dir +echo bla > dir/file +tar cf test.tar dir +chmod 700 dir +tar xfv test.tar +genfile --stat=mode.777 dir +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir/ +dir/file +755 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/extrac08.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_31 +#AT_START_32 +# 32. label01.at:19: single-volume label +at_setup_line='label01.at:19' +at_desc="single-volume label" +$at_quiet $as_echo_n " 32: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "32. label01.at:19: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/label01.at:22: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +)" +echo label01.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Test +foo +bar +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/label01.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/label01.at:22: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +)" +echo label01.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Test +foo +bar +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/label01.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/label01.at:22: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +)" +echo label01.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +genfile --file foo +genfile --file bar +tar -cf archive --label=Test foo bar +tar tf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Test +foo +bar +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/label01.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_32 +#AT_START_33 +# 33. label02.at:19: multi-volume label +at_setup_line='label02.at:19' +at_desc="multi-volume label" +$at_quiet $as_echo_n " 33: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "33. label02.at:19: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/label02.at:22: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +)" +echo label02.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Test Volume 1 +foo +bar +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/label02.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/label02.at:22: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +)" +echo label02.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Test Volume 1 +foo +bar +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/label02.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/label02.at:22: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +)" +echo label02.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +exec <&- +genfile --length 0 --file foo +genfile --length 12288 --file bar +genfile --length 12288 --file baz +tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz +tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Test Volume 1 +foo +bar +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/label02.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_33 +#AT_START_34 +# 34. backup01.at:33: extracting existing dir with --backup +at_setup_line='backup01.at:33' +at_desc="extracting existing dir with --backup" +$at_quiet $as_echo_n " 34: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "34. backup01.at:33: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/backup01.at:36: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +)" +echo backup01.at:36 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir1/ +dir1/file1 +Renaming \`dir1/file1' to \`dir1/file1~' +dir2/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/backup01.at:36: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +)" +echo backup01.at:36 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir1/ +dir1/file1 +Renaming \`dir1/file1' to \`dir1/file1~' +dir2/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/backup01.at:36: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +)" +echo backup01.at:36 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir1/ +dir1/file1 +Renaming \`dir1/file1' to \`dir1/file1~' +dir2/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/backup01.at:36: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +)" +echo backup01.at:36 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir1/ +dir1/file1 +Renaming \`dir1/file1' to \`dir1/file1~' +dir2/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/backup01.at:36: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +)" +echo backup01.at:36 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir1 dir2 +echo bla > dir1/file1 +tar cf test.tar dir1 dir2 +tar xfv test.tar --backup +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "dir1/ +dir1/file1 +Renaming \`dir1/file1' to \`dir1/file1~' +dir2/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/backup01.at:36" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_34 +#AT_START_35 +# 35. gzip.at:23: gzip +at_setup_line='gzip.at:23' +at_desc="gzip" +$at_quiet $as_echo_n " 35: $at_desc " +at_xfail=no +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "35. gzip.at:23: testing ..." + $at_traceon + + + +unset TAR_OPTIONS + +{ $at_traceoff +$as_echo "$at_srcdir/gzip.at:28: + +cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 + +tar xfvz /dev/null +" +echo gzip.at:28 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; + +cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 + +tar xfvz /dev/null + ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; + +cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 + +tar xfvz /dev/null + ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo " +gzip: stdin: unexpected end of file +tar: Child returned status 1 +tar: Error is not recoverable: exiting now +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 2 $at_status "$at_srcdir/gzip.at:28" + +$at_failed && at_func_log_failure +$at_traceon; } + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_35 +#AT_START_36 +# 36. incremental.at:23: incremental +at_setup_line='incremental.at:23' +at_desc="incremental" +$at_quiet $as_echo_n " 36: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "36. incremental.at:23: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/incremental.at:26: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created \`on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +)" +echo incremental.at:26 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created `on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created `on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "structure/ +separator +structure/ +structure/file +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incremental.at:26" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incremental.at:26: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created \`on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +)" +echo incremental.at:26 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created `on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created `on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "structure/ +separator +structure/ +structure/file +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incremental.at:26" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incremental.at:26: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created \`on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +)" +echo incremental.at:26 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created `on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir structure +echo x >structure/file + +# On Nextstep (and perhaps other 4.3BSD systems), +# a newly created file's ctime isn't updated +# until the next sync or stat operation on the file. +ls -l structure/file >/dev/null + +# If the time of an initial backup and the creation time of a file contained +# in that backup are the same, the file will be backed up again when an +# incremental backup is done, because the incremental backup backs up +# files created `on or after' the initial backup time. Without the sleep +# command, behaviour of tar becomes variable, depending whether the system +# clock ticked over to the next second between creating the file and +# backing it up. +sleep 1 + +tar cf archive --listed=list structure +tar cfv archive --listed=list structure +echo separator +# ReiserFS often offsets the timestamps of newly created files +# 1 second to the past. Try to compensate for it, until a better +# solution is found. +sleep 2 +echo y >structure/file +tar cfv archive --listed=list structure +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "structure/ +separator +structure/ +structure/file +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incremental.at:26" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_36 +#AT_START_37 +# 37. incr01.at:27: restore broken symlinks from incremental +at_setup_line='incr01.at:27' +at_desc="restore broken symlinks from incremental" +$at_quiet $as_echo_n " 37: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "37. incr01.at:27: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/incr01.at:30: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +\$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +)" +echo incr01.at:30 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/bar +separator +directory/ +tar: Deleting \`directory/bar' +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr01.at:30" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr01.at:30: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +\$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +)" +echo incr01.at:30 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/bar +separator +directory/ +tar: Deleting \`directory/bar' +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr01.at:30" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr01.at:30: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +\$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +)" +echo incr01.at:30 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir directory +$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir directory +$as_ln_s foo directory/bar + +tar -cf archive.0 -g db directory +rm directory/bar +tar -cf archive.1 -g db directory + +mv directory orig + +tar xvfg archive.0 /dev/null +echo separator +tar xvfg archive.1 /dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/bar +separator +directory/ +tar: Deleting \`directory/bar' +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr01.at:30" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_37 +#AT_START_38 +# 38. incr02.at:32: restoring timestamps from incremental +at_setup_line='incr02.at:32' +at_desc="restoring timestamps from incremental" +$at_quiet $as_echo_n " 38: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "38. incr02.at:32: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/incr02.at:35: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, \`dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +)" +echo incr02.at:35 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, `dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, `dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr02.at:35" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr02.at:35: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, \`dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +)" +echo incr02.at:35 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, `dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, `dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr02.at:35" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr02.at:35: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, \`dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# \`subdir1' prior to restoring \`dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +)" +echo incr02.at:35 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, `dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +# Create directory structure +mkdir dir +mkdir dir/subdir1 +mkdir dir/subdir2 +genfile --length 10 --file dir/subdir1/file + +# Save mtime for later comparison +genfile --stat=mtime dir/subdir1 > ts + +# Create an archive. Using incremental mode makes sure the +# archive will have a directory-first member ordering, +# i.e.: +# dir/ +# dir/subdir1/ +# dir/subdir2/ +# dir/subdir1/foofile +# +# When restoring from this directory structure, `dir/subdir2/' used to +# trigger apply_nonancestor_delayed_set_stat() which restored stats for +# `subdir1' prior to restoring `dir/subdir1/foofile'. Then, restoring the +# latter clobbered the directory timestamp. + +tar -cf archive -g db dir + +# Move away the directory +mv dir orig + +# Wait enough time for timestamps to differ in case of failure. +sleep 5 + +# Restore the directory +tar -xf archive dir + +# Check the timestamp +genfile --stat=mtime dir/subdir1 | diff ts - +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr02.at:35" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_38 +#AT_START_39 +# 39. listed01.at:26: --listed for individual files +at_setup_line='listed01.at:26' +at_desc="--listed for individual files" +$at_quiet $as_echo_n " 39: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "39. listed01.at:26: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/listed01.at:29: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +# Let the things settle +sleep 1 + +tar --create \\ + --file=archive.1 \\ + --listed-incremental=listing \\ + directory/file* + +tar tf archive.1 || exit 1 + +sleep 2 + +genfile --length 10240 --pattern zeros --file directory/file2 + +echo \"separator\" +cp listing listing.old +tar --create \\ + --file=archive.2 \\ + --listed-incremental=listing \\ + directory/file* || exit 1 + +tar tf archive.2 || exit 1 +)" +echo listed01.at:29 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +# Let the things settle +sleep 1 + +tar --create \ + --file=archive.1 \ + --listed-incremental=listing \ + directory/file* + +tar tf archive.1 || exit 1 + +sleep 2 + +genfile --length 10240 --pattern zeros --file directory/file2 + +echo "separator" +cp listing listing.old +tar --create \ + --file=archive.2 \ + --listed-incremental=listing \ + directory/file* || exit 1 + +tar tf archive.2 || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +# Let the things settle +sleep 1 + +tar --create \ + --file=archive.1 \ + --listed-incremental=listing \ + directory/file* + +tar tf archive.1 || exit 1 + +sleep 2 + +genfile --length 10240 --pattern zeros --file directory/file2 + +echo "separator" +cp listing listing.old +tar --create \ + --file=archive.2 \ + --listed-incremental=listing \ + directory/file* || exit 1 + +tar tf archive.2 || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/file1 +separator +directory/file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/listed01.at:29" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/listed01.at:29: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +# Let the things settle +sleep 1 + +tar --create \\ + --file=archive.1 \\ + --listed-incremental=listing \\ + directory/file* + +tar tf archive.1 || exit 1 + +sleep 2 + +genfile --length 10240 --pattern zeros --file directory/file2 + +echo \"separator\" +cp listing listing.old +tar --create \\ + --file=archive.2 \\ + --listed-incremental=listing \\ + directory/file* || exit 1 + +tar tf archive.2 || exit 1 +)" +echo listed01.at:29 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +# Let the things settle +sleep 1 + +tar --create \ + --file=archive.1 \ + --listed-incremental=listing \ + directory/file* + +tar tf archive.1 || exit 1 + +sleep 2 + +genfile --length 10240 --pattern zeros --file directory/file2 + +echo "separator" +cp listing listing.old +tar --create \ + --file=archive.2 \ + --listed-incremental=listing \ + directory/file* || exit 1 + +tar tf archive.2 || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +# Let the things settle +sleep 1 + +tar --create \ + --file=archive.1 \ + --listed-incremental=listing \ + directory/file* + +tar tf archive.1 || exit 1 + +sleep 2 + +genfile --length 10240 --pattern zeros --file directory/file2 + +echo "separator" +cp listing listing.old +tar --create \ + --file=archive.2 \ + --listed-incremental=listing \ + directory/file* || exit 1 + +tar tf archive.2 || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/file1 +separator +directory/file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/listed01.at:29" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_39 +#AT_START_40 +# 40. listed02.at:28: working --listed +at_setup_line='listed02.at:28' +at_desc="working --listed" +$at_quiet $as_echo_n " 40: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "40. listed02.at:28: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/listed02.at:31: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +echo Create directories + +mkdir tart +sleep 1 +mkdir tart/c0 +sleep 1 +mkdir tart/c1 +sleep 1 + +for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 +do + echo File \$file > \$file + sleep 1 +done + +sleep 1 +echo Creating main archive +echo >&2 \"Creating main archive\" +tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 + +# The above prints two lines to stderr announcing the new directories c0 and c1. +# Ensure that they appear in this script's stderr in sorted order. +sort err 1>&2; rm -f err + +sleep 1 +echo Modifying filesystem +rm tart/a1 + +mv tart/b1 tart/b2 +mv tart/c1 tart/c2 +touch tart/c2/ca3 + +echo Directory contents +find tart -print | sort 2>/dev/null + +sleep 1 +echo Creating incremental archive +echo >&2 \"Creating incremental archive\" +cp -p tart.incr1 tart.incr2 +tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 + +sleep 1 + +rm -rf tart/* +echo Extracting main archive +echo >&2 \"Extracting main archive\" +tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 +echo Extracting incremental archive +# This command should produce three messages about deletion +# of the existing files, that may appear in any order. Piping +# to sort makes sure we don't depend on any particular ordering. +tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null + +echo Final files: +find tart -print | sort 2>/dev/null +)" +echo listed02.at:31 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +echo Create directories + +mkdir tart +sleep 1 +mkdir tart/c0 +sleep 1 +mkdir tart/c1 +sleep 1 + +for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 +do + echo File $file > $file + sleep 1 +done + +sleep 1 +echo Creating main archive +echo >&2 "Creating main archive" +tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 + +# The above prints two lines to stderr announcing the new directories c0 and c1. +# Ensure that they appear in this script's stderr in sorted order. +sort err 1>&2; rm -f err + +sleep 1 +echo Modifying filesystem +rm tart/a1 + +mv tart/b1 tart/b2 +mv tart/c1 tart/c2 +touch tart/c2/ca3 + +echo Directory contents +find tart -print | sort 2>/dev/null + +sleep 1 +echo Creating incremental archive +echo >&2 "Creating incremental archive" +cp -p tart.incr1 tart.incr2 +tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 + +sleep 1 + +rm -rf tart/* +echo Extracting main archive +echo >&2 "Extracting main archive" +tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 +echo Extracting incremental archive +# This command should produce three messages about deletion +# of the existing files, that may appear in any order. Piping +# to sort makes sure we don't depend on any particular ordering. +tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null + +echo Final files: +find tart -print | sort 2>/dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +echo Create directories + +mkdir tart +sleep 1 +mkdir tart/c0 +sleep 1 +mkdir tart/c1 +sleep 1 + +for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 +do + echo File $file > $file + sleep 1 +done + +sleep 1 +echo Creating main archive +echo >&2 "Creating main archive" +tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 + +# The above prints two lines to stderr announcing the new directories c0 and c1. +# Ensure that they appear in this script's stderr in sorted order. +sort err 1>&2; rm -f err + +sleep 1 +echo Modifying filesystem +rm tart/a1 + +mv tart/b1 tart/b2 +mv tart/c1 tart/c2 +touch tart/c2/ca3 + +echo Directory contents +find tart -print | sort 2>/dev/null + +sleep 1 +echo Creating incremental archive +echo >&2 "Creating incremental archive" +cp -p tart.incr1 tart.incr2 +tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 + +sleep 1 + +rm -rf tart/* +echo Extracting main archive +echo >&2 "Extracting main archive" +tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 +echo Extracting incremental archive +# This command should produce three messages about deletion +# of the existing files, that may appear in any order. Piping +# to sort makes sure we don't depend on any particular ordering. +tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null + +echo Final files: +find tart -print | sort 2>/dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "Creating main archive +tar: tart/c0: Directory is new +tar: tart/c1: Directory is new +tar: tart: Directory is new +Creating incremental archive +tar: tart/c2: Directory has been renamed from \`tart/c1' +Extracting main archive +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Create directories +Creating main archive +tart/ +tart/c0/ +tart/c1/ +tart/a1 +tart/b1 +tart/c0/cq1 +tart/c0/cq2 +tart/c1/ca1 +tart/c1/ca2 +Modifying filesystem +Directory contents +tart +tart/b2 +tart/c0 +tart/c0/cq1 +tart/c0/cq2 +tart/c2 +tart/c2/ca1 +tart/c2/ca2 +tart/c2/ca3 +Creating incremental archive +tart/ +tart/c0/ +tart/c2/ +tart/b2 +tart/c2/ca3 +Extracting main archive +tart/ +tart/c0/ +tart/c1/ +tart/a1 +tart/b1 +tart/c0/cq1 +tart/c0/cq2 +tart/c1/ca1 +tart/c1/ca2 +Extracting incremental archive +tar: Deleting \`tart/a1' +tar: Deleting \`tart/b1' +tart/ +tart/b2 +tart/c0/ +tart/c2/ +tart/c2/ca3 +Final files: +tart +tart/b2 +tart/c0 +tart/c0/cq1 +tart/c0/cq2 +tart/c2 +tart/c2/ca1 +tart/c2/ca2 +tart/c2/ca3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/listed02.at:31" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/listed02.at:31: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +echo Create directories + +mkdir tart +sleep 1 +mkdir tart/c0 +sleep 1 +mkdir tart/c1 +sleep 1 + +for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 +do + echo File \$file > \$file + sleep 1 +done + +sleep 1 +echo Creating main archive +echo >&2 \"Creating main archive\" +tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 + +# The above prints two lines to stderr announcing the new directories c0 and c1. +# Ensure that they appear in this script's stderr in sorted order. +sort err 1>&2; rm -f err + +sleep 1 +echo Modifying filesystem +rm tart/a1 + +mv tart/b1 tart/b2 +mv tart/c1 tart/c2 +touch tart/c2/ca3 + +echo Directory contents +find tart -print | sort 2>/dev/null + +sleep 1 +echo Creating incremental archive +echo >&2 \"Creating incremental archive\" +cp -p tart.incr1 tart.incr2 +tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 + +sleep 1 + +rm -rf tart/* +echo Extracting main archive +echo >&2 \"Extracting main archive\" +tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 +echo Extracting incremental archive +# This command should produce three messages about deletion +# of the existing files, that may appear in any order. Piping +# to sort makes sure we don't depend on any particular ordering. +tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null + +echo Final files: +find tart -print | sort 2>/dev/null +)" +echo listed02.at:31 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +echo Create directories + +mkdir tart +sleep 1 +mkdir tart/c0 +sleep 1 +mkdir tart/c1 +sleep 1 + +for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 +do + echo File $file > $file + sleep 1 +done + +sleep 1 +echo Creating main archive +echo >&2 "Creating main archive" +tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 + +# The above prints two lines to stderr announcing the new directories c0 and c1. +# Ensure that they appear in this script's stderr in sorted order. +sort err 1>&2; rm -f err + +sleep 1 +echo Modifying filesystem +rm tart/a1 + +mv tart/b1 tart/b2 +mv tart/c1 tart/c2 +touch tart/c2/ca3 + +echo Directory contents +find tart -print | sort 2>/dev/null + +sleep 1 +echo Creating incremental archive +echo >&2 "Creating incremental archive" +cp -p tart.incr1 tart.incr2 +tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 + +sleep 1 + +rm -rf tart/* +echo Extracting main archive +echo >&2 "Extracting main archive" +tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 +echo Extracting incremental archive +# This command should produce three messages about deletion +# of the existing files, that may appear in any order. Piping +# to sort makes sure we don't depend on any particular ordering. +tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null + +echo Final files: +find tart -print | sort 2>/dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +echo Create directories + +mkdir tart +sleep 1 +mkdir tart/c0 +sleep 1 +mkdir tart/c1 +sleep 1 + +for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2 +do + echo File $file > $file + sleep 1 +done + +sleep 1 +echo Creating main archive +echo >&2 "Creating main archive" +tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1 + +# The above prints two lines to stderr announcing the new directories c0 and c1. +# Ensure that they appear in this script's stderr in sorted order. +sort err 1>&2; rm -f err + +sleep 1 +echo Modifying filesystem +rm tart/a1 + +mv tart/b1 tart/b2 +mv tart/c1 tart/c2 +touch tart/c2/ca3 + +echo Directory contents +find tart -print | sort 2>/dev/null + +sleep 1 +echo Creating incremental archive +echo >&2 "Creating incremental archive" +cp -p tart.incr1 tart.incr2 +tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1 + +sleep 1 + +rm -rf tart/* +echo Extracting main archive +echo >&2 "Extracting main archive" +tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1 +echo Extracting incremental archive +# This command should produce three messages about deletion +# of the existing files, that may appear in any order. Piping +# to sort makes sure we don't depend on any particular ordering. +tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null + +echo Final files: +find tart -print | sort 2>/dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "Creating main archive +tar: tart/c0: Directory is new +tar: tart/c1: Directory is new +tar: tart: Directory is new +Creating incremental archive +tar: tart/c2: Directory has been renamed from \`tart/c1' +Extracting main archive +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Create directories +Creating main archive +tart/ +tart/c0/ +tart/c1/ +tart/a1 +tart/b1 +tart/c0/cq1 +tart/c0/cq2 +tart/c1/ca1 +tart/c1/ca2 +Modifying filesystem +Directory contents +tart +tart/b2 +tart/c0 +tart/c0/cq1 +tart/c0/cq2 +tart/c2 +tart/c2/ca1 +tart/c2/ca2 +tart/c2/ca3 +Creating incremental archive +tart/ +tart/c0/ +tart/c2/ +tart/b2 +tart/c2/ca3 +Extracting main archive +tart/ +tart/c0/ +tart/c1/ +tart/a1 +tart/b1 +tart/c0/cq1 +tart/c0/cq2 +tart/c1/ca1 +tart/c1/ca2 +Extracting incremental archive +tar: Deleting \`tart/a1' +tar: Deleting \`tart/b1' +tart/ +tart/b2 +tart/c0/ +tart/c2/ +tart/c2/ca3 +Final files: +tart +tart/b2 +tart/c0 +tart/c0/cq1 +tart/c0/cq2 +tart/c2 +tart/c2/ca1 +tart/c2/ca2 +tart/c2/ca3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/listed02.at:31" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_40 +#AT_START_41 +# 41. incr03.at:28: renamed files in incrementals +at_setup_line='incr03.at:28' +at_desc="renamed files in incrementals" +$at_quiet $as_echo_n " 41: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "41. incr03.at:28: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/incr03.at:31: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +)" +echo incr03.at:31 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Listing of archive.1 +directory/ +directory/x +directory/y +Listing of archive.2 +directory/ +directory/z +Directory after first restore +directory +directory/x +directory/y +Directory after second restore +directory +directory/y +directory/z +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr03.at:31" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr03.at:31: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +)" +echo incr03.at:31 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Listing of archive.1 +directory/ +directory/x +directory/y +Listing of archive.2 +directory/ +directory/z +Directory after first restore +directory +directory/x +directory/y +Directory after second restore +directory +directory/y +directory/z +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr03.at:31" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr03.at:31: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +)" +echo incr03.at:31 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --file=directory/x +genfile --file=directory/y + +sleep 1 + +tar -cf archive.1 -g db directory + +mv directory/x directory/z +cp db db.old +tar -cf archive.2 -g db directory + +mv directory orig + +echo Listing of archive.1 +tar -tf archive.1 | sort +echo Listing of archive.2 +tar -tf archive.2 | sort + +echo Directory after first restore +tar -xf archive.1 -g db +find directory | sort + +echo Directory after second restore +tar -xf archive.2 -g db +find directory | sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Listing of archive.1 +directory/ +directory/x +directory/y +Listing of archive.2 +directory/ +directory/z +Directory after first restore +directory +directory/x +directory/y +Directory after second restore +directory +directory/y +directory/z +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr03.at:31" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_41 +#AT_START_42 +# 42. incr04.at:29: proper icontents initialization +at_setup_line='incr04.at:29' +at_desc="proper icontents initialization" +$at_quiet $as_echo_n " 42: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "42. incr04.at:29: testing ..." + $at_traceon + + + + + + + + { $at_traceoff +$as_echo "$at_srcdir/incr04.at:34: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo \"Initial dump\" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo \"Incremental dump\" +tar cvf a1.tar -g a.sna a +)" +echo incr04.at:34 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf("a/b/one_31_chars_long_file_name_%03d\n", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo "Initial dump" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo "Incremental dump" +tar cvf a1.tar -g a.sna a +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf("a/b/one_31_chars_long_file_name_%03d\n", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo "Initial dump" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo "Incremental dump" +tar cvf a1.tar -g a.sna a +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: a: Directory is new +tar: a/b: Directory is new +tar: a/c: Directory has been renamed from \`a/b' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Initial dump +a/ +a/b/ +a/b/one_31_chars_long_file_name_001 +a/b/one_31_chars_long_file_name_002 +a/b/one_31_chars_long_file_name_003 +a/b/one_31_chars_long_file_name_004 +a/b/one_31_chars_long_file_name_005 +a/b/one_31_chars_long_file_name_006 +a/b/one_31_chars_long_file_name_007 +a/b/one_31_chars_long_file_name_008 +a/b/one_31_chars_long_file_name_009 +a/b/one_31_chars_long_file_name_010 +a/b/one_31_chars_long_file_name_011 +a/b/one_31_chars_long_file_name_012 +a/b/one_31_chars_long_file_name_013 +a/b/one_31_chars_long_file_name_014 +a/b/one_31_chars_long_file_name_015 +a/b/one_31_chars_long_file_name_016 +a/b/one_31_chars_long_file_name_017 +a/b/one_31_chars_long_file_name_018 +a/b/one_31_chars_long_file_name_019 +a/b/one_31_chars_long_file_name_020 +a/b/one_31_chars_long_file_name_021 +a/b/one_31_chars_long_file_name_022 +a/b/one_31_chars_long_file_name_023 +a/b/one_31_chars_long_file_name_024 +a/b/one_31_chars_long_file_name_025 +a/b/one_31_chars_long_file_name_026 +a/b/one_31_chars_long_file_name_027 +a/b/one_31_chars_long_file_name_028 +a/b/one_31_chars_long_file_name_029 +a/b/one_31_chars_long_file_name_030 +a/b/one_31_chars_long_file_name_031 +a/b/one_31_chars_long_file_name_032 +a/b/one_31_chars_long_file_name_033 +a/b/one_31_chars_long_file_name_034 +a/b/one_31_chars_long_file_name_035 +a/b/one_31_chars_long_file_name_036 +a/b/one_31_chars_long_file_name_037 +a/b/one_31_chars_long_file_name_038 +a/b/one_31_chars_long_file_name_039 +a/b/one_31_chars_long_file_name_040 +a/b/one_31_chars_long_file_name_041 +a/b/one_31_chars_long_file_name_042 +a/b/one_31_chars_long_file_name_043 +a/b/one_31_chars_long_file_name_044 +a/b/one_31_chars_long_file_name_045 +a/b/one_31_chars_long_file_name_046 +a/b/one_31_chars_long_file_name_047 +a/b/one_31_chars_long_file_name_048 +a/b/one_31_chars_long_file_name_049 +a/b/one_31_chars_long_file_name_050 +a/b/one_31_chars_long_file_name_051 +a/b/one_31_chars_long_file_name_052 +a/b/one_31_chars_long_file_name_053 +a/b/one_31_chars_long_file_name_054 +a/b/one_31_chars_long_file_name_055 +a/b/one_31_chars_long_file_name_056 +a/b/one_31_chars_long_file_name_057 +a/b/one_31_chars_long_file_name_058 +a/b/one_31_chars_long_file_name_059 +a/b/one_31_chars_long_file_name_060 +a/b/one_31_chars_long_file_name_061 +a/b/one_31_chars_long_file_name_062 +a/b/one_31_chars_long_file_name_063 +a/b/one_31_chars_long_file_name_064 +a/b/one_31_chars_long_file_name_065 +a/b/one_31_chars_long_file_name_066 +a/b/one_31_chars_long_file_name_067 +a/b/one_31_chars_long_file_name_068 +a/b/one_31_chars_long_file_name_069 +a/b/one_31_chars_long_file_name_070 +a/b/one_31_chars_long_file_name_071 +a/b/one_31_chars_long_file_name_072 +a/b/one_31_chars_long_file_name_073 +a/b/one_31_chars_long_file_name_074 +a/b/one_31_chars_long_file_name_075 +a/b/one_31_chars_long_file_name_076 +a/b/one_31_chars_long_file_name_077 +a/b/one_31_chars_long_file_name_078 +a/b/one_31_chars_long_file_name_079 +a/b/one_31_chars_long_file_name_080 +a/b/one_31_chars_long_file_name_081 +a/b/one_31_chars_long_file_name_082 +a/b/one_31_chars_long_file_name_083 +a/b/one_31_chars_long_file_name_084 +a/b/one_31_chars_long_file_name_085 +a/b/one_31_chars_long_file_name_086 +a/b/one_31_chars_long_file_name_087 +a/b/one_31_chars_long_file_name_088 +a/b/one_31_chars_long_file_name_089 +a/b/one_31_chars_long_file_name_090 +a/b/one_31_chars_long_file_name_091 +a/b/one_31_chars_long_file_name_092 +a/b/one_31_chars_long_file_name_093 +a/b/one_31_chars_long_file_name_094 +a/b/one_31_chars_long_file_name_095 +a/b/one_31_chars_long_file_name_096 +a/b/one_31_chars_long_file_name_097 +a/b/one_31_chars_long_file_name_098 +a/b/one_31_chars_long_file_name_099 +a/b/one_31_chars_long_file_name_100 +a/b/one_31_chars_long_file_name_101 +a/b/one_31_chars_long_file_name_102 +a/b/one_31_chars_long_file_name_103 +a/b/one_31_chars_long_file_name_104 +a/b/one_31_chars_long_file_name_105 +a/b/one_31_chars_long_file_name_106 +a/b/one_31_chars_long_file_name_107 +a/b/one_31_chars_long_file_name_108 +a/b/one_31_chars_long_file_name_109 +a/b/one_31_chars_long_file_name_110 +a/b/one_31_chars_long_file_name_111 +a/b/one_31_chars_long_file_name_112 +a/b/one_31_chars_long_file_name_113 +a/b/one_31_chars_long_file_name_114 +a/b/one_31_chars_long_file_name_115 +a/b/one_31_chars_long_file_name_116 +a/b/one_31_chars_long_file_name_117 +a/b/one_31_chars_long_file_name_118 +a/b/one_31_chars_long_file_name_119 +a/b/one_31_chars_long_file_name_120 +a/b/one_31_chars_long_file_name_121 +a/b/one_31_chars_long_file_name_122 +a/b/one_31_chars_long_file_name_123 +a/b/one_31_chars_long_file_name_124 +a/b/one_31_chars_long_file_name_125 +a/b/one_31_chars_long_file_name_126 +a/b/one_31_chars_long_file_name_127 +a/b/one_31_chars_long_file_name_128 +a/b/one_31_chars_long_file_name_129 +a/b/one_31_chars_long_file_name_130 +a/b/one_31_chars_long_file_name_131 +a/b/one_31_chars_long_file_name_132 +a/b/one_31_chars_long_file_name_133 +a/b/one_31_chars_long_file_name_134 +a/b/one_31_chars_long_file_name_135 +a/b/one_31_chars_long_file_name_136 +a/b/one_31_chars_long_file_name_137 +a/b/one_31_chars_long_file_name_138 +a/b/one_31_chars_long_file_name_139 +a/b/one_31_chars_long_file_name_140 +a/b/one_31_chars_long_file_name_141 +a/b/one_31_chars_long_file_name_142 +Incremental dump +a/ +a/c/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr04.at:34" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr04.at:34: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo \"Initial dump\" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo \"Incremental dump\" +tar cvf a1.tar -g a.sna a +)" +echo incr04.at:34 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf("a/b/one_31_chars_long_file_name_%03d\n", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo "Initial dump" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo "Incremental dump" +tar cvf a1.tar -g a.sna a +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf("a/b/one_31_chars_long_file_name_%03d\n", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo "Initial dump" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo "Incremental dump" +tar cvf a1.tar -g a.sna a +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: a: Directory is new +tar: a/b: Directory is new +tar: a/c: Directory has been renamed from \`a/b' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Initial dump +a/ +a/b/ +a/b/one_31_chars_long_file_name_001 +a/b/one_31_chars_long_file_name_002 +a/b/one_31_chars_long_file_name_003 +a/b/one_31_chars_long_file_name_004 +a/b/one_31_chars_long_file_name_005 +a/b/one_31_chars_long_file_name_006 +a/b/one_31_chars_long_file_name_007 +a/b/one_31_chars_long_file_name_008 +a/b/one_31_chars_long_file_name_009 +a/b/one_31_chars_long_file_name_010 +a/b/one_31_chars_long_file_name_011 +a/b/one_31_chars_long_file_name_012 +a/b/one_31_chars_long_file_name_013 +a/b/one_31_chars_long_file_name_014 +a/b/one_31_chars_long_file_name_015 +a/b/one_31_chars_long_file_name_016 +a/b/one_31_chars_long_file_name_017 +a/b/one_31_chars_long_file_name_018 +a/b/one_31_chars_long_file_name_019 +a/b/one_31_chars_long_file_name_020 +a/b/one_31_chars_long_file_name_021 +a/b/one_31_chars_long_file_name_022 +a/b/one_31_chars_long_file_name_023 +a/b/one_31_chars_long_file_name_024 +a/b/one_31_chars_long_file_name_025 +a/b/one_31_chars_long_file_name_026 +a/b/one_31_chars_long_file_name_027 +a/b/one_31_chars_long_file_name_028 +a/b/one_31_chars_long_file_name_029 +a/b/one_31_chars_long_file_name_030 +a/b/one_31_chars_long_file_name_031 +a/b/one_31_chars_long_file_name_032 +a/b/one_31_chars_long_file_name_033 +a/b/one_31_chars_long_file_name_034 +a/b/one_31_chars_long_file_name_035 +a/b/one_31_chars_long_file_name_036 +a/b/one_31_chars_long_file_name_037 +a/b/one_31_chars_long_file_name_038 +a/b/one_31_chars_long_file_name_039 +a/b/one_31_chars_long_file_name_040 +a/b/one_31_chars_long_file_name_041 +a/b/one_31_chars_long_file_name_042 +a/b/one_31_chars_long_file_name_043 +a/b/one_31_chars_long_file_name_044 +a/b/one_31_chars_long_file_name_045 +a/b/one_31_chars_long_file_name_046 +a/b/one_31_chars_long_file_name_047 +a/b/one_31_chars_long_file_name_048 +a/b/one_31_chars_long_file_name_049 +a/b/one_31_chars_long_file_name_050 +a/b/one_31_chars_long_file_name_051 +a/b/one_31_chars_long_file_name_052 +a/b/one_31_chars_long_file_name_053 +a/b/one_31_chars_long_file_name_054 +a/b/one_31_chars_long_file_name_055 +a/b/one_31_chars_long_file_name_056 +a/b/one_31_chars_long_file_name_057 +a/b/one_31_chars_long_file_name_058 +a/b/one_31_chars_long_file_name_059 +a/b/one_31_chars_long_file_name_060 +a/b/one_31_chars_long_file_name_061 +a/b/one_31_chars_long_file_name_062 +a/b/one_31_chars_long_file_name_063 +a/b/one_31_chars_long_file_name_064 +a/b/one_31_chars_long_file_name_065 +a/b/one_31_chars_long_file_name_066 +a/b/one_31_chars_long_file_name_067 +a/b/one_31_chars_long_file_name_068 +a/b/one_31_chars_long_file_name_069 +a/b/one_31_chars_long_file_name_070 +a/b/one_31_chars_long_file_name_071 +a/b/one_31_chars_long_file_name_072 +a/b/one_31_chars_long_file_name_073 +a/b/one_31_chars_long_file_name_074 +a/b/one_31_chars_long_file_name_075 +a/b/one_31_chars_long_file_name_076 +a/b/one_31_chars_long_file_name_077 +a/b/one_31_chars_long_file_name_078 +a/b/one_31_chars_long_file_name_079 +a/b/one_31_chars_long_file_name_080 +a/b/one_31_chars_long_file_name_081 +a/b/one_31_chars_long_file_name_082 +a/b/one_31_chars_long_file_name_083 +a/b/one_31_chars_long_file_name_084 +a/b/one_31_chars_long_file_name_085 +a/b/one_31_chars_long_file_name_086 +a/b/one_31_chars_long_file_name_087 +a/b/one_31_chars_long_file_name_088 +a/b/one_31_chars_long_file_name_089 +a/b/one_31_chars_long_file_name_090 +a/b/one_31_chars_long_file_name_091 +a/b/one_31_chars_long_file_name_092 +a/b/one_31_chars_long_file_name_093 +a/b/one_31_chars_long_file_name_094 +a/b/one_31_chars_long_file_name_095 +a/b/one_31_chars_long_file_name_096 +a/b/one_31_chars_long_file_name_097 +a/b/one_31_chars_long_file_name_098 +a/b/one_31_chars_long_file_name_099 +a/b/one_31_chars_long_file_name_100 +a/b/one_31_chars_long_file_name_101 +a/b/one_31_chars_long_file_name_102 +a/b/one_31_chars_long_file_name_103 +a/b/one_31_chars_long_file_name_104 +a/b/one_31_chars_long_file_name_105 +a/b/one_31_chars_long_file_name_106 +a/b/one_31_chars_long_file_name_107 +a/b/one_31_chars_long_file_name_108 +a/b/one_31_chars_long_file_name_109 +a/b/one_31_chars_long_file_name_110 +a/b/one_31_chars_long_file_name_111 +a/b/one_31_chars_long_file_name_112 +a/b/one_31_chars_long_file_name_113 +a/b/one_31_chars_long_file_name_114 +a/b/one_31_chars_long_file_name_115 +a/b/one_31_chars_long_file_name_116 +a/b/one_31_chars_long_file_name_117 +a/b/one_31_chars_long_file_name_118 +a/b/one_31_chars_long_file_name_119 +a/b/one_31_chars_long_file_name_120 +a/b/one_31_chars_long_file_name_121 +a/b/one_31_chars_long_file_name_122 +a/b/one_31_chars_long_file_name_123 +a/b/one_31_chars_long_file_name_124 +a/b/one_31_chars_long_file_name_125 +a/b/one_31_chars_long_file_name_126 +a/b/one_31_chars_long_file_name_127 +a/b/one_31_chars_long_file_name_128 +a/b/one_31_chars_long_file_name_129 +a/b/one_31_chars_long_file_name_130 +a/b/one_31_chars_long_file_name_131 +a/b/one_31_chars_long_file_name_132 +a/b/one_31_chars_long_file_name_133 +a/b/one_31_chars_long_file_name_134 +a/b/one_31_chars_long_file_name_135 +a/b/one_31_chars_long_file_name_136 +a/b/one_31_chars_long_file_name_137 +a/b/one_31_chars_long_file_name_138 +a/b/one_31_chars_long_file_name_139 +a/b/one_31_chars_long_file_name_140 +a/b/one_31_chars_long_file_name_141 +a/b/one_31_chars_long_file_name_142 +Incremental dump +a/ +a/c/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr04.at:34" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr04.at:34: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo \"Initial dump\" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo \"Incremental dump\" +tar cvf a1.tar -g a.sna a +)" +echo incr04.at:34 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf("a/b/one_31_chars_long_file_name_%03d\n", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo "Initial dump" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo "Incremental dump" +tar cvf a1.tar -g a.sna a +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + + +install-sh -d a/b >/dev/null || exit 77 +awk 'BEGIN { + for (i=1;i<=142;i++) + printf("a/b/one_31_chars_long_file_name_%03d\n", i); + }' < /dev/null | genfile --files-from - + +sleep 1 + +echo "Initial dump" +tar cvf a0.tar -g a.sna a +mv a/b a/c +echo "Incremental dump" +tar cvf a1.tar -g a.sna a +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: a: Directory is new +tar: a/b: Directory is new +tar: a/c: Directory has been renamed from \`a/b' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Initial dump +a/ +a/b/ +a/b/one_31_chars_long_file_name_001 +a/b/one_31_chars_long_file_name_002 +a/b/one_31_chars_long_file_name_003 +a/b/one_31_chars_long_file_name_004 +a/b/one_31_chars_long_file_name_005 +a/b/one_31_chars_long_file_name_006 +a/b/one_31_chars_long_file_name_007 +a/b/one_31_chars_long_file_name_008 +a/b/one_31_chars_long_file_name_009 +a/b/one_31_chars_long_file_name_010 +a/b/one_31_chars_long_file_name_011 +a/b/one_31_chars_long_file_name_012 +a/b/one_31_chars_long_file_name_013 +a/b/one_31_chars_long_file_name_014 +a/b/one_31_chars_long_file_name_015 +a/b/one_31_chars_long_file_name_016 +a/b/one_31_chars_long_file_name_017 +a/b/one_31_chars_long_file_name_018 +a/b/one_31_chars_long_file_name_019 +a/b/one_31_chars_long_file_name_020 +a/b/one_31_chars_long_file_name_021 +a/b/one_31_chars_long_file_name_022 +a/b/one_31_chars_long_file_name_023 +a/b/one_31_chars_long_file_name_024 +a/b/one_31_chars_long_file_name_025 +a/b/one_31_chars_long_file_name_026 +a/b/one_31_chars_long_file_name_027 +a/b/one_31_chars_long_file_name_028 +a/b/one_31_chars_long_file_name_029 +a/b/one_31_chars_long_file_name_030 +a/b/one_31_chars_long_file_name_031 +a/b/one_31_chars_long_file_name_032 +a/b/one_31_chars_long_file_name_033 +a/b/one_31_chars_long_file_name_034 +a/b/one_31_chars_long_file_name_035 +a/b/one_31_chars_long_file_name_036 +a/b/one_31_chars_long_file_name_037 +a/b/one_31_chars_long_file_name_038 +a/b/one_31_chars_long_file_name_039 +a/b/one_31_chars_long_file_name_040 +a/b/one_31_chars_long_file_name_041 +a/b/one_31_chars_long_file_name_042 +a/b/one_31_chars_long_file_name_043 +a/b/one_31_chars_long_file_name_044 +a/b/one_31_chars_long_file_name_045 +a/b/one_31_chars_long_file_name_046 +a/b/one_31_chars_long_file_name_047 +a/b/one_31_chars_long_file_name_048 +a/b/one_31_chars_long_file_name_049 +a/b/one_31_chars_long_file_name_050 +a/b/one_31_chars_long_file_name_051 +a/b/one_31_chars_long_file_name_052 +a/b/one_31_chars_long_file_name_053 +a/b/one_31_chars_long_file_name_054 +a/b/one_31_chars_long_file_name_055 +a/b/one_31_chars_long_file_name_056 +a/b/one_31_chars_long_file_name_057 +a/b/one_31_chars_long_file_name_058 +a/b/one_31_chars_long_file_name_059 +a/b/one_31_chars_long_file_name_060 +a/b/one_31_chars_long_file_name_061 +a/b/one_31_chars_long_file_name_062 +a/b/one_31_chars_long_file_name_063 +a/b/one_31_chars_long_file_name_064 +a/b/one_31_chars_long_file_name_065 +a/b/one_31_chars_long_file_name_066 +a/b/one_31_chars_long_file_name_067 +a/b/one_31_chars_long_file_name_068 +a/b/one_31_chars_long_file_name_069 +a/b/one_31_chars_long_file_name_070 +a/b/one_31_chars_long_file_name_071 +a/b/one_31_chars_long_file_name_072 +a/b/one_31_chars_long_file_name_073 +a/b/one_31_chars_long_file_name_074 +a/b/one_31_chars_long_file_name_075 +a/b/one_31_chars_long_file_name_076 +a/b/one_31_chars_long_file_name_077 +a/b/one_31_chars_long_file_name_078 +a/b/one_31_chars_long_file_name_079 +a/b/one_31_chars_long_file_name_080 +a/b/one_31_chars_long_file_name_081 +a/b/one_31_chars_long_file_name_082 +a/b/one_31_chars_long_file_name_083 +a/b/one_31_chars_long_file_name_084 +a/b/one_31_chars_long_file_name_085 +a/b/one_31_chars_long_file_name_086 +a/b/one_31_chars_long_file_name_087 +a/b/one_31_chars_long_file_name_088 +a/b/one_31_chars_long_file_name_089 +a/b/one_31_chars_long_file_name_090 +a/b/one_31_chars_long_file_name_091 +a/b/one_31_chars_long_file_name_092 +a/b/one_31_chars_long_file_name_093 +a/b/one_31_chars_long_file_name_094 +a/b/one_31_chars_long_file_name_095 +a/b/one_31_chars_long_file_name_096 +a/b/one_31_chars_long_file_name_097 +a/b/one_31_chars_long_file_name_098 +a/b/one_31_chars_long_file_name_099 +a/b/one_31_chars_long_file_name_100 +a/b/one_31_chars_long_file_name_101 +a/b/one_31_chars_long_file_name_102 +a/b/one_31_chars_long_file_name_103 +a/b/one_31_chars_long_file_name_104 +a/b/one_31_chars_long_file_name_105 +a/b/one_31_chars_long_file_name_106 +a/b/one_31_chars_long_file_name_107 +a/b/one_31_chars_long_file_name_108 +a/b/one_31_chars_long_file_name_109 +a/b/one_31_chars_long_file_name_110 +a/b/one_31_chars_long_file_name_111 +a/b/one_31_chars_long_file_name_112 +a/b/one_31_chars_long_file_name_113 +a/b/one_31_chars_long_file_name_114 +a/b/one_31_chars_long_file_name_115 +a/b/one_31_chars_long_file_name_116 +a/b/one_31_chars_long_file_name_117 +a/b/one_31_chars_long_file_name_118 +a/b/one_31_chars_long_file_name_119 +a/b/one_31_chars_long_file_name_120 +a/b/one_31_chars_long_file_name_121 +a/b/one_31_chars_long_file_name_122 +a/b/one_31_chars_long_file_name_123 +a/b/one_31_chars_long_file_name_124 +a/b/one_31_chars_long_file_name_125 +a/b/one_31_chars_long_file_name_126 +a/b/one_31_chars_long_file_name_127 +a/b/one_31_chars_long_file_name_128 +a/b/one_31_chars_long_file_name_129 +a/b/one_31_chars_long_file_name_130 +a/b/one_31_chars_long_file_name_131 +a/b/one_31_chars_long_file_name_132 +a/b/one_31_chars_long_file_name_133 +a/b/one_31_chars_long_file_name_134 +a/b/one_31_chars_long_file_name_135 +a/b/one_31_chars_long_file_name_136 +a/b/one_31_chars_long_file_name_137 +a/b/one_31_chars_long_file_name_138 +a/b/one_31_chars_long_file_name_139 +a/b/one_31_chars_long_file_name_140 +a/b/one_31_chars_long_file_name_141 +a/b/one_31_chars_long_file_name_142 +Incremental dump +a/ +a/c/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr04.at:34" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_42 +#AT_START_43 +# 43. incr05.at:19: incremental dumps with -C +at_setup_line='incr05.at:19' +at_desc="incremental dumps with -C" +$at_quiet $as_echo_n " 43: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "43. incr05.at:19: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/incr05.at:22: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +)" +echo incr05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Level 0 +./ +./sub/ +./file1 +./sub/file2 +Level 1 +./ +./sub/ +./file3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr05.at:22: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +)" +echo incr05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Level 0 +./ +./sub/ +./file1 +./sub/file2 +Level 1 +./ +./sub/ +./file3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr05.at:22: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +)" +echo incr05.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +echo Level 0 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . + +genfile --file dir/file3 +echo Level 1 +tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir . +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Level 0 +./ +./sub/ +./file1 +./sub/file2 +Level 1 +./ +./sub/ +./file3 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr05.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_43 +#AT_START_44 +# 44. incr06.at:19: incremental dumps of nested directories +at_setup_line='incr06.at:19' +at_desc="incremental dumps of nested directories" +$at_quiet $as_echo_n " 44: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "44. incr06.at:19: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/incr06.at:22: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +)" +echo incr06.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Level 0 . sub +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 0 sub . +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 1 . sub +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +Level 1 sub . +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr06.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr06.at:22: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +)" +echo incr06.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Level 0 . sub +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 0 sub . +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 1 . sub +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +Level 1 sub . +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr06.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/incr06.at:22: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +)" +echo incr06.at:22 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +mkdir dir/sub/a +mkdir dir/sub/b +genfile --file dir/file1 +genfile --file dir/sub/file2 +genfile --file dir/sub/a/file3 + +echo Level 0 . sub +tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 0 sub . +tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . + +mkdir dir/c +genfile --file dir/sub/b/file4 + +echo Level 1 . sub +tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub +echo Level 1 sub . +tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub . +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Level 0 . sub +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 0 sub . +./ +sub/ +sub/a/ +sub/b/ +./file1 +sub/file2 +sub/a/file3 +Level 1 . sub +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +Level 1 sub . +./ +./c/ +sub/ +sub/a/ +sub/b/ +sub/b/file4 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/incr06.at:22" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_44 +#AT_START_45 +# 45. filerem01.at:34: file removed as we read it (ca. 22 seconds) +at_setup_line='filerem01.at:34' +at_desc="file removed as we read it (ca. 22 seconds)" +$at_quiet $as_echo_n " 45: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "45. filerem01.at:34: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/filerem01.at:37: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +genfile --run --checkpoint=3 --unlink dir/file1 -- \\ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ + --checkpoint-action='echo' -c -f archive.tar \\ + --listed-incremental db -v dir >/dev/null +)" +echo filerem01.at:37 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +genfile --run --checkpoint=3 --unlink dir/file1 -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v dir >/dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +genfile --run --checkpoint=3 --unlink dir/file1 -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v dir >/dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new +tar: dir/sub: Directory is new +tar: dir/file1: File removed before we read it +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_func_check_status 1 $at_status "$at_srcdir/filerem01.at:37" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/filerem01.at:37: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +genfile --run --checkpoint=3 --unlink dir/file1 -- \\ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ + --checkpoint-action='echo' -c -f archive.tar \\ + --listed-incremental db -v dir >/dev/null +)" +echo filerem01.at:37 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +genfile --run --checkpoint=3 --unlink dir/file1 -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v dir >/dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 + +genfile --run --checkpoint=3 --unlink dir/file1 -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v dir >/dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: dir: Directory is new +tar: dir/sub: Directory is new +tar: dir/file1: File removed before we read it +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_func_check_status 1 $at_status "$at_srcdir/filerem01.at:37" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + +# Timing information: +# +# For -Hgnu the above command line takes about 8 seconds to execute and +# produces: +# +# tar: dir: Directory is new +# tar: dir/sub: Directory is new +# dir/ +# tar: Write checkpoint 1 +# tar: Write checkpoint 2 +# dir/sub/ +# tar: Write checkpoint 3 +# tar: Write checkpoint 4 +# dir/file1 +# tar: Write checkpoint 5 +# dir/sub/file2 +# tar: Write checkpoint 6 +# tar: Write checkpoint 7 +# tar: Write checkpoint 8 +# +# For -Hposix the above command line takes about 14 seconds to execute and +# produces: +# +# ./tar: dir: Directory is new +# ./tar: dir/sub: Directory is new +# dir/ +# ./tar: Write checkpoint 1 +# ./tar: Write checkpoint 2 +# ./tar: Write checkpoint 3 +# dir/sub/ +# ./tar: Write checkpoint 4 +# ./tar: Write checkpoint 5 +# ./tar: Write checkpoint 6 +# dir/file1 +# ./tar: Write checkpoint 7 +# ./tar: Write checkpoint 8 +# ./tar: Write checkpoint 9 +# dir/sub/file2 +# ./tar: Write checkpoint 10 +# ./tar: Write checkpoint 11 +# ./tar: Write checkpoint 12 +# ./tar: Write checkpoint 13 +# ./tar: Write checkpoint 14 + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_45 +#AT_START_46 +# 46. filerem02.at:24: toplevel file removed (ca. 24 seconds) +at_setup_line='filerem02.at:24' +at_desc="toplevel file removed (ca. 24 seconds)" +$at_quiet $as_echo_n " 46: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "46. filerem02.at:24: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/filerem02.at:27: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 +mkdir dir2 +genfile --file dir2/file1 + +genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ + --checkpoint-action='echo' -c -f archive.tar \\ + --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null +)" +echo filerem02.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 +mkdir dir2 +genfile --file dir2/file1 + +genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 +mkdir dir2 +genfile --file dir2/file1 + +genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: dir2: Cannot stat: No such file or directory +tar: dir2/file1: File removed before we read it +tar: Exiting with failure status due to previous errors +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_func_check_status 2 $at_status "$at_srcdir/filerem02.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/filerem02.at:27: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 +mkdir dir2 +genfile --file dir2/file1 + +genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ + --checkpoint-action='echo' -c -f archive.tar \\ + --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null +)" +echo filerem02.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 +mkdir dir2 +genfile --file dir2/file1 + +genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir dir +mkdir dir/sub +genfile --file dir/file1 +genfile --file dir/sub/file2 +mkdir dir2 +genfile --file dir2/file1 + +genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \ + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ + --checkpoint-action='echo' -c -f archive.tar \ + --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: dir2: Cannot stat: No such file or directory +tar: dir2/file1: File removed before we read it +tar: Exiting with failure status due to previous errors +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_func_check_status 2 $at_status "$at_srcdir/filerem02.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + +# Timing information: see filerem01.at + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_46 +#AT_START_47 +# 47. rename01.at:24: renamed dirs in incrementals +at_setup_line='rename01.at:24' +at_desc="renamed dirs in incrementals" +$at_quiet $as_echo_n " 47: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "47. rename01.at:24: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/rename01.at:27: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo \"Creating base archive\" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo \"Creating incremental archive\" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo \"Begin directory listing 1\" +find foo | sort +echo \"End directory listing 1\" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +)" +echo rename01.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new +tar: foo/bar: Directory is new +tar: foo/baz: Directory has been renamed from \`foo/bar' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating base archive +foo/ +foo/bar/ +foo/file1 +foo/file2 +foo/bar/file +Creating incremental archive +foo/ +foo/baz/ +Begin directory listing 1 +foo +foo/bar +foo/bar/file +foo/file1 +foo/file2 +End directory listing 1 +Begin directory listing 2 +foo +foo/baz +foo/baz/file +foo/file1 +foo/file2 +End directory listing 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename01.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/rename01.at:27: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo \"Creating base archive\" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo \"Creating incremental archive\" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo \"Begin directory listing 1\" +find foo | sort +echo \"End directory listing 1\" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +)" +echo rename01.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new +tar: foo/bar: Directory is new +tar: foo/baz: Directory has been renamed from \`foo/bar' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating base archive +foo/ +foo/bar/ +foo/file1 +foo/file2 +foo/bar/file +Creating incremental archive +foo/ +foo/baz/ +Begin directory listing 1 +foo +foo/bar +foo/bar/file +foo/file1 +foo/file2 +End directory listing 1 +Begin directory listing 2 +foo +foo/baz +foo/baz/file +foo/file1 +foo/file2 +End directory listing 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename01.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/rename01.at:27: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo \"Creating base archive\" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo \"Creating incremental archive\" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo \"Begin directory listing 1\" +find foo | sort +echo \"End directory listing 1\" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +)" +echo rename01.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar foo/baz + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfg arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new +tar: foo/bar: Directory is new +tar: foo/baz: Directory has been renamed from \`foo/bar' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating base archive +foo/ +foo/bar/ +foo/file1 +foo/file2 +foo/bar/file +Creating incremental archive +foo/ +foo/baz/ +Begin directory listing 1 +foo +foo/bar +foo/bar/file +foo/file1 +foo/file2 +End directory listing 1 +Begin directory listing 2 +foo +foo/baz +foo/baz/file +foo/file1 +foo/file2 +End directory listing 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename01.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_47 +#AT_START_48 +# 48. rename02.at:24: move between hierarchies +at_setup_line='rename02.at:24' +at_desc="move between hierarchies" +$at_quiet $as_echo_n " 48: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "48. rename02.at:24: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/rename02.at:27: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo \"Creating base archive\" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo \"Creating incremental archive\" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo \"Begin directory listing 1\" +find foo | sort +echo \"End directory listing 1\" + +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +)" +echo rename02.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new +tar: foo/bar: Directory is new +tar: foo/bar/baz: Directory is new +tar: foo/baz: Directory has been renamed from \`foo/bar/baz' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating base archive +foo/ +foo/bar/ +foo/bar/baz/ +foo/file1 +foo/file2 +foo/bar/file.r +foo/bar/baz/file.z +Creating incremental archive +foo/ +foo/bar/ +foo/baz/ +Begin directory listing 1 +foo +foo/bar +foo/bar/baz +foo/bar/baz/file.z +foo/bar/file.r +foo/file1 +foo/file2 +End directory listing 1 +foo/ +foo/bar/ +foo/baz/ +Begin directory listing 2 +foo +foo/bar +foo/bar/file.r +foo/baz +foo/baz/file.z +foo/file1 +foo/file2 +End directory listing 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename02.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/rename02.at:27: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo \"Creating base archive\" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo \"Creating incremental archive\" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo \"Begin directory listing 1\" +find foo | sort +echo \"End directory listing 1\" + +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +)" +echo rename02.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" + +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new +tar: foo/bar: Directory is new +tar: foo/bar/baz: Directory is new +tar: foo/baz: Directory has been renamed from \`foo/bar/baz' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating base archive +foo/ +foo/bar/ +foo/bar/baz/ +foo/file1 +foo/file2 +foo/bar/file.r +foo/bar/baz/file.z +Creating incremental archive +foo/ +foo/bar/ +foo/baz/ +Begin directory listing 1 +foo +foo/bar +foo/bar/baz +foo/bar/baz/file.z +foo/bar/file.r +foo/file1 +foo/file2 +End directory listing 1 +foo/ +foo/bar/ +foo/baz/ +Begin directory listing 2 +foo +foo/bar +foo/bar/file.r +foo/baz +foo/baz/file.z +foo/file1 +foo/file2 +End directory listing 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename02.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/rename02.at:27: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo \"Creating base archive\" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo \"Creating incremental archive\" +tar -g incr -cf arch.2 -v foo + +mv foo old + +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo \"Begin directory listing 1\" +find foo | sort +echo \"End directory listing 1\" + +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +)" +echo rename02.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z + +sleep 1 + +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo + +mv foo/bar/baz foo + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo + +mv foo old -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf("a/b/one_31_chars_long_file_name_%03d\n", i); - }' < /dev/null | genfile --files-from - +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 -sleep 1 +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" -echo "Initial dump" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo "Incremental dump" -tar cvf a1.tar -g a.sna a +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -14224,217 +21304,115 @@ export TAR_OPTIONS rm -rf * -install-sh -d a/b >/dev/null || exit 77 -awk 'BEGIN { - for (i=1;i<=142;i++) - printf("a/b/one_31_chars_long_file_name_%03d\n", i); - }' < /dev/null | genfile --files-from - +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir foo +genfile --file foo/file1 +genfile --file foo/file2 +mkdir foo/bar +genfile --file foo/bar/file.r +mkdir foo/bar/baz +genfile --file foo/bar/baz/file.z sleep 1 -echo "Initial dump" -tar cvf a0.tar -g a.sna a -mv a/b a/c -echo "Incremental dump" -tar cvf a1.tar -g a.sna a -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +echo "Creating base archive" +tar -g incr -cf arch.1 -v foo -at_failed=false -echo >>"$at_stderr"; echo "tar: a/b: Directory is new -tar: a/c: Directory has been renamed from \`a/b' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Initial dump -a/ -a/b/ -a/b/one_31_chars_long_file_name_001 -a/b/one_31_chars_long_file_name_002 -a/b/one_31_chars_long_file_name_003 -a/b/one_31_chars_long_file_name_004 -a/b/one_31_chars_long_file_name_005 -a/b/one_31_chars_long_file_name_006 -a/b/one_31_chars_long_file_name_007 -a/b/one_31_chars_long_file_name_008 -a/b/one_31_chars_long_file_name_009 -a/b/one_31_chars_long_file_name_010 -a/b/one_31_chars_long_file_name_011 -a/b/one_31_chars_long_file_name_012 -a/b/one_31_chars_long_file_name_013 -a/b/one_31_chars_long_file_name_014 -a/b/one_31_chars_long_file_name_015 -a/b/one_31_chars_long_file_name_016 -a/b/one_31_chars_long_file_name_017 -a/b/one_31_chars_long_file_name_018 -a/b/one_31_chars_long_file_name_019 -a/b/one_31_chars_long_file_name_020 -a/b/one_31_chars_long_file_name_021 -a/b/one_31_chars_long_file_name_022 -a/b/one_31_chars_long_file_name_023 -a/b/one_31_chars_long_file_name_024 -a/b/one_31_chars_long_file_name_025 -a/b/one_31_chars_long_file_name_026 -a/b/one_31_chars_long_file_name_027 -a/b/one_31_chars_long_file_name_028 -a/b/one_31_chars_long_file_name_029 -a/b/one_31_chars_long_file_name_030 -a/b/one_31_chars_long_file_name_031 -a/b/one_31_chars_long_file_name_032 -a/b/one_31_chars_long_file_name_033 -a/b/one_31_chars_long_file_name_034 -a/b/one_31_chars_long_file_name_035 -a/b/one_31_chars_long_file_name_036 -a/b/one_31_chars_long_file_name_037 -a/b/one_31_chars_long_file_name_038 -a/b/one_31_chars_long_file_name_039 -a/b/one_31_chars_long_file_name_040 -a/b/one_31_chars_long_file_name_041 -a/b/one_31_chars_long_file_name_042 -a/b/one_31_chars_long_file_name_043 -a/b/one_31_chars_long_file_name_044 -a/b/one_31_chars_long_file_name_045 -a/b/one_31_chars_long_file_name_046 -a/b/one_31_chars_long_file_name_047 -a/b/one_31_chars_long_file_name_048 -a/b/one_31_chars_long_file_name_049 -a/b/one_31_chars_long_file_name_050 -a/b/one_31_chars_long_file_name_051 -a/b/one_31_chars_long_file_name_052 -a/b/one_31_chars_long_file_name_053 -a/b/one_31_chars_long_file_name_054 -a/b/one_31_chars_long_file_name_055 -a/b/one_31_chars_long_file_name_056 -a/b/one_31_chars_long_file_name_057 -a/b/one_31_chars_long_file_name_058 -a/b/one_31_chars_long_file_name_059 -a/b/one_31_chars_long_file_name_060 -a/b/one_31_chars_long_file_name_061 -a/b/one_31_chars_long_file_name_062 -a/b/one_31_chars_long_file_name_063 -a/b/one_31_chars_long_file_name_064 -a/b/one_31_chars_long_file_name_065 -a/b/one_31_chars_long_file_name_066 -a/b/one_31_chars_long_file_name_067 -a/b/one_31_chars_long_file_name_068 -a/b/one_31_chars_long_file_name_069 -a/b/one_31_chars_long_file_name_070 -a/b/one_31_chars_long_file_name_071 -a/b/one_31_chars_long_file_name_072 -a/b/one_31_chars_long_file_name_073 -a/b/one_31_chars_long_file_name_074 -a/b/one_31_chars_long_file_name_075 -a/b/one_31_chars_long_file_name_076 -a/b/one_31_chars_long_file_name_077 -a/b/one_31_chars_long_file_name_078 -a/b/one_31_chars_long_file_name_079 -a/b/one_31_chars_long_file_name_080 -a/b/one_31_chars_long_file_name_081 -a/b/one_31_chars_long_file_name_082 -a/b/one_31_chars_long_file_name_083 -a/b/one_31_chars_long_file_name_084 -a/b/one_31_chars_long_file_name_085 -a/b/one_31_chars_long_file_name_086 -a/b/one_31_chars_long_file_name_087 -a/b/one_31_chars_long_file_name_088 -a/b/one_31_chars_long_file_name_089 -a/b/one_31_chars_long_file_name_090 -a/b/one_31_chars_long_file_name_091 -a/b/one_31_chars_long_file_name_092 -a/b/one_31_chars_long_file_name_093 -a/b/one_31_chars_long_file_name_094 -a/b/one_31_chars_long_file_name_095 -a/b/one_31_chars_long_file_name_096 -a/b/one_31_chars_long_file_name_097 -a/b/one_31_chars_long_file_name_098 -a/b/one_31_chars_long_file_name_099 -a/b/one_31_chars_long_file_name_100 -a/b/one_31_chars_long_file_name_101 -a/b/one_31_chars_long_file_name_102 -a/b/one_31_chars_long_file_name_103 -a/b/one_31_chars_long_file_name_104 -a/b/one_31_chars_long_file_name_105 -a/b/one_31_chars_long_file_name_106 -a/b/one_31_chars_long_file_name_107 -a/b/one_31_chars_long_file_name_108 -a/b/one_31_chars_long_file_name_109 -a/b/one_31_chars_long_file_name_110 -a/b/one_31_chars_long_file_name_111 -a/b/one_31_chars_long_file_name_112 -a/b/one_31_chars_long_file_name_113 -a/b/one_31_chars_long_file_name_114 -a/b/one_31_chars_long_file_name_115 -a/b/one_31_chars_long_file_name_116 -a/b/one_31_chars_long_file_name_117 -a/b/one_31_chars_long_file_name_118 -a/b/one_31_chars_long_file_name_119 -a/b/one_31_chars_long_file_name_120 -a/b/one_31_chars_long_file_name_121 -a/b/one_31_chars_long_file_name_122 -a/b/one_31_chars_long_file_name_123 -a/b/one_31_chars_long_file_name_124 -a/b/one_31_chars_long_file_name_125 -a/b/one_31_chars_long_file_name_126 -a/b/one_31_chars_long_file_name_127 -a/b/one_31_chars_long_file_name_128 -a/b/one_31_chars_long_file_name_129 -a/b/one_31_chars_long_file_name_130 -a/b/one_31_chars_long_file_name_131 -a/b/one_31_chars_long_file_name_132 -a/b/one_31_chars_long_file_name_133 -a/b/one_31_chars_long_file_name_134 -a/b/one_31_chars_long_file_name_135 -a/b/one_31_chars_long_file_name_136 -a/b/one_31_chars_long_file_name_137 -a/b/one_31_chars_long_file_name_138 -a/b/one_31_chars_long_file_name_139 -a/b/one_31_chars_long_file_name_140 -a/b/one_31_chars_long_file_name_141 -a/b/one_31_chars_long_file_name_142 -Incremental dump -a/ -a/c/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/incr04.at:34: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +mv foo/bar/baz foo + +echo "Creating incremental archive" +tar -g incr -cf arch.2 -v foo +mv foo old - echo 1 > "$at_status_file" - exit 1 -fi +tar xfg arch.1 /dev/null 2>tmperr +sort tmperr >&2 + +echo "Begin directory listing 1" +find foo | sort +echo "End directory listing 1" -$at_traceon +tar xfgv arch.2 /dev/null +echo Begin directory listing 2 +find foo | sort +echo End directory listing 2 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "tar: foo: Directory is new +tar: foo/bar: Directory is new +tar: foo/bar/baz: Directory is new +tar: foo/baz: Directory has been renamed from \`foo/bar/baz' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating base archive +foo/ +foo/bar/ +foo/bar/baz/ +foo/file1 +foo/file2 +foo/bar/file.r +foo/bar/baz/file.z +Creating incremental archive +foo/ +foo/bar/ +foo/baz/ +Begin directory listing 1 +foo +foo/bar +foo/bar/baz +foo/bar/baz/file.z +foo/bar/file.r +foo/file1 +foo/file2 +End directory listing 1 +foo/ +foo/bar/ +foo/baz/ +Begin directory listing 2 +foo +foo/bar +foo/bar/file.r +foo/baz +foo/baz/file.z +foo/file1 +foo/file2 +End directory listing 2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename02.at:27" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 33 ) # 33. rename01.at:24: renamed dirs in incrementals - at_setup_line='rename01.at:24' - at_desc="renamed dirs in incrementals" - $at_quiet $ECHO_N " 33: renamed dirs in incrementals $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_48 +#AT_START_49 +# 49. rename03.at:23: cyclic renames +at_setup_line='rename03.at:23' +at_desc="cyclic renames" +$at_quiet $as_echo_n " 49: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "33. rename01.at:24: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "49. rename03.at:23: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/rename01.at:27: + { $at_traceoff +$as_echo "$at_srcdir/rename03.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -14450,18 +21428,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo \"Creating base archive\" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo \"Creating incremental archive\" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo \"First dump\" +echo \"First dump\">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a \$\$ +mv c a +mv b c +mv \$\$ b) + +echo \"Second dump\" +echo \"Second dump\" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14469,20 +21463,16 @@ echo \"Begin directory listing 1\" find foo | sort echo \"End directory listing 1\" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -echo rename01.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename03.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -14498,18 +21488,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo "First dump" +echo "First dump">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a $$ +mv c a +mv b c +mv $$ b) + +echo "Second dump" +echo "Second dump" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14517,16 +21523,14 @@ echo "Begin directory listing 1" find foo | sort echo "End directory listing 1" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -14542,18 +21546,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo "First dump" +echo "First dump">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a $$ +mv c a +mv b c +mv $$ b) + +echo "Second dump" +echo "Second dump" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14561,59 +21581,75 @@ echo "Begin directory listing 1" find foo | sort echo "End directory listing 1" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: foo/bar: Directory is new -tar: foo/baz: Directory has been renamed from \`foo/bar' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating base archive +echo >>"$at_stderr"; $as_echo "First dump +tar: foo/a: Directory is new +tar: foo/b: Directory is new +tar: foo/c: Directory is new +tar: foo: Directory is new +Second dump +tar: foo/a: Directory has been renamed from \`foo/c' +tar: foo/b: Directory has been renamed from \`foo/a' +tar: foo/c: Directory has been renamed from \`foo/b' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "First dump foo/ -foo/bar/ +foo/a/ +foo/b/ +foo/c/ foo/file1 foo/file2 -foo/bar/file -Creating incremental archive +foo/a/filea +foo/b/fileb +foo/c/filec +Second dump foo/ -foo/baz/ +foo/a/ +foo/b/ +foo/c/ Begin directory listing 1 foo -foo/bar -foo/bar/file +foo/a +foo/a/filea +foo/b +foo/b/fileb +foo/c +foo/c/filec foo/file1 foo/file2 End directory listing 1 +foo/ +foo/a/ +foo/b/ +foo/c/ Begin directory listing 2 foo -foo/baz -foo/baz/file +foo/a +foo/a/filec +foo/b +foo/b/filea +foo/c +foo/c/fileb foo/file1 foo/file2 End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename01.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename03.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename01.at:27: + { $at_traceoff +$as_echo "$at_srcdir/rename03.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -14629,18 +21665,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo \"Creating base archive\" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo \"Creating incremental archive\" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo \"First dump\" +echo \"First dump\">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a \$\$ +mv c a +mv b c +mv \$\$ b) + +echo \"Second dump\" +echo \"Second dump\" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14648,20 +21700,16 @@ echo \"Begin directory listing 1\" find foo | sort echo \"End directory listing 1\" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -echo rename01.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename03.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -14677,18 +21725,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo "First dump" +echo "First dump">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a $$ +mv c a +mv b c +mv $$ b) + +echo "Second dump" +echo "Second dump" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14696,16 +21760,14 @@ echo "Begin directory listing 1" find foo | sort echo "End directory listing 1" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -14721,18 +21783,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec + +sleep 1 + +echo "First dump" +echo "First dump">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a $$ +mv c a +mv b c +mv $$ b) -mv foo old +echo "Second dump" +echo "Second dump" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14740,59 +21818,75 @@ echo "Begin directory listing 1" find foo | sort echo "End directory listing 1" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: foo/bar: Directory is new -tar: foo/baz: Directory has been renamed from \`foo/bar' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating base archive +echo >>"$at_stderr"; $as_echo "First dump +tar: foo/a: Directory is new +tar: foo/b: Directory is new +tar: foo/c: Directory is new +tar: foo: Directory is new +Second dump +tar: foo/a: Directory has been renamed from \`foo/c' +tar: foo/b: Directory has been renamed from \`foo/a' +tar: foo/c: Directory has been renamed from \`foo/b' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "First dump foo/ -foo/bar/ +foo/a/ +foo/b/ +foo/c/ foo/file1 foo/file2 -foo/bar/file -Creating incremental archive +foo/a/filea +foo/b/fileb +foo/c/filec +Second dump foo/ -foo/baz/ +foo/a/ +foo/b/ +foo/c/ Begin directory listing 1 foo -foo/bar -foo/bar/file +foo/a +foo/a/filea +foo/b +foo/b/fileb +foo/c +foo/c/filec foo/file1 foo/file2 End directory listing 1 +foo/ +foo/a/ +foo/b/ +foo/c/ Begin directory listing 2 foo -foo/baz -foo/baz/file +foo/a +foo/a/filec +foo/b +foo/b/filea +foo/c +foo/c/fileb foo/file1 foo/file2 End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename01.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename03.at:26" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename01.at:27: + { $at_traceoff +$as_echo "$at_srcdir/rename03.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -14808,18 +21902,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo \"Creating base archive\" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo \"Creating incremental archive\" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo \"First dump\" +echo \"First dump\">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a \$\$ +mv c a +mv b c +mv \$\$ b) + +echo \"Second dump\" +echo \"Second dump\" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14827,20 +21937,16 @@ echo \"Begin directory listing 1\" find foo | sort echo \"End directory listing 1\" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -echo rename01.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename03.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -14856,18 +21962,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo "First dump" +echo "First dump">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a $$ +mv c a +mv b c +mv $$ b) + +echo "Second dump" +echo "Second dump" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14875,16 +21997,14 @@ echo "Begin directory listing 1" find foo | sort echo "End directory listing 1" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -14900,18 +22020,34 @@ test -z "`sort < /dev/null 2>&1`" || exit 77 mkdir foo genfile --file foo/file1 genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +mkdir foo/a +genfile --file foo/a/filea -mv foo/bar foo/baz +mkdir foo/b +genfile --file foo/b/fileb -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +mkdir foo/c +genfile --file foo/c/filec -mv foo old +sleep 1 + +echo "First dump" +echo "First dump">&2 +tar -g incr -cf arch.1 -v foo 2>tmperr +sort tmperr >&2 + +# Shuffle directories: +(cd foo +mv a $$ +mv c a +mv b c +mv $$ b) + +echo "Second dump" +echo "Second dump" >&2 +tar -g incr -cf arch.2 -v foo 2>tmperr +sort tmperr >&2 tar xfg arch.1 /dev/null @@ -14919,83 +22055,99 @@ echo "Begin directory listing 1" find foo | sort echo "End directory listing 1" -tar xfg arch.2 /dev/null +tar xfgv arch.2 /dev/null echo Begin directory listing 2 find foo | sort echo End directory listing 2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: foo/bar: Directory is new -tar: foo/baz: Directory has been renamed from \`foo/bar' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating base archive +echo >>"$at_stderr"; $as_echo "First dump +tar: foo/a: Directory is new +tar: foo/b: Directory is new +tar: foo/c: Directory is new +tar: foo: Directory is new +Second dump +tar: foo/a: Directory has been renamed from \`foo/c' +tar: foo/b: Directory has been renamed from \`foo/a' +tar: foo/c: Directory has been renamed from \`foo/b' +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "First dump foo/ -foo/bar/ +foo/a/ +foo/b/ +foo/c/ foo/file1 foo/file2 -foo/bar/file -Creating incremental archive +foo/a/filea +foo/b/fileb +foo/c/filec +Second dump foo/ -foo/baz/ +foo/a/ +foo/b/ +foo/c/ Begin directory listing 1 foo -foo/bar -foo/bar/file +foo/a +foo/a/filea +foo/b +foo/b/fileb +foo/c +foo/c/filec foo/file1 foo/file2 End directory listing 1 +foo/ +foo/a/ +foo/b/ +foo/c/ Begin directory listing 2 foo -foo/baz -foo/baz/file +foo/a +foo/a/filec +foo/b +foo/b/filea +foo/c +foo/c/fileb foo/file1 foo/file2 End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename01.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename03.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 34 ) # 34. rename02.at:24: move between hierarchies - at_setup_line='rename02.at:24' - at_desc="move between hierarchies" - $at_quiet $ECHO_N " 34: move between hierarchies $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_49 +#AT_START_50 +# 50. rename04.at:27: renamed directory containing subdirectories +at_setup_line='rename04.at:27' +at_desc="renamed directory containing subdirectories" +$at_quiet $as_echo_n " 50: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "34. rename02.at:24: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "50. rename04.at:27: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/rename02.at:27: + { $at_traceoff +$as_echo "$at_srcdir/rename04.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -15007,47 +22159,37 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 - -echo \"Creating base archive\" -tar -g incr -cf arch.1 -v foo -mv foo/bar/baz foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo \"Creating incremental archive\" -tar -g incr -cf arch.2 -v foo +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -mv foo old +decho Renaming +mv directory dir -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -echo \"Begin directory listing 1\" -find foo | sort -echo \"End directory listing 1\" +mv dir orig -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 -)" -echo rename02.at:27 >"$at_check_line_file" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort +)" +echo rename04.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -15059,43 +22201,35 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -mv foo/bar/baz foo +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +decho Renaming +mv directory dir -mv foo old +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -15107,97 +22241,63 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -mv foo/bar/baz foo +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +decho Renaming +mv directory dir -mv foo old +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: foo/bar: Directory is new -tar: foo/bar/baz: Directory is new -tar: foo/baz: Directory has been renamed from \`foo/bar/baz' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating base archive -foo/ -foo/bar/ -foo/bar/baz/ -foo/file1 -foo/file2 -foo/bar/file.r -foo/bar/baz/file.z +echo >>"$at_stderr"; $as_echo "Creating directory structure +Creating initial archive +Renaming Creating incremental archive -foo/ -foo/bar/ -foo/baz/ -Begin directory listing 1 -foo -foo/bar -foo/bar/baz -foo/bar/baz/file.z -foo/bar/file.r -foo/file1 -foo/file2 -End directory listing 1 -foo/ -foo/bar/ -foo/baz/ -Begin directory listing 2 -foo -foo/bar -foo/bar/file.r -foo/baz -foo/baz/file.z -foo/file1 -foo/file2 -End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename02.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +First restore +Second restore +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +directory +directory/file +directory/subdir +Second restore +dir +dir/subdir +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename04.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename02.at:27: + { $at_traceoff +$as_echo "$at_srcdir/rename04.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -15209,47 +22309,37 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 -echo \"Creating base archive\" -tar -g incr -cf arch.1 -v foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -mv foo/bar/baz foo +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -echo \"Creating incremental archive\" -tar -g incr -cf arch.2 -v foo +decho Renaming +mv directory dir -mv foo old +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +mv dir orig -echo \"Begin directory listing 1\" -find foo | sort -echo \"End directory listing 1\" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort )" -echo rename02.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename04.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -15261,43 +22351,35 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -mv foo/bar/baz foo +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +decho Renaming +mv directory dir -mv foo old +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -15307,99 +22389,65 @@ export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 - -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 - -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +test -z "`sort < /dev/null 2>&1`" || exit 77 -mv foo/bar/baz foo -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -mv foo old +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +decho Renaming +mv directory dir -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +mv dir orig + +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort + +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: foo/bar: Directory is new -tar: foo/bar/baz: Directory is new -tar: foo/baz: Directory has been renamed from \`foo/bar/baz' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating base archive -foo/ -foo/bar/ -foo/bar/baz/ -foo/file1 -foo/file2 -foo/bar/file.r -foo/bar/baz/file.z +echo >>"$at_stderr"; $as_echo "Creating directory structure +Creating initial archive +Renaming Creating incremental archive -foo/ -foo/bar/ -foo/baz/ -Begin directory listing 1 -foo -foo/bar -foo/bar/baz -foo/bar/baz/file.z -foo/bar/file.r -foo/file1 -foo/file2 -End directory listing 1 -foo/ -foo/bar/ -foo/baz/ -Begin directory listing 2 -foo -foo/bar -foo/bar/file.r -foo/baz -foo/baz/file.z -foo/file1 -foo/file2 -End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename02.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +First restore +Second restore +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +directory +directory/file +directory/subdir +Second restore +dir +dir/subdir +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename04.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename02.at:27: + { $at_traceoff +$as_echo "$at_srcdir/rename04.at:30: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -15411,47 +22459,37 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 -echo \"Creating base archive\" -tar -g incr -cf arch.1 -v foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -mv foo/bar/baz foo +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -echo \"Creating incremental archive\" -tar -g incr -cf arch.2 -v foo +decho Renaming +mv directory dir -mv foo old +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +mv dir orig -echo \"Begin directory listing 1\" -find foo | sort -echo \"End directory listing 1\" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort )" -echo rename02.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename04.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -15463,43 +22501,35 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -mv foo/bar/baz foo +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo +decho Renaming +mv directory dir -mv foo old +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -15511,121 +22541,87 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 -mkdir foo/bar -genfile --file foo/bar/file.r -mkdir foo/bar/baz -genfile --file foo/bar/baz/file.z - -sleep 1 - -echo "Creating base archive" -tar -g incr -cf arch.1 -v foo - -mv foo/bar/baz foo - -echo "Creating incremental archive" -tar -g incr -cf arch.2 -v foo - -mv foo old - -tar xfg arch.1 /dev/null 2>tmperr -sort tmperr >&2 - -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -at_failed=false -echo >>"$at_stderr"; echo "tar: foo/bar: Directory is new -tar: foo/bar/baz: Directory is new -tar: foo/baz: Directory has been renamed from \`foo/bar/baz' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating base archive -foo/ -foo/bar/ -foo/bar/baz/ -foo/file1 -foo/file2 -foo/bar/file.r -foo/bar/baz/file.z -Creating incremental archive -foo/ -foo/bar/ -foo/baz/ -Begin directory listing 1 -foo -foo/bar -foo/bar/baz -foo/bar/baz/file.z -foo/bar/file.r -foo/file1 -foo/file2 -End directory listing 1 -foo/ -foo/bar/ -foo/baz/ -Begin directory listing 2 -foo -foo/bar -foo/bar/file.r -foo/baz -foo/baz/file.z -foo/file1 -foo/file2 -End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename02.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +decho Creating initial archive +tar -cf archive.1 -g db.1 directory +decho Renaming +mv directory dir - echo 1 > "$at_status_file" - exit 1 -fi +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir + +mv dir orig + +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -$at_traceon +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +Second restore +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +directory +directory/file +directory/subdir +Second restore +dir +dir/subdir +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename04.at:30" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 35 ) # 35. rename03.at:23: cyclic renames - at_setup_line='rename03.at:23' - at_desc="cyclic renames" - $at_quiet $ECHO_N " 35: cyclic renames $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_50 +#AT_START_51 +# 51. rename05.at:24: renamed subdirectories +at_setup_line='rename05.at:24' +at_desc="renamed subdirectories" +$at_quiet $as_echo_n " 51: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "35. rename03.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "51. rename05.at:24: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/rename03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/rename05.at:27: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -15638,58 +22634,37 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo \"First dump\" -echo \"First dump\">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -# Shuffle directories: -(cd foo -mv a \$\$ -mv c a -mv b c -mv \$\$ b) +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -echo \"Second dump\" -echo \"Second dump\" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null +mv dir orig -echo \"Begin directory listing 1\" -find foo | sort -echo \"End directory listing 1\" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort )" -echo rename03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename05.at:27 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -15702,54 +22677,35 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo "First dump" -echo "First dump">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -# Shuffle directories: -(cd foo -mv a $$ -mv c a -mv b c -mv $$ b) +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -echo "Second dump" -echo "Second dump" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -15762,121 +22718,63 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 - -echo "First dump" -echo "First dump">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 - -# Shuffle directories: -(cd foo -mv a $$ -mv c a -mv b c -mv $$ b) - -echo "Second dump" -echo "Second dump" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 - -tar xfg arch.1 /dev/null - -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" - -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -echo >>"$at_stderr"; echo "First dump -tar: foo/a: Directory is new -tar: foo/b: Directory is new -tar: foo/c: Directory is new -Second dump -tar: foo/a: Directory has been renamed from \`foo/c' -tar: foo/b: Directory has been renamed from \`foo/a' -tar: foo/c: Directory has been renamed from \`foo/b' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "First dump -foo/ -foo/a/ -foo/b/ -foo/c/ -foo/file1 -foo/file2 -foo/a/filea -foo/b/fileb -foo/c/filec -Second dump -foo/ -foo/a/ -foo/b/ -foo/c/ -Begin directory listing 1 -foo -foo/a -foo/a/filea -foo/b -foo/b/fileb -foo/c -foo/c/filec -foo/file1 -foo/file2 -End directory listing 1 -foo/ -foo/a/ -foo/b/ -foo/c/ -Begin directory listing 2 -foo -foo/a -foo/a/filec -foo/b -foo/b/filea -foo/c -foo/c/fileb -foo/file1 -foo/file2 -End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file +decho Creating initial archive +tar -cf archive.1 -g db.1 directory - echo 1 > "$at_status_file" - exit 1 +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir + +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir + +mv dir orig + +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort + +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +Second restore +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +directory +directory/file +directory/subdir +Second restore +dir +dir/subdir.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename05.at:27" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/rename05.at:27: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -15889,58 +22787,37 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo \"First dump\" -echo \"First dump\">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -# Shuffle directories: -(cd foo -mv a \$\$ -mv c a -mv b c -mv \$\$ b) +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -echo \"Second dump\" -echo \"Second dump\" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null +mv dir orig -echo \"Begin directory listing 1\" -find foo | sort -echo \"End directory listing 1\" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort )" -echo rename03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename05.at:27 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -15953,54 +22830,35 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo "First dump" -echo "First dump">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -# Shuffle directories: -(cd foo -mv a $$ -mv c a -mv b c -mv $$ b) +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -echo "Second dump" -echo "Second dump" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -16013,121 +22871,63 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 - -echo "First dump" -echo "First dump">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 - -# Shuffle directories: -(cd foo -mv a $$ -mv c a -mv b c -mv $$ b) - -echo "Second dump" -echo "Second dump" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 - -tar xfg arch.1 /dev/null +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -at_failed=false -echo >>"$at_stderr"; echo "First dump -tar: foo/a: Directory is new -tar: foo/b: Directory is new -tar: foo/c: Directory is new -Second dump -tar: foo/a: Directory has been renamed from \`foo/c' -tar: foo/b: Directory has been renamed from \`foo/a' -tar: foo/c: Directory has been renamed from \`foo/b' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "First dump -foo/ -foo/a/ -foo/b/ -foo/c/ -foo/file1 -foo/file2 -foo/a/filea -foo/b/fileb -foo/c/filec -Second dump -foo/ -foo/a/ -foo/b/ -foo/c/ -Begin directory listing 1 -foo -foo/a -foo/a/filea -foo/b -foo/b/fileb -foo/c -foo/c/filec -foo/file1 -foo/file2 -End directory listing 1 -foo/ -foo/a/ -foo/b/ -foo/c/ -Begin directory listing 2 -foo -foo/a -foo/a/filec -foo/b -foo/b/filea -foo/c -foo/c/fileb -foo/file1 -foo/file2 -End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir +mv dir orig - echo 1 > "$at_status_file" - exit 1 +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort + +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +Second restore +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +directory +directory/file +directory/subdir +Second restore +dir +dir/subdir.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename05.at:27" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename03.at:26: + { $at_traceoff +$as_echo "$at_srcdir/rename05.at:27: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -16140,58 +22940,37 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo \"First dump\" -echo \"First dump\">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -# Shuffle directories: -(cd foo -mv a \$\$ -mv c a -mv b c -mv \$\$ b) +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -echo \"Second dump\" -echo \"Second dump\" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null +mv dir orig -echo \"Begin directory listing 1\" -find foo | sort -echo \"End directory listing 1\" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort )" -echo rename03.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo rename05.at:27 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -16204,54 +22983,35 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo "First dump" -echo "First dump">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -# Shuffle directories: -(cd foo -mv a $$ -mv c a -mv b c -mv $$ b) +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -echo "Second dump" -echo "Second dump" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -16264,145 +23024,87 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir foo -genfile --file foo/file1 -genfile --file foo/file2 - -mkdir foo/a -genfile --file foo/a/filea - -mkdir foo/b -genfile --file foo/b/fileb - -mkdir foo/c -genfile --file foo/c/filec - -sleep 1 +decho Creating directory structure +mkdir directory +mkdir directory/subdir +genfile --file=directory/file -echo "First dump" -echo "First dump">&2 -tar -g incr -cf arch.1 -v foo 2>tmperr -sort tmperr >&2 +decho Creating initial archive +tar -cf archive.1 -g db.1 directory -# Shuffle directories: -(cd foo -mv a $$ -mv c a -mv b c -mv $$ b) +decho Renaming +mv directory/subdir directory/subdir.0 +mv directory dir -echo "Second dump" -echo "Second dump" >&2 -tar -g incr -cf arch.2 -v foo 2>tmperr -sort tmperr >&2 +decho Creating incremental archive +cp db.1 db.2 +tar -cf archive.2 -g db.2 dir -tar xfg arch.1 /dev/null +mv dir orig -echo "Begin directory listing 1" -find foo | sort -echo "End directory listing 1" +decho First restore +tar -xf archive.1 -g db.1 +find directory | sort -tar xfgv arch.2 /dev/null -echo Begin directory listing 2 -find foo | sort -echo End directory listing 2 +decho Second restore +tar -xf archive.2 -g db.2 +find dir | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -echo >>"$at_stderr"; echo "First dump -tar: foo/a: Directory is new -tar: foo/b: Directory is new -tar: foo/c: Directory is new -Second dump -tar: foo/a: Directory has been renamed from \`foo/c' -tar: foo/b: Directory has been renamed from \`foo/a' -tar: foo/c: Directory has been renamed from \`foo/b' -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "First dump -foo/ -foo/a/ -foo/b/ -foo/c/ -foo/file1 -foo/file2 -foo/a/filea -foo/b/fileb -foo/c/filec -Second dump -foo/ -foo/a/ -foo/b/ -foo/c/ -Begin directory listing 1 -foo -foo/a -foo/a/filea -foo/b -foo/b/fileb -foo/c -foo/c/filec -foo/file1 -foo/file2 -End directory listing 1 -foo/ -foo/a/ -foo/b/ -foo/c/ -Begin directory listing 2 -foo -foo/a -foo/a/filec -foo/b -foo/b/filea -foo/c -foo/c/fileb -foo/file1 -foo/file2 -End directory listing 2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename03.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +Second restore +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating directory structure +Creating initial archive +Renaming +Creating incremental archive +First restore +directory +directory/file +directory/subdir +Second restore +dir +dir/subdir.0 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/rename05.at:27" -$at_traceon - +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 36 ) # 36. rename04.at:27: renamed directory containing subdirectories - at_setup_line='rename04.at:27' - at_desc="renamed directory containing subdirectories" - $at_quiet $ECHO_N " 36: renamed directory containing subdirectories $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_51 +#AT_START_52 +# 52. chtype.at:27: changed file types in incrementals +at_setup_line='chtype.at:27' +at_desc="changed file types in incrementals" +$at_quiet $as_echo_n " 52: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "36. rename04.at:27: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "52. chtype.at:27: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/rename04.at:30: + { $at_traceoff +$as_echo "$at_srcdir/chtype.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -16415,40 +23117,38 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -decho Creating directory structure -mkdir directory -mkdir directory/subdir -genfile --file=directory/file +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory -decho Renaming -mv directory dir +sleep 2 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b -mv dir orig +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +# Delete a +rm -r directory -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort )" -echo rename04.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo chtype.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -16461,36 +23161,36 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -decho Creating directory structure -mkdir directory -mkdir directory/subdir -genfile --file=directory/file +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory -decho Renaming -mv directory dir +sleep 2 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b -mv dir orig +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +# Delete a +rm -r directory -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -16503,76 +23203,207 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -decho Creating directory structure -mkdir directory -mkdir directory/subdir -genfile --file=directory/file +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory -decho Renaming -mv directory dir +sleep 2 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b + +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory + +# Delete a +rm -r directory + +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "First backup +Second backup +Restore archive.1 +Restore archive.2 +directory +directory/a +directory/a/a +directory/a/b +directory/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/chtype.at:30" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/chtype.at:30: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a + +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory + +sleep 2 + +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b + +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory + +# Delete a +rm -r directory + +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort +)" +echo chtype.at:30 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a + +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory + +sleep 2 + +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b + +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory + +# Delete a +rm -r directory + +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a + +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory + +sleep 2 + +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b -mv dir orig +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +# Delete a +rm -r directory -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -Second restore -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "First backup +Second backup +Restore archive.1 +Restore archive.2 directory -directory/file -directory/subdir -Second restore -dir -dir/subdir -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename04.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +directory/a +directory/a/a +directory/a/b +directory/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/chtype.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename04.at:30: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + { $at_traceoff +$as_echo "$at_srcdir/chtype.at:30: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * @@ -16580,45 +23411,43 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -decho Creating directory structure -mkdir directory -mkdir directory/subdir -genfile --file=directory/file +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory -decho Renaming -mv directory dir +sleep 2 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b -mv dir orig +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +# Delete a +rm -r directory -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort )" -echo rename04.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo chtype.at:30 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * @@ -16626,41 +23455,41 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -decho Creating directory structure -mkdir directory -mkdir directory/subdir -genfile --file=directory/file +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory -decho Renaming -mv directory dir +sleep 2 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b -mv dir orig +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +# Delete a +rm -r directory -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * @@ -16668,1114 +23497,1272 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -decho Creating directory structure -mkdir directory -mkdir directory/subdir -genfile --file=directory/file +install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 +mkdir directory/a +genfile --file directory/a/a -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo First backup +tar --create --file=archive.1 --listed-incremental=db.1 directory -decho Renaming -mv directory dir +sleep 2 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +# Remove directory b and create a file with this name. +# Previous versions were not able to restore over this file. +rm -r directory/b +genfile --file directory/b +genfile --file directory/a/b -mv dir orig +echo Second backup +tar --create --file=archive.2 --listed-incremental=db.2 directory -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +# Delete a +rm -r directory -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo Restore archive.1 +tar -xf archive.1 --listed-incremental=/dev/null +echo Restore archive.2 +tar -xf archive.2 --listed-incremental=/dev/null +find directory | sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -Second restore -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "First backup +Second backup +Restore archive.1 +Restore archive.2 directory -directory/file -directory/subdir -Second restore -dir -dir/subdir -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename04.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +directory/a +directory/a/a +directory/a/b +directory/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/chtype.at:30" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_52 +#AT_START_53 +# 53. ignfail.at:23: ignfail +at_setup_line='ignfail.at:23' +at_desc="ignfail" +$at_quiet $as_echo_n " 53: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "53. ignfail.at:23: testing ..." + $at_traceon + + - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon + { $at_traceoff +$as_echo "$at_srcdir/ignfail.at:26: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" +export TAR_OPTIONS +rm -rf * + +# The test is meaningless for super-user. + +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 + + +touch file +mkdir directory +touch directory/file + +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=\$? +chmod 600 file +test \$status = 2 || exit 1 + +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=\$? +chmod 600 file +test \$status = 0 || exit 1 + +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=\$? +chmod 700 directory +test \$status = 2 || exit 1 + +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=\$? +chmod 700 directory +test \$status = 0 +)" +echo ignfail.at:26 >"$at_check_line_file" - $at_traceoff -echo "$at_srcdir/rename04.at:30: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory dir - -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir - -mv dir orig +touch directory/file -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort -)" -echo rename04.at:30 >"$at_check_line_file" +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file +touch directory/file -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 -decho Renaming -mv directory dir +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "----- +tar: file: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: file: Warning: Cannot open: Permission denied +----- +tar: directory: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: directory: Warning: Cannot open: Permission denied +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26" -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +$at_failed && at_func_log_failure +$at_traceon; } -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort -) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + { $at_traceoff +$as_echo "$at_srcdir/ignfail.at:26: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file +touch directory/file -decho Creating initial archive -tar -cf archive.1 -g db.1 directory +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=\$? +chmod 600 file +test \$status = 2 || exit 1 -decho Renaming -mv directory dir +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=\$? +chmod 600 file +test \$status = 0 || exit 1 -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=\$? +chmod 700 directory +test \$status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=\$? +chmod 700 directory +test \$status = 0 +)" +echo ignfail.at:26 >"$at_check_line_file" -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +# The test is meaningless for super-user. -at_failed=false -echo >>"$at_stderr"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -Second restore -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -directory -directory/file -directory/subdir -Second restore -dir -dir/subdir -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename04.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +touch file +mkdir directory +touch directory/file + +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 + +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -$at_traceon +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 + +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * +# The test is meaningless for super-user. +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +touch file +mkdir directory +touch directory/file - 37 ) # 37. rename05.at:24: renamed subdirectories - at_setup_line='rename05.at:24' - at_desc="renamed subdirectories" - $at_quiet $ECHO_N " 37: renamed subdirectories $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "37. rename05.at:24: testing ..." - $at_traceon +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "----- +tar: file: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: file: Warning: Cannot open: Permission denied +----- +tar: directory: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: directory: Warning: Cannot open: Permission denied +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename05.at:27: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + { $at_traceoff +$as_echo "$at_srcdir/ignfail.at:26: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=\$? +chmod 600 file +test \$status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=\$? +chmod 600 file +test \$status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=\$? +chmod 700 directory +test \$status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=\$? +chmod 700 directory +test \$status = 0 )" -echo rename05.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo ignfail.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -Second restore -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -directory -directory/file -directory/subdir -Second restore -dir -dir/subdir.0 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename05.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +echo >>"$at_stderr"; $as_echo "----- +tar: file: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: file: Warning: Cannot open: Permission denied +----- +tar: directory: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: directory: Warning: Cannot open: Permission denied +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename05.at:27: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + { $at_traceoff +$as_echo "$at_srcdir/ignfail.at:26: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=\$? +chmod 600 file +test \$status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=\$? +chmod 600 file +test \$status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=\$? +chmod 700 directory +test \$status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=\$? +chmod 700 directory +test \$status = 0 )" -echo rename05.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo ignfail.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir - -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir - -mv dir orig - -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort - -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +touch directory/file -at_failed=false -echo >>"$at_stderr"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -Second restore -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -directory -directory/file -directory/subdir -Second restore -dir -dir/subdir.0 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename05.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 - echo 1 > "$at_status_file" - exit 1 +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 + +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "----- +tar: file: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: file: Warning: Cannot open: Permission denied +----- +tar: directory: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: directory: Warning: Cannot open: Permission denied +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/rename05.at:27: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + { $at_traceoff +$as_echo "$at_srcdir/ignfail.at:26: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" +TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=\$? +chmod 600 file +test \$status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=\$? +chmod 600 file +test \$status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=\$? +chmod 700 directory +test \$status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=\$? +chmod 700 directory +test \$status = 0 )" -echo rename05.at:27 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo ignfail.at:26 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * +# The test is meaningless for super-user. -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo "test" > $$ +chmod 0 $$ +cat $$ > /dev/null 2>&1 +result=$? +rm -f $$ +test $result -eq 0 && exit 77 -decho Creating directory structure +touch file mkdir directory -mkdir directory/subdir -genfile --file=directory/file - -decho Creating initial archive -tar -cf archive.1 -g db.1 directory - -decho Renaming -mv directory/subdir directory/subdir.0 -mv directory dir +touch directory/file -decho Creating incremental archive -cp db.1 db.2 -tar -cf archive.2 -g db.2 dir +echo 1>&2 ----- +chmod 000 file +tar cf archive file +status=$? +chmod 600 file +test $status = 2 || exit 1 -mv dir orig +echo 1>&2 ----- +chmod 000 file +tar cf archive --ignore-failed-read file || exit 1 +status=$? +chmod 600 file +test $status = 0 || exit 1 -decho First restore -tar -xf archive.1 -g db.1 -find directory | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive directory +status=$? +chmod 700 directory +test $status = 2 || exit 1 -decho Second restore -tar -xf archive.2 -g db.2 -find dir | sort +echo 1>&2 ----- +chmod 000 directory +tar cf archive --ignore-failed-read directory || exit 1 +status=$? +chmod 700 directory +test $status = 0 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -Second restore -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating directory structure -Creating initial archive -Renaming -Creating incremental archive -First restore -directory -directory/file -directory/subdir -Second restore -dir -dir/subdir.0 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/rename05.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +echo >>"$at_stderr"; $as_echo "----- +tar: file: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: file: Warning: Cannot open: Permission denied +----- +tar: directory: Cannot open: Permission denied +tar: Exiting with failure status due to previous errors +----- +tar: directory: Warning: Cannot open: Permission denied +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/ignfail.at:26" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 38 ) # 38. chtype.at:27: changed file types in incrementals - at_setup_line='chtype.at:27' - at_desc="changed file types in incrementals" - $at_quiet $ECHO_N " 38: changed file types in incrementals $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_53 +#AT_START_54 +# 54. link01.at:33: link count gt 2 +at_setup_line='link01.at:33' +at_desc="link count gt 2" +$at_quiet $as_echo_n " 54: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "38. chtype.at:27: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "54. link01.at:33: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/chtype.at:30: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + { $at_traceoff +$as_echo "$at_srcdir/link01.at:36: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 - - -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a - -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory - -sleep 2 - -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort +ls directory/test1 )" -echo chtype.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link01.at:36 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 - - -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a - -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory - -sleep 2 - -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort +ls directory/test1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 +tar cf archive directory/test1/test.txt directory/test1/test.txt -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a +rm -r directory +tar xf archive -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory +ls directory/test1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "test.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link01.at:36" -sleep 2 +$at_failed && at_func_log_failure +$at_traceon; } -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b + { $at_traceoff +$as_echo "$at_srcdir/link01.at:36: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +mkdir directory +mkdir directory/test1 +mkdir directory/test2 + +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 + +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +ls directory/test1 +)" +echo link01.at:36 >"$at_check_line_file" -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "First backup -Second backup -Restore archive.1 -Restore archive.2 -directory -directory/a -directory/a/a -directory/a/b -directory/b -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/chtype.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 - echo 1 > "$at_status_file" - exit 1 -fi +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 + +tar cf archive directory/test1/test.txt directory/test1/test.txt -$at_traceon +rm -r directory +tar xf archive - $at_traceoff -echo "$at_srcdir/chtype.at:30: +ls directory/test1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 +tar cf archive directory/test1/test.txt directory/test1/test.txt -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a +rm -r directory +tar xf archive -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory +ls directory/test1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "test.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link01.at:36" -sleep 2 +$at_failed && at_func_log_failure +$at_traceon; } -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b + { $at_traceoff +$as_echo "$at_srcdir/link01.at:36: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +mkdir directory +mkdir directory/test1 +mkdir directory/test2 + +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 + +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort +ls directory/test1 )" -echo chtype.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link01.at:36 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 - - -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a - -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory - -sleep 2 - -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort +ls directory/test1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 - - -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a - -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory - -sleep 2 - -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort +ls directory/test1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "First backup -Second backup -Restore archive.1 -Restore archive.2 -directory -directory/a -directory/a/a -directory/a/b -directory/b -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/chtype.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "test.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link01.at:36" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/chtype.at:30: + { $at_traceoff +$as_echo "$at_srcdir/link01.at:36: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -17784,46 +24771,25 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 - - -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a - -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory - -sleep 2 - -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort +ls directory/test1 )" -echo chtype.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link01.at:36 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -17832,42 +24798,23 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 - - -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a - -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory - -sleep 2 - -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort +ls directory/test1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -17876,93 +24823,146 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 -test -z "`sort < /dev/null 2>&1`" || exit 77 +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 +tar cf archive directory/test1/test.txt directory/test1/test.txt -install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77 -mkdir directory/a -genfile --file directory/a/a +rm -r directory +tar xf archive -echo First backup -tar --create --file=archive.1 --listed-incremental=db.1 directory +ls directory/test1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "test.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link01.at:36" -sleep 2 +$at_failed && at_func_log_failure +$at_traceon; } -# Remove directory b and create a file with this name. -# Previous versions were not able to restore over this file. -rm -r directory/b -genfile --file directory/b -genfile --file directory/a/b + { $at_traceoff +$as_echo "$at_srcdir/link01.at:36: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * -echo Second backup -tar --create --file=archive.2 --listed-incremental=db.2 directory +mkdir directory +mkdir directory/test1 +mkdir directory/test2 + +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 + +tar cf archive directory/test1/test.txt directory/test1/test.txt -# Delete a rm -r directory +tar xf archive -echo Restore archive.1 -tar -xf archive.1 --listed-incremental=/dev/null -echo Restore archive.2 -tar -xf archive.2 --listed-incremental=/dev/null -find directory | sort -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +ls directory/test1 +)" +echo link01.at:36 >"$at_check_line_file" -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "First backup -Second backup -Restore archive.1 -Restore archive.2 -directory -directory/a -directory/a/a -directory/a/b -directory/b -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/chtype.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +mkdir directory/test1 +mkdir directory/test2 + +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 + +tar cf archive directory/test1/test.txt directory/test1/test.txt + +rm -r directory +tar xf archive + +ls directory/test1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * +mkdir directory +mkdir directory/test1 +mkdir directory/test2 - echo 1 > "$at_status_file" - exit 1 -fi +echo TEST > directory/test1/test.txt +ln directory/test1/test.txt directory/test2/test.txt || exit 77 + +tar cf archive directory/test1/test.txt directory/test1/test.txt + +rm -r directory +tar xf archive -$at_traceon +ls directory/test1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "test.txt +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link01.at:36" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 39 ) # 39. ignfail.at:23: ignfail - at_setup_line='ignfail.at:23' - at_desc="ignfail" - $at_quiet $ECHO_N " 39: ignfail $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_54 +#AT_START_55 +# 55. link02.at:32: preserve hard links with --remove-files +at_setup_line='link02.at:32' +at_desc="preserve hard links with --remove-files" +$at_quiet $as_echo_n " 55: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "39. ignfail.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "55. link02.at:32: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/ignfail.at:26: + { $at_traceoff +$as_echo "$at_srcdir/link02.at:35: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -17971,57 +24971,18 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=\$? -chmod 600 file -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=\$? -chmod 600 file -test \$status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=\$? -chmod 700 directory -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=\$? -chmod 700 directory -test \$status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' )" -echo ignfail.at:26 >"$at_check_line_file" +echo link02.at:35 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -18030,53 +24991,16 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -18085,81 +25009,29 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "----- -tar: file: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: file: Warning: Cannot open: Permission denied ------ -tar: directory: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: directory: Warning: Cannot open: Permission denied -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/ignfail.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link02.at:35" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/ignfail.at:26: + { $at_traceoff +$as_echo "$at_srcdir/link02.at:35: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -18168,57 +25040,18 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=\$? -chmod 600 file -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=\$? -chmod 600 file -test \$status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=\$? -chmod 700 directory -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=\$? -chmod 700 directory -test \$status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' )" -echo ignfail.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link02.at:35 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -18226,54 +25059,17 @@ export TEST_TAR_FORMAT TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * - -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 + +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -18282,81 +25078,29 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "----- -tar: file: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: file: Warning: Cannot open: Permission denied ------ -tar: directory: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: directory: Warning: Cannot open: Permission denied -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/ignfail.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link02.at:35" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/ignfail.at:26: + { $at_traceoff +$as_echo "$at_srcdir/link02.at:35: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -18365,57 +25109,18 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=\$? -chmod 600 file -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=\$? -chmod 600 file -test \$status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=\$? -chmod 700 directory -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=\$? -chmod 700 directory -test \$status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' )" -echo ignfail.at:26 >"$at_check_line_file" +echo link02.at:35 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -18424,53 +25129,16 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -18479,81 +25147,29 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "----- -tar: file: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: file: Warning: Cannot open: Permission denied ------ -tar: directory: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: directory: Warning: Cannot open: Permission denied -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/ignfail.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link02.at:35" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/ignfail.at:26: + { $at_traceoff +$as_echo "$at_srcdir/link02.at:35: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -18562,57 +25178,18 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=\$? -chmod 600 file -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=\$? -chmod 600 file -test \$status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=\$? -chmod 700 directory -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=\$? -chmod 700 directory -test \$status = 0 -)" -echo ignfail.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' +)" +echo link02.at:35 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -18621,53 +25198,16 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -18676,81 +25216,29 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "----- -tar: file: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: file: Warning: Cannot open: Permission denied ------ -tar: directory: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: directory: Warning: Cannot open: Permission denied -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/ignfail.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link02.at:35" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/ignfail.at:26: + { $at_traceoff +$as_echo "$at_srcdir/link02.at:35: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -18759,57 +25247,18 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=\$? -chmod 600 file -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=\$? -chmod 600 file -test \$status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=\$? -chmod 700 directory -test \$status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=\$? -chmod 700 directory -test \$status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' )" -echo ignfail.at:26 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link02.at:35 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -18818,160 +25267,73 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu -export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" -export TAR_OPTIONS -rm -rf * - -# The test is meaningless for super-user. - -echo "test" > $$ -chmod 0 $$ -cat $$ > /dev/null 2>&1 -result=$? -rm -f $$ -test $result -eq 0 && exit 77 - - -touch file -mkdir directory -touch directory/file - -echo 1>&2 ----- -chmod 000 file -tar cf archive file -status=$? -chmod 600 file -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 file -tar cf archive --ignore-failed-read file || exit 1 -status=$? -chmod 600 file -test $status = 0 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive directory -status=$? -chmod 700 directory -test $status = 2 || exit 1 - -echo 1>&2 ----- -chmod 000 directory -tar cf archive --ignore-failed-read directory || exit 1 -status=$? -chmod 700 directory -test $status = 0 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -echo >>"$at_stderr"; echo "----- -tar: file: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: file: Warning: Cannot open: Permission denied ------ -tar: directory: Cannot open: Permission denied -tar: Exiting with failure status due to previous errors ------ -tar: directory: Warning: Cannot open: Permission denied -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/ignfail.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * - echo 1 > "$at_status_file" - exit 1 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 +tar -c -f archive --remove-files file1 file2 file3 file4 +tar tfv archive | sed -n 's/.*file[2-4] link to //p' +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link02.at:35" -$at_traceon - +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 40 ) # 40. link01.at:33: link count gt 2 - at_setup_line='link01.at:33' - at_desc="link count gt 2" - $at_quiet $ECHO_N " 40: link count gt 2 $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_55 +#AT_START_56 +# 56. link03.at:24: working -l with --remove-files +at_setup_line='link03.at:24' +at_desc="working -l with --remove-files" +$at_quiet $as_echo_n " 56: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "40. link01.at:33: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "56. link03.at:24: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/link01.at:36: + + + { $at_traceoff +$as_echo "$at_srcdir/link03.at:34: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -18980,29 +25342,30 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' )" -echo link01.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link03.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -19011,25 +25374,28 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -19038,44 +25404,45 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "test.txt -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/link01.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'. +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "archive.1 +archive.2 +testing archive.2 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link03.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/link01.at:36: + { $at_traceoff +$as_echo "$at_srcdir/link03.at:34: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -19084,29 +25451,30 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' )" -echo link01.at:36 >"$at_check_line_file" +echo link03.at:34 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -19115,25 +25483,28 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -19142,44 +25513,45 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "test.txt -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/link01.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'. +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "archive.1 +archive.2 +testing archive.2 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link03.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/link01.at:36: + { $at_traceoff +$as_echo "$at_srcdir/link03.at:34: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19188,29 +25560,30 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' )" -echo link01.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link03.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19219,25 +25592,28 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19246,44 +25622,45 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "test.txt -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/link01.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'. +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "archive.1 +archive.2 +testing archive.2 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link03.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/link01.at:36: + { $at_traceoff +$as_echo "$at_srcdir/link03.at:34: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -19292,29 +25669,30 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' )" -echo link01.at:36 >"$at_check_line_file" +echo link03.at:34 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -19323,25 +25701,28 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -19350,44 +25731,45 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "test.txt -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/link01.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'. +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "archive.1 +archive.2 +testing archive.2 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link03.at:34" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/link01.at:36: + { $at_traceoff +$as_echo "$at_srcdir/link03.at:34: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -19396,29 +25778,30 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' )" -echo link01.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo link03.at:34 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -19427,25 +25810,28 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -19454,61 +25840,62 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -mkdir directory/test1 -mkdir directory/test2 -echo TEST > directory/test1/test.txt -ln directory/test1/test.txt directory/test2/test.txt || exit 77 +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -tar cf archive directory/test1/test.txt directory/test1/test.txt +echo archive.1 +tar -c -f archive.1 -l --remove-files file1 file2 file3 file4 -rm -r directory -tar xf archive +genfile -l 64 -f file1 +link file1 file2 +link file2 file3 +link file3 file4 -ls directory/test1 +echo archive.2 +tar -c -f archive.2 -l --remove-files file1 file2 file3 +echo testing archive.2 +tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p' ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "test.txt -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/link01.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +echo >>"$at_stderr"; $as_echo "tar: Missing links to \`file1'. +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "archive.1 +archive.2 +testing archive.2 +file1 +file1 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/link03.at:34" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 41 ) # 41. longv7.at:24: long names in V7 archives - at_setup_line='longv7.at:24' - at_desc="long names in V7 archives" - $at_quiet $ECHO_N " 41: long names in V7 archives $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_56 +#AT_START_57 +# 57. longv7.at:24: long names in V7 archives +at_setup_line='longv7.at:24' +at_desc="long names in V7 archives" +$at_quiet $as_echo_n " 57: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "41. longv7.at:24: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "57. longv7.at:24: testing ..." + $at_traceon @@ -19517,8 +25904,8 @@ $at_traceon - $at_traceoff -echo "$at_srcdir/longv7.at:30: + { $at_traceoff +$as_echo "$at_srcdir/longv7.at:30: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -19536,13 +25923,9 @@ tar tf archive )" echo longv7.at:30 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -19558,11 +25941,9 @@ tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems echo separator tar tf archive ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -19578,50 +25959,41 @@ tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems echo separator tar tf archive ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c: file name is too long (max 99); not dumped +echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c: file name is too long (max 99); not dumped tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator this_is_a_very_long_name_for_a_directory_which_causes_problems/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/longv7.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/longv7.at:30" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 42 ) # 42. long01.at:28: long file names divisible by block size - at_setup_line='long01.at:28' - at_desc="long file names divisible by block size" - $at_quiet $ECHO_N " 42: long file names divisible by block size $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_57 +#AT_START_58 +# 58. long01.at:28: long file names divisible by block size +at_setup_line='long01.at:28' +at_desc="long file names divisible by block size" +$at_quiet $as_echo_n " 58: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "42. long01.at:28: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "58. long01.at:28: testing ..." + $at_traceon @@ -19631,8 +26003,8 @@ $at_traceon - $at_traceoff -echo "$at_srcdir/long01.at:36: + { $at_traceoff +$as_echo "$at_srcdir/long01.at:36: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -19647,15 +26019,11 @@ echo test > endfile tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile tar tf archive)" -echo long01.at:36 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo long01.at:36 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -19670,11 +26038,9 @@ echo test > endfile tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -19689,31 +26055,21 @@ echo test > endfile tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/long01.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/long01.at:36" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/long01.at:36: + { $at_traceoff +$as_echo "$at_srcdir/long01.at:36: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -19730,13 +26086,9 @@ tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0 tar tf archive)" echo long01.at:36 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -19751,11 +26103,9 @@ echo test > endfile tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -19770,48 +26120,38 @@ echo test > endfile tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/long01.at:36: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/long01.at:36" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 43 ) # 43. lustar01.at:21: ustar: unsplittable file name - at_setup_line='lustar01.at:21' - at_desc="ustar: unsplittable file name" - $at_quiet $ECHO_N " 43: ustar: unsplittable file name $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_58 +#AT_START_59 +# 59. lustar01.at:21: ustar: unsplittable file name +at_setup_line='lustar01.at:21' +at_desc="ustar: unsplittable file name" +$at_quiet $as_echo_n " 59: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "43. lustar01.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "59. lustar01.at:21: testing ..." + $at_traceon @@ -19819,8 +26159,8 @@ $at_traceon - $at_traceoff -echo "$at_srcdir/lustar01.at:27: + { $at_traceoff +$as_echo "$at_srcdir/lustar01.at:27: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19834,13 +26174,9 @@ tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_o )" echo lustar01.at:27 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19852,11 +26188,9 @@ rm -rf * genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77 tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19868,48 +26202,38 @@ rm -rf * genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77 tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix: file name is too long (cannot be split); not dumped +echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix: file name is too long (cannot be split); not dumped tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 2) ;; - *) echo "$at_srcdir/lustar01.at:27: exit code was $at_status, expected 2" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 2 $at_status "$at_srcdir/lustar01.at:27" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 44 ) # 44. lustar02.at:21: ustar: unsplittable path name - at_setup_line='lustar02.at:21' - at_desc="ustar: unsplittable path name" - $at_quiet $ECHO_N " 44: ustar: unsplittable path name $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_59 +#AT_START_60 +# 60. lustar02.at:21: ustar: unsplittable path name +at_setup_line='lustar02.at:21' +at_desc="ustar: unsplittable path name" +$at_quiet $as_echo_n " 60: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "44. lustar02.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "60. lustar02.at:21: testing ..." + $at_traceon @@ -19921,8 +26245,8 @@ $at_traceon - $at_traceoff -echo "$at_srcdir/lustar02.at:32: + { $at_traceoff +$as_echo "$at_srcdir/lustar02.at:32: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19937,13 +26261,9 @@ tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_o )" echo lustar02.at:32 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19956,11 +26276,9 @@ rm -rf * install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77 tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19973,48 +26291,38 @@ rm -rf * install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77 tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/: file name is too long (cannot be split); not dumped +echo >>"$at_stderr"; $as_echo "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/: file name is too long (cannot be split); not dumped tar: Exiting with failure status due to previous errors -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 2) ;; - *) echo "$at_srcdir/lustar02.at:32: exit code was $at_status, expected 2" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 2 $at_status "$at_srcdir/lustar02.at:32" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 45 ) # 45. lustar03.at:21: ustar: splitting long names - at_setup_line='lustar03.at:21' - at_desc="ustar: splitting long names" - $at_quiet $ECHO_N " 45: ustar: splitting long names $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_60 +#AT_START_61 +# 61. lustar03.at:21: ustar: splitting long names +at_setup_line='lustar03.at:21' +at_desc="ustar: splitting long names" +$at_quiet $as_echo_n " 61: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "45. lustar03.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "61. lustar03.at:21: testing ..." + $at_traceon @@ -20024,8 +26332,8 @@ $at_traceon - $at_traceoff -echo "$at_srcdir/lustar03.at:29: + { $at_traceoff +$as_echo "$at_srcdir/lustar03.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -20042,13 +26350,9 @@ echo \"List archive\" tar tf archive)" echo lustar03.at:29 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -20063,11 +26367,9 @@ echo "Create archive" tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be echo "List archive" tar tf archive) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -20082,50 +26384,40 @@ echo "Create archive" tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be echo "List archive" tar tf archive) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Create archive +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Create archive List archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/ this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/lustar03.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/lustar03.at:29" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 46 ) # 46. multiv01.at:23: multivolume dumps from pipes - at_setup_line='multiv01.at:23' - at_desc="multivolume dumps from pipes" - $at_quiet $ECHO_N " 46: multivolume dumps from pipes $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_61 +#AT_START_62 +# 62. multiv01.at:23: multivolume dumps from pipes +at_setup_line='multiv01.at:23' +at_desc="multivolume dumps from pipes" +$at_quiet $as_echo_n " 62: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "46. multiv01.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "62. multiv01.at:23: testing ..." + $at_traceon @@ -20135,8 +26427,8 @@ $at_traceon - $at_traceoff -echo "$at_srcdir/multiv01.at:30: + { $at_traceoff +$as_echo "$at_srcdir/multiv01.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -20163,7 +26455,6 @@ else fi tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\ - --listed-incremental=t.snar \\ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20177,13 +26468,9 @@ cmp file2 extract-dir-pipe/file2 )" echo multiv01.at:30 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -20210,7 +26497,6 @@ else fi tar -c --multi-volume --tape-length=$TAPE_LENGTH \ - --listed-incremental=t.snar \ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20222,11 +26508,9 @@ PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -20253,7 +26537,6 @@ else fi tar -c --multi-volume --tape-length=$TAPE_LENGTH \ - --listed-incremental=t.snar \ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20265,29 +26548,18 @@ PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv01.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv01.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/multiv01.at:30: + { $at_traceoff +$as_echo "$at_srcdir/multiv01.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -20314,7 +26586,6 @@ else fi tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\ - --listed-incremental=t.snar \\ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20328,13 +26599,9 @@ cmp file2 extract-dir-pipe/file2 )" echo multiv01.at:30 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -20361,7 +26628,6 @@ else fi tar -c --multi-volume --tape-length=$TAPE_LENGTH \ - --listed-incremental=t.snar \ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20373,11 +26639,9 @@ PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -20404,7 +26668,6 @@ else fi tar -c --multi-volume --tape-length=$TAPE_LENGTH \ - --listed-incremental=t.snar \ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20416,29 +26679,18 @@ PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv01.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv01.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/multiv01.at:30: + { $at_traceoff +$as_echo "$at_srcdir/multiv01.at:30: mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -20465,7 +26717,6 @@ else fi tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\ - --listed-incremental=t.snar \\ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20479,13 +26730,9 @@ cmp file2 extract-dir-pipe/file2 )" echo multiv01.at:30 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a ${...} parameter expansion)' + false; }; then + ( $at_traceon; mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -20512,7 +26759,6 @@ else fi tar -c --multi-volume --tape-length=$TAPE_LENGTH \ - --listed-incremental=t.snar \ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20524,11 +26770,9 @@ PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -20555,7 +26799,6 @@ else fi tar -c --multi-volume --tape-length=$TAPE_LENGTH \ - --listed-incremental=t.snar \ -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1 mkdir extract-dir-pipe @@ -20567,53 +26810,42 @@ PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv01.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv01.at:30" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 47 ) # 47. multiv02.at:28: skipping a straddling member - at_setup_line='multiv02.at:28' - at_desc="skipping a straddling member" - $at_quiet $ECHO_N " 47: skipping a straddling member $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_62 +#AT_START_63 +# 63. multiv02.at:28: skipping a straddling member +at_setup_line='multiv02.at:28' +at_desc="skipping a straddling member" +$at_quiet $as_echo_n " 63: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "47. multiv02.at:28: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "63. multiv02.at:28: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/multiv02.at:31: + { $at_traceoff +$as_echo "$at_srcdir/multiv02.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -20635,13 +26867,9 @@ tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 )" echo multiv02.at:31 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -20661,11 +26889,9 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1 echo separator tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -20685,31 +26911,21 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1 echo separator tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator en -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv02.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv02.at:31" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/multiv02.at:31: + { $at_traceoff +$as_echo "$at_srcdir/multiv02.at:31: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -20731,13 +26947,9 @@ tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 )" echo multiv02.at:31 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -20757,11 +26969,9 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1 echo separator tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -20781,31 +26991,21 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1 echo separator tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator en -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv02.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv02.at:31" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/multiv02.at:31: + { $at_traceoff +$as_echo "$at_srcdir/multiv02.at:31: mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -20827,13 +27027,9 @@ tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 )" echo multiv02.at:31 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -20853,11 +27049,9 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1 echo separator tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -20877,55 +27071,45 @@ tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1 echo separator tar -v -x -f A.tar -f B.tar -f C.tar -M en || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator en -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv02.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv02.at:31" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 48 ) # 48. multiv03.at:30: MV archive & long filenames - at_setup_line='multiv03.at:30' - at_desc="MV archive & long filenames" - $at_quiet $ECHO_N " 48: MV archive & long filenames $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_63 +#AT_START_64 +# 64. multiv03.at:30: MV archive & long filenames +at_setup_line='multiv03.at:30' +at_desc="MV archive & long filenames" +$at_quiet $as_echo_n " 64: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "48. multiv03.at:30: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "64. multiv03.at:30: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/multiv03.at:33: + { $at_traceoff +$as_echo "$at_srcdir/multiv03.at:33: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -20967,13 +27151,9 @@ cmp \$BFILE bfile )" echo multiv03.at:33 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21013,11 +27193,9 @@ mv $BFILE bfile tar -M -x -f arch.1 -f arch.2 || exit 1 cmp $BFILE bfile ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21057,29 +27235,18 @@ mv $BFILE bfile tar -M -x -f arch.1 -f arch.2 || exit 1 cmp $BFILE bfile ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false $at_diff experr "$at_stderr" || at_failed=: $at_diff expout "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv03.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +at_func_check_status 0 $at_status "$at_srcdir/multiv03.at:33" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/multiv03.at:33: + { $at_traceoff +$as_echo "$at_srcdir/multiv03.at:33: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -21121,13 +27288,9 @@ cmp \$BFILE bfile )" echo multiv03.at:33 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -21167,11 +27330,9 @@ mv $BFILE bfile tar -M -x -f arch.1 -f arch.2 || exit 1 cmp $BFILE bfile ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -21211,53 +27372,42 @@ mv $BFILE bfile tar -M -x -f arch.1 -f arch.2 || exit 1 cmp $BFILE bfile ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false $at_diff experr "$at_stderr" || at_failed=: $at_diff expout "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv03.at:33: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_check_status 0 $at_status "$at_srcdir/multiv03.at:33" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 49 ) # 49. multiv04.at:36: split directory members in a MV archive - at_setup_line='multiv04.at:36' - at_desc="split directory members in a MV archive" - $at_quiet $ECHO_N " 49: split directory members in a MV archive $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_64 +#AT_START_65 +# 65. multiv04.at:36: split directory members in a MV archive +at_setup_line='multiv04.at:36' +at_desc="split directory members in a MV archive" +$at_quiet $as_echo_n " 65: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "49. multiv04.at:36: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "65. multiv04.at:36: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/multiv04.at:39: + { $at_traceoff +$as_echo "$at_srcdir/multiv04.at:39: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21285,13 +27435,9 @@ echo separator tar -MRt -f arc.1 -f arc.2)" echo multiv04.at:39 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21317,11 +27463,9 @@ tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v d echo separator tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21347,33 +27491,23 @@ tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v d echo separator tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ separator block 0: directory/ block 35: ** Block of NULs ** -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv04.at:39: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv04.at:39" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/multiv04.at:39: + { $at_traceoff +$as_echo "$at_srcdir/multiv04.at:39: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -21401,13 +27535,9 @@ echo separator tar -MRt -f arc.1 -f arc.2)" echo multiv04.at:39 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -21433,11 +27563,9 @@ tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v d echo separator tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -21463,58 +27591,48 @@ tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v d echo separator tar -MRt -f arc.1 -f arc.2) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ separator block 0: directory/ block 35: ** Block of NULs ** -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv04.at:39: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv04.at:39" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 50 ) # 50. multiv05.at:26: Restoring after an out of sync volume - at_setup_line='multiv05.at:26' - at_desc="Restoring after an out of sync volume" - $at_quiet $ECHO_N " 50: Restoring after an out of sync volume $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_65 +#AT_START_66 +# 66. multiv05.at:26: Restoring after an out of sync volume +at_setup_line='multiv05.at:26' +at_desc="Restoring after an out of sync volume" +$at_quiet $as_echo_n " 66: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "50. multiv05.at:26: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "66. multiv05.at:26: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/multiv05.at:30: + { $at_traceoff +$as_echo "$at_srcdir/multiv05.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21554,13 +27672,9 @@ echo Diffing szesc )" echo multiv05.at:30 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21598,11 +27712,9 @@ echo Diffing piec echo Diffing szesc cmp bak/szesc szesc || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -21640,13 +27752,13 @@ echo Diffing piec echo Diffing szesc cmp bak/szesc szesc || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: \`trzy' is not continued on this volume -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating archive +echo >>"$at_stderr"; $as_echo "tar: \`trzy' is not continued on this volume +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating archive separator jeden dwa @@ -21660,53 +27772,118 @@ Diffing trzy Diffing cztery Diffing piec Diffing szesc -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv05.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv05.at:30" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_66 +#AT_START_67 +# 67. multiv06.at:27: Multivolumes with L=record_size +at_setup_line='multiv06.at:27' +at_desc="Multivolumes with L=record_size" +$at_quiet $as_echo_n " 67: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "67. multiv06.at:27: testing ..." + $at_traceon - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 51 ) # 51. multiv06.at:27: Multivolumes with L=record_size - at_setup_line='multiv06.at:27' - at_desc="Multivolumes with L=record_size" - $at_quiet $ECHO_N " 51: Multivolumes with L=record_size $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "51. multiv06.at:27: testing ..." - $at_traceon + { $at_traceoff +$as_echo "$at_srcdir/multiv06.at:30: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * +exec <&- +decho Creating file +genfile --length 20139 --file file +decho Creating archive +tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file +decho Testing archive +tar -t -M -farc.1 -farc.2 -farc.3)" +echo multiv06.at:30 >"$at_check_line_file" +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * - $at_traceoff -echo "$at_srcdir/multiv06.at:30: +exec <&- +decho Creating file +genfile --length 20139 --file file +decho Creating archive +tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file +decho Testing archive +tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +exec <&- +decho Creating file +genfile --length 20139 --file file +decho Creating archive +tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file +decho Testing archive +tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +echo >>"$at_stderr"; $as_echo "Creating file +Creating archive +Testing archive +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating file +Creating archive +Testing archive +file +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv06.at:30" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/multiv06.at:30: +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H pax\" export TAR_OPTIONS rm -rf * @@ -21719,18 +27896,14 @@ decho Testing archive tar -t -M -farc.1 -farc.2 -farc.3)" echo multiv06.at:30 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * @@ -21741,16 +27914,14 @@ decho Creating archive tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file decho Testing archive tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + ( :; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * @@ -21761,220 +27932,514 @@ decho Creating archive tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file decho Testing archive tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "Creating file +echo >>"$at_stderr"; $as_echo "Creating file Creating archive Testing archive -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating file +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Creating file Creating archive Testing archive file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv06.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv06.at:30" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_67 +#AT_START_68 +# 68. multiv07.at:26: volumes split at an extended header +at_setup_line='multiv07.at:26' +at_desc="volumes split at an extended header" +$at_quiet $as_echo_n " 68: $at_desc " +at_xfail=no + test -f \$XFAILFILE && at_xfail=yes + test -f $XFAILFILE && at_xfail=yes + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "68. multiv07.at:26: testing ..." + $at_traceon + + + +{ $at_traceoff +$as_echo "$at_srcdir/multiv07.at:29: + + +test -z "$TEST_DATA_DIR" && exit 77 +tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77 + +test -z "$TEST_DATA_DIR" && exit 77 +tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77 + +cd \$TEST_DATA_DIR +tar -t -M -fxsplit-1.tar -fxsplit-2.tar +" +echo multiv07.at:29 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; + + +test -z "$TEST_DATA_DIR" && exit 77 +tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77 + +test -z "$TEST_DATA_DIR" && exit 77 +tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77 + +cd $TEST_DATA_DIR +tar -t -M -fxsplit-1.tar -fxsplit-2.tar + ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; + + +test -z "$TEST_DATA_DIR" && exit 77 +tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77 + +test -z "$TEST_DATA_DIR" && exit 77 +tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77 + +cd $TEST_DATA_DIR +tar -t -M -fxsplit-1.tar -fxsplit-2.tar + ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Archive volumes split at an extended header Volume 1 +foo +bar +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/multiv07.at:29" + +$at_failed && at_func_log_failure +$at_traceon; } + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_68 +#AT_START_69 +# 69. old.at:23: old archives +at_setup_line='old.at:23' +at_desc="old archives" +$at_quiet $as_echo_n " 69: $at_desc " +at_xfail=no +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "69. old.at:23: testing ..." + $at_traceon + + + +unset TAR_OPTIONS +{ $at_traceoff +$as_echo "$at_srcdir/old.at:27: +mkdir directory +tar cfvo archive directory || exit 1 +tar tf archive +" +echo old.at:27 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir directory +tar cfvo archive directory || exit 1 +tar tf archive + ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir directory +tar cfvo archive directory || exit 1 +tar tf archive + ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/old.at:27" + +$at_failed && at_func_log_failure +$at_traceon; } + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_69 +#AT_START_70 +# 70. recurse.at:21: recurse +at_setup_line='recurse.at:21' +at_desc="recurse" +$at_quiet $as_echo_n " 70: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "70. recurse.at:21: testing ..." + $at_traceon - echo 1 > "$at_status_file" - exit 1 + + + + { $at_traceoff +$as_echo "$at_srcdir/recurse.at:24: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +)" +echo recurse.at:24 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/recurse.at:24: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +)" +echo recurse.at:24 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H oldgnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/recurse.at:24: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +)" +echo recurse.at:24 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * + +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/multiv06.at:30: -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax + { $at_traceoff +$as_echo "$at_srcdir/recurse.at:24: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H pax\" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -exec <&- -decho Creating file -genfile --length 20139 --file file -decho Creating archive -tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file -decho Testing archive -tar -t -M -farc.1 -farc.2 -farc.3)" -echo multiv06.at:30 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +)" +echo recurse.at:24 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -exec <&- -decho Creating file -genfile --length 20139 --file file -decho Creating archive -tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file -decho Testing archive -tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -exec <&- -decho Creating file -genfile --length 20139 --file file -decho Creating archive -tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file -decho Testing archive -tar -t -M -farc.1 -farc.2 -farc.3) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +mkdir directory +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 +tar tf archive +) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "Creating file -Creating archive -Testing archive -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Creating file -Creating archive -Testing archive -file -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/multiv06.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 52 ) # 52. old.at:23: old archives - at_setup_line='old.at:23' - at_desc="old archives" - $at_quiet $ECHO_N " 52: old archives $ECHO_C" - at_xfail=no - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "52. old.at:23: testing ..." - $at_traceon +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24" +$at_failed && at_func_log_failure +$at_traceon; } + { $at_traceoff +$as_echo "$at_srcdir/recurse.at:24: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * -unset TAR_OPTIONS -$at_traceoff -echo "$at_srcdir/old.at:27: mkdir directory -tar cfvo archive directory || exit 1 +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 tar tf archive -" -echo old.at:27 >"$at_check_line_file" +)" +echo recurse.at:24 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * -if test -n "$at_trace_this"; then - ( $at_traceon; mkdir directory -tar cfvo archive directory || exit 1 +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 tar tf archive - ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + mkdir directory -tar cfvo archive directory || exit 1 +touch directory/file +tar --create --file archive --no-recursion directory || exit 1 tar tf archive - ) >"$at_stdout" 2>"$at_stderr" - at_status=$? +) ) >"$at_stdout" 2>"$at_stderr" fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/old.at:27: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "directory/ +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/recurse.at:24" - echo 1 > "$at_status_file" - exit 1 -fi +$at_failed && at_func_log_failure +$at_traceon; } -$at_traceon - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 53 ) # 53. recurse.at:21: recurse - at_setup_line='recurse.at:21' - at_desc="recurse" - $at_quiet $ECHO_N " 53: recurse $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_70 +#AT_START_71 +# 71. same-order01.at:26: working -C with --same-order +at_setup_line='same-order01.at:26' +at_desc="working -C with --same-order" +$at_quiet $as_echo_n " 71: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "53. recurse.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "71. same-order01.at:26: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/recurse.at:24: + { $at_traceoff +$as_echo "$at_srcdir/same-order01.at:29: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -21983,20 +28448,24 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -)" -echo recurse.at:24 >"$at_check_line_file" +tar -xf archive --same-order -C directory || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls directory|sort +)" +echo same-order01.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22005,16 +28474,22 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22023,35 +28498,34 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/recurse.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + +mkdir directory +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/recurse.at:24: + { $at_traceoff +$as_echo "$at_srcdir/same-order01.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -22060,20 +28534,24 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -)" -echo recurse.at:24 >"$at_check_line_file" +tar -xf archive --same-order -C directory || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls directory|sort +)" +echo same-order01.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -22082,16 +28560,22 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -22100,35 +28584,34 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/recurse.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 +mkdir directory +tar -xf archive --same-order -C directory || exit 1 - echo 1 > "$at_status_file" - exit 1 +ls directory|sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/recurse.at:24: + { $at_traceoff +$as_echo "$at_srcdir/same-order01.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -22137,20 +28620,24 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -)" -echo recurse.at:24 >"$at_check_line_file" +tar -xf archive --same-order -C directory || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls directory|sort +)" +echo same-order01.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -22159,16 +28646,22 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -22177,35 +28670,34 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/recurse.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + +mkdir directory +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/recurse.at:24: + { $at_traceoff +$as_echo "$at_srcdir/same-order01.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -22214,20 +28706,24 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -)" -echo recurse.at:24 >"$at_check_line_file" +tar -xf archive --same-order -C directory || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls directory|sort +)" +echo same-order01.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -22236,16 +28732,22 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -22254,35 +28756,34 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/recurse.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + +mkdir directory +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/recurse.at:24: + { $at_traceoff +$as_echo "$at_srcdir/same-order01.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -22291,20 +28792,24 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -)" -echo recurse.at:24 >"$at_check_line_file" +tar -xf archive --same-order -C directory || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls directory|sort +)" +echo same-order01.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -22313,16 +28818,22 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * + +test -z "`sort < /dev/null 2>&1`" || exit 77 + + +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive +tar -xf archive --same-order -C directory || exit 1 + +ls directory|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -22331,59 +28842,58 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -touch directory/file -tar --create --file archive --no-recursion directory || exit 1 -tar tf archive -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "directory/ -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/recurse.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 - echo 1 > "$at_status_file" - exit 1 -fi +genfile -l 1024 -f file1 +genfile -l 1024 -f file2 +tar cf archive file1 file2 + +mkdir directory +tar -xf archive --same-order -C directory || exit 1 -$at_traceon +ls directory|sort +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order01.at:29" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 54 ) # 54. same-order01.at:26: working -C with --same-order - at_setup_line='same-order01.at:26' - at_desc="working -C with --same-order" - $at_quiet $ECHO_N " 54: working -C with --same-order $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_71 +#AT_START_72 +# 72. same-order02.at:25: multiple -C options +at_setup_line='same-order02.at:25' +at_desc="multiple -C options" +$at_quiet $as_echo_n " 72: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "54. same-order01.at:26: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "72. same-order02.at:25: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/same-order01.at:29: + { $at_traceoff +$as_echo "$at_srcdir/same-order02.at:28: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22392,28 +28902,25 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort -)" -echo same-order01.at:29 >"$at_check_line_file" +HERE=\`pwd\` +tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls en +echo separator +ls to +)" +echo same-order02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22422,24 +28929,23 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22448,44 +28954,36 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +separator file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order01.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/same-order01.at:29: + { $at_traceoff +$as_echo "$at_srcdir/same-order02.at:28: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -22494,28 +28992,25 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to + +HERE=\`pwd\` +tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 -ls directory|sort +ls en +echo separator +ls to )" -echo same-order01.at:29 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo same-order02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -22524,24 +29019,23 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -22550,44 +29044,36 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +separator file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order01.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/same-order01.at:29: + { $at_traceoff +$as_echo "$at_srcdir/same-order02.at:28: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -22596,28 +29082,25 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort -)" -echo same-order01.at:29 >"$at_check_line_file" +HERE=\`pwd\` +tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls en +echo separator +ls to +)" +echo same-order02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -22626,24 +29109,23 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -22652,44 +29134,36 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +separator file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order01.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/same-order01.at:29: + { $at_traceoff +$as_echo "$at_srcdir/same-order02.at:28: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -22698,28 +29172,25 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort -)" -echo same-order01.at:29 >"$at_check_line_file" +HERE=\`pwd\` +tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls en +echo separator +ls to +)" +echo same-order02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -22728,24 +29199,23 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -22754,44 +29224,36 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +separator file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order01.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/same-order01.at:29: + { $at_traceoff +$as_echo "$at_srcdir/same-order02.at:28: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -22800,28 +29262,25 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort -)" -echo same-order01.at:29 >"$at_check_line_file" +HERE=\`pwd\` +tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +ls en +echo separator +ls to +)" +echo same-order02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains a `...` command substitution)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -22830,24 +29289,23 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -22856,68 +29314,60 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * - -test -z "`sort < /dev/null 2>&1`" || exit 77 - - genfile -l 1024 -f file1 genfile -l 1024 -f file2 tar cf archive file1 file2 -mkdir directory -tar -xf archive --same-order -C directory || exit 1 +mkdir en +mkdir to -ls directory|sort +HERE=`pwd` +tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 + +ls en +echo separator +ls to ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "file1 +separator file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order01.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/same-order02.at:28" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 55 ) # 55. same-order02.at:25: multiple -C options - at_setup_line='same-order02.at:25' - at_desc="multiple -C options" - $at_quiet $ECHO_N " 55: multiple -C options $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_72 +#AT_START_73 +# 73. shortrec.at:25: short records +at_setup_line='shortrec.at:25' +at_desc="short records" +$at_quiet $as_echo_n " 73: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "55. same-order02.at:25: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "73. shortrec.at:25: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/same-order02.at:28: + { $at_traceoff +$as_echo "$at_srcdir/shortrec.at:28: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22926,29 +29376,20 @@ TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=\`pwd\` -tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 - -ls en -echo separator -ls to -)" -echo same-order02.at:28 >"$at_check_line_file" +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi +rm -r directory +)" +echo shortrec.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22957,25 +29398,18 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -ls en -echo separator -ls to +rm -r directory ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22984,46 +29418,27 @@ TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -ls en -echo separator -ls to +rm -r directory ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -separator -file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/same-order02.at:28: + { $at_traceoff +$as_echo "$at_srcdir/shortrec.at:28: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -23032,29 +29447,20 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=\`pwd\` -tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -ls en -echo separator -ls to +rm -r directory )" -echo same-order02.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi +echo shortrec.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -23063,25 +29469,18 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -ls en -echo separator -ls to +rm -r directory ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -23090,46 +29489,27 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -ls en -echo separator -ls to +rm -r directory ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -separator -file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/same-order02.at:28: + { $at_traceoff +$as_echo "$at_srcdir/shortrec.at:28: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -23138,29 +29518,20 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=\`pwd\` -tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -ls en -echo separator -ls to +rm -r directory )" -echo same-order02.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi +echo shortrec.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -23169,25 +29540,18 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -ls en -echo separator -ls to +rm -r directory ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -23196,46 +29560,193 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null -mkdir en -mkdir to +rm -r directory +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28" -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +$at_failed && at_func_log_failure +$at_traceon; } -ls en -echo separator -ls to + { $at_traceoff +$as_echo "$at_srcdir/shortrec.at:28: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null + +rm -r directory +)" +echo shortrec.at:28 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null + +rm -r directory +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS="-H posix" +export TAR_OPTIONS +rm -rf * + +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null + +rm -r directory +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/shortrec.at:28: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null + +rm -r directory +)" +echo shortrec.at:28 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null + +rm -r directory +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * + +mkdir directory +(cd directory && touch a b c d e f g h i j k l m n o p q r) +tar -c -b 1 -f - directory | tar -t -f - > /dev/null +tar -c -b 1 -f archive directory +tar -t -f archive > /dev/null +tar -t -f - < archive > /dev/null + +rm -r directory ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -separator -file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/shortrec.at:28" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/same-order02.at:28: + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_73 +#AT_START_74 +# 74. sparse01.at:21: sparse files +at_setup_line='sparse01.at:21' +at_desc="sparse files" +$at_quiet $as_echo_n " 74: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "74. sparse01.at:21: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/sparse01.at:24: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -23244,29 +29755,24 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=\`pwd\` -tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -ls en +tar tfv archive echo separator -ls to +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile )" -echo same-order02.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi +echo sparse01.at:24 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -23275,25 +29781,22 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -ls en +tar tfv archive echo separator -ls to +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -23302,46 +29805,31 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -ls en +tar tfv archive echo separator -ls to +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -separator -file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +at_func_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; tee stdout <"$at_stdout" +at_func_check_status 0 $at_status "$at_srcdir/sparse01.at:24" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/same-order02.at:28: + { $at_traceoff +$as_echo "$at_srcdir/sparse01.at:24: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -23350,29 +29838,24 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=\`pwd\` -tar -xf archive --same-order -C \$HERE/en file1 -C \$HERE/to file2 || exit 1 +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -ls en +tar tfv archive echo separator -ls to +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile )" -echo same-order02.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains a `...` command substitution)' -fi +echo sparse01.at:24 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -23381,25 +29864,22 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -ls en +tar tfv archive echo separator -ls to +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -23408,450 +29888,390 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -genfile -l 1024 -f file1 -genfile -l 1024 -f file2 -tar cf archive file1 file2 - -mkdir en -mkdir to - -HERE=`pwd` -tar -xf archive --same-order -C $HERE/en file1 -C $HERE/to file2 || exit 1 +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -ls en +tar tfv archive echo separator -ls to +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "file1 -separator -file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/same-order02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 56 ) # 56. shortrec.at:25: short records - at_setup_line='shortrec.at:25' - at_desc="short records" - $at_quiet $ECHO_N " 56: short records $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "56. shortrec.at:25: testing ..." - $at_traceon - - - - - +at_func_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; tee stdout <"$at_stdout" +at_func_check_status 0 $at_status "$at_srcdir/sparse01.at:24" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/shortrec.at:28: -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 + { $at_traceoff +$as_echo "$at_srcdir/sparse01.at:24: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H v7\" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -rm -r directory +tar tfv archive +echo separator +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile )" -echo shortrec.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo sparse01.at:24 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -rm -r directory +tar tfv archive +echo separator +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir v7 -(cd v7 -TEST_TAR_FORMAT=v7 + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H v7" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * +genfile --length 1000 -f begin +genfile --length 1000 -f end +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator + +tar tfv archive +echo separator mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive - -rm -r directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo stdout:; cat "$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; tee stdout <"$at_stdout" +at_func_check_status 0 $at_status "$at_srcdir/sparse01.at:24" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/shortrec.at:28: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo shortrec.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi +cat >stdout.re <<'_ATEOF' +separator +-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin +-rw-r--r-- ^ ^ * *10344448 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile +-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end +separator +sparsefile 10344448 +_ATEOF -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +awk '{print NR " " $0}' stdout > $$.1 +awk '{print NR " " $0}' stdout.re | join - $$.1 | +while read NUM RE LINE +do + echo "$LINE" | grep -- "$RE" >/dev/null || exit 1 +done -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_74 +#AT_START_75 +# 75. sparse02.at:21: extracting sparse file over a pipe +at_setup_line='sparse02.at:21' +at_desc="extracting sparse file over a pipe" +$at_quiet $as_echo_n " 75: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "75. sparse02.at:21: testing ..." + $at_traceon - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +# Tar 1.14 - 1.15.1 was unable to extract sparse files to a pipe. +# References: <16896.21739.460782.124775@jik.kamens.brookline.ma.us> +# http://lists.gnu.org/archive/html/bug-tar/2005-02/msg00003.html -$at_traceoff -echo "$at_srcdir/shortrec.at:28: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + + + { $at_traceoff +$as_echo "$at_srcdir/sparse02.at:28: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator -rm -r directory +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy )" -echo shortrec.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo sparse02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator -rm -r directory +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator -rm -r directory +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo stdout:; cat "$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/sparse02.at:28" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi + { $at_traceoff +$as_echo "$at_srcdir/sparse02.at:28: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * -$at_traceon +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy +)" +echo sparse02.at:28 >"$at_check_line_file" - $at_traceoff -echo "$at_srcdir/shortrec.at:28: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo shortrec.at:28 >"$at_check_line_file" +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS="-H gnu" +export TAR_OPTIONS +rm -rf * +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator - echo 1 > "$at_status_file" - exit 1 +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/sparse02.at:28" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } -$at_traceoff -echo "$at_srcdir/shortrec.at:28: -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar + { $at_traceoff +$as_echo "$at_srcdir/sparse02.at:28: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H ustar\" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator -rm -r directory +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy )" -echo shortrec.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo sparse02.at:28 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H ustar" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator -rm -r directory +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir ustar -(cd ustar -TEST_TAR_FORMAT=ustar + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H ustar" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 +tar -c -f archive --sparse sparsefile || exit 1 +echo separator -rm -r directory +tar xfO archive | cat - > sparsecopy || exit 1 +cmp sparsefile sparsecopy ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo stdout:; cat "$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/sparse02.at:28" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon $at_traceoff -echo "$at_srcdir/shortrec.at:28: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo shortrec.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_75 +#AT_START_76 +# 76. sparse03.at:21: storing sparse files > 8G +at_setup_line='sparse03.at:21' +at_desc="storing sparse files > 8G" +$at_quiet $as_echo_n " 76: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "76. sparse03.at:21: testing ..." + $at_traceon -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +# Tar 1.15.1 incorrectly computed sparse member size if the extended +# PAX header contained size keyword. +# References: <87vf46nb36.fsf@penguin.cs.ucla.edu> +# http://lists.gnu.org/archive/html/bug-tar/2005-06/msg00040.html - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon -$at_traceoff -echo "$at_srcdir/shortrec.at:28: + { $at_traceoff +$as_echo "$at_srcdir/sparse03.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -23860,24 +30280,24 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --length 1000 --file begin +genfile --length 1000 --file end +genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -rm -r directory +tar tfv archive +echo separator +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile )" -echo shortrec.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo sparse03.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -23886,20 +30306,22 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --length 1000 --file begin +genfile --length 1000 --file end +genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -rm -r directory +tar tfv archive +echo separator +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -23908,76 +30330,80 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +genfile --length 1000 --file begin +genfile --length 1000 --file end +genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 +tar -c -f archive --sparse begin sparsefile end || exit 1 +echo separator -rm -r directory +tar tfv archive +echo separator +mkdir directory +tar Cxf directory archive +genfile --stat=name,size sparsefile +cmp sparsefile directory/sparsefile ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo stdout:; cat "$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo stdout:; tee stdout <"$at_stdout" +at_func_check_status 0 $at_status "$at_srcdir/sparse03.at:29" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/shortrec.at:28: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo shortrec.at:28 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi +cat >stdout.re <<'_ATEOF' +separator +-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin +-rw-r--r-- ^ ^ * *8589935104 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile +-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end +separator +sparsefile 8589935104 +_ATEOF -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +awk '{print NR " " $0}' stdout > $$.1 +awk '{print NR " " $0}' stdout.re | join - $$.1 | +while read NUM RE LINE +do + echo "$LINE" | grep -- "$RE" >/dev/null || exit 1 +done -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_76 +#AT_START_77 +# 77. sparsemv.at:21: sparse files in MV archives +at_setup_line='sparsemv.at:21' +at_desc="sparse files in MV archives" +$at_quiet $as_echo_n " 77: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "77. sparsemv.at:21: testing ..." + $at_traceon - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon +# Check if sparse files are correctly split between GNU multi-volume +# archives. +# There are two cases: the file can be split within an empty (null) block, +# or within a data block. Since null blocks are not archived, the first +# case means the file is split between two consecutive data blocks. +# + + -$at_traceoff -echo "$at_srcdir/shortrec.at:28: + { $at_traceoff +$as_echo "$at_srcdir/sparsemv.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -23986,24 +30412,30 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo \"Pass 1: Split between data blocks\" +echo \"Create archive\" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo \"Test archive\" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo \"Compare archive\" +tar --record-size=512 -d -M -f arc.1 -f arc.2 -rm -r directory +echo \"Pass 2: Split within a data block\" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo \"Create archive\" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo \"Test archive\" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo \"Compare archive\" +tar --record-size=512 -d -M -f arc.1 -f arc.2 )" -echo shortrec.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo sparsemv.at:31 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24012,20 +30444,28 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 -rm -r directory +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24034,615 +30474,684 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir directory -(cd directory && touch a b c d e f g h i j k l m n o p q r) -tar -c -b 1 -f - directory | tar -t -f - -tar -c -b 1 -f archive directory -tar -t -f archive -tar -t -f - < archive +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 -rm -r directory +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi - -at_failed=false -echo stderr:; tee stderr <"$at_stderr" -echo stdout:; cat "$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - $at_traceoff -echo "$at_srcdir/shortrec.at:28: grep -v '^.*tar: Record size = ' stderr; exit 0" -echo shortrec.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - at_trace_this=yes -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" -else - ( :; grep -v '^.*tar: Record size = ' stderr; exit 0 ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/shortrec.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - - - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 57 ) # 57. sparse01.at:21: sparse files - at_setup_line='sparse01.at:21' - at_desc="sparse files" - $at_quiet $ECHO_N " 57: sparse files $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "57. sparse01.at:21: testing ..." - $at_traceon - - - +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks +Create archive +Test archive +sparsefile +Compare archive +Pass 2: Split within a data block +Create archive +Test archive +sparsefile +Compare archive +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/sparsemv.at:31" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/sparse01.at:24: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + { $at_traceoff +$as_echo "$at_srcdir/sparsemv.at:31: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" +TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo \"Pass 1: Split between data blocks\" +echo \"Create archive\" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo \"Test archive\" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo \"Compare archive\" +tar --record-size=512 -d -M -f arc.1 -f arc.2 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo \"Pass 2: Split within a data block\" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo \"Create archive\" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo \"Test archive\" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo \"Compare archive\" +tar --record-size=512 -d -M -f arc.1 -f arc.2 )" -echo sparse01.at:24 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo sparsemv.at:31 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + ( :; +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 +echo "Test archive" +tar --record-size=512 -t -M -f arc.1 -f arc.2 +echo "Compare archive" +tar --record-size=512 -d -M -f arc.1 -f arc.2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo stdout:; tee stdout <"$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparse01.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks +Create archive +Test archive +sparsefile +Compare archive +Pass 2: Split within a data block +Create archive +Test archive +sparsefile +Compare archive +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/sparsemv.at:31" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/sparse01.at:24: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_77 +#AT_START_78 +# 78. spmvp00.at:21: sparse files in PAX MV archives, v.0.0 +at_setup_line='spmvp00.at:21' +at_desc="sparse files in PAX MV archives, v.0.0" +$at_quiet $as_echo_n " 78: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "78. spmvp00.at:21: testing ..." + $at_traceon + + + + + + + { $at_traceoff +$as_echo "$at_srcdir/spmvp00.at:24: +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS=\"-H pax\" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77 +echo \"Pass 1: Split between data blocks\" +echo \"Create archive\" +tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo \"Test archive\" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo \"Compare archive\" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo \"Pass 2: Split within a data block\" +genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 +echo \"Create archive\" +tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo \"Test archive\" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo \"Compare archive\" +tar -d -M -f arc.1 -f arc.2 -f arc.3 )" -echo sparse01.at:24 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo spmvp00.at:24 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + ( :; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo stdout:; tee stdout <"$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparse01.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks +Create archive +Test archive +sparsefile +Compare archive +Pass 2: Split within a data block +Create archive +Test archive +sparsefile +Compare archive +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/spmvp00.at:24" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi -$at_traceon - $at_traceoff -echo "$at_srcdir/sparse01.at:24: -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_78 +#AT_START_79 +# 79. spmvp01.at:21: sparse files in PAX MV archives, v.0.1 +at_setup_line='spmvp01.at:21' +at_desc="sparse files in PAX MV archives, v.0.1" +$at_quiet $as_echo_n " 79: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "79. spmvp01.at:21: testing ..." + $at_traceon + + + + + + + { $at_traceoff +$as_echo "$at_srcdir/spmvp01.at:24: +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H oldgnu\" +TAR_OPTIONS=\"-H pax\" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo \"Pass 1: Split between data blocks\" +echo \"Create archive\" +tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo \"Test archive\" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo \"Compare archive\" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo \"Pass 2: Split within a data block\" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo \"Create archive\" +tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo \"Test archive\" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo \"Compare archive\" +tar -d -M -f arc.1 -f arc.2 -f arc.3 )" -echo sparse01.at:24 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo spmvp01.at:24 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir oldgnu -(cd oldgnu -TEST_TAR_FORMAT=oldgnu + ( :; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H oldgnu" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * -genfile --length 1000 -f begin -genfile --length 1000 -f end -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar tfv archive -echo separator -mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo stdout:; tee stdout <"$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparse01.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks +Create archive +Test archive +sparsefile +Compare archive +Pass 2: Split within a data block +Create archive +Test archive +sparsefile +Compare archive +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/spmvp01.at:24" -cat >stdout.re <<'_ATEOF' -separator --rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin --rw-r--r-- ^ ^ * *10344448 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile --rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end -separator -sparsefile 10344448 -_ATEOF +$at_failed && at_func_log_failure +$at_traceon; } -awk '{print NR " " $0}' stdout > $$.1 -awk '{print NR " " $0}' stdout.re | join - $$.1 | -while read NUM RE LINE -do - echo "$LINE" | grep -- "$RE" >/dev/null || exit 1 -done - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 58 ) # 58. sparse02.at:21: extracting sparse file over a pipe - at_setup_line='sparse02.at:21' - at_desc="extracting sparse file over a pipe" - $at_quiet $ECHO_N " 58: extracting sparse file over a pipe $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_79 +#AT_START_80 +# 80. spmvp10.at:21: sparse files in PAX MV archives, v.1.0 +at_setup_line='spmvp10.at:21' +at_desc="sparse files in PAX MV archives, v.1.0" +$at_quiet $as_echo_n " 80: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "58. sparse02.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "80. spmvp10.at:21: testing ..." + $at_traceon -# Tar 1.14 - 1.15.1 was unable to extract sparse files to a pipe. -# References: <16896.21739.460782.124775@jik.kamens.brookline.ma.us> -# http://lists.gnu.org/archive/html/bug-tar/2005-02/msg00003.html - $at_traceoff -echo "$at_srcdir/sparse02.at:28: -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + { $at_traceoff +$as_echo "$at_srcdir/spmvp10.at:24: +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H posix\" +TAR_OPTIONS=\"-H pax\" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 +echo \"Pass 1: Split between data blocks\" +echo \"Create archive\" +tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo \"Test archive\" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo \"Compare archive\" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy +echo \"Pass 2: Split within a data block\" +genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77 +echo \"Create archive\" +tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo \"Test archive\" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo \"Compare archive\" +tar -d -M -f arc.1 -f arc.2 -f arc.3 )" -echo sparse02.at:28 >"$at_check_line_file" - -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo spmvp10.at:24 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir posix -(cd posix -TEST_TAR_FORMAT=posix + ( :; +mkdir pax +(cd pax +TEST_TAR_FORMAT=pax export TEST_TAR_FORMAT -TAR_OPTIONS="-H posix" +TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator +exec <&- +genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 +echo "Pass 1: Split between data blocks" +echo "Create archive" +tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 + +echo "Pass 2: Split within a data block" +genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77 +echo "Create archive" +tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile +echo "Test archive" +tar -t -M -f arc.1 -f arc.2 -f arc.3 +echo "Compare archive" +tar -d -M -f arc.1 -f arc.2 -f arc.3 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Pass 1: Split between data blocks +Create archive +Test archive +sparsefile +Compare archive +Pass 2: Split within a data block +Create archive +Test archive +sparsefile +Compare archive +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/spmvp10.at:24" + +$at_failed && at_func_log_failure +$at_traceon; } -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparse02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - echo 1 > "$at_status_file" - exit 1 -fi + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_80 +#AT_START_81 +# 81. update.at:28: update unchanged directories +at_setup_line='update.at:28' +at_desc="update unchanged directories" +$at_quiet $as_echo_n " 81: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "81. update.at:28: testing ..." + $at_traceon -$at_traceon - $at_traceoff -echo "$at_srcdir/sparse02.at:28: -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + + + + { $at_traceoff +$as_echo "$at_srcdir/update.at:31: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H gnu\" +TAR_OPTIONS=\"-H v7\" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy -)" -echo sparse02.at:28 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +)" +echo update.at:31 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir gnu -(cd gnu -TEST_TAR_FORMAT=gnu + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 export TEST_TAR_FORMAT -TAR_OPTIONS="-H gnu" +TAR_OPTIONS="-H v7" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator - -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparse02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +test -z "`sort < /dev/null 2>&1`" || exit 77 +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 - echo 1 > "$at_status_file" - exit 1 +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +separator +directory/ +directory/file1 +directory/file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update.at:31" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/sparse02.at:28: + { $at_traceoff +$as_echo "$at_srcdir/update.at:31: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -24651,22 +31160,24 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy -)" -echo sparse02.at:28 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +)" +echo update.at:31 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -24675,18 +31186,22 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -24695,66 +31210,126 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77 -tar -c -f archive --sparse sparsefile || exit 1 -echo separator -tar xfO archive | cat - > sparsecopy || exit 1 -cmp sparsefile sparsecopy +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparse02.at:28: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +separator +directory/ +directory/file1 +directory/file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update.at:31" +$at_failed && at_func_log_failure +$at_traceon; } - echo 1 > "$at_status_file" - exit 1 -fi + { $at_traceoff +$as_echo "$at_srcdir/update.at:31: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * -$at_traceon +test -z "`sort < /dev/null 2>&1`" || exit 77 +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +)" +echo update.at:31 >"$at_check_line_file" - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * - 59 ) # 59. sparse03.at:21: storing sparse files > 8G - at_setup_line='sparse03.at:21' - at_desc="storing sparse files > 8G" - $at_quiet $ECHO_N " 59: storing sparse files > 8G $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "59. sparse03.at:21: testing ..." - $at_traceon +test -z "`sort < /dev/null 2>&1`" || exit 77 +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 -# Tar 1.15.1 incorrectly computed sparse member size if the extended -# PAX header contained size keyword. -# References: <87vf46nb36.fsf@penguin.cs.ucla.edu> -# http://lists.gnu.org/archive/html/bug-tar/2005-06/msg00040.html +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS="-H ustar" +export TAR_OPTIONS +rm -rf * +test -z "`sort < /dev/null 2>&1`" || exit 77 - $at_traceoff -echo "$at_srcdir/sparse03.at:29: +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +separator +directory/ +directory/file1 +directory/file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update.at:31" + +$at_failed && at_func_log_failure +$at_traceon; } + + { $at_traceoff +$as_echo "$at_srcdir/update.at:31: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -24763,28 +31338,24 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -genfile --length 1000 --file begin -genfile --length 1000 --file end -genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator -tar tfv archive -echo separator +test -z "`sort < /dev/null 2>&1`" || exit 77 + mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile -)" -echo sparse03.at:29 >"$at_check_line_file" +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +)" +echo update.at:31 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -24793,24 +31364,22 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile --length 1000 --file begin -genfile --length 1000 --file end -genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator -tar tfv archive -echo separator +test -z "`sort < /dev/null 2>&1`" || exit 77 + mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -24819,91 +31388,37 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -genfile --length 1000 --file begin -genfile --length 1000 --file end -genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 -tar -c -f archive --sparse begin sparsefile end || exit 1 -echo separator -tar tfv archive -echo separator +test -z "`sort < /dev/null 2>&1`" || exit 77 + mkdir directory -tar Cxf directory archive -genfile --stat=name,size sparsefile -cmp sparsefile directory/sparsefile +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo stdout:; tee stdout <"$at_stdout" -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparse03.at:29: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon - - - - - -cat >stdout.re <<'_ATEOF' -separator --rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin --rw-r--r-- ^ ^ * *8589935104 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile --rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator separator -sparsefile 8589935104 -_ATEOF - -awk '{print NR " " $0}' stdout > $$.1 -awk '{print NR " " $0}' stdout.re | join - $$.1 | -while read NUM RE LINE -do - echo "$LINE" | grep -- "$RE" >/dev/null || exit 1 -done - - - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 60 ) # 60. sparsemv.at:21: sparse files in MV archives - at_setup_line='sparsemv.at:21' - at_desc="sparse files in MV archives" - $at_quiet $ECHO_N " 60: sparse files in MV archives $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "60. sparsemv.at:21: testing ..." - $at_traceon - - - -# Check if sparse files are correctly split between GNU multi-volume -# archives. -# There are two cases: the file can be split within an empty (null) block, -# or within a data block. Since null blocks are not archived, the first -# case means the file is split between two consecutive data blocks. -# - +directory/ +directory/file1 +directory/file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update.at:31" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/sparsemv.at:31: + { $at_traceoff +$as_echo "$at_srcdir/update.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24912,34 +31427,24 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo \"Pass 1: Split between data blocks\" -echo \"Create archive\" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo \"Test archive\" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo \"Compare archive\" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -echo \"Pass 2: Split within a data block\" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo \"Create archive\" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo \"Test archive\" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo \"Compare archive\" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -)" -echo sparsemv.at:31 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 +)" +echo update.at:31 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24948,30 +31453,22 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24980,58 +31477,163 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir directory +genfile --length 10240 --pattern zeros --file directory/file1 +genfile --length 10240 --pattern default --file directory/file2 + +tar cf archive directory || exit 1 +echo separator +tar uf archive directory || exit 1 +echo separator +tar tf archive | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Pass 1: Split between data blocks -Create archive -Test archive -sparsefile -Compare archive -Pass 2: Split within a data block -Create archive -Test archive -sparsefile -Compare archive -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparsemv.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +separator +directory/ +directory/file1 +directory/file2 +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update.at:31" + +$at_failed && at_func_log_failure +$at_traceon; } + + + + + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_81 +#AT_START_82 +# 82. update01.at:29: update directories +at_setup_line='update01.at:29' +at_desc="update directories" +$at_quiet $as_echo_n " 82: $at_desc " +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "82. update01.at:29: testing ..." + $at_traceon + + + + + + { $at_traceoff +$as_echo "$at_srcdir/update01.at:32: +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H v7\" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir a +genfile --file a/b + +tar cf arc a + +echo \"separator\" + +sleep 2 +genfile --file a/c + +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update01.at:32 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * + + +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir a +genfile --file a/b + +tar cf arc a + +echo "separator" + +sleep 2 +genfile --file a/c + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stder1" + at_func_filter_trace $? +else + ( :; +mkdir v7 +(cd v7 +TEST_TAR_FORMAT=v7 +export TEST_TAR_FORMAT +TAR_OPTIONS="-H v7" +export TAR_OPTIONS +rm -rf * - echo 1 > "$at_status_file" - exit 1 +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir a +genfile --file a/b + +tar cf arc a + +echo "separator" + +sleep 2 +genfile --file a/c + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/c +separator +a/ +a/b +a/c +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update01.at:32" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/sparsemv.at:31: + { $at_traceoff +$as_echo "$at_srcdir/update01.at:32: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25040,34 +31642,28 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo \"Pass 1: Split between data blocks\" -echo \"Create archive\" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo \"Test archive\" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo \"Compare archive\" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -echo \"Pass 2: Split within a data block\" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo \"Create archive\" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo \"Test archive\" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo \"Compare archive\" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -)" -echo sparsemv.at:31 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir a +genfile --file a/b + +tar cf arc a + +echo \"separator\" + +sleep 2 +genfile --file a/c -if test -n "$at_trace_this"; then - ( $at_traceon; +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update01.at:32 >"$at_check_line_file" + +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25076,30 +31672,26 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir a +genfile --file a/b + +tar cf arc a + +echo "separator" + +sleep 2 +genfile --file a/c + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25108,547 +31700,372 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 -echo "Test archive" -tar --record-size=512 -t -M -f arc.1 -f arc.2 -echo "Compare archive" -tar --record-size=512 -d -M -f arc.1 -f arc.2 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Pass 1: Split between data blocks -Create archive -Test archive -sparsefile -Compare archive -Pass 2: Split within a data block -Create archive -Test archive -sparsefile -Compare archive -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/sparsemv.at:31: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +mkdir a +genfile --file a/b +tar cf arc a - echo 1 > "$at_status_file" - exit 1 -fi +echo "separator" -$at_traceon +sleep 2 +genfile --file a/c +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/c +separator +a/ +a/b +a/c +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update01.at:32" +$at_failed && at_func_log_failure +$at_traceon; } + { $at_traceoff +$as_echo "$at_srcdir/update01.at:32: +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H ustar\" +export TAR_OPTIONS +rm -rf * - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 61 ) # 61. spmvp00.at:21: sparse files in PAX MV archives, v.0.0 - at_setup_line='spmvp00.at:21' - at_desc="sparse files in PAX MV archives, v.0.0" - $at_quiet $ECHO_N " 61: sparse files in PAX MV archives, v.0.0 $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "61. spmvp00.at:21: testing ..." - $at_traceon +test -z "`sort < /dev/null 2>&1`" || exit 77 +mkdir a +genfile --file a/b +tar cf arc a +echo \"separator\" +sleep 2 +genfile --file a/c +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update01.at:32 >"$at_check_line_file" - $at_traceoff -echo "$at_srcdir/spmvp00.at:24: -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H pax\" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77 -echo \"Pass 1: Split between data blocks\" -echo \"Create archive\" -tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo \"Test archive\" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo \"Compare archive\" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -echo \"Pass 2: Split within a data block\" -genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 -echo \"Create archive\" -tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo \"Test archive\" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo \"Compare archive\" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -)" -echo spmvp00.at:24 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir a +genfile --file a/b -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax -export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" -export TAR_OPTIONS -rm -rf * +tar cf arc a -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 +echo "separator" -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 +sleep 2 +genfile --file a/c + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax + ( :; +mkdir ustar +(cd ustar +TEST_TAR_FORMAT=ustar export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" +TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 12 blocks -tar: Record size = 12 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Pass 1: Split between data blocks -Create archive -Test archive -sparsefile -Compare archive -Pass 2: Split within a data block -Create archive -Test archive -sparsefile -Compare archive -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/spmvp00.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +mkdir a +genfile --file a/b +tar cf arc a - echo 1 > "$at_status_file" - exit 1 -fi +echo "separator" -$at_traceon +sleep 2 +genfile --file a/c +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/c +separator +a/ +a/b +a/c +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update01.at:32" +$at_failed && at_func_log_failure +$at_traceon; } + { $at_traceoff +$as_echo "$at_srcdir/update01.at:32: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 62 ) # 62. spmvp01.at:21: sparse files in PAX MV archives, v.0.1 - at_setup_line='spmvp01.at:21' - at_desc="sparse files in PAX MV archives, v.0.1" - $at_quiet $ECHO_N " 62: sparse files in PAX MV archives, v.0.1 $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "62. spmvp01.at:21: testing ..." - $at_traceon +test -z "`sort < /dev/null 2>&1`" || exit 77 +mkdir a +genfile --file a/b +tar cf arc a +echo \"separator\" +sleep 2 +genfile --file a/c +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update01.at:32 >"$at_check_line_file" - $at_traceoff -echo "$at_srcdir/spmvp01.at:24: -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H pax\" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo \"Pass 1: Split between data blocks\" -echo \"Create archive\" -tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo \"Test archive\" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo \"Compare archive\" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -echo \"Pass 2: Split within a data block\" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo \"Create archive\" -tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo \"Test archive\" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo \"Compare archive\" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -)" -echo spmvp01.at:24 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir a +genfile --file a/b -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax -export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" -export TAR_OPTIONS -rm -rf * +tar cf arc a -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 +echo "separator" -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 +sleep 2 +genfile --file a/c + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax + ( :; +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" +TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 12 blocks -tar: Record size = 12 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Pass 1: Split between data blocks -Create archive -Test archive -sparsefile -Compare archive -Pass 2: Split within a data block -Create archive -Test archive -sparsefile -Compare archive -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/spmvp01.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +mkdir a +genfile --file a/b +tar cf arc a - echo 1 > "$at_status_file" - exit 1 -fi +echo "separator" -$at_traceon +sleep 2 +genfile --file a/c +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/c +separator +a/ +a/b +a/c +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update01.at:32" +$at_failed && at_func_log_failure +$at_traceon; } + { $at_traceoff +$as_echo "$at_srcdir/update01.at:32: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 63 ) # 63. spmvp10.at:21: sparse files in PAX MV archives, v.1.0 - at_setup_line='spmvp10.at:21' - at_desc="sparse files in PAX MV archives, v.1.0" - $at_quiet $ECHO_N " 63: sparse files in PAX MV archives, v.1.0 $ECHO_C" - at_xfail=no - test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "63. spmvp10.at:21: testing ..." - $at_traceon +test -z "`sort < /dev/null 2>&1`" || exit 77 +mkdir a +genfile --file a/b +tar cf arc a +echo \"separator\" +sleep 2 +genfile --file a/c +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update01.at:32 >"$at_check_line_file" - $at_traceoff -echo "$at_srcdir/spmvp10.at:24: -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS=\"-H pax\" +TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 -echo \"Pass 1: Split between data blocks\" -echo \"Create archive\" -tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo \"Test archive\" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo \"Compare archive\" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -echo \"Pass 2: Split within a data block\" -genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77 -echo \"Create archive\" -tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo \"Test archive\" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo \"Compare archive\" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -)" -echo spmvp10.at:24 >"$at_check_line_file" +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +mkdir a +genfile --file a/b -if test -n "$at_trace_this"; then - ( $at_traceon; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax -export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" -export TAR_OPTIONS -rm -rf * +tar cf arc a -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 +echo "separator" -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 +sleep 2 +genfile --file a/c + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; -mkdir pax -(cd pax -TEST_TAR_FORMAT=pax + ( :; +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu export TEST_TAR_FORMAT -TAR_OPTIONS="-H pax" +TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -exec <&- -genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77 -echo "Pass 1: Split between data blocks" -echo "Create archive" -tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -echo "Pass 2: Split within a data block" -genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77 -echo "Create archive" -tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile -echo "Test archive" -tar -t -M -f arc.1 -f arc.2 -f arc.3 -echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 -f arc.3 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +test -z "`sort < /dev/null 2>&1`" || exit 77 -at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 12 blocks -tar: Record size = 12 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Pass 1: Split between data blocks -Create archive -Test archive -sparsefile -Compare archive -Pass 2: Split within a data block -Create archive -Test archive -sparsefile -Compare archive -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/spmvp10.at:24: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +mkdir a +genfile --file a/b +tar cf arc a - echo 1 > "$at_status_file" - exit 1 -fi +echo "separator" + +sleep 2 +genfile --file a/c -$at_traceon +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" +fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/c +separator +a/ +a/b +a/c +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update01.at:32" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 64 ) # 64. update.at:27: update unchanged directories - at_setup_line='update.at:27' - at_desc="update unchanged directories" - $at_quiet $ECHO_N " 64: update unchanged directories $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_82 +#AT_START_83 +# 83. update02.at:26: update changed files +at_setup_line='update02.at:26' +at_desc="update changed files" +$at_quiet $as_echo_n " 83: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "64. update.at:27: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "83. update02.at:26: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/update.at:30: + { $at_traceoff +$as_echo "$at_srcdir/update02.at:29: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -25660,25 +32077,25 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -)" -echo update.at:30 >"$at_check_line_file" +tar cf arc a + +echo \"separator\" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +sleep 2 +touch a/b + +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update02.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -25690,21 +32107,23 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 +tar cf arc a + +echo "separator" + +sleep 2 +touch a/b + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -25716,44 +32135,39 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +tar cf arc a -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator -separator -directory/ -directory/file1 -directory/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/update.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "separator" +sleep 2 +touch a/b - echo 1 > "$at_status_file" - exit 1 +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/b +separator +a/ +a/b +a/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update02.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/update.at:30: + { $at_traceoff +$as_echo "$at_srcdir/update02.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25765,25 +32179,25 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -)" -echo update.at:30 >"$at_check_line_file" +tar cf arc a -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo \"separator\" + +sleep 2 +touch a/b + +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update02.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25795,21 +32209,23 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 +tar cf arc a + +echo "separator" + +sleep 2 +touch a/b + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25821,44 +32237,39 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +tar cf arc a -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator -separator -directory/ -directory/file1 -directory/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/update.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "separator" +sleep 2 +touch a/b - echo 1 > "$at_status_file" - exit 1 +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/b +separator +a/ +a/b +a/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update02.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/update.at:30: + { $at_traceoff +$as_echo "$at_srcdir/update02.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -25870,25 +32281,25 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -)" -echo update.at:30 >"$at_check_line_file" +tar cf arc a -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo \"separator\" + +sleep 2 +touch a/b + +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update02.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -25900,21 +32311,23 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 +tar cf arc a + +echo "separator" + +sleep 2 +touch a/b + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -25926,44 +32339,39 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +tar cf arc a -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator -separator -directory/ -directory/file1 -directory/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/update.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "separator" +sleep 2 +touch a/b - echo 1 > "$at_status_file" - exit 1 +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/b +separator +a/ +a/b +a/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update02.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/update.at:30: + { $at_traceoff +$as_echo "$at_srcdir/update02.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -25975,25 +32383,25 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -)" -echo update.at:30 >"$at_check_line_file" +tar cf arc a -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo \"separator\" + +sleep 2 +touch a/b + +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update02.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -26005,21 +32413,23 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 +tar cf arc a + +echo "separator" + +sleep 2 +touch a/b + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -26031,44 +32441,39 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? -fi +tar cf arc a -at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator -separator -directory/ -directory/file1 -directory/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/update.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then +echo "separator" +sleep 2 +touch a/b - echo 1 > "$at_status_file" - exit 1 +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 +) ) >"$at_stdout" 2>"$at_stderr" fi +at_status=$? +at_failed=false +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/b +separator +a/ +a/b +a/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update02.at:29" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/update.at:30: + { $at_traceoff +$as_echo "$at_srcdir/update02.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26080,25 +32485,25 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 -)" -echo update.at:30 >"$at_check_line_file" +tar cf arc a -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi +echo \"separator\" + +sleep 2 +touch a/b + +tar ufv arc a +echo \"separator\" +tar tf arc | sort || exit 1 +)" +echo update02.at:29 >"$at_check_line_file" -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26110,21 +32515,23 @@ rm -rf * test -z "`sort < /dev/null 2>&1`" || exit 77 -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +mkdir a +genfile --file a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 +tar cf arc a + +echo "separator" + +sleep 2 +touch a/b + +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26134,70 +32541,65 @@ export TAR_OPTIONS rm -rf * -test -z "`sort < /dev/null 2>&1`" || exit 77 +test -z "`sort < /dev/null 2>&1`" || exit 77 + +mkdir a +genfile --file a/b + +tar cf arc a + +echo "separator" -mkdir directory -genfile --length 10240 --pattern zeros --file directory/file1 -genfile --length 10240 --pattern default --file directory/file2 +sleep 2 +touch a/b -tar cf archive directory || exit 1 -echo separator -tar uf archive directory || exit 1 -echo separator -tar tf archive | sort || exit 1 +tar ufv arc a +echo "separator" +tar tf arc | sort || exit 1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator +a/b separator -directory/ -directory/file1 -directory/file2 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/update.at:30: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +a/ +a/b +a/b +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/update02.at:29" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 65 ) # 65. volume.at:23: volume - at_setup_line='volume.at:23' - at_desc="volume" - $at_quiet $ECHO_N " 65: volume $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_83 +#AT_START_84 +# 84. volume.at:23: volume +at_setup_line='volume.at:23' +at_desc="volume" +$at_quiet $as_echo_n " 84: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "65. volume.at:23: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "84. volume.at:23: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/volume.at:26: + { $at_traceoff +$as_echo "$at_srcdir/volume.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26224,13 +32626,9 @@ test \$? = 2 )" echo volume.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26255,11 +32653,9 @@ echo 1>&2 ----- tar xfV archive babel test $? = 2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26284,11 +32680,10 @@ echo 1>&2 ----- tar xfV archive babel test $? = 2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "----- +echo >>"$at_stderr"; $as_echo "----- tar: Volume \`label' does not match \`lab' tar: Error is not recoverable: exiting now ----- @@ -26297,25 +32692,16 @@ tar: Error is not recoverable: exiting now ----- tar: Volume \`label' does not match \`babel' tar: Error is not recoverable: exiting now -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/volume.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/volume.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/volume.at:26: + { $at_traceoff +$as_echo "$at_srcdir/volume.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -26342,13 +32728,9 @@ test \$? = 2 )" echo volume.at:26 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -26373,11 +32755,9 @@ echo 1>&2 ----- tar xfV archive babel test $? = 2 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -26402,11 +32782,10 @@ echo 1>&2 ----- tar xfV archive babel test $? = 2 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "----- +echo >>"$at_stderr"; $as_echo "----- tar: Volume \`label' does not match \`lab' tar: Error is not recoverable: exiting now ----- @@ -26415,49 +32794,40 @@ tar: Error is not recoverable: exiting now ----- tar: Volume \`label' does not match \`babel' tar: Error is not recoverable: exiting now -" | $at_diff - "$at_stderr" || at_failed=: -$at_diff "$at_devnull" "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/volume.at:26: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_func_diff_devnull "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/volume.at:26" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - - 66 ) # 66. volsize.at:29: volume header size - at_setup_line='volsize.at:29' - at_desc="volume header size" - $at_quiet $ECHO_N " 66: volume header size $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_84 +#AT_START_85 +# 85. volsize.at:29: volume header size +at_setup_line='volsize.at:29' +at_desc="volume header size" +$at_quiet $as_echo_n " 85: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "66. volsize.at:29: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "85. volsize.at:29: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/volsize.at:32: + { $at_traceoff +$as_echo "$at_srcdir/volsize.at:32: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -26483,13 +32853,9 @@ find abc|sort )" echo volsize.at:32 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -26513,11 +32879,9 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -26541,14 +32905,11 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 5 blocks -tar: Record size = 5 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Short Listing +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Short Listing abc/not-a-file.gif abc/CCC Verbose Listing @@ -26557,24 +32918,15 @@ V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Heade Extracted directory abc abc/CCC -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/volsize.at:32: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/volsize.at:32: + { $at_traceoff +$as_echo "$at_srcdir/volsize.at:32: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -26600,13 +32952,9 @@ find abc|sort )" echo volsize.at:32 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -26630,11 +32978,9 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -26658,14 +33004,11 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 5 blocks -tar: Record size = 5 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Short Listing +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Short Listing abc/not-a-file.gif abc/CCC Verbose Listing @@ -26674,24 +33017,15 @@ V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Heade Extracted directory abc abc/CCC -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/volsize.at:32: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/volsize.at:32: + { $at_traceoff +$as_echo "$at_srcdir/volsize.at:32: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -26717,13 +33051,9 @@ find abc|sort )" echo volsize.at:32 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -26747,11 +33077,9 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -26775,14 +33103,11 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 5 blocks -tar: Record size = 5 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Short Listing +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Short Listing abc/not-a-file.gif abc/CCC Verbose Listing @@ -26791,24 +33116,15 @@ V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Heade Extracted directory abc abc/CCC -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/volsize.at:32: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/volsize.at:32: + { $at_traceoff +$as_echo "$at_srcdir/volsize.at:32: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -26834,13 +33150,9 @@ find abc|sort )" echo volsize.at:32 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -26864,11 +33176,9 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -26892,14 +33202,11 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 5 blocks -tar: Record size = 5 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Short Listing +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Short Listing abc/not-a-file.gif abc/CCC Verbose Listing @@ -26908,24 +33215,15 @@ V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Heade Extracted directory abc abc/CCC -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/volsize.at:32: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/volsize.at:32: + { $at_traceoff +$as_echo "$at_srcdir/volsize.at:32: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26951,13 +33249,9 @@ find abc|sort )" echo volsize.at:32 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -26981,11 +33275,9 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -27009,14 +33301,11 @@ echo Extracted directory tar xf $TEST_DATA_DIR/abc.tar find abc|sort ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -echo >>"$at_stderr"; echo "tar: Record size = 5 blocks -tar: Record size = 5 blocks -" | $at_diff - "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "Short Listing +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "Short Listing abc/not-a-file.gif abc/CCC Verbose Listing @@ -27025,49 +33314,40 @@ V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Heade Extracted directory abc abc/CCC -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/volsize.at:32: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/volsize.at:32" +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff - $at_times_p && times >"$at_times_file" - ) 5>&1 2>&1 | eval $at_tee_pipe - at_status=`cat "$at_status_file"` - ;; - 67 ) # 67. comprec.at:21: compressed format recognition - at_setup_line='comprec.at:21' - at_desc="compressed format recognition" - $at_quiet $ECHO_N " 67: compressed format recognition $ECHO_C" - at_xfail=no + $at_traceoff + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 | eval $at_tee_pipe +at_status=`cat "$at_status_file"` +#AT_STOP_85 +#AT_START_86 +# 86. comprec.at:21: compressed format recognition +at_setup_line='comprec.at:21' +at_desc="compressed format recognition" +$at_quiet $as_echo_n " 86: $at_desc " +at_xfail=no test -f $XFAILFILE && at_xfail=yes - echo "# -*- compilation -*-" >> "$at_group_log" - ( - echo "67. comprec.at:21: testing ..." - $at_traceon +echo "# -*- compilation -*-" >> "$at_group_log" +( + $as_echo "86. comprec.at:21: testing ..." + $at_traceon - $at_traceoff -echo "$at_srcdir/comprec.at:25: + { $at_traceoff +$as_echo "$at_srcdir/comprec.at:25: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -27089,13 +33369,9 @@ cmp orig file1 )" echo comprec.at:25 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -27115,11 +33391,9 @@ mv file1 orig tar xfv archive cmp orig file1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -27139,32 +33413,22 @@ mv file1 orig tar xfv archive cmp orig file1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator separator file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/comprec.at:25: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - - - echo 1 > "$at_status_file" - exit 1 -fi +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/comprec.at:25" -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/comprec.at:25: + { $at_traceoff +$as_echo "$at_srcdir/comprec.at:25: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -27186,13 +33450,9 @@ cmp orig file1 )" echo comprec.at:25 >"$at_check_line_file" -at_trace_this= -if test -n "$at_traceon"; then - echo 'Not enabling shell tracing (command contains an embedded newline)' -fi - -if test -n "$at_trace_this"; then - ( $at_traceon; +if { echo 'Not enabling shell tracing (command contains an embedded newline)' + false; }; then + ( $at_traceon; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -27212,11 +33472,9 @@ mv file1 orig tar xfv archive cmp orig file1 ) ) >"$at_stdout" 2>"$at_stder1" - at_status=$? - grep '^ *+' "$at_stder1" >&2 - grep -v '^ *+' "$at_stder1" >"$at_stderr" + at_func_filter_trace $? else - ( :; + ( :; mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -27236,32 +33494,22 @@ mv file1 orig tar xfv archive cmp orig file1 ) ) >"$at_stdout" 2>"$at_stderr" - at_status=$? fi - +at_status=$? at_failed=false -$at_diff "$at_devnull" "$at_stderr" || at_failed=: -echo >>"$at_stdout"; echo "separator +at_func_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "separator separator file1 -" | $at_diff - "$at_stdout" || at_failed=: -case $at_status in - 77) echo 77 > "$at_status_file"; exit 77;; - 0) ;; - *) echo "$at_srcdir/comprec.at:25: exit code was $at_status, expected 0" - at_failed=:;; -esac -if $at_failed; then - +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_func_check_status 0 $at_status "$at_srcdir/comprec.at:25" - echo 1 > "$at_status_file" - exit 1 -fi - -$at_traceon +$at_failed && at_func_log_failure +$at_traceon; } - $at_traceoff -echo "$at_srcdir/comprec.at:25: + { $at_traceoff +$as_echo "$at_srcdir/comprec.at:25: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -27283,13 +33531,9 @@ cmp orig file1 )" echo comprec.at:25 >